null 单片机实时交通信号灯控制模拟 单片机实时交通信号灯控制模拟实训目的:
1.了解可编程I/O芯片8255的结构功能及编程方法
2. 学习掌握用单片机进行交通灯控制的实现方法。
3. 掌握用软件编程实现延时的方法。单片机应用实训设计项目(二)null设计内容及要求:
1. 编程DJ—598KC单片机扩展连接的8255的PA、PB口为输出I/O口,控制DJ—598KC实验箱上的黄、绿、红、三色十二个发光二 极管亮灭,并分别用实验箱上的两位七段LED数码倒计时显示两通车道车辆通行时间(即黄、绿、红三色发光二 极管亮灭时间),模拟十字路口交 通信号灯控制和管理,并完成在DJ—598KC单片机实验箱上的仿真。
2. 将8255的PA、PB口输出控制改为用单片机的P1、P3口实现输出控制,再完成控制电路连接设计及控制程序的编制和仿真。
null8255 控制电路逻辑图DJ-598KC实验系统LED显示器接口电路连接DJ-598KC实验系统LED显示器接口电路连接控制程序框图控制程序框图null8255A的逻辑结构和信号引脚8255A与8051的接口电路示例8255A与8051的接口电路示例由图分析:8255的 CS 采用部分译码线选法连接
PA地址为7FFCH (A15=0,A1=0,A0=0)
PB地址为7FFDH (A15=0,A1=0,A0=1)
PC地址为7FFEH (A15=0,A1=1,A0=0)
控制寄存器地址为7FFFH (A15=0,A1=1,A0=1)DJ-5198KC实验箱8255的I/O口地址分配DJ-5198KC实验箱8255的I/O口地址分配null ORG 0100H
HA4S:MOV SP,#60H
; 8255初始化
MOV DPTR,#0FF2BH
MOV A,#88H
MOVX @DPTR,A
MOV DPTR,#0FF23H
MOV A,#88H
MOVX @DPTR,A
;四个红灯
MOV DPTR,#0FF28H
MOV A,#0B6H
MOVX @DPTR,A
INC DPTR
MOV A,#0DH
MOVX @DPTR,A
;5秒延时
MOV 2AH,#05H
LCALL DELAY;东西绿灯,南北红灯
HA4S3: MOV DPTR,#0FF28H
MOV A,# 75 H
MOVX @DPTR,A
INC DPTR
MOV A,# 0D H
MOVX @DPTR,A
; 80秒延时
MOV 2AH,#50H
LCALL DELAY
;东西黄灯,南北红灯
HA4S1:MOV DPTR,#0FF28H
MOV A,# 0 F3 H
MOVX @DPTR,A
INC DPTR
MOV A,# 0C H
MOVX @DPTR,A
;10秒延时
MOV 2AH,#0AH
LCALL DELAY 用8255的PA、PB口控制程序清单:null;东西红灯,南北绿灯
MOV DPTR,#0FF28H
MOV A,# 0AE H
MOVX @DPTR,A
INC DPTR
MOV A,# 0B H
MOVX @DPTR,A
; 50秒延时
MOV 2AH,#32H
LCALL DELAY
;东西红灯,南北黄灯
HA4S2: MOV DPTR,#0FF28H
MOV A,#9EH
MOVX @DPTR,A
INC DPTR
MOV A,#07H
MOVX @DPTR,A
;10秒延时
MOV 2AH,#0AH
LCALL DELAY
LJMP HA4S3 ;重复东西通行
nullDELAY:LCALL DISP ;调用秒值显示子程序
DJNZ 2AH, DELAY ;计数器非零循环
RET
;秒值显示子程序(约1,000,800µs fosc=12MHz) 指令周期数
DISP:MOV A,2AH ; 秒数转换为十进制数 1
MOV B,#0AH ; 2
DIV AB ; AB←(A)/(B) 4
MOV DPTR,# TABLE ; 查
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
十位数的字形码 2
MOVC A,@A+DPTR ; 2
MOV R2,A ; 十位数的字形码存R2 1
MOV A,B ; 4
MOVC A,@A+DPTR ; 查表个位数的字形码 2
MOV R3,A ; 个位数的字形码存R3 1
MOV P2,#0FFH ; 1
MOV R0,#21H ; 1
MOV R1,#20H ; 1
MOV R6,#0FAH ; 1
: (共23) ;软件秒倒计时延时显示子程序null ; 250×((250×8+1)×2×1+1)s
LOOP: MOV R5,#0FAH ; 1
LOOP1: MOV A,R3 ; 1
MOVX @R0,A ; 2
MOV A ,#0FEH ; 1
MOVX @R1,A ; 2
DJNZ R5,LOOP1 ;(2508+1)2 s 2
MOV R5,#0FAH ; 1
LOOP2:MOV A,R2 ; 1
MOVX @R0,A ; 2
MOV A,#0FDH ; 1
MOVX @R1,A ; 2
DJNZ R5,LOOP2 ;(2508+1)s 2
DJNZ R6,LOOP ; 2
RET ; 2
; ’0’~’f ’ 字符七段LED代码表
TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H
DB 92H,82H,0F8H,80H,90H
END用单片机P1和P3口的控制电路逻辑图用单片机P1和P3口的控制电路逻辑图null ORG 0100H
HA4S:MOV SP,#60H
; 8255初始化
MOV DPTR,#0FF23H
MOV A,#88H
MOVX @DPTR,A
;四个红灯
MOV P1,#0B6H
CLR P3.3
MOV 2AH,#03H ;3秒延时
LCALL DELAY
;东西绿灯,南北红灯
HA4S3:SETB P3.5
MOV P1,#75 H
CLR P3.3
MOV 2AH,#32H ; 50秒延时
LCALL DELAY ;东西黄灯,南北红灯
HA4S1: MOV P1,#0F3H
CLR P3.2
CLR P3.3
MOV 2AH,#05H ;5秒延时
LCALL DELAY
SETB P3.2
SETB P3.3
;东西红灯,南北绿灯
MOV P1,#0AE H
CLR P3.4
MOV 2AH,#1EH ; 30秒延时
LCALL DELAY
SETB P3.4
;东西红灯,南北黄灯
HA4S2: MOV P1,#9EH
CLR P3.5
MOV 2AH,#03H ;3秒延时
LCALL DELAY
LJMP HA4S3 ;重复东西通行用89C51的P1、P3口控制程序清单:nullDELAY:LCALL DISP ;调用秒值显示子程序
DJNZ 2AH, DELAY ;计数器非零循环
RET
;秒值显示子程序(约1,000,800µs fosc=12MHz) 指令周期数
DISP:MOV A,2AH ; 秒数转换为十进制数 1
MOV B,#0AH ; 2
DIV AB ; AB←(A)/(B) 4
MOV DPTR,# TABLE ; 查表十位数的字形码 2
MOVC A,@A+DPTR ; 2
MOV R2,A ; 十位数的字形码存R2 1
MOV A,B ; 4
MOVC A,@A+DPTR ; 查表个位数的字形码 2
MOV R3,A ; 个位数的字形码存R3 1
MOV P2,#0FFH ; 1
MOV R0,#21H ; 1
MOV R1,#20H ; 1
MOV R6,#0FAH ; 1
: (共23) ;软件秒倒计时延时显示子程序null ; 125×((250×8+1)×2×2+2)s
LOOP: MOV R5,#0FAH ; 1
LOOP1: MOV A,R3 ; 1
MOVX @R0,A ; 2
MOV A ,#0FEH ; 1
MOVX @R1,A ; 2
DJNZ R5,LOOP1 ;(2508+1)2 s 2
MOV R5,#0FAH ; 1
LOOP2:MOV A,R2 ; 1
MOVX @R0,A ; 2
MOV A,#0FDH ; 1
MOVX @R1,A ; 2
DJNZ R5,LOOP2 ;(2508+1)s 2
DJNZ R6,LOOP ; 2
RET ; 2
; ’0’~’f ’ 字符七段LED代码表
TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H
DB 92H,82H,0F8H,80H,90H
END