找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2161|回复: 0
打印 上一主题 下一主题
收起左侧

8255a单片机设计交通灯控制源码

[复制链接]
跳转到指定楼层
楼主
ID:353891 发表于 2018-6-18 21:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ORG 0000H
  LJMP MAIN
  ORG 0003H
L.JMP TO_ INT
  ORG 0013H
  MOV IE, #8EH
MOV TMOD,#51H
MOV TH1, #0OH
MOV TL1, #00H
  SETB TR1
SETB EX1
SETB IT1
MOV DPTR#0003H
  MOV A#80H
MOVX @DPTR, A
  AGAIN: JB P3.1,NO
MOV A,P1
JB P1.7,RED
  MOV RO, #00H
  MOV RO,A
MOV R3,A
  LCALL DISP1
LCALL DELAY
AJMP AGAIN
RED: MOV A,P1
  ANL A,#7FH
MOV R7, #00H
  10V R7,A  
  LCALL DISP1
LCALL DELAY
AJMP AGAIN
  NO: SETB TRO
MOV 76H,R7
  NOO: MOV A, 76H
MOV R3,A
  MOV DPTR, 0000H
MOV A, #ODDH
MOVX @DPTR, A
N01: JB P2.0, B0
N02: SETB P3. 0
CJNE R3, #0OH, N01;  比较R3中的值是否为0,不为0转到当前指令处执行黄灯闪烁5秒程序------
N1:SETBP3.0
MOV R3, #05H
MOV DPTR, #0000H;8255A  ,  东西,南北方向黄灯亮
MOV A, #0D4H
MOVX @DPTR, A
N1l: MOV R4, #00H
N12: CJNE R4, #7DH,$;黄灯持续亮0.5
N13: MOV DPTR, #0000H;  8255A口,南北方向黄灯灭
MOV A, #0DDH
MOVX @DPTR, A
N14: MOV R4, #00H
CJNE R4,#7DH,$; 黄灯持续灭0.5
CJNE R3, #00H,N1;闪烁时间达5秒则退出;
N2:  MOV  R7, #00H  
MOV A,RO;东西通行,南北禁止
MOV  R3, A
MOV DPTR, #0000H;8255A口,东西方向绿灯亮,南北方向红灯亮
MOV A, #OEBH
MOVX @DPTR,A
N21: JB P2.0,T03
N22:  CJNE R3, #0OH,N21
;黄灯闪烁5秒程序------
N3: MOV R3,#05H
MOV DPTR,#0000H;8255A,东西,南北方向黄灯亮
MOV A, #0E2H
MOVX @DPTR, A
N31 :  MOV R4, #00H
CJNE R4,#7DH,$;黄灯持续亮0.5
N32: MOV DPTR, #0000H;8255A口,  南北方向黄灯灭
MOV A, #OEBH
MOVX @DPTR,A
N33:  MOV R4, #00H
CJNE R4, #7DH, $;  黄灯持续灭0.5
CJNE R3, #0OH, N3;  闪烁时间达5秒则退出S. JMPN00
  ;闯红灯报警程序
  B0:MOV R2, #03H;  报警持续时间3
B01: MOV A, R3
JZ N1;若倒计时完毕,不再报警
CLR P3.0;报警
CJNE R2,#0OH, B01;判断3秒是否结束
SJMP NO2
;----1秒延时子程序-
N7: RETI
TO_ INT:MOV TLO, #9AH;给定时器TO送定时10ms的初值
MOV THO, #0F1H
INC R4
INC R5
CJNE R5, #OFAH, T01;判断延时是否够一秒,不够则调用显示子程
MOV R5, #0OH; R5清零DEC R3;倒计时初值减一DECR2;报警初值减- -
T01: ACALL DISP;调用显示子程序
RETI;中断返回
  ;显示子程序
DISP: JNB P2.4, T02
DISPl: MOV B, #0AH
MOV A,R3; R3中值二转十显示转换"
DIV AB
MOV 79H,A
MOV 7AH,B
DIS: MOV A, 79H;显示十位
MOV DPTR, #TAB
MOVC A, @A+DPTR
MOV DPTR, #0002H
MOVX @DPTR, A
MOV DPTR, #0001H
MOV A, #OF7H
MOVX @DPTR, A
LCALL DELAY
DS2:MOV A, 7AH;显示个位
MOV DPTR, #TAB
MOVC A, @A+DPTR
MOV DPTR,#0002H
MOVX @DPTR,A
MOV DPTR, #0001H
MOV A, #OFBH
MOVX @DPTR,A
RET
;东西方向车流量检测程序----
T03: MOV A, R3
SUBB A, #0OH;若绿灯倒计时完毕,不再检测车流量
JZ N3
JB P2.0, T03
INC R7
CJNE R7,#64H,E1
MOV R7,#00H;中断到100次则清零
El: SJMP N22
;东西方向车流量显示程序-
T02: MOV B, #OAH
MOVA,R7; R7中值二转十显示转换
DIV AB
  MOV79H,A
MOV 7AH, B
DIS3: MOV A, 79H;显示十位
MOV DPTR, #TAB
MOVC A, @A+DPTR
MOV DPTR, #0002H
MOVX @DPTR,A
  MOVDPTR, #0001H
MOV A, #0F7H
MOVX @DPTR,A
LCALL DELAY
DS4: MOV A, 7AH;显示个位
MOV DPTR, #TAB
MOVC A, @A+DPTR
MOV DPTR, #0002H
MOVX @DPTR,A
  MOVDPTR, #0001H
MOV A, #OFBH
MOVX @DPTR, ALJMP N7
  ;延时4MS子程序-
DELAY: MOV R1, #0AH
L0OP: MOV R6, #64H
NOP
LOOP1: DJNZ R6, L0OP1
DJNZ R1,LOOP
RET
  ;字符表-
TAB: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FH
END

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表