📄 remotest.lst
字号:
A51 MACRO ASSEMBLER REMOTEST 08/05/2008 20:09:46 PAGE 1
MACRO ASSEMBLER A51 V7.08a
OBJECT MODULE PLACED IN remotest.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE remotest.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;*****************************************************************************************
2 ;名称:遥控器成品自动测试架
3 ;文件:remoter_auto_test
4 ;作者:张绍斌 shaobinz@163.com
5 ;日期:2008/05/28
6 ;版本:Ver1.0
7
8
9 ;*****************************************************************************************
10
0090 11 TEST_ON BIT P1.0
0091 12 BELL BIT P1.1
0092 13 CD_4INH BIT P1.2
0093 14 CD_4A BIT P1.3
0094 15 CD_4B BIT P1.4
0095 16 CD_4C BIT P1.5
0096 17 CD_4D BIT P1.6
18
0097 19 CD_3INH BIT P1.7
00B0 20 CD_3A BIT P3.0
00B1 21 CD_3B BIT P3.1
00B3 22 CD_3C BIT P3.3
00B4 23 CD_3D BIT P3.4
24
00B5 25 CD_2INH BIT P3.5
00B6 26 CD_2A BIT P3.6
00B7 27 CD_2B BIT P3.7
00A0 28 CD_2C BIT P2.0
00A1 29 CD_2D BIT P2.1
30
00A2 31 CD_1INH BIT P2.2
00A3 32 CD_1A BIT P2.3
00A4 33 CD_1B BIT P2.4
00A5 34 CD_1C BIT P2.5
00A6 35 CD_1D BIT P2.6
36
0087 37 FIRST BIT P0.7
00A7 38 SECOND BIT P2.7
39
40
41
F830 42 TMRVAR EQU 63536 ;2MS
0030 43 DISPBUF1 EQU 30H
0031 44 DISPBUF2 EQU 31H
45
0032 46 CH_NUMBER EQU 32H
0033 47 SELECT_TIME EQU 33H
0034 48 FLASH_TIME EQU 34H
0035 49 OFF_TIME EQU 35H
0036 50 COUNTER EQU 36H
51
00B1 52 mS20H EQU 0B1H ;定时器0初值
00E0 53 mS20L EQU 0E0H ;12M 20MS;45536=B1E0H 65536-45536=20000US=20MS
54
55
56
57
0020 58 ALL_FLAG DATA 20H
A51 MACRO ASSEMBLER REMOTEST 08/05/2008 20:09:46 PAGE 2
0000 59 START_FLAG BIT ALL_FLAG.0H
0001 60 FLASH_FLAG BIT ALL_FLAG.1H
0002 61 GO_OF_FLAG BIT ALL_FLAG.2H
62
0000 63 DA_CHAR_O EQU 00 ;"O"
0011 64 DA_CHAR_G EQU 17 ;"G"
000F 65 DA_CHAR_F EQU 15 ;"F"
000D 66 DA_CHAR_T EQU 13 ;"D"
0010 67 DA_CHAR_NULL EQU 16 ;
68
0060 69 STACK EQU 60H
70
71
72 ;/////////////////////////////////////////////////////////////////////////////////////////
0000 73 ORG 00H
0000 801B 74 JMP START ;主程序入口
75
0003 76 ORG 03H
0003 32 77 RETI ;外中断0入口
78
000B 79 ORG 0BH
000B A1C2 80 JMP TIME0 ;定时器0
81
0013 82 ORG 13H
0013 32 83 RETI ;外中断1入口
84
001B 85 ORG 1BH
001B A1E3 86 JMP TIME1 ;定时器1
87
001D 88 START:
89
001D 78FF 90 MOV R0 ,#0FFH
001F E4 91 CLR A
92
0020 93 START1:
0020 F6 94 MOV @R0 ,A
0021 D8FD 95 DJNZ R0, START1 ;CLEAR ALL RAM
96
97
98
0023 758160 99 MOV SP, #STACK
0026 75A80A 100 MOV IE,#00001010B ;EA,X,ET2,ES,ET1,EX1,ET0,EX0
0029 758911 101 MOV TMOD,#11H ;TWO 16BIT TIMER
002C 75B809 102 MOV IP,#00001001B ;X,X,PT2,PS,PT1,PX1,PT0,PX0
103
002F 7580FF 104 MOV P0,#0FFH
0032 758DF8 105 MOV Th1,#HIGH(TMRVAR)
0035 758B30 106 MOV TL1,#LOW(TMRVAR)
107
0038 758CB1 108 MOV TH0,#MS20H
003B 758AB1 109 MOV TL0,#MS20H
110
003E 7580FF 111 mov p0,#0ffh
0041 7590FF 112 mov p1,#0ffh
0044 75A0FF 113 mov p2,#0ffh
0047 75B0FF 114 mov p3,#0ffh
115
116
004A D2A2 117 SETB CD_1INH ;全部关掉
004C D2B5 118 SETB CD_2INH
004E D297 119 SETB CD_3INH
0050 D292 120 SETB CD_4INH
121
122 ; MOV DISPBUF1, #DA_CHAR_O
123 ; MOV DISPBUF2, #DA_CHAR_G
124
A51 MACRO ASSEMBLER REMOTEST 08/05/2008 20:09:46 PAGE 3
0052 D28E 125 SETB TR1
0054 D28C 126 SETB TR0
0056 D2AF 127 SETB EA
128
0058 118F 129 CALL BEEP
005A 118F 130 CALL BEEP
131
132
005C 133 LOOP:
005C 200027 134 JB START_FLAG,LOOP1
005F 200209 135 JB GO_OF_FLAG, LOOP_A
136
0062 753000 137 MOV DISPBUF1, #DA_CHAR_O
0065 753111 138 MOV DISPBUF2, #DA_CHAR_G ;"GO"
0068 02007C 139 LJMP LOOP0
006B 140 LOOP_A:
006B 75300F 141 MOV DISPBUF1, #DA_CHAR_F
006E 753100 142 MOV DISPBUF2, #DA_CHAR_O ;"of"
0071 753532 143 MOV OFF_TIME, #50
144
0074 145 LOOP_B:
0074 E535 146 MOV A, OFF_TIME
0076 70FC 147 JNZ LOOP_B
0078 C202 148 CLR GO_OF_FLAG
007A 80E0 149 JMP LOOP
150
151
152
007C 153 LOOP0:
154
007C 2090DD 155 JB TEST_ON, LOOP ;测试
007F 11D1 156 CALL DELAY_10MS
0081 2090D8 157 JB TEST_ON, LOOP ;去抖
0084 D200 158 SETB START_FLAG
159
0086 160 LOOP1:
161
0086 119C 162 CALL DISPLAY_NUMBER
0088 11DC 163 CALL SELECT_CH ;CH_NUM出口数据
008A 11F7 164 CALL CH_WORK
165
166
008C 02005C 167 LJMP LOOP
168
169
170
171 ;//////////////////////////////////////////////////////////////////////////////////////////
008F 172 BEEP:
008F D291 173 setb bell
0091 7EC8 174 MOV R6,#200
0093 7F7D 175 DEX1: MOV R7,#125
0095 176 DEX2:
0095 DFFE 177 DJNZ R7,DEX2
0097 DEFA 178 DJNZ R6,dex1
0099 C291 179 clr bell
009B 22 180 RET
181 ;//////////////////////////////////////////////////////////////////////////////////////////
009C 182 DISPLAY_NUMBER:
183
009C E532 184 MOV A,CH_NUMBER ;十六进转十进制子程序
009E 75F064 185 MOV B,#100
00A1 84 186 DIV AB
00A2 E5F0 187 mov a,b
00A4 75F00A 188 mov b,#10
00A7 84 189 div ab
00A8 F531 190 MOV dispbuf2,A ;把十位数值存入高位显示缓冲区
A51 MACRO ASSEMBLER REMOTEST 08/05/2008 20:09:46 PAGE 4
00AA 85F030 191 MOV dispbuf1,B ;把个位数值存入低位显示缓冲区
00AD 22 192 RET
193
194 ;------------------------------------------------------------------------------------------
---------
195 ;不需要很精确的一些延时子程序,12M
00AE 196 DELAY_5SEC:; ;5S延时
00AE 7C32 197 MOV R4,#50
00B0 800E 198 SJMP DELAY100MS
00B2 199 DELAY_2SEC:; ;2S延时
00B2 7C14 200 MOV R4,#20
00B4 800A 201 SJMP DELAY100MS
00B6 202 DELAY_1SEC: ;1S延时
00B6 7C0A 203 MOV R4,#10
00B8 8006 204 SJMP DELAY100MS
00BA 205 DELAY_500MS: ;500MS延时
00BA 7C05 206 MOV R4,#05
00BC 8002 207 SJMP DELAY100MS
00BE 208 DELAY_200MS: ;200MS延时
00BE 7C02 209 MOV R4,#02
00C0 210 DELAY100MS:
00C0 11C5 211 CALL DELAY_100MS
00C2 DCFC 212 DJNZ R4,DELAY100MS
00C4 22 213 RET
214
00C5 215 DELAY_100MS:
00C5 7A64 216 MOV R2,#100 ;100MS延时
00C7 800A 217 SJMP DELAY_1MS
00C9 218 DELAY_50MS:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -