⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 交通灯设计.lst

📁 交通灯程序
💻 LST
字号:
A51 MACRO ASSEMBLER  交蚠灯蒧计                                                           04/06/2009 15:45:00 PAGE     1


MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN 交通灯设计.OBJ
ASSEMBLER INVOKED BY: D:\C51\BIN\A51.EXE 交通灯设计.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

0000                   1                ORG 0000H         ;主程序的入口地址
0000 020013            2            LJMP MAIN         ;跳转到主程序的开始处
0003                   3            ORG 0003H         ;外部中断0的中断程序入口地址          
000B                   4            ORG 000BH         ;定时器0的中断程序入口地址
000B 0200BE            5            LJMP T0_INT           ;跳转到中断服务程序处
0013                   6            ORG 0013H         ;外部中断1的中断程序入口地址      
0013 758150            7     MAIN : MOV SP,#50H
0016 75A88E            8            MOV IE,#8EH       ;CPU开中断,允许T0中断,T1中断和外部中断1中断
0019 758951            9            MOV TMOD,#51H     ;设置T1为计数方式,T0为定时方式,且都工作于模式1
001C 758D00           10            MOV TH1,#00H      ;T1计数器清零
001F 758B00           11            MOV TL1,#00H
0022 D28E             12            SETB TR1          ;启动T1计时器
0024 D2AA             13            SETB EX1          ;允许INT1中断
0026 D28A             14            SETB IT1          ;选择边沿触发方式
0028 900003           15            MOV DPTR ,#0003H
002B 7480             16            MOV A, #80H      ;给8255赋初值,8255工作于方式0
002D F0               17            MOVX @DPTR, A
002E 20B121           18     AGAIN: JB P3.1,N0       ;判断是否要设定东西方向红绿灯时间的初值,若P3.1为1 则跳转
0031 E590             19            MOV A,P1     
0033 20970C           20            JB P1.7,RED      ;判断P1.7是否为1,若为1则设定红灯时间,否则设定绿灯时间    
0036 7800             21            MOV R0,#00H      ;R0清零
0038 F8               22            MOV R0,A         ;存入东西方向绿灯初始时间
0039 FB               23            MOV R3,A
003A 1200D3           24            LCALL DISP1
003D 120141           25            LCALL DELAY
0040 012E             26            AJMP AGAIN
0042 E590             27     RED:   MOV A,P1
0044 547F             28            ANL A,#7FH      ;P1.7置0
0046 7F00             29            MOV R7,#00H     ;R7清零
0048 FF               30            MOV R7,A        ;存入东西方向红灯初始时间
0049 FB               31            MOV R3,A
004A 1200D3           32            LCALL DISP1
004D 120141           33            LCALL DELAY
0050 012E             34            AJMP AGAIN
                      35     ;-------------------------------------------
0052 D28C             36     N0:    SETB TR0          ;启动T0计时器
0054 8F76             37            MOV 76H,R7        ;红灯时间存入76H
0056 E576             38     N00:   MOV A,76H        ;东西方向禁止,南北方向通行
0058 FB               39            MOV R3,A       
0059 900000           40            MOV DPTR,#0000H  ;置8255A口,东西方向红灯亮,南北方向绿灯亮
005C 74DD             41            MOV A,#0DDH
005E F0               42            MOVX @DPTR, A
005F 20A04F           43     N01:   JB P2.0,B0
0062 D2B0             44     N02:   SETB P3.0
0064 BB00F8           45            CJNE R3,#00H,N01  ;比较R3中的值是否为0,不为0转到当前指令处执行
                      46     ;------黄灯闪烁5秒程序------
0067 D2B0             47     N1:    SETB P3.0
0069 7B05             48            MOV R3,#05H
006B 900000           49            MOV DPTR,#0000H  ;置8255A口,东西,南北方向黄灯亮
006E 74D4             50            MOV A,#0D4H
0070 F0               51            MOVX @DPTR,A
0071 7C00             52     N11:   MOV R4,#00H
0073 BC7DFD           53     N12:   CJNE R4,#7DH,$    ;黄灯持续亮0.5秒
0076 900000           54     N13:   MOV DPTR,#0000H   ; 置8255A口,南北方向黄灯灭
0079 74DD             55            MOV A,#0DDH
007B F0               56            MOVX @DPTR,A
007C 7C00             57     N14:   MOV R4,#00H
007E BC7DFD           58            CJNE R4,#7DH,$    ;黄灯持续灭0.5秒
A51 MACRO ASSEMBLER  交蚠灯蒧计                                                           04/06/2009 15:45:00 PAGE     2

0081 BB00E3           59            CJNE R3,#00H,N1   ;闪烁时间达5秒则退出
                      60     ;------------------------------------------------------------
0084 7F00             61     N2:    MOV R7,#00H
0086 E8               62            MOV A,R0   ;东西通行,南北禁止
0087 FB               63            MOV R3,A
0088 900000           64            MOV DPTR,#0000H ; 置8255A口,东西方向绿灯亮,南北方向红灯亮
008B 74EB             65            MOV A,#0EBH
008D F0               66            MOVX @DPTR,A
008E 20A070           67     N21:   JB P2.0,T03
                      68            
0091 BB00FA           69     N22:   CJNE R3,#00H,N21
                      70     ;------黄灯闪烁5秒程序------
0094 7B05             71     N3:    MOV R3,#05H
0096 900000           72            MOV DPTR,#0000H    ;置8255A口,东西,南北方向黄灯亮
0099 74E2             73            MOV A,#0E2H
009B F0               74            MOVX @DPTR,A
009C 7C00             75     N31:   MOV R4,#00H
009E BC7DFD           76            CJNE R4,#7DH,$     ;黄灯持续亮0.5秒
00A1 900000           77     N32:   MOV DPTR,#0000H  ; 置8255A口,南北方向黄灯灭
00A4 74EB             78            MOV A,#0EBH
00A6 F0               79            MOVX @DPTR,A
00A7 7C00             80     N33:   MOV R4,#00H
00A9 BC7DFD           81            CJNE R4,#7DH,$     ;黄灯持续灭0.5秒
00AC BB00E5           82            CJNE R3,#00H,N3   ;闪烁时间达5秒则退出
00AF 80A5             83            SJMP N00
                      84     ;------闯红灯报警程序------
00B1 7A03             85     B0:    MOV R2,#03H        ;报警持续时间3秒
00B3 EB               86     B01:   MOV A,R3
00B4 60B1             87            JZ N1              ;若倒计时完毕,不再报警
00B6 C2B0             88            CLR P3.0           ;报警 
00B8 BA00F8           89            CJNE R2,#00H,B01   ;判断3秒是否结束
00BB 80A5             90            SJMP  N02
                      91     ;------1秒延时子程序-------
00BD 32               92     N7:    RETI
00BE 758A9A           93     T0_INT:MOV TL0,#9AH       ;给定时器T0送定时10ms的初值
00C1 758CF1           94            MOV TH0,#0F1H   
00C4 0C               95            INC R4
00C5 0D               96            INC R5
00C6 BDFA04           97            CJNE R5,#0FAH,T01  ;判断延时是否够一秒,不够则调用显示子程序
00C9 7D00             98            MOV R5,#00H        ;R5清零
00CB 1B               99            DEC R3             ;倒计时初值减一
00CC 1A              100            DEC R2             ;报警初值减一
00CD 11D0            101     T01:   ACALL DISP         ;调用显示子程序
00CF 32              102            RETI               ;中断返回
                     103     ;------显示子程序------
00D0 30A43E          104     DISP:  JNB P2.4,T02
00D3 75F00A          105     DISP1: MOV B,#0AH
00D6 EB              106            MOV A,R3            ;R3中值二转十显示转换
00D7 84              107            DIV AB
00D8 F579            108            MOV 79H,A
00DA 85F07A          109            MOV 7AH,B
00DD E579            110     DIS:   MOV A,79H           ;显示十位
00DF 90014B          111            MOV DPTR,#TAB
00E2 93              112            MOVC A,@A+DPTR
00E3 900002          113            MOV DPTR,#0002H
00E6 F0              114            MOVX @DPTR,A
00E7 900001          115            MOV DPTR,#0001H
00EA 74F7            116            MOV A,#0F7H
00EC F0              117            MOVX @DPTR,A
00ED 120141          118            LCALL  DELAY
00F0 E57A            119     DS2:   MOV A,7AH           ;显示个位
00F2 90014B          120            MOV DPTR,#TAB 
00F5 93              121            MOVC A,@A+DPTR
00F6 900002          122            MOV DPTR,#0002H
00F9 F0              123            MOVX @DPTR,A
00FA 900001          124            MOV DPTR,#0001H
A51 MACRO ASSEMBLER  交蚠灯蒧计                                                           04/06/2009 15:45:00 PAGE     3

00FD 74FB            125            MOV A,#0FBH
00FF F0              126            MOVX @DPTR,A
0100 22              127            RET
                     128     ;------东西方向车流量检测程序------
0101 EB              129     T03:   MOV A,R3
0102 9400            130            SUBB A,#00H          ;若绿灯倒计时完毕,不再检测车流量
0104 608E            131            JZ   N3              
0106 20A0F8          132            JB P2.0,T03
0109 0F              133            INC R7                       
010A BF6402          134            CJNE R7,#64H,E1   
010D 7F00            135            MOV R7,#00H          ;中断到100次则清零
010F 8080            136     E1:    SJMP N22
                     137     ;------东西方向车流量显示程序------
0111 75F00A          138     T02:   MOV B,#0AH
0114 EF              139     MOV    A,R7                ;R7中值二转十显示转换
0115 84              140            DIV AB
0116 F579            141            MOV 79H,A
0118 85F07A          142            MOV 7AH,B
011B E579            143     DIS3:  MOV A,79H           ;显示十位
011D 90014B          144            MOV DPTR,#TAB
0120 93              145            MOVC A,@A+DPTR
0121 900002          146            MOV DPTR,#0002H
0124 F0              147            MOVX @DPTR,A
0125 900001          148            MOV DPTR,#0001H
0128 74F7            149            MOV A,#0F7H
012A F0              150            MOVX @DPTR,A
012B 120141          151            LCALL DELAY
012E E57A            152     DS4:   MOV A,7AH           ;显示个位
0130 90014B          153            MOV DPTR,#TAB 
0133 93              154            MOVC A,@A+DPTR
0134 900002          155            MOV DPTR,#0002H
0137 F0              156            MOVX @DPTR,A
0138 900001          157            MOV DPTR,#0001H
013B 74FB            158            MOV A,#0FBH
013D F0              159            MOVX @DPTR,A
013E 0200BD          160            LJMP N7
                     161     ;------延时4MS子程序----------
0141 790A            162     DELAY: MOV  R1,#0AH
0143 7E64            163     LOOP:  MOV  R6,#64H
0145 00              164            NOP
0146 DEFE            165     LOOP1: DJNZ R6,LOOP1
0148 D9F9            166            DJNZ  R1,LOOP
014A 22              167            RET         
                     168     ;------字符表------
014B 3F065B4F        169     TAB:   DB  3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH 
014F 666D7D07                
0153 7F6F                    
                     170            END
                                    
                             
A51 MACRO ASSEMBLER  交蚠灯蒧计                                                           04/06/2009 15:45:00 PAGE     4

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

AGAIN. . . . . . .  C ADDR   002EH   A   
B. . . . . . . . .  D ADDR   00F0H   A   
B0 . . . . . . . .  C ADDR   00B1H   A   
B01. . . . . . . .  C ADDR   00B3H   A   
DELAY. . . . . . .  C ADDR   0141H   A   
DIS. . . . . . . .  C ADDR   00DDH   A   
DIS3 . . . . . . .  C ADDR   011BH   A   
DISP . . . . . . .  C ADDR   00D0H   A   
DISP1. . . . . . .  C ADDR   00D3H   A   
DS2. . . . . . . .  C ADDR   00F0H   A   
DS4. . . . . . . .  C ADDR   012EH   A   
E1 . . . . . . . .  C ADDR   010FH   A   
EX1. . . . . . . .  B ADDR   00A8H.2 A   
IE . . . . . . . .  D ADDR   00A8H   A   
IT1. . . . . . . .  B ADDR   0088H.2 A   
LOOP . . . . . . .  C ADDR   0143H   A   
LOOP1. . . . . . .  C ADDR   0146H   A   
MAIN . . . . . . .  C ADDR   0013H   A   
N0 . . . . . . . .  C ADDR   0052H   A   
N00. . . . . . . .  C ADDR   0056H   A   
N01. . . . . . . .  C ADDR   005FH   A   
N02. . . . . . . .  C ADDR   0062H   A   
N1 . . . . . . . .  C ADDR   0067H   A   
N11. . . . . . . .  C ADDR   0071H   A   
N12. . . . . . . .  C ADDR   0073H   A   
N13. . . . . . . .  C ADDR   0076H   A   
N14. . . . . . . .  C ADDR   007CH   A   
N2 . . . . . . . .  C ADDR   0084H   A   
N21. . . . . . . .  C ADDR   008EH   A   
N22. . . . . . . .  C ADDR   0091H   A   
N3 . . . . . . . .  C ADDR   0094H   A   
N31. . . . . . . .  C ADDR   009CH   A   
N32. . . . . . . .  C ADDR   00A1H   A   
N33. . . . . . . .  C ADDR   00A7H   A   
N7 . . . . . . . .  C ADDR   00BDH   A   
P1 . . . . . . . .  D ADDR   0090H   A   
P2 . . . . . . . .  D ADDR   00A0H   A   
P3 . . . . . . . .  D ADDR   00B0H   A   
RED. . . . . . . .  C ADDR   0042H   A   
SP . . . . . . . .  D ADDR   0081H   A   
T01. . . . . . . .  C ADDR   00CDH   A   
T02. . . . . . . .  C ADDR   0111H   A   
T03. . . . . . . .  C ADDR   0101H   A   
T0_INT . . . . . .  C ADDR   00BEH   A   
TAB. . . . . . . .  C ADDR   014BH   A   
TH0. . . . . . . .  D ADDR   008CH   A   
TH1. . . . . . . .  D ADDR   008DH   A   
TL0. . . . . . . .  D ADDR   008AH   A   
TL1. . . . . . . .  D ADDR   008BH   A   
TMOD . . . . . . .  D ADDR   0089H   A   
TR0. . . . . . . .  B ADDR   0088H.4 A   
TR1. . . . . . . .  B ADDR   0088H.6 A   


REGISTER BANK(S) USED: 0 

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -