西南交大电脑鼠课程设计报告.docx
- 文档编号:345923
- 上传时间:2022-10-09
- 格式:DOCX
- 页数:18
- 大小:399.81KB
西南交大电脑鼠课程设计报告.docx
《西南交大电脑鼠课程设计报告.docx》由会员分享,可在线阅读,更多相关《西南交大电脑鼠课程设计报告.docx(18页珍藏版)》请在冰豆网上搜索。
西南交大电脑鼠课程设计报告
西南交通大学
本科课程设计(论文)
寻线电脑鼠课程设计
年级:
2014级
学号:
姓名:
专业:
指导教师:
蒋朝根
二零一六年六月
第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.2C51单片机的初始化及底层驱动
/*--------------------------------------------------------------------------
REG51.H
Headergeneric80C51and80C31microcontroller.
Copyright(c)1988-2002KeilElektronikGmbHandKeilSoftware,Inc.
Allrightsreserved.
--------------------------------------------------------------------------*/
#ifndef__REG51_H__
#define__REG51_H__
/*BYTERegister*/
sfrP0=0x80;
sfrP1=0x90;
sfrP2=0xA0;
sfrP3=0xB0;
sfrPSW=0xD0;
sfrACC=0xE0;
sfrB=0xF0;
sfrSP=0x81;
sfrDPL=0x82;
sfrDPH=0x83;
sfrPCON=0x87;
sfrTCON=0x88;
sfrTMOD=0x89;
sfrTL0=0x8A;
sfrTL1=0x8B;
sfrTH0=0x8C;
sfrTH1=0x8D;
sfrIE=0xA8;
sfrIP=0xB8;
sfrSCON=0x98;
sfrSBUF=0x99;
/*BITRegister*/
/*PSW*/
sbitCY=0xD7;
sbitAC=0xD6;
sbitF0=0xD5;
sbitRS1=0xD4;
sbitRS0=0xD3;
sbitOV=0xD2;
sbitP=0xD0;
/*TCON*/
sbitTF1=0x8F;
sbitTR1=0x8E;
sbitTF0=0x8D;
sbitTR0=0x8C;
sbitIE1=0x8B;
sbitIT1=0x8A;
sbitIE0=0x89;
sbitIT0=0x88;
/*IE*/
sbitEA=0xAF;
sbitES=0xAC;
sbitET1=0xAB;
sbitEX1=0xAA;
sbitET0=0xA9;
sbitEX0=0xA8;
/*IP*/
sbitPS=0xBC;
sbitPT1=0xBB;
sbitPX1=0xBA;
sbitPT0=0xB9;
sbitPX0=0xB8;
/*P3*/
sbitRD=0xB7;
sbitWR=0xB6;
sbitT1=0xB5;
sbitT0=0xB4;
sbitINT1=0xB3;
sbitINT0=0xB2;
sbitTXD=0xB1;
sbitRXD=0xB0;
/*SCON*/
sbitSM0=0x9F;
sbitSM1=0x9E;
sbitSM2=0x9D;
sbitREN=0x9C;
sbitTB8=0x9B;
sbitRB8=0x9A;
sbitTI=0x99;
sbitRI=0x98;
#endif
4.3车体转弯控制(左手法则)
/******************************************************************************
*functionname:
voidleftMethod(void)
*parament:
none
*returnvalue:
none
*description:
左手法则优先级为:
右->前->左并且存储即将行走的下一个格子的坐标
******************************************************************************/
voidLeftMethod4()
{
if(Left_Detector==0)
{
TurnLeft();
}
elseif(Front_Detector==0)
{
Go();
}
elseif(Right_Detector==1&&Left_Front_Detector==1)
{TurnRight();}
elseif(Left_Detector==1&&Front_Detector==1&&Right_Detector==0)
{TurnBack();}
}
4.4调整函数
voidadjust2()
{if(Front_Detector==0)
{
if(Left_Front_Detector==0)
{
speed(1,0,0,1);
}
elseif(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);
}
elseif(Right_Front_Detector==0)
{
speed(0,1,1,0);
}
}
}
voidGo()
{
speed(0,1,0,1);
}
//------------------小车右转函数-------------------//
voidTurnRight()
{
//u8flg=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);
}*/
}
//------------------小车左转函数-------------------//
voidTurnLeft()
{
//u8flg=1;
speed2(1,0,0,1);//左轮后转,右轮前
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西南 交大 电脑 课程设计 报告