📄 text1.lst
字号:
A51 MACRO ASSEMBLER TEXT1 04/15/2009 22:46:14 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN Text1.OBJ
ASSEMBLER INVOKED BY: F:\Keil\C51\BIN\A51.EXE Text1.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
0000 1 ORG 0000H
0000 021000 2 LJMP START
0003 3 ORG 0003H ;INT0中断矢量
0003 021088 4 LJMP EMERGY
0013 5 ORG 0013H ;INT1中断矢量
0013 0210BC 6 LJMP PASSER
1000 7 ORG 1000H
1000 758160 8 START: MOV SP,#60H
1003 D2A8 9 SETB IE.0 ;允许外部中断0
1005 D2AA 10 SETB IE.2 ;允许外部中断1
1007 C2BA 11 CLR IP.2 ;外部中断0为高先级
1009 D2B8 12 SETB IP.0 ;外部中断1为低优先级
100B C288 13 CLR TCON.0 ;外0触发方式为低电平有效
100D C28A 14 CLR TCON.2 ;外1触发方式为低电平有效
100F C2AF 15 CLR EA ;关中断
1011 75A000 16 MOV P2,#00H
1014 D2AF 17 SETB EA ;开中断
1016 7590DE 18 MOV P1,#11011110B ;A绿,B红
1019 7C1E 19 MOV R4,#30 ;A路口30秒
101B 7D23 20 MOV R5,#35 ;B路口35秒
101D 113C 21 ACALL DELAY
101F 7590DD 22 MOV P1,#11011101B ;A黄,B红
1022 7C05 23 MOV R4,#5
1024 7D05 24 MOV R5,#5
1026 113C 25 ACALL DELAY
1028 7590F3 26 MOV P1,#11110011B ;A红,B绿
102B 7C14 27 MOV R4,#20
102D 7D0F 28 MOV R5,#15
102F 113C 29 ACALL DELAY
1031 7590EB 30 MOV P1,#11101011B ;A红,B黄
1034 7C05 31 MOV R4,#5
1036 7D05 32 MOV R5,#5
1038 113C 33 ACALL DELAY
103A 0100 34 AJMP START
103C 790A 35 DELAY: MOV R1,#10 ;延时子程序,延时1秒
103E 7A50 36 D1: MOV R2,#80
1040 7B64 37 D2: MOV R3,#100
38 ;***************数码管显示*****************************
39 ; *******显示A路口时间*********
1042 EC 40 MOV A,R4 ;显示A路口的时间
1043 75F00A 41 MOV B,#10
1046 84 42 DIV AB
1047 43F0F0 43 ORL B,#0F0H ;B或F0H,个位高四位置1
104A 85F080 44 MOV 80H,B ;A路口时间个位数送P0口
104D D284 45 SETB P0.4 ;关1号管
104F C285 46 CLR P0.5 ;开2号管显示个位
1051 7F64 47 MOV R7,#100
1053 DFFE 48 D4: DJNZ R7,D4 ;数码管显示延时
1055 44F0 49 ORL A,#0F0H
1057 F580 50 MOV 80H,A ;A路口时间十位数送P0口
1059 D285 51 SETB P0.5 ;关2号管
105B C284 52 CLR P0.4 ;开1号管显示十位
105D 7F64 53 MOV R7,#100
105F DFFE 54 D8: DJNZ R7,D8 ;数码管显示延时
55
56 ; *******显示B路口时间*********
1061 ED 57 MOV A,R5 ;显示B路口的时间
1062 75F00A 58 MOV B,#10
A51 MACRO ASSEMBLER TEXT1 04/15/2009 22:46:14 PAGE 2
1065 84 59 DIV AB
1066 43F0F0 60 ORL 0F0H,#0F0H ;个位高四位置1
1069 85F080 61 MOV 80H,0F0H ;B路口时间个位数送P0口
106C D286 62 SETB P0.6 ;关3号管
106E C287 63 CLR P0.7 ;开4号管显示个位
1070 7F64 64 MOV R7,#100
1072 DFFE 65 D5: DJNZ R7,D5 ;数码管显示延时
1074 44F0 66 ORL A,#0F0H
1076 F580 67 MOV 80H,A
1078 D287 68 SETB P0.7 ;关4号管
107A C286 69 CLR P0.6 ;开3号管显示十位
70 ;***************延时1s循环***********************
107C DBFE 71 D3: DJNZ R3,D3
107E DAC0 72 DJNZ R2,D2
1080 D9BC 73 DJNZ R1,D1
1082 DD01 74 DJNZ R5,D6 ;R4或R5减为0时延时返回
1084 22 75 RET
1085 DCB5 76 D6: DJNZ R4,DELAY
1087 22 77 RET
78 ;***************紧急车辆处理***************
1088 309209 79 EMERGY: JNB P1.2,E2 ;A通道为红灯跳到E2,不是红灯判断B通道
108B 30950E 80 JNB P1.5,E1 ;B通道为红灯跳到E1,不是红灯则AB通道各亮5秒黄灯
108E C291 81 CLR P1.1
1090 D290 82 SETB P1.0
1092 7C05 83 MOV R4,#5
1094 7D05 84 E2: MOV R5,#5 ;A通道继续亮5秒红灯,B通道亮5秒黄灯
1096 C294 85 CLR P1.4
1098 D293 86 SETB P1.3
109A 8006 87 SJMP E3
109C 7C05 88 E1: MOV R4,#5 ;A通道亮5秒黄灯,B通道继续亮5秒红灯
109E C291 89 CLR P1.1
10A0 D290 90 SETB P1.0
10A2 113C 91 E3: ACALL DELAY
10A4 7590DB 92 MOV P1,#11011011B ;A红B红20秒
10A7 7C14 93 MOV R4,#20
10A9 7D14 94 MOV R5,#20
10AB 113C 95 ACALL DELAY
10AD D070 96 POP 70H ;修改PC的值
10AF D071 97 POP 71H
10B1 757010 98 MOV 70H,#10H
10B4 757100 99 MOV 71H,#00H
10B7 C071 100 PUSH 71H
10B9 C070 101 PUSH 70H
10BB 32 102 RETI
103 ;***************行人过街处理******************
10BC 20A104 104 PASSER: JB P2.1,LOOP2 ;A有行人
10BF 20A21F 105 JB P2.2,LOOP3 ;B有行人
106 ; ********A行人过街处理*******
10C2 32 107 INTEND: RETI
10C3 3090FC 108 LOOP2: JNB P1.0,INTEND ;A道为绿灯则中断返回
10C6 C2A1 109 CLR P2.1 ;A行人中断选择位清0
10C8 7590EB 110 MOV P1,#11101011B ;A黄B黄秒
10CB 7C05 111 MOV R4,#5
10CD 7D05 112 MOV R5,#5
10CF 113C 113 ACALL DELAY
10D1 D070 114 POP 70H ;修改PC的值
10D3 D071 115 POP 71H
10D5 757010 116 MOV 70H,#10H
10D8 757100 117 MOV 71H,#00H
10DB C071 118 PUSH 71H
10DD C070 119 PUSH 70H
10DF 01C2 120 AJMP INTEND
121 ; *******B行人过街处理*********
10E1 3093DE 122 LOOP3: JNB P1.3,INTEND ;B道为绿灯则中断返回
10E4 C282 123 CLR P0.2 ;B行人中断选择位清0
10E6 7590DD 124 MOV P1,#11011101B ;A黄B黄5秒
A51 MACRO ASSEMBLER TEXT1 04/15/2009 22:46:14 PAGE 3
10E9 7C05 125 MOV R4,#5
10EB 7D05 126 MOV R5,#5
10ED 113C 127 ACALL DELAY
10EF 7590F3 128 MOV P1,#11110011B ;A红B绿15秒
10F2 7C14 129 MOV R4,#20
10F4 7D0F 130 MOV R5,#15
10F6 113C 131 ACALL DELAY
10F8 7590EB 132 MOV P1,#11101011B ;A红B黄5秒
10FB 7C05 133 MOV R4,#5
10FD 7D05 134 MOV R5,#5
10FF 113C 135 ACALL DELAY
1101 D070 136 POP 70H ;修改PC的值
1103 D071 137 POP 71H
1105 757010 138 MOV 70H,#10H
1108 757100 139 MOV 71H,#00H
110B C071 140 PUSH 71H
110D C070 141 PUSH 70H
110F 01C2 142 AJMP INTEND
143 END
;注紧急车辆按钮接P3.2,AB行人按钮接P3.3
A51 MACRO ASSEMBLER TEXT1 04/15/2009 22:46:14 PAGE 4
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
B. . . . . . . . . D ADDR 00F0H A
D1 . . . . . . . . C ADDR 103EH A
D2 . . . . . . . . C ADDR 1040H A
D3 . . . . . . . . C ADDR 107CH A
D4 . . . . . . . . C ADDR 1053H A
D5 . . . . . . . . C ADDR 1072H A
D6 . . . . . . . . C ADDR 1085H A
D8 . . . . . . . . C ADDR 105FH A
DELAY. . . . . . . C ADDR 103CH A
E1 . . . . . . . . C ADDR 109CH A
E2 . . . . . . . . C ADDR 1094H A
E3 . . . . . . . . C ADDR 10A2H A
EA . . . . . . . . B ADDR 00A8H.7 A
EMERGY . . . . . . C ADDR 1088H A
IE . . . . . . . . D ADDR 00A8H A
INTEND . . . . . . C ADDR 10C2H A
IP . . . . . . . . D ADDR 00B8H A
LOOP2. . . . . . . C ADDR 10C3H A
LOOP3. . . . . . . C ADDR 10E1H A
P0 . . . . . . . . D ADDR 0080H A
P1 . . . . . . . . D ADDR 0090H A
P2 . . . . . . . . D ADDR 00A0H A
PASSER . . . . . . C ADDR 10BCH A
SP . . . . . . . . D ADDR 0081H A
START. . . . . . . C ADDR 1000H A
TCON . . . . . . . D ADDR 0088H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -