西南交大电脑鼠课程设计报告
关于电脑鼠的论文(有框图)

电脑鼠学习心得和遇到的问题及解决方法彭旺 16012126学习心得:在大一的时候就经常看见学长们整天在宿舍弄一个小车,后来才知道那就是视觉知道机器人。
于是到了大二选择选修课的时候就果断选了这个课。
本来我选的是机器人那个,上了才知道又要做实验还要参加比赛还要交押金甚是麻烦,顿时欲哭无泪,硬着头皮去上,因为分组问题被弄到了电脑鼠这边来,觉得比机器人那边要好玩得多。
第一次去上课就要交押金,并且那个电脑鼠还好贵的,整整两千多啊。
那是最开始就给我们讲了电脑鼠处理器运行的相关函数,后面几节课分别讲了电脑鼠在迷宫中搜索以及最后冲刺的相关程序。
好吧,我承认当时确实有点无聊。
直到后来,老师终于给了我们完整的程序,于是兴奋的我们毫不犹豫的把程序“捎”了进去,然后把电脑鼠放到迷宫中,结果发现它除了撞墙就是转圈。
探索调试:我们小组分工合作,一起研发。
电脑鼠走迷宫可以采用全迷宫探索策略,即将迷宫的所有单元均搜索一次,从中找出最佳的行走路径。
或者可以采用部分迷宫探索策略,即在有限的时间或探测次数下,只探测迷宫的一部分,从中找出次最佳的路径。
我们的电脑鼠要实现的功能有如下几个方面:路口检测:由安装在前、右、左的三个红外线发射对管SIR563ST3F 和IRM8601S实现, 发射信号为38KHz, 实现远红外测距功能, 探测前、右、左有无障碍。
行走控制:由左、右两个红外线发射对管SIR563ST3F和IRM8601S为实现, 发射信号为30.5KHz, 实现近红外测距功能, 保持电脑鼠在中轴线上行走, 避免撞墙。
路程控制:安装在左右轮内侧的红外收发对管IR204和PD204一6B, 对黑白码盘计数, 按照迷宫单元的长度为单位进行路程计数, 以记录老鼠在迷宫中的位置同时还可以准确地实现转弯。
微控制器和其它子系统共同构成一个闭环的反馈控制系统, 通过对三种传感器信号的检测行走信号、路口信号和黑白码盘计数信号, 由微控制器进行运算, 运算结果交给电机执行, 由此实现电脑鼠的智能穿越迷宫。
打地鼠课程设计报告

嵌入式打地鼠课程设计一、系统方案设计本设计应用STM32开发板进行设计,即一个带触摸功能的液晶屏,主要负责显示打地鼠游戏运行界面及分数变化等,STM32主控版采用的型号为STM32F103,使用高性能的ARM Cortex-M3内核,工作频率为72MHz,内置高速存储器(高达128k字节的闪存和20k字节的SRAM),丰富的增强I/O端口和联接到两条APB总线的外设。
所有型号的器件都包含2个12位的ADC、3个通用16位定时器和1个PWM定时器,还包含标准和先进的通信接口:多达2个I2C接口和SPI接口、3个USART接口、一个USB接口和一个CAN接口。
本次设计的显示界面用了一块串口液晶屏,这种串口屏具有界面设计简单,交互性好,使用方便的特点,且它使用USART进行与主控版进行通信,便于控制部分与显示部分独立进行调试,也便于通信协议的制定。
可实现如下功能:1.地鼠在规定的时间内随机地出现在不同的洞口。
2.当用户击中地鼠分数加一。
3.当用户未击中地鼠生命值减一。
4.触摸屏显示用户所得分数、关数、生命值数。
二、硬件设计①触摸屏模块1. 一般转换模式:单独的转换模式一般使用来作为通用的ADC转换使用,这种模式可以通过初始化设置寄存器ADCCON,并且读写寄存器ADCDA T0来实现。
2. 分别X/Y位置转换模式:触摸屏控制器可以通过X/Y两个转换模式中的一个来完成,X位置模式写X位置转换数据到寄存ADCDAT0,这时触摸屏接口产生中断源到中断控制器。
Y位置模式写Y位置转换数据到寄存器ADCDAT1,,这时触摸屏接口产生中断源到中断控制器。
3. 自动X/Y位置转换模式:自动X/Y位置转换模式的工作方式如下:当触摸屏有触点触发时,触摸屏控制器依次转换X位置和Y位置。
在触摸屏控制器写X位置测试数据到寄存器ADCDAT0和写Y位置测试数据到寄存器ADCDA T1后,触摸屏接口产生中断源到中断控制器。
4.等待中断模式:当有触摸笔按下的时候,触摸屏控制器会产生中断信号(INT_TC)。
计算机组成原理课程设计总结报告

计算机组成原理课程设计总结报告课设题目:鼠标的制作院系:计算机学院专业:计算机科学与技术班级:xxxx学号:xxxxx姓名:xxxx一.项目介绍与设计目的1.项目介绍运用基本的元器件完成鼠标的制作与调试并可以在计算机上使用。
2.实验目的本实验旨在通过自己做鼠标锻炼考察对计算机组成原理知识的运用与实践二.项目环境要求在整洁的桌面完成,避免零件混乱。
焊枪使用之前先做清洁处理,不用时放在烙铁架上三.电路图及原理分析电路图:原理分析:在光电鼠标内部有一个发光二极管,通过该发光二极管发出的光线,照亮光电鼠标底部表面(这就是为什么鼠标底部总会发光的原因)。
然后将光电鼠标底部表面反射回的一部分光线,经过一组光学透镜传输到一个光感应器件(微成像器)内成像现在,翻过一只发红光的光学鼠标,您都可以看到一个小凹坑,里面有一个小棱镜和一个透镜。
工作时,从棱镜中会发出一束很强的红色光线照射到桌面上,然后通过桌面不同颜色或凹凸点的运动和反射,来判断鼠标的运动当鼠标移动的时候,成像传感器录得连续的图案,然后通过“数字信号理器”(DSP)对每张图片的前后对比分析处理,以判断鼠标移动的方向以及位移,从而得出鼠标x, y方向的移动数值。
再通过SPI传给鼠标的微型控制单元。
鼠标的处理器对这些数值处理之后,传给电脑主机四.项目实现步骤及注意事项1项目实验步骤:首先先焊接电容主芯片、发光二极管、电阻、按钮的焊接数据线的焊接,按G-蓝、A-白、C-橙、D-绿,接法如下图各组件的安装及鼠标外壳的嵌套2.注意事项焊接电路时连续焊接时间不超过三秒清洁电烙铁焊头使用加水湿润,湿度如拧干的毛巾,不用时一定要放在烙铁架上电容具有正负极之分。
靠近白色横条纹的引脚为负极。
对应电路板上涂白色的区域。
电路版上用到的两个电容不是一样容量的,要注意区分,前面图片中用红色边框圈起来的电容是100uf的,另外一个是10uf。
发光二极管也有正负极之分。
接反了灯就不会亮。
西南交通大学C实验报告

计算机程序设计基础(C++)实验报告信息学院计算机教育中心二零一二年三月目录实验__1__实验报告 (3)实验__2__实验报告 (5)实验__3__实验报告 (6)实验__4__实验报告 (7)实验__5__实验报告 (11)实验__6__实验报告 (14)实验__7__实验报告 (17)实验__8__实验报告 (19)实验__9__实验报告 (20)实验__10__实验报告 (21)实验__11__实验报告 (22)实验__12__实验报告 (23)实验__13__实验报告 (24)实验__14__实验报告 (25)实验__15__实验报告 (26)实验日期:___________ 实验地点:_________(机房)指导教师签名:__________ 实验成绩:___________一、实验目的1.熟悉Visual studio 6.0集成开发环境;2.学习新建和打开控制台应用程序的方法;3.通过运行示例程序了解程序开发过程;二、实验任务1.新建源程序文件,编辑以下程序,编译,链接,得出运行结果,并保存程序:#include <iostream>using namespace std;void main( ){ cout<<'a'<<endl;cout<<'\141'<<endl;cout<<'\x61'<<endl;}2.新建源程序文件,编辑以下程序,编译,链接,运行,输入36和64,得出运行结果,并保存程序:#include <iostream>using namespace std;int main(){ float num1,num2,sum;cout << "Enter first number: ";cin >> num1;cout << "Enter second number: ";cin >> num2;sum=num1+num2;cout << "The sum is " << sum << endl;return 0;}三、实验结果教学班级:_______ 学生学号:__________ 学生姓名:___________ 实验日期:___________ 实验地点:_________(机房)指导教师签名:__________ 实验成绩:___________一、实验目的1.熟悉Visual studio 6.0集成开发环境;2.学习新建和打开控制台应用程序的方法;3.简单输入和输出语句的练习。
-综合课程设计

(2)74HC138译码器
如图3-2-2-2所示,是硬件电路部分3-8译码选择器电路。
采用74HC138译码器将单片机的三位二进制编码译码为8位控制线,使用其中的5位控制线分别控制5个传感器组的分时工作。
例如A0A1A2地址为000时,74HC138输出Y0有效,从而使第一组传感器工作,而其他组传感器处于没有工作的状态。这样就可以实现单片机的3个引脚控制5个或者更多的传感器组。
3、
在电脑鼠的寻路过程中有两个比较特殊的过程,就是在小车遇到了死胡同时,就是此时前进方向的数比自己还小,所以无路可走。应该让小车回到上一个岔路口,虽然可以利用堆栈的先入后出的特性来存储寻路过程中经过的岔路口坐标,但是具体地要怎么样使得小车从当前的位置移动到岔路口呢?换言之,我们需要实现将小车从当前的位置移动到一个指定的任意位置,而且还要使得移动过程经历的路径尽可能地短。在后期的最短路径的生成问题其实也是上面的问题的一个特例,只不过把当前的位置设置为了迷宫的起点,而要到达的位置设置成了迷宫的终点而已。下图2-3为普通等高表:
L9110的逻辑关系表如表3所示:
表3 L9110逻辑关系
IA
IB
OA
OB
H
L
H
L
正转
L
H
L
H
反转
L
L
L
L
停止
H
H
L
L
停止
3.3
如图3-3所示,是电脑鼠主程序流程图。遍历探索迷宫,记录信息数据,生成等高表,计算出最短路径,完成最短路径的来回,完成设计目的迷宫电脑鼠走迷宫。
3.3.1 电脑鼠搜索迷宫行走程序设计
左手法则
左上区域
右方1
迷宫电脑鼠的设计报告

2、管脚定义如下:
3、通过L9110驱动芯片IA、IB输入的逻辑值的组合,不同高低电平的输入输出,控制电机正转、反转、停转。L9110的逻辑关系表如下表所示:
L9110逻辑关系
IA
IB
OA
OB
H
L
H
L
正转
L
H
L
H
反转
L
L
L
L
停止
H
H
L
L
停止
3.3
3.3.1
电脑鼠正常行走包括直走、左转弯、右转弯和向后转弯四个功能函数。这四个功能函数中要用到T0、T1定时/计数器;所以函数中首先初始化T0、T1。T0初始化:打开总开关EA=1;开T0中断ET0=1;设定T0模式2,8位自动重装值定时计数器TMOD&=0xf6; TMOD|=0x06;设定T0计数初值,定义中断脉冲数TH0=256-ICP;TL0=256-ICP;//启动T0计数TR0=1;T1初始化也是一样的。
传感器组是由38KHz的红外一体化接收头和红外发射管构成的障碍感测器。为了能够让传感器组正常工作,红外发射管需要一个38KHz的方波来驱动,使红外发射管发射出调制频率与接收头接收频率匹配的红外光。如图所示,是产生38KHz方波的载波发生器电路。
(4)传感器的调试
(主要写每组传感器如何进行调试。)
1、左右两边的传感器检测是否有墙壁。
sbit LED3=P0^2;
sbit LED4=P0^3;
sbit LED5=P0^4;
sbit LED6=P0^5;
sbit LED7=P0^6;
sbit LED8=P0^7;
//红外地址接口定义(74HC138译码器
西南交大大学计算机基础实验报告

大学计算机基础实验报告教学班级:_______ 学号:__________ 姓名:___________ 课程教师:______________ 实验辅导教师:_____________西南交通大学2011年9月实验一微机基本操作与上网冲浪教学班级:_______ 学号:__________ 姓名:___________ 实验日期:___________ 实验地点:_________(机房)指导教师签名:__________ 实验成绩:___________一、实验目的1.掌握计算机系统的启动与关闭;2.掌握常用输入设备、输出设备、存储设备的用法。
3.掌握搜索引擎的使用;4.掌握下载与解压缩的方法;5.掌握软件安装的方法。
二、实验任务1.启动与关闭计算机。
2.利用“键盘盲打练习”软件进行键盘的指法练习。
3.硬盘信息查询。
4.利用搜索引擎搜索成都商报,阅读当日报纸新闻。
5.利用下载工具FlashGet在网上下载“NetAnts”软件压缩包,利用压缩工具winRar解压缩该包,并安装该软件。
三、实验检查内容[ ] 1.能否热启动计算机[ ] 2.能否下载打字软件(辅导老师可协助将软件下载到教师机上,学生通过网上邻居获取)[ ] 3.能否安装打字软件[ ] 4.打字速度/分钟[ ] 5.查看C区总容量[ ] 6.查看磁盘整理程序对C区的分析报告,看是否需要整理[ ] 7.写出当日成都商报的头版头条标题[ ] 8.是否将NetAnts软件安装在D区实验二文件资源的管理与操作教学班级:_______ 学号:__________ 姓名:___________ 实验日期:___________ 实验地点:_________(机房)指导教师签名:__________ 实验成绩:___________一、实验目的1.掌握文件的复制、移动、删除;2.掌握文件的重命名、属性的设置;3.掌握文件的查找;4.掌握文件夹选项操作。
西南交大-计算机网络-课程设计报告组网技术

课程设计一:组网技术1.设计目的a)巩固计算机网络知识b)学会将理论知识运用与实际c)掌握局域网组建技术d)加深对网络概念的理解e)掌握网络的运行原理,结构组成2.设计要求a)给出组网技术的硬件方案i.常用的联网设备有哪些?各应用于什么场合?ii.典型的小、中、大型网络联网:联网方案、所需的设备、网络结构图b)给出组网技术的软件方案i.常用的服务器软件及其配置方法c)给出组网技术的网络接入方案i.了解常用的网络接入方案及接入设计ii.分别设计适合于家庭、网吧、单位的网络接入方案3.设计过程a.组网方案-硬件常用的联网设备:中继器、集线器(HUB)、网桥、交换机、路由器、网关中继器: 工作在物理层上的连接设备,主要功能是通过对数据信号的重新发送或者转发来扩大网络传输的距离。
适用于完全相同的两类网络的互联,用于局域网。
集线器(HUB): 工作在物理层上的连接设备。
主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。
主要用于将服务器与工作站连接到网络上。
网桥:工作在数据链路层上的连接设备,网桥包含了中继器的功能和特性,不仅可以连接多种介质,还能连接不同的物理分支,如以太网和令牌网,能将数据包在更大围传送。
网桥的典型应用时将局域网分段成子网,从而降低数据传输的瓶颈,这样的网桥叫“本地”桥,用于广域网上的网桥叫做“远地”桥。
交换机:工作在数据链路层的连接设备。
能基于目标MAC地址转发信号,而不是以广播方式传输,在交换机中存储并且维护着一计算机网卡地址和交换机端口的对应表,它对接收到的所有帧进行检查,读取帧的源MAC地址字段后,根据所传递的数据包的目的地址,按照对应表中的容进行转发,每一个独立的数据包都可以从源端口送到目的端口,以避免和其他端口发生冲突,对应表中如果没有对应的目的地址,则转发给所有端口。
作为局域网的主要连接设备路由器:工作在网络层,是互联网络的枢纽,可以在多个网络上交换和路由数据包,路由器通过在相对独立的网络换具体协议的信息来实现这个目标。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西南交大电脑鼠课程设计报告西南交通大学本科课程设计(论文)寻线电脑鼠课程设计年级: 2014 级学号:姓名:专业:指导教师:蒋朝根二零一六年六月目录第1章课程设计任务 (1)第2章总体设计 (1)第3章硬件详细设计 (2)3.1硬件设计步骤 (2)3.2 主控模块(单片机) (2)3.3 传感器模块 (4)3.4 电机驱动模块 (5)3.5 测速模块 (6)3.5 电压检测模块及按键指示模块 (7)第4章软件详细设计 (8)4.1 程序设计流程图 (8)4.2 C51单片机的初始化及底层驱动 (8)4.3 车体转弯控制(左手法则) (11)4.4 调整函数 (12)4.5 速度PWM设置 (14)第5章结论与心得体会 (17)第6章附录 (17)6.1 电路原理图 (17)6.2 电路PCB图 (19)西南交通大学本科课程设计(论文)第1章课程设计任务该设计是属于单片机原理与应用课程的课程设计。
设计以两人组队的形式,制作寻线型电脑鼠。
要求能够在8×8的迷宫中搜索路径并计算出最短路径,并能由起点到终点并返回。
其中迷宫由25mm宽的黑线组成。
电脑鼠第一次进入迷宫和返回迷宫时,可以循着黑线走到终点并记录迷宫信息,第二次进入迷宫时,根据第一次所记录的迷宫信息选择最短路径冲刺到终点。
第2章总体设计硬件部分主要由传感器,单片机,电机所组成。
传感器采用红外传感器,由发射管和接收管组成,可以探测迷宫中黑线。
单片机则采用STC15W413AS芯片,用于编写单片机程序。
电机则由单片机产生的PWM以及L9110芯片进行驱动。
软件部分主要由产生占空比函数,电脑鼠在迷宫中搜寻路径法则,记录迷宫信息,测速盘计数组成。
电脑鼠搜寻迷宫时按照左手法则进行搜寻,根据测速盘的计数得到迷宫坐标,用8×8的数组对迷宫信息进行储存。
第一次搜寻时,对死路和走得通的路进行标定,第二次走时,仍然按照左手法则进行,但不走第一次标定的死路。
由此达到在迷宫中走最短路径的目的。
第3章硬件详细设计3.1硬件设计步骤硬件的设计步骤主要如下:图1:电脑鼠硬件部分的设计流程图3.2 主控模块(单片机)包括STC15W413AS芯片以及连接电脑的下载部分。
单片机采用了STC15W4K32S4芯片,其原理图为:图2:电脑鼠硬件部分MCU电路图连接电脑的下载部分原理图为:图3:电脑鼠硬件部分下载电路图管脚图如下:图4:电脑鼠硬件部分MCU管脚图3.3 传感器模块本次传感器共有5组,分别按左,左前,中,右前,右的次序安装在车头,一个传感器组有两个灯,一个普通的LED灯,另外一个是光敏二极管。
此外,还有指示灯,方便调试电脑鼠的程序。
结合运放芯片LM339的运算放大器,将路况信息返回单片机,进行进一步处理。
光敏二极管也叫光电二极管。
光敏二极管与半导体二极管在结构上是类似的,其管芯是一个具有光敏特征的PN结,具有单向导电性,因此工作时需加上反向电压。
无光照时,有很小的饱和反向漏电流,即暗电流,此时光敏二极管截止。
当受到光照时,饱和反向漏电流大大增加,形成光电流,它随入射光强度的变化而变化。
当光线照射PN结时,可以使PN结中产生电子一空穴对,使少数载流子的密度增加。
这些载流子在反向电压下漂移,使反向电流增加。
因此可以利用光照强弱来改变电路中的电流。
常见的有2CU、2DU等系列。
因此,当检测到黑线时,二极管两端跳变为高电平,而检测到跑道旁边的白色区域,变为低电平。
图5:单个传感器电路图图6:发光二极管电路图3.4 电机驱动模块本次使用L9110电机驱动芯片。
因单片机上的PWM输出的电流不足以驱动电机,所以需要用电机驱动芯片对于PWM调速的电机驱动电路,主要有以下性能指标。
1)输出电流和电压范围,它决定着电路能驱动多大功率的电机。
2)效率,高的效率不仅意味着节省电源,也会减少驱动电路的发热。
要提高电路的效率,可以从保证功率器件的开关工作状态和防止共态导通(H桥或推挽电路可能出现的一个问题,即两个功率器件同时导通使电源短路)入手。
3)对控制输入端的影响。
功率电路对其输入端应有良好的信号隔离,防止有高电压大电流进入主控电路,这可以用高的输入阻抗或者光电耦合器实现隔离。
4)对电源的影响。
共态导通可以引起电源电压的瞬间下降造成高频电源污染;大的电流可能导致地线电位浮动。
5)可靠性。
电机驱动电路应该尽可能做到,无论加上何种控制信号,何种无源负载,电路都是安全的。
图7:电机驱动模块电路图3.5 测速模块本次电脑鼠设计使用直流电机,一方面通过对电机的转速加以运算可获得电脑鼠所在方位,记忆当前迷宫情况;一方面在编程时,了解电机转速对电脑鼠行走速度可以进行更好地控制,使其能够在尽量短的时间内遍历迷宫且走到终点。
图8:测速模块电路图3.5 电压检测模块及按键指示模块二者起到一个设计辅助的作用,为功能的调试提供了便利。
图9:电压检测模块电路图图10:按键、指示检测模块电路图至此,电脑鼠的硬件设计基本完成,完整的原理图、PCB图见附录。
第4章软件详细设计4.1 程序设计流程图图11:软件设计流程图4.2 C51单片机的初始化及底层驱动/*--------------------------------------------------------------------------REG51.HHeader file for generic 80C51 and 80C31 microcontroller.Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc. All rights reserved.--------------------------------------------------------------------------*/#ifndef __REG51_H__ #define __REG51_H__/* BYTE Register */ sfr P0 = 0x80;sfr P1 = 0x90;sfr P2 = 0xA0;sfr P3 = 0xB0;sfr PSW = 0xD0;sfr ACC = 0xE0;sfr B = 0xF0;sfr SP = 0x81;sfr DPL = 0x82;sfr DPH = 0x83;sfr PCON = 0x87;sfr TCON = 0x88;sfr TMOD = 0x89;sfr TL0 = 0x8A;sfr TL1 = 0x8B;sfr TH0 = 0x8C;sfr TH1 = 0x8D;sfr IE = 0xA8;sfr IP = 0xB8;sfr SCON = 0x98;sfr SBUF = 0x99;/* BIT Register */ /* PSW */sbit CY = 0xD7;sbit AC = 0xD6;sbit F0 = 0xD5;sbit RS1 = 0xD4;sbit RS0 = 0xD3;sbit P = 0xD0;/* TCON */ sbit TF1 = 0x8F; sbit TR1 = 0x8E; sbit TF0 = 0x8D; sbit TR0 = 0x8C; sbit IE1 = 0x8B; sbit IT1 = 0x8A; sbit IE0 = 0x89; sbit IT0 = 0x88;/* IE */sbit EA = 0xAF; sbit ES = 0xAC; sbit ET1 = 0xAB; sbit EX1 = 0xAA; sbit ET0 = 0xA9; sbit EX0 = 0xA8;/* IP */sbit PS = 0xBC; sbit PT1 = 0xBB; sbit PX1 = 0xBA; sbit PT0 = 0xB9; sbit PX0 = 0xB8;/* P3 */sbit RD = 0xB7; sbit WR = 0xB6; sbit T1 = 0xB5; sbit T0 = 0xB4; sbit INT1 = 0xB3;sbit TXD = 0xB1;sbit RXD = 0xB0;/* SCON */sbit SM0 = 0x9F;sbit SM1 = 0x9E;sbit SM2 = 0x9D;sbit REN = 0x9C;sbit TB8 = 0x9B;sbit RB8 = 0x9A;sbit TI = 0x99;sbit RI = 0x98;#endif4.3 车体转弯控制(左手法则)/************************************************************************* ******function name :void leftMethod (void)*parament :none*return value :none*description :左手法则优先级为:右-> 前-> 左并且存储即将行走的下一个格子的坐标************************************************************************* *****/void LeftMethod4(){if(Left_Detector==0){TurnLeft();}else if(Front_Detector==0){Go();}else if(Right_Detector==1&&Left_Front_Detector==1){TurnRight();}else if(Left_Detector==1&&Front_Detector==1&&Right_Detector==0) {TurnBack();}}4.4 调整函数void adjust2(){ if(Front_Detector==0){if(Left_Front_Detector==0){speed(1,0,0,1);}else if(Right_Front_Detector==0){speed(0,1,1,0);}else{speed(0,1,0,1);}}else{if(Left_Front_Detector==0){speed(1,0,0,1);}else if(Right_Front_Detector==0){speed(0,1,1,0);}}}void Go(){speed(0,1,0,1);}//------------------小车右转函数-------------------// void TurnRight(){// u8 flg=1;speed2(0,1,1,0); //左轮前转,右轮后转// left_count=right_count=0;/* while(flg==1){if(left_count==12|right_count==12){speed(0,0,0,0); //两轮停转left_count=0;right_count=0;flg=0;}}for(flg=0;flg<100;flg++){Delay(6000);}*/}//------------------小车左转函数-------------------// void TurnLeft(){// u8 flg=1;speed2(1,0,0,1); //左轮后转,右轮前转// left_count=right_count=0;}//------------------小车后转函数-------------------//void TurnBack(){u8 flg=1;// left_count=right_count=0;while(Front_Detector==1){speed2(0,1,1,0);} //左轮前转,右轮后转}//------------------小车停止函数-------------------//void Stop(){// u8 flg=1;// left_count=right_count=0;speed(0,0,0,0); //左轮后转,右轮后转}4.5 速度PWM设置//------调整函数----f_pwm=PCA_clk/256-------//void speed(bit a,bit b,bit c,bit d){ I1=a;I2=b;I3=c;I4=d;PCA_PWM0 = 0X00;CCAP0H = CCAP0L =39; //修改此处数值[0~255]可以调节CCP2_0占空比CCAPM0 = 0x42;PCA_PWM1 = 0X00;CCAP1H = CCAP1L =40; //修改此处数值[0~255]可以调节CCP2_1占空比zuoCCAPM1 = 0x42;}void speed2(bit a,bit b,bit c,bit d){ I1=a;I2=b;I3=c;I4=d;PCA_PWM0 = 0X00;CCAP0H = CCAP0L =90; //修改此处数值[0~255]可以调节CCP2_0占空比CCAPM0 = 0x42;PCA_PWM1 = 0X00;CCAP1H = CCAP1L =90; //修改此处数值[0~255]可以调节CCP2_1占空比CCAPM1 = 0x42;}void speed3(bit a,bit b,bit c,bit d){ I1=a;I2=b;I3=c;I4=d;PCA_PWM0 = 0X00;CCAP0H = CCAP0L =255; //修改此处数值[0~255]可以调节CCP2_0占空比CCAPM0 = 0x42;PCA_PWM1 = 0X00;CCAP1H = CCAP1L =255; //修改此处数值[0~255]可以调节CCP2_1占空比CCAPM1 = 0x42;}//-------------------PWM模式使能函数----------------// void PWM_Cmd(bit cmd){if(cmd==ENABLE)CR=1;else if(cmd==DISABLE)CR=0;}至此,完成寻线型电脑鼠软件部分的设计第5章结论与心得体会本次对寻线型电脑鼠的设计,让我从开始的一无所知,到学会了使用AD绘制原理图和生成PCB图,完成了对电脑鼠的基本设计。