单片机实训报告微机原理与接口技术专用周报告.doc

上传人:文库蛋蛋多 文档编号:2881956 上传时间:2023-03-01 格式:DOC 页数:21 大小:311.50KB
返回 下载 相关 举报
单片机实训报告微机原理与接口技术专用周报告.doc_第1页
第1页 / 共21页
单片机实训报告微机原理与接口技术专用周报告.doc_第2页
第2页 / 共21页
单片机实训报告微机原理与接口技术专用周报告.doc_第3页
第3页 / 共21页
单片机实训报告微机原理与接口技术专用周报告.doc_第4页
第4页 / 共21页
单片机实训报告微机原理与接口技术专用周报告.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《单片机实训报告微机原理与接口技术专用周报告.doc》由会员分享,可在线阅读,更多相关《单片机实训报告微机原理与接口技术专用周报告.doc(21页珍藏版)》请在三一办公上搜索。

1、微机原理与接口技术专用周报告所属系部: 电气信息工程系 班 级: 10级通信技术 姓 名: 指导老师: 摘 要这次的小车走迷宫实验是通过一个8位单片机P89C51RD2来指挥小车穿越迷宫,主要原理是由声控使小车开始驱动,然后通过四个传感器来判断障碍物的方位,并确定小车的转向避开障碍物,最后小车成功的走出迷宫。下面就来简单的介绍下单片机P89V51RD2:P89V51RD2单片机是飞利浦公司生产的MSC-51系列单片机中具有代表性的一种,P89V51RD2单片机中集成了64KB的片内 Flash程序存储器和1KB的数据存储器。程序存储器具有ISP(系统编程)和IAP(应用编程)功能,使用ISP软

2、件可以非常方便的实现程序的写入和读出。ISP允许在软件控制下对成品中的器件进行重复编程。通过软件或ISP选择支持12时钟或6时钟。P89V51RD2单片机是5V的工作电压,操作频率为040MHz。关键词:单片机 ;迷宫 ;红外线检测 ;穿越迷宫 ;躲避障碍 ;目录第一章课题介绍41.1实验目的41.2专用周内容41.3实验方案51.3.1系统原理图51.3.2红外线检测值5第二章硬件电路及其功能62.1单片机主板电路62.2红外线检测模块82.3驱动电路及电源电路92.3.1驱动电路分析92.3.2电源电路分析9第三章程序设计113.1流程图113.2程序清单123.3总体功能说明16第四章总

3、结174.1熊伟174.2陈喂婷19参考文献21第一章课题介绍1.1实验目的本专用周的开设以锻炼和提高我们的单片机应用能力为目的,在实际的课题设计中以锻炼我们的以下方面的能力:单片机硬件电路的基本设计方法;单片机简单接口电路的设计(A/D接口、按键显示器接口,功率接口和传感器接口等)简单应用程序的编写和调试;简单控制方法的设计和相应程序的设计方法;培养我们的专业创新能力;培养我们的专业精神;1.2专用周内容此次专用周,我们小组研究的是小车走迷宫的课题,迷宫图纸如下:1.3实验方案 我们设计的“走迷宫的小车”这一套系统主要是让小车自主的从迷宫的入口走到出口。在这一过程中,小车通过左、左前、右前、

4、右四个红外模块实现对周围障碍物的实时测距来实现避障功能;在小车的行走过程中,也会实时地把小车的移动距离、速度等信息通过电脑软件设计后下载到P89C51RD2单片机中,单片机根据红外线检测模块反馈回来的信息判断小车应该怎样行走。1.3.1系统原理图P89C51RD2单片机小车运动驱动电机红外检测模块数码管显示1.3.2红外线检测值左方左前方右前方右方小车状态00000001左转00100011左调010001010110丁字路口判断0111左转10001001前进101010111100右调11011110右转1111转圈第二章硬件电路及其功能本次实验主要应用到了P89C51RD2单片机、红外检

5、测模块、显示模块、声控电路、电源电路和驱动电路。2.1单片机主板电路本次实验主要用到了P89C51RD2单片机,该芯片是飞利浦公司生产的MSC-51系列单片机中具有代表性的一种,P89V51RD2单片机中集成了64KB的片内 Flash程序存储器和1KB的数据存储器。程序存储器具有ISP(系统编程)和IAP(应用编程)功能,使用ISP软件可以非常方便的实现程序的写入和读出。ISP允许在软件控制下对成品中的器件进行重复编程。通过软件或ISP选择支持12时钟或6时钟。P89V51RD2单片机是5V的工作电压,操作频率为040MHz。P89C51RD2单片机的特性:80C51核心处理单元;5V的工作

6、电压,操作频率为040MHz;64kB的片内Flash程序存储器,具有ISP(在系统编程)和IAP(在应用中编程)功能;能通过软件或ISP选择支持12时钟(默认)或6时钟模式;SPI(串行外围接口)和增强型UART;PCA(可编程计数器阵列),具有PWM和捕获/比较功能;有4个8位I/O口分别是P0、P1、P2、P3,其中P0是数据传输口;内置3个16位定时器/计数器,分别为T0、T1、T2;可编程看门狗定时器(WDT);含有8个中断源,4个中断优先级2个DPTR寄存器;低EMI方式(ALE禁能);兼容TTL和CMOS逻辑电平;掉电检测;低功耗模式* 掉电模式,外部中断唤醒;* 空闲模式;2.

7、2红外线检测模块本次实验我们采用了四个红外线传感器来检测障碍物的方位,每个传感器都有一个发射端一个接收端,接收端的频率应该跟单片机主板的频率是一样的。我们根据传感器发射和接收到的数据比对判断该方位是否有障碍物。例如:我们使传感器发射十次,然后观察接收端的值判断是否有障碍物,如果接收次数低于六次就判定该方位没有障碍物,反之接收次数大于六次就判定该方位有障碍物。2.3驱动电路及电源电路2.3.1驱动电路分析左右两边的驱动电路完全是一样的,驱动电路部分主要由晶体三极管、电阻、电容和与门、非门等器件组成,构成了一个H桥电路。a、单片机端口的分配 左侧电机前进PWM控制信号: P1.7(CEX4) 左侧

8、电机后退PWM控制信号: P1.6(CEX3) 右侧电机前进PWM控制信号: P1.5(CEX2) 右侧电机后退PWM控制信号: P1.4(CEX1)b、软件思路当左侧电机反转,同时右侧电机正转,则小车向左转。当右侧电机反转,同时左侧电机正转,则小车向右转。当左右电机同时正转,则小车前进。当左右电机同时反转,则小车后退。当一个电机正转,同时另一个不转的时候,小车将在原地转圈。c、硬件电路分析当左侧电机需要正转时,L-端保持为“1”,电机的转动速度由L+端的占空比决定;当左侧电机需要反转时,L+端保持为“1”,电机的转动速度由L-端的占空比决定;当右侧电机需要正转时,R-端保持为“1”,电机的转

9、动速度由R+端的占空比决定;当右侧电机需要反转时,R+端保持为“1”,电机的转动速度由R-端的占空比决定。2.3.2电源电路分析本次实验的电路主要是由LT1117-5构成的直流稳压电路组成,此电路能连接电源和电池,在这里应用于此实验能使本实验的电源稳定,有效的提供电压。该电源为单片机主板和电机提供电压,促使小车中的各个模块能正常工作。第三章程序设计3.1流程图检测障碍程序:开始声音或按键启动PWM初始化调用左侧检测调用左前检测调用右前检测调用右侧检测调用结论入口设置发射次数开发射延时600us检测收到了没收到寄存器+1关发射发射次数-1=0?接收次数大于等于6?置1清0出口YYYYYYYYYN

10、NNNNNNNN主程序:A=09H?A=0FH?转圈前进A=0EH?A=07H?左转右转结论判断程序:入口A=06H?A=0CH?A=03H?屏蔽高4位的值20H的内容赋给A右调左调丁字路口R7+1R7值判断调相应路口转向出口3.2程序清单障碍物检测程序:ZJ1:MOVR0,#00H;检测左障碍MOVR1,#10LK:SETBP3.3;开发射LCALLDEL;600us延时JBP3.7,LG;判断接收到了没INCR0LG:CLRP3.3;关发射LCALLDEL;600us延时DJNZR1,LK;10次发送完了吗?CJNER0,#6,L1 ;判断接收次数是否大于6L1:JCWU;SETB00HR

11、ETWU:CLR00H;RETZJ2:MOVR0,#00H;检测左前障碍MOVR2,#10LK2:SETBP3.3 ;开发射LCALLDELJBP2.2,LG2INCR0LG2:CLRP3.3;关发射LCALLDELDJNZR2,LK2CJNER0,#6,L2;判断接收次数是否大于6L2:JCWU2SETB01HRETWU2:CLR01HRETRJ1:MOVR3,#00H;检测右前障碍MOVR4,#10RK:SETBP3.3;开发射LCALLDELJBP2.3,RGINCR3RG:CLRP3.3;关发射LCALLDELDJNZR4,RKCJNER3,#6,L3;判断接收次数是否大于6L3:JC

12、WU1SETB02HRETWU1:CLR02HRETRJ2:MOVR3,#00H;检测右障碍MOVR5,#10RK2:SETBP3.4 ;开发射LCALLDELJBP3.5,RG2INCR3RG2:CLRP3.4;关发射LCALLDELDJNZR5,RK2CJNER3,#6,L4;判断接收次数是否大于6L4:JCWU3SETB03HRETWU3:CLR03HRET小车结论判断程序:JL:MOVA,20H;结论判断ANLA,#0FHBJ:CJNEA,#03H,BJ1;右调LCALLYTRETBJ1:CJNEA,#00H,BJ2;左调LCALLZTRETBJ2:CJNEA,#06H,BJ3;丁字口

13、CLRP3.3;关发射CLRP3.4INCR7CJNER7,#00H,D1LCALLLLCALLDELCALLDELCALLDELCALLDELCALLDED1:CJNER7,#01H,D2LCALLRLCALLDELCALLDELCALLDELCALLDELCALLDED2:CJNER7,#02H,D3LCALLRLCALLDELCALLDELCALLDELCALLDELCALLDED3:CJNER7,#03H,D4LCALLLLCALLDELCALLDELCALLDELCALLDELCALLDEMOVR7,#00HD4:RETBJ3:CJNEA,#07H,BJ4;右转LCALLRRETBJ

14、4:CJNEA,#0EH,BJ5;左转LCALLLRETBJ5:CJNEA,#0FH,BJ6;转圈LCALLZQRETBJ6:CJNEA,#09H,BJ7;前进LCALLQJRETBJ7:CJNEA,#08H,BJ8LCALLLRETBJ8:LCALLQJ;调用前进程序RET小车驱动程序:QJ:LCALLSTOP;前进MOVCCAPM1,#00HMOVCCAPM3,#00HMOVCCAPM2,#42HMOVCCAP2H,#88MOVCCAPM4,#42HMOVCCAP4H,#80MOVCCON,#40HRETZT:LCALLSTOP;左调MOVCCAPM1,#00HMOVCCAPM4,#00H

15、MOVCCAPM2,#42HMOVCCAP2H,#40MOVCCAPM3,#42HMOVCCAP3H,#20MOVCCON,#40HRETYT:LCALLSTOP;右调MOVCCAPM1,#00HMOVCCAPM3,#00HMOVCCAPM1,#42HMOVCCAP1H,#20MOVCCAPM4,#42HMOVCCAP4H,#40MOVCCON,#40HRETL:LCALLSTOP;左转MOVCCAPM1,#00HMOVCCAPM4,#00HMOVCCAPM2,#42HMOVCCAP2H,#90MOVCCAPM3,#42HMOVCCAP3H,#40MOVCCON,#40HRETR:LCALLS

16、TOP;右转MOVCCAPM2,#00HMOVCCAPM3,#00HMOVCCAPM1,#42HMOVCCAP1H,#40MOVCCAPM4,#42HMOVCCAP4H,#80MOVCCON,#40HRETZQ:LCALLSTOP;转圈MOVCCAPM1,#00HMOVCCAPM4,#00HMOVCCAPM2,#42HMOVCCAP2H,#60MOVCCAPM3,#42HMOVCCAP3H,#60MOVCCON,#40HRETSTOP:SETBP1.4;停车SETBP1.5SETBP1.6SETBP1.7MOVCCON,#00HRET时钟显示程序:LL:CLRP1.2; 时钟显示SETBP1.

17、3SETBP1.0MOVDPTR,#TAB;查表MOVA,50HMOVCA,A+DPTRMOVP0,ALCALLDELlCLRP1.3SETBP1.2SETBP1.0MOVDPTR,#TABMOVA,51HMOVCA,A+DPTRMOVP0,ALCALLDELlCLRP1.0SETBP1.2SETBP1.3MOVDPTR,#TABMOVA,52HMOVCA,A+DPTRMOVP0,ALCALLDELlRETDEL:MOV70H,#3DEL1:MOV71H,#100DEL2:DJNZ71H,DEL2DJNZ70H,DEL1RETDELl:MOV72H,#10DELl1:MOV73H,#100DE

18、Ll2:DJNZ73H,DELl2DJNZ72H,DELl1RETDE:MOV82H,#250DE1:MOV83H,#250DE2:DJNZ83H,DE2DJNZ82H,DE1RETTAB:DB 03H,9FH,25H,0DH,99HDB 49H,41H,1FH,01H,09HEND3.3总体功能说明 小车的主要功能就是通过四个传感器来检测周围障碍物的情况来确定小车的转向,从而成功的走出迷宫的功能。 要想成功的走出迷宫并不是一件容易的事,特别是在硬件调试过程中。当编写完程序并下载好后便进行小车的硬件调试,首先通过声控来使小车启动,刚启动时让小车直走,就小车行走来说,刚开始调的时候,小车总是偏向

19、左边行走,为了能使小车走直线,我们在PWM调速模块中不断改变它的占空比,直到小车基本能走直线为止。车上装有四个传感器。当左边和右边同时有障碍物时,小车直走。进入第一个路口时,前面和左边有障碍物,按照原理,小车的四个传感所检测的结果是左边和右边有障碍物,小车应该向左转。可是由于外界干扰和红外的检测距离的调试不当,使检测结果出现了误差,让小车直接撞在了前面的障碍物上,一开始我们还并没找到问题的所在,还以为是车速的问题,于是便重新调节了速度再次试车,可相同的问题出现了,才知道原来是传感器的灵敏度没调节好,红外的调节是一件相当困难的事,首先是太阳光对红外检测的干扰很大,为此,只好把所有的窗帘关上尽量的

20、减小太阳光的干扰。再有就是调节传感器的红外线检测距离,检测距离不能太长也不能太短,为了尽量让检测结果准确些,我们把小车放在每一个路口仔细的调节,有时在这个路口调节好了的,可是在另一个路口又出现了问题,因为不能兼顾两个路口,这样就非常麻烦,最后经过我们很久的调节,终于可以让每个路口都能得到准确地检测,而让小车做出正确的走向。出了在每个路口的调节外,还有个难题就是当遇见丁字路口时小车的转向,因为整个迷宫中一共有四个丁字路口,而每个丁字路口的转向要根据小车所在迷宫的位置而改变,所以这就不能像前面一样直接判断检测结果而让小车做出相应的转向。由每次出现这种情况的转向不一样,刚开始真的是伤透了脑筋,幸好之

21、前老师给的提示说我们可以通过判断遇见丁字路口的次数来控制小车的转向,经过试验,这方法的确可以,但是,有时由于红外线的检测问题偶尔会把其他路口误判成丁字路口,这样就完全改变了计算丁字路口的次数而当真正遇见丁字路口是却做出了错误的转向。这就需要我们把每个传感器都调节好才能顺利的走出迷宫。另外,要想让小车走出迷宫,最基本的是小车有足够的电量来行走,可是小车却经常是没有电,有时刚下好程序准备试车小车却突然没电了,这又要重新下载程序,有时又是走到一半又没电了,为此,我们不怕麻烦的用插板和充电器 一直带着小车,小车走到哪儿就跟到哪儿。终于在我们不断地努力下,小车成功的走出了迷宫。我们的小车与其他小车相比我

22、们的小车更具优越性:我们的小车用了四个红外传感器,左边和右边各有一个但是与其他小车不同的是我们小车的左右两边传感器是安装在小车的车身的,而不同于其他小车的是我们的小车在左前方和右前方也各有一个红外传感器,这样就可以减少前方传感器检测错误的误差,提高了小车在障碍物检测中的精度,使小车能够尽可能的做出正确的判断而顺利的走出迷宫。第四章总结4.1熊伟两周的单片机实训周很快就结束了,在这两周中我学到了不少东西,除了学习到书本中的知识,学会了自主寻找问题和解决问题,加强了动手的能力,还学会了团结互助。更深刻的认识团结力量的强大。实训前两天老师要求我们画出我们本次实验所用到的所有电路原理图,我们想这不是没

23、事找事吗,单片机小车的图纸我们都是有的,干嘛要费那么多时间去画图啊?可是接下来的两天我就明白了老师的用意了,接下来的两天就是我们设计程序的时间,此时我们需要很明确的知道我们所需要用到的硬件,不仅仅是知道这个硬件装在小车的什么地方,更重要的是需要知道它们的功能,我们需要用到它的什么功能。我们还需要有意识的检测该硬件是不是好的,我们能怎么用它等。接着便正式进入我们的实验,因为小车是早就装配好了的,所以我们就只需认识小车的几个功能模块,并检测他们的好坏等。首先,我很快的找到了我的队友,我们一起商量在小车迷宫避障、巡线、光导、温度测量四个课题中选择了小车迷宫避障这个课题,并确定了用4个红外传感器来检测

24、障碍物的方位,确定小车的行驶路线。在这个看似简单的实验中,我们遇到了很多很多没想到的问题,例如小车在弯道中打转转不按行车路径行走,小车在路口不只向哪个方向行走,小车走入死胡同等等为了节省程序下载到小车进入跑道中间的电,也为了让小车能稳定运行,我们采用声音启动或者按键启动的方法。其次,在迷宫小车硬件调试过程中,我们确定了以红外模块检测障碍物的思路。1、在红外方面,最大的问题就是太阳光对红外检测的干扰很大和红外的检测距离的调试。所以我们将窗帘关上,有效的避免太阳光的干扰,为调试红外的检测距离,我们编写了障碍物方位检测的程序,并加上显示,将小车放入跑道的没个转弯处对传感器的灵敏度进行调整,检测距离不

25、能太长也不能太短,必须调到适当的距离,为此我们调整了无数次才确定了传感器的检测距离。2、就小车行走来说,刚开始调的时候,小车总是偏向左边行走,为了能使小车走直线,我们在PWM调速模块中不断改变它的占空比,直到小车基本能走直线为止。虽然我们将小车调节到能基本走直线,但是我们还需要调解小车转车的速度,我们在小车穿越迷宫的时候,在一个本该向左转的路口,小车并没有向左转,而是直接向前行驶进入死胡同,然后转个圈向起点方向行驶,为此我们伤透了脑筋,不断的寻找问题的所在,不断的探寻调整小车轮子的转速和传感器的灵敏度以及修改程序,一点一点的像目的地前进。最后就是调试小车的运动了,我们反复的测试小车运动,期望它

26、能像我们预想的一样在迷宫中按我们预想的路线行走,可事实总是与我们想象的相差太远。刚开始小车还能在迷宫中行走一段路线,但是等我们回去修改了再试时,因为前方的传感器灵敏度太强了,所以小车在进第一个路口的时候还没到转弯处便开始转弯,最后要么是转出口要么就在跑道中转圈,本次实验试车过程中有很多时候都是因为传感器的灵敏度调节的问题而使小车不能顺利走出迷宫,所以调节传感器灵敏度是一件需要相当大的耐心才能完成的事情,很多次都是只差一点点就能成功了,但是结果还是给我说不行,你还需要努力。经过我们不断地努力终于成功的将小车调到适当点完成了试验。 在本次实训中帮助我复习了本期单片机的大部分知识,也让我明白了书本上

27、的知识不是万能的,我们还需加强我们的动手能力才能适应社会。因此我们需要努力的学习书本知识,并将书本知识运用到我们的生活中去,无聊的时候弄一些小型的坏掉的电器看看,利用学过的知识寻找问题的所在,并尝试着去解决它。最后感谢学校帮我们开展的此次实训课,除了我学到新的知识以外,还让我学会了团结的重要性。4.2陈喂婷实训总结 进入大二以来,课程突然变得很沉重,四科专业课都很重要,单片机也不列外,因此在平时的学习当中对单片机的知识掌握的不是很牢固,所以我很珍惜这次实训的机会。这次实训让我们对以前很多不懂得知识有了更多的了解,让我知道了以前有哪些地方的不足,知道了自己还有哪些知识没有搞懂,这次实训可以说是对

28、单机的全面复习。 这次实训的时间是两周,一共有四个主题,小车走迷宫、小车巡线、光导和温控实验。实训一开始我们便各自选择了自己喜欢的项目,我们做的是小车走迷宫实验,这个实验所需要的知识需要我们运用以前做过实验的知识,我们要懂得运用这些知识,把它们合理的结合起来才能成功的完成这次的实训。 这个实验一开始看起来很困难,我们要完全自己编写程序来控制小车的运行,让小车避开障碍来走出迷宫。其中比较困难的是当小车遇见丁字路口是的转向,因为在整个迷宫中不止一个丁字路口,而每个路口的转向不一样,刚开始不知道要怎样所以解决这个问题,还好实训一开始老师给我们讲解了那个问题,让我们心中有了解决这个问题的把握。 首先我

29、们先确定要用传感器的个数,几经讨论,我们决定用四个传感器,分别是左方、左前方、右前方和右方。每个传感器开十次发射,再通过判断接受的次数来判断传感器的前方是否有障碍物,把四个传感器的结果送到同一个单元来确定小车所处状态的情况,再来控制小车的运行情况。当遇见丁字路口的时候通过判断它遇见的次数来确定转得方向,最后再通过声控来启动小车。通过不断地努力终于把程序编写完成了,接下来就开始试车,原来这才是的难点,设计程序只是整个实训很小的一部分,更重要的是要能够把小车调试好,能够顺利的走出迷宫,这才体会到了什么叫把学到的知识运用到实际当中去。在硬件调试中,首先遇到的问题就是小车本身的问题,由于小车电量问题,

30、很多时候下好程序准备试车就没电了。后来在车运行的过程中又遇到了很多问题,在小车进入第一个路口时,由于传感器的灵敏度问题,使检测结果出现误差而不能顺利的通过障碍来走出迷宫,所以我们要慢慢地调节每个传感器的灵敏度。这就非常考验我们的耐心了,经过我们不断的努力调试,小车终于成功的走出了迷宫。 这次实训让我明白了合作的重要性,如果一个人想问题总会遗漏一些知识点,需要两个人细心讨论研究才能解决问题。还有就是做事情一点要有耐心,不能心急,出了问题要仔细想想是什么地方不对。这次试验在试车过程中,很多时候都是因为传感器的灵敏度调节的问题而不能使小车走出迷宫,而调节灵敏度是一件很需要耐心来做的事,很多次都想放弃,不过最后还是通过不断地努力终于成功的完成了试验。 最后,非常感谢学校安排的这次实训,因为它让我对这学期的单片机课程全面的复习了一遍,也让我明白了光学习书上的知识是没有用的,我们应该懂得如何运用自己的知识,把它投入到实际当中去,这才是我们学习的目的。参考文献1、樊明龙 任丽静单片机原理与应用 化学工业出版社2、谭孝辉电路设计与仿真 电子科技大学出版社3、四川工程职业技术学院单片机课程组微机原理与接口技术实验指导书 4、四川工程职业技术学院通信教研室微机原理与接口技术实训专用周指导书

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号