找回密码
 立即注册

QQ登录

只需一步,快速开始

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

简易单片机汇编语言交通灯设计

[复制链接]
跳转到指定楼层
楼主
ID:680458 发表于 2020-1-3 14:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
交通灯设计,电路图及程序文件,合集

单片机源程序如下:
  1.            ORG       0000H
  2.                    LJMP      MAIN
  3.                    ORG       0003H
  4.                    LJMP      INT_0
  5.                    ORG       000BH
  6.                    LJMP      T_0
  7.                    ORG       0013H
  8.                    LJMP      INT_1
  9.                    ORG       0900H
  10. MAIN:     
  11.            MOV       TMOD,#01H           ;定时器工作方式1
  12.            MOV       TL0,#0F0H           ;赋初值
  13.                    MOV       TH0,#0D8H
  14.                    SETB      ET0                   ;开T0中断
  15.                    SETB      TR0                   ;启动T0定时
  16.                    SETB      EX0                   ;开外部中断0
  17.                    SETB      EX1                   ;开外部中断1
  18.                    SETB      IT0                   ;外部中断0下降沿触发
  19.                    CLR       IT1                   ;外部中断1低电平触发
  20.                    SETB      PT0                   ;设置中断优先级
  21.                    SETB      EA                           ;CPU开中断
  22. dengguang: MOV       R0,#60                   ;东西方向绿灯显示时间
  23.            MOV       R1,#65                   ;南北方向红灯显示时间
  24.                    MOV       R2,#25
  25. LOOP1:     SETB      P3.4
  26.            MOV       P1,#01H
  27.                    SETB      P1.7                   ;点亮南北方向红灯
  28.                    SETB      P1.4                   ;点亮东西方向绿灯
  29.                    LCALL     DISPLAY
  30.                    DJNZ      R2,LOOP1
  31.                    MOV       R2,#25
  32.                    DEC       R1
  33.                    DJNZ      R0,LOOP1
  34.                    MOV       R0,#3        ;        东西方向黄灯显示时间
  35. LOOP2:     MOV       P1,#01H
  36.            SETB      P1.7                   ;点亮南北方向红灯
  37.                    SETB      P1.3                   ;点亮东西方向黄灯
  38. D1:        LCALL     DISPLAY
  39.            CPL       P1.3
  40.                    DJNZ      R2,D1
  41.                    DEC       R1
  42.                    MOV       R2,#25
  43.                    DJNZ      R0,LOOP2     
  44.                    MOV       R0,#40                   ;东西方向红灯显示时间
  45. LOOP3:     MOV       P1,#01H
  46.            SETB      P1.7               ;点亮东西方向红灯
  47.                    SETB      P1.2                   ;点亮南北方向红灯
  48.                    LCALL     DISPLAY
  49.                    DJNZ      R2,LOOP3
  50.                    MOV       R2,#25
  51.                    DEC       R0
  52.                    DJNZ      R1,LOOP3
  53.                    MOV       R1,#35        ; 南北方向绿灯显示时间
  54. LOOP4:     MOV       P1,#01H
  55.            SETB      P1.5          ; 点亮南北方向绿灯
  56.                    SETB      P1.2                    ; 点亮东西方向红灯
  57.                    LCALL     DISPLAY
  58.                    DJNZ      R2,LOOP4
  59.                    MOV       R2,#25
  60.                    DEC       R0
  61.                    DJNZ      R1,LOOP4
  62.                    MOV       R1,#3                  ;         南北方向黄灯显示时间
  63. LOOP5:     MOV       P1,#01H          
  64.            SETB      P1.6                   ; 点亮南北方向黄灯
  65.                    SETB      P1.2                   ; 点亮东西方向红灯
  66. D2:        LCALL     DISPLAY
  67.            CPL       P1.6
  68.                    DJNZ      R2,D2
  69.                    DEC       R0
  70.                    MOV       R2,#25
  71.                    DJNZ      R1,LOOP5
  72.                    LJMP      dengguang         
  73. ;显示屏显示数字程序
  74. DISPLAY: MOV       A,R0              ;东西方向时间显示                                          
  75.          MOV       B,#10                                                                                 
  76.              DIV       AB                  ;把显示的数十位存在A,个位存在B          
  77.              ADD       A,#10H          ;选通十位                                                         
  78.              MOV       P0,A              ;显示十位                                                  
  79. B0:      JNB        P3.4,B1                                                                                 
  80.          SJMP       B0                                               
  81. B1:      SETB       P3.4                                                                               
  82.          MOV        A,B                                                                                          
  83.                  ADD        A,#20H          ;选通个位                                               
  84.              MOV        P0,A          ;显示个位                                               
  85. B2:      JNB        P3.4,B3                                                                               
  86.          SJMP       B2                                                               
  87. B3:      SETB       P3.4
  88.          MOV        A,R1          ;南北方向时间显示
  89.          MOV        B,#10
  90.              DIV        AB
  91.              ADD        A,#10H          ;选通十位
  92.              MOV        P2,A          ;显示十位
  93. C0:      JNB         P3.4,C1
  94.          SJMP        C0
  95. C1:             SETB        P3.4
  96.          MOV         A,B
  97.                  ADD         A,#20H          ;选通个位
  98.                  MOV         P2,A           ;显示个位
  99. C2:      JNB         P3.4,C3
  100.          SJMP        C2
  101. C3:      SETB        P3.4
  102.          RET
  103. ;设置系统中断服务子程序
  104. INT_0:         LCALL        DISPLAY
  105.          JB           P3.6,L0
  106.                  INC              R1
  107.                  INC          R0
  108.                  CJNE         R1,#99,X0
  109.                  MOV          R1,#00H
  110. X0:      CJNE         R0,#99,X1
  111.          MOV          R0,#00H
  112. X1:      LCALL        DISPLAY
  113.          JNB           P1.0,TUICHU
  114. L0:      JB           P3.7,WAIT1
  115.          DEC          R1
  116.                  DEC          R0
  117.                  CJNE         R1,#00H,X2
  118.                  MOV          R1,#99H
  119. X2:      CJNE         R0,#00H,X3
  120.          MOV          R0,#99H
  121. X3:      LCALL        DISPLAY
  122. WAIT1:   JNB          P1.0,TUICHU
  123. WWAIT:   LJMP         INT_0
  124. TUICHU:  RETI
  125. ;定时子程序
  126. T_0:         MOV          TL0,#0F0H
  127.          MOV          TH0,#0D8H
  128.                  CLR          P3.4
  129.        
  130.                  RETI
  131. ;外部中断1服务字程序
  132. INT_1:   MOV         P1,#85H
  133.          MOV         P0,#30H
  134.                  MOV         P2,#30H
  135.                  JNB         P3.3,INT_1
  136.                  RETI
  137.                  END
  138.                                   
复制代码

所有资料51hei提供下载:
单片机大作业.zip (54.37 KB, 下载次数: 58)


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

使用道具 举报

沙发
ID:784456 发表于 2020-6-20 09:44 | 只看该作者
有Proteus文件吗
回复

使用道具 举报

板凳
ID:784456 发表于 2020-6-21 10:04 | 只看该作者
为什么运行到一半就停了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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