1、主要内容:基于单片机的应用技术,利用中断系统来控制定时器的时间,实现交通灯控制,了解单片机中断系统,掌握中断系统的编写方式。基本要求:(1) 在通常情在一个十字路口的两条主干道上,分别装上一套红、黄、绿 3 种信号灯。(2) 况下,一条主干道为绿灯,另一条主干道为红灯。(3) 采用定时器中断方式控制南北向、东西向交通灯,指示时间为25s,当时间为5s时绿灯亮,为3s时黄灯点亮,25s时间到,交通灯换向。亮灯规律:南北红灯亮20s,东西绿灯亮20s 南北红灯亮3s,东西绿灯闪3s南北红灯闪2s,东西黄灯亮2s南北绿灯亮20s,东西红灯亮20s南北绿灯闪3s,东西红灯亮3s南北黄灯亮2s,东西红灯
2、闪2s主要参考资料: 单片机原理及接口技术 李全利单片机应用技术 王文杰 许文斌THDPJ-1-2实验指导书目录0.引言41.概述所作题目的意义、本人所做的工作及系统的主要功能42硬件电路设计及描述53交通灯的设计程序框图74.软、硬件调试过程84.1软件调试84.2硬件调试85交通灯程序的主程序96.主要参考资料:137.附录147.1实验整体电路图147.2元器件表140.引言单片机由于其体积小、功耗低、价格低廉,且具有逻辑判断、定时计数和程序控制等多种功能,广泛用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。单片机已经完全渗透到生产生活的各个领域。1.概
3、述所作题目的意义、本人所做的工作及系统的主要功能在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。本系统采用单片机AT89C51为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展性强。2硬件电路设计及描述 1.基于单片机设计的振荡电路和复位电路,加显示器件构成单片机系统,单片机通过P2.1P2.6端口及P3.0P3.1端口的第二功能进行数据和信息的传输交换从而实现对外电路
4、的控制 2.由7405及LED灯构成的交通信号显示电路,由89C51送来信号,经7405分析处理将信号送入LED显示灯3.由八位移位寄存器74ls164及七段数码管构成的数字显示器件,由单片机输出信号经八位移位寄存器译码后送入数码显管,从而显示数字3交通灯的设计程序框图所有灯全点亮瞬间延迟入口置口地址关闭不相关灯东西路口绿灯亮,南北路口红灯亮,25s倒计时亮,延时20s南北红灯亮3s,东西绿灯闪3s南北红灯闪2s,东西黄灯亮2s南北路口绿灯亮,东西路口红灯亮,25s倒计时延时20s东西红灯亮3s,南北绿灯闪3s南北黄灯亮2s,东西红灯闪2s4.软、硬件调试过程4.1软件调试 4.2硬件调试5交
5、通灯程序的主程序SECOND1 EQU 30H ;东西路口计时寄存器SECOND2 EQU 31H ;南北路口计时寄存器DBUF EQU 40H ;显示码缓冲区1TEMP EQU 44H ;显示码缓冲区2LED_G1 BIT P2.1 ;东西路口绿灯LED_Y1 BIT P2.2 ;东西路口黄灯LED_R1 BIT P2.3 ;东西路口红灯LED_G2 BIT P2.4 ;南北路口绿灯LED_Y2 BIT P2.5 ;南北路口黄灯LED_R2 BIT P2.6 ;南北路口红灯 ORG 0000H LJMP START ORG 0100HSTART: MOV TMOD,#01H ;置T0为工作方
6、式1 MOV TH0,#3CH ;置T0定时初值50ms MOV TL0,#0B0H CLR TF0 SETB TR0 ;启动T0 CLR A MOV P1,A ;关闭不相关的LEDLOOP: MOV R2,#20 ;置1s计数初值,50ms*20=1s MOV R3,#20 ;红灯亮20s MOV SECOND1,#25 ;东西路口计时显示初值25s MOV SECOND2,#25 ;南北路口计时显示初值25s LCALL DISPLAY LCALL STATE1 ;调用状态1WAIT1: JNB TF0,WAIT1 ;查询50ms到否 CLR TF0 MOV TH0,#3CH ;恢复T0定
7、时初值50ms MOV TL0,#0B0H DJNZ R2,WAIT1 ;判断1s到否?未到继续状态1 MOV R2,#20 ;置50ms计数初值 DEC SECOND1 ;东西路口显示时间减1s DEC SECOND2 ;南北路口显示时间减1s LCALL DISPLAY DJNZ R3,WAIT1 ;状态1维持20s MOV R2,#5 ;置50ms计数初值5*4=20 MOV R3,#3 ;绿灯闪烁3s MOV R4,#4 ;闪烁间隔200ms MOV SECOND1,#5 ;东西路口计时显示初值5s MOV SECOND2,#5 ;南北路口计时显示初值5s LCALL DISPLAY
8、WAIT2: LCALL STATE2 ;调用状态2 JNB TF0,WAIT2 ;查询50ms到否 CLR TF0 MOV TH0,#3CH ;恢复T0定时初值50ms MOV TL0,#0B0H DJNZ R4,WAIT2 ;判断200ms到否?未到继续状态2 CPL LED_G1 ;东西绿灯闪 MOV R4,#4 ;闪烁间隔200ms DJNZ R2,WAIT2 ;判1s到否?未到继续状态2 MOV R2,#5 ;置50ms计数初值 DEC SECOND1 ;东西路口显示时间减1s DEC SECOND2 ;南北路口显示时间减1s LCALL DISPLAY DJNZ R3,WAIT2
9、;状态2维持3s MOV R2,#5 ;置50ms计数初值 MOV R3,#2 ;黄灯闪烁2s MOV R4,#4 MOV SECOND1,#2 ;东西路口计时显示初值2s MOV SECOND2,#2 ;南北路口计时显示初值2s LCALL DISPLAYWAIT3: LCALL STATE3 ;调用状态3 JNB TF0,WAIT3 ;查询100ms到否 CLR TF0 MOV TH0,#3CH ;恢复T0定时初值100ms MOV TL0,#0B0H DJNZ R4,WAIT3 ;判断1s到否?未到继续状态3 CPL LED_R2 MOV R4,#4 DJNZ R2,WAIT3 MOV
10、R2,#5 ;置100ms计数初值 DEC SECOND1 ;东西路口显示时间减1s DEC SECOND2 ;南北路口显示时间减1s LCALL DISPLAY DJNZ R3,WAIT3 ;状态3维持2s MOV R2,#20 ;置50ms计数初值 MOV R3,#20 ;红灯闪20s MOV SECOND1,#25 ;东西路口计时显示初值25s MOV SECOND2,#25 ;南北路口计时显示初值25s LCALL DISPLAYWAIT4: LCALL STATE4 ;调用状态4 JNB TF0,WAIT4 ;查询100ms到否 CLR TF0 MOV TH0,#3CH ;恢复T0定
11、时初值100ms MOV TL0,#0B0H DJNZ R2,WAIT4 ;判断1s到否?未到继续状态4 MOV R2,#20 ;置100ms计数初值 DEC SECOND1 ;东西路口显示时间减1s DEC SECOND2 ;南北路口显示时间减1s LCALL DISPLAY DJNZ R3,WAIT4 ;状态4维持20s MOV R2,#5 ;置50ms计数初值 MOV R4,#4 ;红灯闪20ms MOV R3,#3 ;绿灯闪3s MOV SECOND1,#5 ;东西路口计时显示初值5s MOV SECOND2,#5 ;南北路口计时显示初值5s LCALL DISPLAYWAIT5: L
12、CALL STATE5 ;调用状态5 JNB TF0,WAIT5 ;查询100ms到否 CLR TF0 MOV TH0,#3CH ;恢复T0定时初值100ms MOV TL0,#0B0H DJNZ R4,WAIT5 ;判断200ms到否?未到继续状态5 CPL LED_G2 ;南北绿灯闪 MOV R4,#4 ;闪烁间隔200ms DJNZ R2,WAIT5 ;判断1s到否?未到继续状态5 MOV R2,#5 ;置100ms计数初值 DEC SECOND1 ;东西路口显示时间减1s DEC SECOND2 ;南北路口显示时间减1s LCALL DISPLAY DJNZ R3,WAIT5 ;状态5
13、维持3s MOV R2,#5 ;置50ms计数初值 MOV R3,#2 ;红灯闪2s MOV R4,#4 MOV SECOND1,#2 ;东西路口计时显示2s MOV SECOND2,#2 ;南北路口计时显示2s LCALL DISPLAY WAIT6: LCALL STATE6 ;调用状态6 JNB TF0,WAIT6 ;查询50ms到否 CLR TF0 MOV TH0,#3CH ;恢复T0定时初值100ms MOV TL0,#0B0H DJNZ R4,WAIT6 ;判断1s到否?未到继续状态6 CPL LED_R1 MOV R4,#4 DJNZ R2,WAIT6 MOV R2,#5 ;置1
14、00ms计数初值 DEC SECOND1 ;东西路口显示时间减1s DEC SECOND2 ;南北路口显示时间减1s LCALL DISPLAY DJNZ R3,WAIT6 ;状态6维持2s LJMP LOOP ;大循环STATE1: SETB LED_G1 ;状态1 CLR LED_Y1 ;东西路口绿灯亮 CLR LED_R1 CLR LED_G2 CLR LED_Y2 SETB LED_R2 ;南北路口红灯亮 RETSTATE2: CLR LED_Y1 ;状态2 CLR LED_R1 CLR LED_G2 CLR LED_Y2 SETB LED_R2 ;南北路口红灯亮 RET STATE3
15、: CLR LED_G1 ;状态3 CLR LED_R1 CLR LED_G2 CLR LED_Y2 SETB LED_Y1 ;东西路口绿灯亮 RETSTATE4: CLR LED_G1 ;状态4 CLR LED_Y1 SETB LED_R1 ;东西路口红灯亮 SETB LED_G2 ;南北路口绿灯亮 CLR LED_Y2 CLR LED_R2 RET STATE5: CLR LED_G1 ;状态5 CLR LED_Y1 SETB LED_R1 ;东西路口红灯亮 CLR LED_Y2 CLR LED_R2 RETSTATE6: CLR LED_G1 ;状态6 CLR LED_Y1 CLR LE
16、D_G2 CLR LED_R2 SETB LED_Y2 ;南北路口红灯亮 RET DISPLAY: MOV A,SECOND1 ;数码显示,东西路口计时寄存器 MOV B,#10 ;十六进制数拆成两个十进制数 DIV AB MOV DBUF+3,A MOV A,B MOV DBUF+2,A MOV A,SECOND2 ;南北路口计时寄存器 MOV B,#10 ;十六进制数拆成两个十进制数 DIV AB MOV DBUF+1,A MOV A,B MOV DBUF,A MOV R0,#DBUF MOV R1,#TEMP MOV R7,#4DP10: MOV DPTR,#LEDMAP MOV A,R
17、0 MOVC A,A+DPTR MOV R1,A INC R0 INC R1 DJNZ R7,DP10 MOV R0,#TEMP MOV R1,#4DP12: MOV R7,#8 MOV A,R0DP13: RLC A MOV P3.0,C CLR P3.1 SETB P3.1 DJNZ R7,DP13 INC R0 DJNZ R1,DP12 RETLEDMAP: DB 3FH,06H,5BH,4FH,66H,6DH;0,1,2,3,4,5 DB 7DH,07H,7FH,6FH,77H,7CH;6,7,8,9,A,B DB 58H,5EH,7BH,71H,0,40H ;C,D,E,F, ,- END6.主要参考资料: 单片机原理及接口技术 李全利单片机应用技术 王文杰 许文斌THDPJ-1-2实验指导书7.附录7.1实验整体电路图 7.2元器件表器件代码器件名称器件数量7SEG-COM-CAT-GRNCATHODE七段数码显管红绿各一个74LS164.IE八位移位寄存器4个7405反相器6个AT89C51单片机1个CAP电容2个CAP-ELEC极性电容1个RES电阻1个CRYSTAL晶振1个LED显示灯红黄绿各3个POWER/GROUND地/电源若干12