单片机课程设计项目(二)_交通灯.ppt
单片机实时交通信号灯控制模拟单片机实时交通信号灯控制模拟实训目的:实训目的:1.了解可编程了解可编程I/O芯片芯片8255的结构功能及编的结构功能及编程方法程方法 2.学习掌握用单片机进行交通灯控制的实现方学习掌握用单片机进行交通灯控制的实现方法。法。3.掌握用软件编程实现延时的方法。掌握用软件编程实现延时的方法。单片机应用实训设计项目(二)单片机应用实训设计项目(二)n设计内容及要求设计内容及要求:n 1.编程编程DJ598KC单片机扩展连接的单片机扩展连接的8255的的PA、PB口为输出口为输出I/O口,控制口,控制DJ598KC实验箱上的黄、实验箱上的黄、绿、红、三色十二个发光二绿、红、三色十二个发光二 极管亮灭,并分别用实验极管亮灭,并分别用实验箱上的两位七段箱上的两位七段LED数码倒计时显示两通车道车辆通数码倒计时显示两通车道车辆通行时间(即黄、绿、红三色发光二行时间(即黄、绿、红三色发光二 极管亮灭时间),极管亮灭时间),模拟十字路口交模拟十字路口交 通信号灯控制和管理,并完成在通信号灯控制和管理,并完成在DJ598KC单片机实验箱上的仿真。单片机实验箱上的仿真。n 2.将将8255的的PA、PB口输出控制改为用单片机的口输出控制改为用单片机的P1、P3口实现输出控制,再完成控制电路连接设计及口实现输出控制,再完成控制电路连接设计及控制程序的编制和仿真。控制程序的编制和仿真。8255 控制电路逻辑图控制电路逻辑图DJ-598KC实验系统实验系统LED显示器接口电路连接显示器接口电路连接控制程序框图控制程序框图8255A的逻辑结构和信号引脚的逻辑结构和信号引脚DJ-5198KC实验箱实验箱8255的的I/O口地址分配口地址分配n ORG 0100HnHA4S:MOV SP,#60Hn;8255初始化初始化nMOV DPTR,#0FF2BHnMOV A,#88HnMOVX DPTR,An MOV DPTR,#0FF23Hn MOV A,#88Hn MOVX DPTR,An;四个红灯四个红灯nMOV DPTR,#0FF28HnMOV A,#0B6HnMOVX DPTR,AnINC DPTRnMOV A,#0DHn MOVX DPTR,An;5秒延时秒延时nMOV 2AH,#05HnLCALL DELAY;东西绿灯东西绿灯,南北红灯南北红灯HA4S3:MOV DPTR,#0FF28HMOV A,#75 HMOVX DPTR,AINC DPTRMOV A,#0D HMOVX DPTR,A;80秒延时秒延时 MOV 2AH,#50HLCALL DELAY;东西黄灯东西黄灯,南北红灯南北红灯HA4S1:MOV DPTR,#0FF28HMOV A,#0 F3 HMOVX DPTR,AINC DPTRMOV A,#0C HMOVX DPTR,A;10秒延时秒延时MOV 2AH,#0AHLCALL DELAY用用8255的的PA、PB口控制程序清单口控制程序清单:n;东西红灯东西红灯,南北绿灯南北绿灯n MOV DPTR,#0FF28HnMOV A,#0AE HnMOVX DPTR,AnINC DPTRnMOV A,#0B HnMOVX DPTR,An;50秒延时秒延时nMOV 2AH,#32HnLCALL DELAYn;东西红灯东西红灯,南北黄灯南北黄灯nHA4S2:MOV DPTR,#0FF28HnMOV A,#9EHnMOVX DPTR,AnINC DPTRnMOV A,#07HnMOVX DPTR,An;10秒延时秒延时n MOV 2AH,#0AHnLCALL DELAYnLJMP HA4S3 ;重复东西通行重复东西通行nDELAY:LCALL DISP ;调用秒值显示子程序调用秒值显示子程序 n DJNZ 2AH,DELAY ;计数器非零循环计数器非零循环n RETn;秒值显示子程序;秒值显示子程序(约约1,000,800s fosc=12MHz)指令周期数指令周期数nDISP:MOV A,2AH ;秒数转换为十进制数秒数转换为十进制数 1n MOV B,#0AH ;2n DIV AB ;AB(A)/(B)4 n MOV DPTR,#TABLE ;查表十位数的字形码查表十位数的字形码 2n MOVC A,A+DPTR ;2n MOV R2,A ;十位数的字形码存十位数的字形码存R2 1n MOV A,B ;4n MOVC A,A+DPTR ;查表个位数的字形码查表个位数的字形码 2n MOV R3,A ;个位数的字形码存个位数的字形码存R3 1n MOV P2,#0FFH ;1n MOV R0,#21H ;1 n MOV R1,#20H ;1 n MOV R6,#0FAH ;1n :(共(共23);软件秒倒计时延时显示子程序;软件秒倒计时延时显示子程序n;250(250 81)211)s nLOOP:MOV R5,#0FAH ;1 nLOOP1:MOV A,R3;1 n MOVX R0,A;2 n MOV A,#0FEH;1n MOVX R1,A;2n DJNZ R5,LOOP1 ;(250 81)2 s 2n MOV R5,#0FAH ;1nLOOP2:MOV A,R2;1n MOVX R0,A;2n MOV A,#0FDH;1n MOVX R1,A;2n DJNZ R5,LOOP2 ;(250 81)s 2n DJNZ R6,LOOP ;2n RET ;2n;0f 字符七段字符七段LED代码表代码表nTABLE:DB 0C0H,0F9H,0A4H,0B0H,99Hn DB 92H,82H,0F8H,80H,90Hn END用单片机用单片机P1和和P3口的控制电路逻辑图口的控制电路逻辑图n ORG 0100H HA4S:MOV SP,#60Hn;8255初始化初始化n MOV DPTR,#0FF23Hn MOV A,#88Hn MOVX DPTR,An;四个红灯四个红灯nMOV P1,#0B6HnCLR P3.3 nMOV 2AH,#03H;3秒延时秒延时nLCALL DELAYn;东西绿灯东西绿灯,南北红灯南北红灯HA4S3:SETB P3.5 MOV P1,#75 Hn CLR P3.3n MOV 2AH,#32H;50秒延时秒延时n LCALL DELAY;东西黄灯东西黄灯,南北红灯南北红灯HA4S1:MOV P1,#0F3HCLR P3.2CLR P3.3MOV 2AH,#05H ;5秒延时秒延时LCALL DELAYSETB P3.2SETB P3.3;东西红灯东西红灯,南北绿灯南北绿灯 MOV P1,#0AE HCLR P3.4 MOV 2AH,#1EH ;30秒延时秒延时LCALL DELAYSETB P3.4;东西红灯东西红灯,南北黄灯南北黄灯HA4S2:MOV P1,#9EHCLR P3.5 MOV 2AH,#03H ;3秒延时秒延时LCALL DELAYLJMP HA4S3 ;重复东西通行重复东西通行用用89C51的的P1、P3口控制口控制程序清单程序清单:nDELAY:LCALL DISP ;调用秒值显示子程序调用秒值显示子程序 n DJNZ 2AH,DELAY ;计数器非零循环计数器非零循环n RETn;秒值显示子程序;秒值显示子程序(约约1,000,800s fosc=12MHz)指令周期数指令周期数nDISP:MOV A,2AH ;秒数转换为十进制数秒数转换为十进制数 1n MOV B,#0AH ;2n DIV AB ;AB(A)/(B)4 n MOV DPTR,#TABLE ;查表十位数的字形码查表十位数的字形码 2n MOVC A,A+DPTR ;2n MOV R2,A ;十位数的字形码存十位数的字形码存R2 1n MOV A,B ;4n MOVC A,A+DPTR ;查表个位数的字形码查表个位数的字形码 2n MOV R3,A ;个位数的字形码存个位数的字形码存R3 1n MOV P2,#0FFH ;1n MOV R0,#21H ;1 n MOV R1,#20H ;1 n MOV R6,#0FAH ;1n :(共(共23);软件秒倒计时延时显示子程序;软件秒倒计时延时显示子程序n;125(250 81)222)s nLOOP:MOV R5,#0FAH ;1 nLOOP1:MOV A,R3;1 n MOVX R0,A;2 n MOV A,#0EEH;1n MOVX R1,A;2n DJNZ R5,LOOP1 ;(250 81)2 s 2n MOV R5,#0FAH ;1nLOOP2:MOV A,R2;1n MOVX R0,A;2n MOV A,#0DDH;1n MOVX R1,A;2n DJNZ R5,LOOP2 ;(250 81)s 2n DJNZ R6,LOOP ;2n RET ;2n;0f 字符七段字符七段LED代码表代码表nTABLE:DB 0C0H,0F9H,0A4H,0B0H,99Hn DB 92H,82H,0F8H,80H,90Hn END