RP2CONFIRM87A16A25A34B13B22B31RESPACK-7RP387DOWN6UP5SET422321212111RESPACK-7十字路口交通灯RP112345678南北东西2122QAQBQCQDQEQFQG1312111091514SETC122pFC222pF19U1XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD3938373635343332212223242526272810111213141516177126453U2ABCDBI/RBORBILT74LS47RESPACK-7QAQBQCQDQEQFQG71264531312111091514X118CRYSTAL9XTAL21112RSTU3ABCDBI/RBORBILT74LS47C3R820u1k293031PSENALEEA2122D1D4LED-REDD5B2LED-YELLOWD6B3A1B1A2D2A3D3D10B1LED-REDD11B2LED-YELLOWLED-GREENLED-YELLOWLED-REDCONFIRM12B13B24B35A16A27A38P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51SETT11112设置增加减少确定应急UPDOWNUPDOWNCONFIRMD12B3T1A2A3LED-GREENLED-GREENA1D7D8D9LED-GREENLED-YELLOWLED-RED 5.2 交通灯东西方向向南北方向转变,黄灯亮
RP2CONFIRM87A16A25A34B13B22B31RESPACK-7RP387DOWN6UP5SET422321212111RESPACK-7十字路口交通灯RP112345678南北东西2122QAQBQCQDQEQFQG1312111091514SETC122pFC222pF19U1XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD3938373635343332212223242526272810111213141516177126453U2ABCDBI/RBORBILT74LS47RESPACK-7QAQBQCQDQEQFQG71264531312111091514X118CRYSTAL9XTAL21112RSTU3ABCDBI/RBORBILT74LS47C3R820u1k293031PSENALEEA2122D1D4LED-REDD5B2LED-YELLOWD6B3A1B1A2D2A3D3D10B1LED-REDD11B2LED-YELLOWLED-GREENLED-YELLOWLED-REDCONFIRM12B13B24B35A16A27A38P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51SETT11112设置增加减少确定应急UPDOWNUPDOWNCONFIRMD12B3T1A2A3LED-GREENLED-GREENA1D7D8D9LED-GREENLED-YELLOWLED-RED
5.3应急情况下,东西南北方向都为红灯,如下图
6、设计心得体会
通过这次课程设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步。本次课程设计的过程是艰辛的,不过收获却是很大的。
在设计过程中,会出现了一些问题,但都是常见的小问题,如:代码中双引号的使用并不是在英语书写状态下,输入字母出错等,在调试时出现异常,不过这些都是经常性错误,经过调试修改都一一解决,程序顺利完成,并实现了其功能。
综合课程设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更进一步的理解和认识。在此,由于自身能力有限,在课程设计中碰到了很多的问题,我通过查阅相关书籍、资料以及和周围同学交流。
由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合。但是在我们
设计和调试的过程中,也发现了一些问题,譬如红灯和绿灯的切换还不够迅速,红绿灯规则不效率还不是很高等等,这需要在实践中进一步完善。
当然,通过这次课程设计,我也发现了自身的很多不足之处,在以后的学习中,我会不断的完善自我。
附录1: 源程序代码
ORG 0000H ;伪指令、程序开始、中断入口地址 LJMP MAIN ORG 0003H LJMP ZHD1 ORG 000BH LJMP ZHD2 ORG 0013H LJMP ZHD3 ORG 1000H ;主程序
MAIN:MOV TMOD,#01H ;设工作方式
MOV TL0,#0F0H ;设初值 ,单片机晶振12M,定时10ms MOV TH0,#0D8H
SETB EA ;开放总中断 SETB ET0 ;开放T0中断 SETB TR0 ;启动T0定时 SETB EX0 ;开放外中断0 SETB EX1 ;开放外中断1
SETB IT0 ;设外中断0为边沿触发 CLR IT1 ; SETB PT0
CYCLE:MOV R0,#60 ;AB MOV R1,#65 ;CD MOV R2,#25 ;;CD红灯 AB绿灯 LOOP1:SETB P3.4 MOV P1,#01H
SETB P1.7 ; SETB P1.4 ; LCALL DISPLAY ; DJNZ R2,LOOP1 MOV R2,#25 DEC R1 DJNZ R0,LOOP1
MOV R0,#3 ;AB;CD红灯 AB黄灯 LOOP2:MOV P1,#01H
SETB P1.7 ; SETB P1.3 ;LLJ: LCALL DISPLAY ; CPL P1.3 DJNZ R2,LLJ
设外中断1为低电平有效方向绿灯显示时间 方向红灯显示时间 为延时1秒而用 点亮红灯 点亮绿灯 调用显示程序 方向黄灯显示时间 点亮红灯 点亮黄灯 调用显示程序 DEC R1 MOV R2,#25 DJNZ R0,LOOP2
MOV R0,#40 ;AB方向红灯显示时间 ;CD红灯 AB红灯 LOOP3:MOV P1,#01H
SETB P1.7 ; SETB P1.2 ; LCALL DISPLAY ; DJNZ R2,LOOP3 MOV R2,#25 DEC R0 DJNZ R1,LOOP3
MOV R1,#35 ;CD;CD绿灯 AB红灯 LOOP4:MOV P1,#01H
SETB P1.5 ; SETB P1.2 ; LCALL DISPLAY ; DJNZ R2,LOOP4 MOV R2,#25 DEC R0 DJNZ R1,LOOP4
MOV R1,#3 ;CD;CD黄灯 AB红灯 LOOP5:MOV P1,#01H
SETB P1.6 ; SETB P1.2 ;LLJ1: LCALL DISPLAY ;点亮红灯 点亮红灯 调用显示程序 方向绿灯显示时间 点亮绿灯 点亮红灯 调用显示程序 方向黄灯显示时间点亮黄灯 点亮红灯 调用显示程序