📄 122.lst
字号:
A51 MACRO ASSEMBLER 122 07/06/07 23:08:40 PAGE 1
DOS MACRO ASSEMBLER A51 X4.86
OBJECT MODULE PLACED IN 122.O
ASSEMBLER INVOKED BY: C:\OMF51\BIN\A51.EXE M:\A\122.AQD DB SB XR RB(0) PR(122.LST) OJ(122.O)
LOC OBJ LINE SOURCE
1 ;******************************************************************
2 ; 电信二班 郑尹铭 2005309214
3 ; 电信一班 胡庆在 2005309123
4 ;
5 ; 交通灯控制程序
6 ;******************************************************************
7
0000 8 ORG 0000H
0000 020030 9 LJMP 0030H
10
0030 11 ORG 0030H
0030 758160 12 JOD0: MOV SP,#60H
0033 90FFDB 13 MOV DPTR,#0FFDBH
0036 7480 14 MOV A,#80H ;8255工作方式设置
0038 F0 15 MOVX @DPTR,A ;8255初始化
16
0039 78DC 17 MOV R0,#0DCH ;字段地址装入R0
003B 79DD 18 MOV R1,#0DDH ;字位地址装入R1
003D 75320A 19 MOV 32H,#0AH
20
21
0040 758901 22 MOV TMOD,#01H ;定时方式设置
0043 758C3C 23 MOV TH0,#3CH ;装入初值
0046 758AB0 24 MOV TL0,#0B0H
25 ;******************************************************************
26 ; 初始化红绿灯,全亮
27 ;******************************************************************
28
0049 90FFD8 29 MOV DPTR,#0FFD8H ;东西入口地址
004C 74C0 30 MOV A,#0C0H
004E F0 31 MOVX @DPTR,A ;东西灯全亮
004F A3 32 INC DPTR ;FFD9南北入口地址
0050 74C0 33 MOV A,#0C0H
0052 F0 34 MOVX @DPTR,A ;南北灯全亮
0053 D28C 35 SETB TR0 ;开定时
36
37 ;******************************************************************
38 ; 东西绿灯,南北红灯段
39 ;******************************************************************
0055 90FFD8 40 JOD3: MOV DPTR,#0FFD8H
0058 74ED 41 MOV A,#0EDH ;东西绿灯
005A F0 42 MOVX @DPTR,A
005B A3 43 INC DPTR
005C 74F6 44 MOV A,#0F6H ;南北红灯
005E F0 45 MOVX @DPTR,A
005F 7A15 46 MOV R2,#15H ;绿灯秒数装入
0061 7B20 47 MOV R3,#20H ;红灯秒数装入
0063 C200 48 CLR 00H ;标志位
0065 0200DF 49 LJMP LOOP0 ;跳转到数码管扫描,等待定时
50 ;******************************************************************
51 ; 东西黄灯闪烁段
52 ;******************************************************************
0068 7C05 53 JOD1: MOV R4,#05H ;闪烁次数
006A 7A05 54 MOV R2,#05H ;闪烁秒数
006C D201 55 SETB 01H ;闪烁标志位
56
006E D202 57 JOD5: SETB 02H ;黄灯亮标志位
0070 90FFD8 58 MOV DPTR,#0FFD8H
A51 MACRO ASSEMBLER 122 07/06/07 23:08:40 PAGE 2
0073 74DB 59 MOV A,#0DBH ;东西黄灯亮
0075 F0 60 MOVX @DPTR,A
0076 A3 61 INC DPTR
0077 74F6 62 MOV A,#0F6H ;南北红灯亮
0079 F0 63 MOVX @DPTR,A
007A 1C 64 DEC R4 ;闪烁次数减一
007B DC03 65 DJNZ R4,DX1 ;判断是否中止闪烁
007D 0200DF 66 LJMP LOOP0 ;调转到扫描
0080 C201 67 DX1: CLR 01H ;停止闪烁标志位
0082 0200DF 68 LJMP LOOP0 ;调转到扫描
69
70
0085 C202 71 JOD6: CLR 02H ;黄灯灭标志位
0087 90FFD8 72 MOV DPTR,#0FFD8H
008A 74FF 73 MOV A,#0FFH ;东西黄灯灭
008C F0 74 MOVX @DPTR,A
008D A3 75 INC DPTR
008E 74F6 76 MOV A,#0F6H ;南北红灯亮
0090 F0 77 MOVX @DPTR,A
0091 1C 78 DEC R4 ;闪烁次数减一
0092 DC03 79 DJNZ R4,DX2 ;判断是否中止闪烁
0094 0200DF 80 LJMP LOOP0 ;调转到扫描
0097 C201 81 DX2: CLR 01H ;停止闪烁标志位
0099 0200DF 82 LJMP LOOP0 ;调转到扫描
83
84 ;******************************************************************
85 ; 东西红灯,南北绿灯段
86 ;******************************************************************
87
88
009C 90FFD8 89 JOD4: MOV DPTR,#0FFD8H
009F 74F6 90 MOV A,#0F6H ;东西红灯亮
00A1 F0 91 MOVX @DPTR,A
00A2 A3 92 INC DPTR
00A3 74ED 93 MOV A,#0EDH ;南北绿灯亮
00A5 F0 94 MOVX @DPTR,A
00A6 7A20 95 MOV R2,#20H
00A8 7B15 96 MOV R3,#15H
00AA D200 97 SETB 00H
00AC 0200DF 98 LJMP LOOP0 ;延时
99
100 ;******************************************************************
101 ; 南北绿灯闪烁段
102 ;******************************************************************
103
00AF 7C05 104 JOD7: MOV R4,#05H ;闪烁次数
00B1 7B05 105 MOV R3,#05H ;黄灯秒数
00B3 D201 106 SETB 01H ;黄灯标志位
107
00B5 90FFD8 108 JOD2: MOV DPTR,#0FFD8H
00B8 74F6 109 MOV A,#0F6H ;东西红灯亮
00BA F0 110 MOVX @DPTR,A
00BB A3 111 INC DPTR
00BC 74DB 112 MOV A,#0DBH ;南北黄灯亮
00BE F0 113 MOVX @DPTR,A
00BF 1C 114 DEC R4 ;闪烁次数减一
00C0 DC03 115 DJNZ R4,DX3 ;判断是否中止闪烁
00C2 0200DF 116 LJMP LOOP0 ;调转到扫描
00C5 C201 117 DX3: CLR 01H ;停止闪烁标志位
00C7 0200DF 118 LJMP LOOP0 ;调转到扫描
119
120
00CA 90FFD8 121 JOD8: MOV DPTR,#0FFD8H
00CD 74F6 122 MOV A,#0F6H ;东西红灯亮
00CF F0 123 MOVX @DPTR,A
00D0 A3 124 INC DPTR
A51 MACRO ASSEMBLER 122 07/06/07 23:08:40 PAGE 3
00D1 74FF 125 MOV A,#0FFH ;南北黄灯灭
00D3 F0 126 MOVX @DPTR,A
00D4 1C 127 DEC R4 ;闪烁次数减一
00D5 DC03 128 DJNZ R4,DX4 ;判断是否中止闪烁
00D7 0200DF 129 LJMP LOOP0 ;调转到扫描
00DA C201 130 DX4: CLR 01H ;停止闪烁标志位
00DC 0200DF 131 LJMP LOOP0 ;调转到扫描
132
133
134
00DF 900174 135 LOOP0: MOV DPTR,#TAB ;装入字段表首地址
136
137 ;******************************************************************
138 ; 东西个位数码管扫描
139 ;******************************************************************
140
00E2 EA 141 LOOP1: MOV A,R2 ;秒数装入A
00E3 540F 142 ANL A,#0FH ;取出个位数
00E5 93 143 MOVC A,@A+DPTR ;查表
00E6 F580 144 MOV P0,A ;设置字位码
00E8 75A0F7 145 MOV P2,#11110111B ;送字位码
00EB 75A0FF 146 MOV P2,#0FFH
147 ;******************************************************************
148 ; 东西十位数码管扫描
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -