找回密码
 立即注册

QQ登录

只需一步,快速开始

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

交通信号灯51单片机编程代码

[复制链接]
跳转到指定楼层
楼主
ID:209534 发表于 2017-6-9 14:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
附录1:程序清单
       ORG   OOOOH
       LJMP  MAIN
       ORG   0003H
       LJMP  INTTO
       ORG   0013H
       LJMP  INTT1
       ORG   OO1BH
       LJMP  TT1
       ORG   O1OOH
TT1:   MOV   TH1,#0D8H    定时器1,定时10us
       MOV   TL1,#0F0H
       DJNZ  R6,EXIT
       MOV   R6,#100      定时器定时100次
       MOV   R1,#0FFH
EXIT:  REIT
INTT0: MOV   P1,#0BEH     外部中断0
       JB    P3.4,$
       RETI
INTT1: MOV   P1,#0BBH     外部中断1
       JB    P3.4,$
       RETI
       ORG   1000H
MAIN:  MOV   R6,#100      主程序
       MOV   R1,#00H
       MOV   TMOD,#10H    初始化
       MOV   TH1,#0D8H
       MOV   TL1,#0F0H
       MOV   IE,#8DH
       MOV   20H,#25
       MOV   21H,#5
       MOV   22H,#15
       MOV   23H,#30
       MOV   24H,#20
       SETB  TR1
ST1:   MOV   P1,#0EBH     第一个状态,东西主干道亮绿灯、支干道亮红灯;
       CJNE  R1,#0FFH,TZ1
       MOV   R1,#00H
       DEC   20H
       DEC   23H
TZ1:   MOV   R2,20H
       MOV   R3,23H
       LCALL DISP         调用显示子程序
       MOV   A,20H
       CJNE  A,#OOH,ST1
       MOV   20H,#25
ST2:   MOV   P1,#0EDH     第二个状态,主干道亮黄灯、支干道亮红灯
       CJNE  R1,#0FFH,TZ2
       MOV   R1,#00H
       DEC   21H
       DEC   23H
TZ2:   MOV   R2,21H
       MOV   R3,23H
       LCALL DISP         调用显示子程序
       MOV   A,21H
       CJNE  A,#00H,ST2
       MOV   21H,#05
       MOV   23H,#30
ST3:   MOV   P1,#0BEH     第三个状态,主干道亮红灯、支干道亮绿灯
       CJNE  R1,#0FFH,TZ3
       MOV   R1,#00H
       DEC   24H
       DEC   22H
TZ3:  MOV   R2,24H
       MOV   R3,22H
       LCALL DISP         调用显示子程序
       MOV   A,22H
       CJNE  A,#00H,ST3
       MOV   22H,#15
ST4:   MOV   P1,#0DEH     第四个状态,主干道亮红灯、支干道亮黄灯
       CJNE  R1,#0FFH,TZ4
       MOV   R1,#00H
       DEC   24H
       DEC   21H
TZ4:   MOV   R2,24H
       MOV   R3,21H
       LCALL DISP         调用显示子程序
       MOV   A,21H
       CJNE  A,#00H,ST4
       MOV   21H,#05
       MOV   24H,#20
       LJMP  ST1          跳转到第一个状态
DISP:  MOV   A,R2         显示子程序
       MOV   B,#10
       DIV   AB
       MOV   60H,A
       MOV   61H,B
       MOV   A,R3
       MOV   B,#10
       DIV   AB
       MOV   62H,A
       MOV   63H,B
       MOV   40H,#04H
       MOV   R5,#0FEH
       MOV   R0,#60H
LLP:   MOV   A,@R0
       MOV   DPTR,#TABLE
       MOV   A,@A+DPTR
       MOV   P0,A
       MOV   A,R5
       MOV   P2,A
       LCALL DELAY1
       MOV   P2,#0FFH     注:这里是程序修改的地方,P2口控制显示器令显示器熄灭,以免产生残影
       RL    A
       MOV   R5,A
       INC   R0
       DJNZ  40H,LLP
       RET
DELAY1:MOV   R4,#12       延时子程序
DL2:   MOV   R7,#12
       DJNZ  R7,$
       DJNZ  R4,DL2
       RET
TABLE: DB  3FH,24H,5DH,75H,66H
       DB  73H,7BH,25H,7FH,77H
       END








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

使用道具 举报

沙发
ID:273670 发表于 2018-1-9 11:37 | 只看该作者
老哥 你这个表里面的内容是哪里来的啊
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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