《基于单片机控制的红外测速装置设计报告.doc》由会员分享,可在线阅读,更多相关《基于单片机控制的红外测速装置设计报告.doc(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于单片机控制的红外测速装置设计报告 姓名学号学院班级组长李庆鹏11221097机电学院机械1104组员郭鑫鹏11221065机电学院机械1103 指导教师:邓湘联系方式:xdeng 完成日期: 2013.7.10内容摘要:90C51单片机 LED动态显示 红外传感 测速(计时)通过利用分布在车辆运行线路上的两个红外传感装置A和B,使得其在车辆通过时因为被车体遮挡而产生低电位,进而控制单片机进行开始(停止)计时,达到计时效果;同时,利用LED动态显示方法将得到的时间显示出来。利用得到的时间T和预先设定的检测口A、B距离S(S被认为是足够小的一段距离),则可以近似得出列车通过A、B时的瞬时速率V
2、, V=S/T。若利用通信设备将此速率传输到调度中心,可以建立一个独立于列车以外的运行监测系统,这样可以防止因列车通信系统意外故障而产生的运行监测失效,为列车安全运行提供了另一把安全锁。目录1.背景和意义11.1设计背景及意义11.2设计内容11.3设计要求12.仿真设计32.1设计思路32.2硬件设计32.3软件设计32.4Proteus软件仿真结果33.实物设计33.1工作原理33.2硬件设计33.3软件设计34.实物电路调试35.参考文献36.结题感想37. 附录(源程序).7.1实物烧录程序.7.2实物烧录程序.1.背景和意义 1.1设计背景及意义 测速系统是生活中应用非常广泛的一个系
3、统,无论在机械工程中还是交通运输中都离不开对速度的测量。在铁路运输系统中,对车辆的调度基于对车辆运行速度和位置的监测。我组同学想设计出一种独立于车站信息传递途径之外一种新的监控系统,其作用是防止因列车通信系统意外故障而产生的运行监测失效。而在这个系统中,最基本的就是对列车在线路上的某一点进行速度测量。对此,我们制定了本次研究性学习的计划方案。初步方案如下图所示:调度中心测得时间B检测口A检测口本次设计基于单片机控制系统,利用了红外传感装置和LED动态显示技术,锻炼了我们自主研究完成项目的能力。1.2设计内容红外传感器为单片机P1.0和P1.1提供外部脉冲信号,当有物体通过传感器中间对其光路进行
4、遮挡时,P1.0和P1.1引脚上的信号由高电位变为低点位,利用相应程序,使单片机开始或停止计时,最后,利用LED数码管将测得的时间显示出来。注意此处我们没有直接将速率显示出来,原因主要有三点,其一,对于安装距离不同的情况,速率显示需要进行不同程序设计,这样做使得编程简单化;其二,列车通过时间是最基本的测量量,对于时间的处理无需在处理数据信息复杂的单片机中进行,而最好是传输到信息终端(调度中心)统一进行处理,这样做使得信息处理规模化、统一化;其三,对于列车的检测,有时我们更希望得到其通过一段较长距离的时间,用上述方法求出的速度对于这用情况无利用价值。1.3设计要求 1) 当一个物体通过A口时,开
5、始计时,其最大计时时间为99.99s,最小计时时间为0.01s;2) 当该物体继续通过B口时,停止计时,并将时间通过LED数码管动态显示;3) 当再有物体通过A口时,无需任何操作即可重复1)过程。2.仿真设计2.1 设计思路2.1.1设计思路框图 2.1.2设计思路测量系统硬件框图如图1所示。检测P1.0低电平开始计时,检测P1.1低电平停止计时。输出结果为十六进制设计电路上参考了所学教材上P195页的知识内容,设计了利用89C51通过8155及74LS138扩展4只共阴极LED数码管的接口电路,并结合了所查的资料进行了光敏二极管的理论研究(开关中以开关替代)。图中8155的B扣和所有LED的
6、ah引线相连,故B口为字形扣;各LED的位选线和8155的C口相连,故C口为字位口。8155的端口地址如下:2100H _命令/状态口,2101H_A口,2102H_B口,2103H_ C口。2.2硬件件设计2.2.1所需元器件器件型号及数量元器件型号数量AT89C5118155H174LS13817407174041按键25V电源7SEG-MPXA-CC1排阻RESPACK-812.2.2电路连接:2.3软件设计利用Keil uVision4软件编写程序并编译,再将编写好的程序导入Proteus7.8软件中进行仿真。参考单片机原理与接口技术P195的动态显示程序,部分程序如下ORG0000H
7、AJMPMAINAMAINA:MOVSP,#60HMOVR4,#00HMOVR5,#00HJUDGE0:ORLP1,#01H;将P1.0置为高电平,准备检测MOVC,P1.0;将P1.0信号传给CJCJUDGE0;若C为低电平,继续;否则重新检测IN:ACALLDLINCR4CJNER4,#0FFH,JUDGE1 ;大于255进位INCR5 ;选下一位MOVR4,#00HJUDGE1:ORLP1,#02H ;P1.1置一MOVC,P1.1 ;检测P1.1,JCIN ;若为高电平,跳到INRET2.4Proteus软件仿真结果3.实物设计3.1工作原理光电开关在正常工作情况下,发射端与接收端信号
8、连通,输出高电平,当有物体挡住时输出低电平。把输出端接到P1.0,1.1分别控制计时开始与停止。可以用这种方法得到物体在两个开关之间移动的时间。由于硬件部分采用单片机开发板的LED显示部分,因此软件也需要改变。我们采用的是P1.0 P1.1外接红外开关的输出端,当红外开关1被挡住时就会给P1.0口出输入低电平,开始计时,开关2被挡住,P1.1输入低电平停止计时。计时部分采用动态显示,每1ms最低位加一,满十进一,同时译码器选择下一位LED作为输出,由于1ms太短人眼捕捉不到因此人眼看到的是连续的数字。当有P1.1低电平信号时计时停止加一,停在某一个数字,循环动态显示。3.2硬件设计3.2.1元
9、器件清单 单片机仿真仪1红外开关GK1052LED显示器874573译码器1面包板1排阻1K8排阻1K8杜邦线数根3.2.2单片机电路(实物电路)3.3软件设计其中一位字型码的输出程序:MOV A , FirstANL A,#0FH ;屏蔽累加器的高4位MOV DPTR,#TAB;将数据表格的首地址 0100H存入16位的数据地址指针DPTR中MOVC A,A+DPTR;查表MOV 60H,A其中一位10ms加一程序,满十进一 MOV A , First ADD A , #01HMOV First , ACJNE A , #0AH , DONE ;若A等于10 向下执行 否则跳转MOV Fir
10、st , #00H选择译码器并输出的程序code138: CLR ALAB1: MOV R5 , A ADD A , #60H MOV R0 , A MOV P0 , R0 ;60H地址开始的数据送到P0口 MOV A , R5 ;将累加器的数据暂存在R5中 准备移位 MOV DPTR ,#TAB1 ;将数据表格的首地址 0120H存入16位的数据地址指针DPTR中 MOVC A , A+DPTR ;查表 (译码器的三个控制脚 P2.3 P2.4 P2.5) MOV P2 , A ;将其移位结果送到P2口 MOV A , R5 CALL DEL1mS ;调用延时子程序 INC A DJNZ C
11、2 ,LAB1 ;如果为0 向下执行 否则跳转到 CODE138 RET检测P1.0开始计时程序PAN1: ORL P1,#03H ;P1.0 ,P1.1同时置一 MOV C,P1.0 ;读取P1.0 JC PAN1 ;若为高电平原地循环,不开始计时检测P1.1停止计时程序 MOV C,P1.1 JNC LAB2 ;若P1.1为低电平,循环执行该点显示子程序4.电路调试如图右边为开关1控制计时开始,左边为开关2控制计时停止搭建好硬件物体进入开关1,开始计时,从左往右移动物体物体进入开关2,停止计时,可以看到此次移动时间为4.72s5.参考文献1李广弟.单片机基础M.北京:北京航空航天大学出版社
12、,20042蒋万君.再论循环时序电路的接口技术J.机电一体化,2005第5期3赵嘉尉,张家栋,霍凯 肖燕彩.单片机原理与接口技术M.北京:清华大学出版社,20104胡汉才.单片机原理及接口技术(第二版)M.北京:清华大学出版社,20046. 结题感想 我们先用了一天时间把教室人数系统仿真成功,然后就开始更改程序,用动态显示计时,但是发现动态显示需要译码器,以及不需要8155等诸多问题,我们需要改的远远不止是把加一减一程序改成计时那么简单,于是我们自己买了单片机开发板重新设计。自主设计的道路真是远比设计已经有模板的情况困难得多,我们需要自己想办法如何控制计时开始计时停止,如何用动态显示控制显示,
13、硬件的问题浪费了一些时间,自己一开始买硬件总是买不对,不会用,最后跑了中关村两次才买到了合适的硬件。软件上的问题就更严重了,虽然我们以单片机开发板提供的源程序作为参考,但是毕竟是设计一个功能全新的系统,在没有任何类似参考文献的基础下我们走了不少弯路,有些软件上小小的问题找不到就迟迟不能解决问题,每晚上我们俩人都会调试程序到很晚,终于在最后日期前两天攻克了开关2停止计时时间的问题。我们曾想过选择已有题目,照着模板做,但是我们又知道那样学不了什么东西,所以我们坚持把自己想的自主题目做下去,最后终于成功了,感到受益匪浅。7. 附录(源程序). 仿真程序ORG0000HAJMPMAINAMAINA:M
14、OVSP,#60HMOVR4,#00HMOVR5,#00HJUDGE0:ORLP1,#01HMOVC,P1.0JCJUDGE0ACALLINMOV5CH,#00HMOV5BH,R4MOV5AH,R5AJMPMAINBORG0100HIN:ACALLDLINCR4CJNER4,#0FFH,JUDGE1INCR5MOVR4,#00HJUDGE1:ORLP1,#02HMOVC,P1.1JCINRETMAINB:MOVDPTR,#2100HMOVA,#00001110BMOVXDPTR,A ACALLFBLOOP:ACALLDIRAJMPLOOPFB:MOVR0,#5CHMOVR1,#79HMOVR3
15、,#03HLP2:MOVA,R0MOVR2,ASWAPAANLA,#0FHMOVR1,AINCR1MOVA,R2ANLA,#0FHMOVR1,AINCR1DECR0DJNZR3,LP2RETDIR:MOVR0,#79HMOVR2,#01HMOVA,R2LD0:MOVDPTR,#2103HMOVXDPTR,AMOVDPTR,#2102HMOVA,R0ADDA,#0FHMOVCA,A+PCDIR1:MOVXDPTR,AMOVR7,#02HACALLDLINCR0MOVA,R2JBACC.5,LD1RLAMOVR2,AAJMPLD0LD1:RETDSEG0:DB 3FH,06H,5BH,4FH,66
16、H,6DHDSEG1:DB 7DH,07H,7FH,6FH,77H,7CHDSEG2:DB 39H,5EH,79H,71H,73H,21HDSEG3:DB 31H,6EH,40H,3EH,00H,00HDL:MOVR6,#0FFHDL6:DJNZR6,DL6DJNZR7,DLRETEND.实物烧录程序C2 DATA 20H First DATA 50H Two DATA 51H ThreeDATA 52H Four DATA 53H Five DATA 54H Six DATA 55H Seven DATA 56H Eight DATA 57HORG 0000HPAN1:ORL P1,#03H
17、MOV C,P1.0JC PAN1START:CLRCLJMP INTI ORG 0030HINTI:MOV 20H,#00H MOV A,20HMOV C2 , #08HMOV First , #00HMOV Two , #00HMOV Three , #00HMOV Four , #00HMAIN:CALL Num_Handle CALL Display CALL Code138 MOV C2 , #08HAJMPMAINDisplay:MOV A , FirstANL A,#0FH MOV DPTR,#TABMOVC A,A+DPTRMOV 60H,A MOV A , TwoANL A,
18、#0FH MOV DPTR,#TABMOVC A,A+DPTRMOV 61H,A MOV A , ThreeANL A,#0FH MOV DPTR,#TABMOVC A,A+DPTRMOV 62H,A MOV A , FourANL A,#0FH MOV DPTR,#TABMOVC A,A+DPTRMOV 63H,AMOV 64H,60HMOV 65H,61HMOV 66H,62HMOV 67H,63H RETNum_Handle: MOV A , First ADD A , #01HMOV First , ACJNE A , #0AH , DONE MOV First , #00HMOV A
19、 ,TwoADD A , #01H MOV Two , ACJNE A , #0AH, DONEMOV Two , #00HMOV A , ThreeADD A , #01HMOV Three , ACJNE A , #0AH , DONEMOV Three , #00HMOV A , FourADD A , #01HMOV Four , ACJNE A , #0AH , DONEMOV Four , #00HDONE: RETCode138:CLR ALAB1: MOV R5 , AADD A , #60H MOV R0 , AMOV P0 , R0 MOV A , R5 MOV DPTR
20、,#TAB1 MOVC A , A+DPTR MOV P2 , A MOV A , R5 CALL DEL1mS INC ADJNZ C2 ,LAB1MOV C,P1.1JNC LAB2CALL DEL1mSCALL DEL1mSRETDEL1mS: MOV R6,#02HDEL1:MOV R7,#0FFH DJNZ R7,$ DJNZ R6,DEL1 RET ORG 0100HTAB: DB 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x80 ORG 0120HTAB1:DB 0xff,0xfb,0xf7,0xf3,0xef,0xeb,0xe7,0xe3LAB2:MOV R5 , AADD A , #64H MOV R0 , AMOV P0 , R0 MOV A , R5 MOV DPTR ,#TAB1 MOVC A , A+DPTR MOV P2 , AMOV A , R5CALLDEL0mS INC ADJNZ C2 ,LAB2MOV C,P1.1JNC LAB2MOV C,P1.0JC LAB2AJMPSTARTDEL0mS: MOV R6,#01HDEL2:MOV R7,#03FH DJNZ R7,$ DJNZ R6,DEL2 RETEND - 17 -