📄 test.lst
字号:
A51 MACRO ASSEMBLER TEST 21/05/03 15:23:15 PAGE 1
DOS MACRO ASSEMBLER A51 X4.86
OBJECT MODULE PLACED IN TEST.OBJ
ASSEMBLER INVOKED BY: C:\C51EVAL\BIN\A51.EXE TEST.A51 DB EP
LOC OBJ LINE SOURCE
1 ;MCS51实验板测试程序 SANYANG 2003/5/17
2 ;依次循环按动 SW1~3,可检验实验板资源状况
3 ;1、LED交替测试;显示4个灯,再按显示另4个灯
4 ;2、74HC164及数码管测试 ;显示164
5 ;3、24c02读写测试;显示2401
6 ;4、93c46读写测试;显示9346
7 ;5、RS232闭环收发测试(需短路232口2-3脚);显示232
8 ;6、DA输出2.5V测试;显示dA25
9 ;7、DA输出5V测试;显示dA50
10 ;8、声测试,无显示
11 ;9、返回1循环
12 ;**************************************************************
13 ;开关
00B2 14 SW1 BIT P3.2
00B3 15 SW2 BIT P3.3
00B4 16 SW3 BIT P3.4
00B7 17 SPK BIT P3.7
18 ;93
00B6 19 DIO BIT P3.6 ;93DIO
00B5 20 CLK BIT P3.5 ;93CLK
00B4 21 CS BIT P3.4 ;与+键公用
0020 22 ADDH EQU 20H ;OP指令
0021 23 ADDL EQU 21H ;OP指令+地址
0022 24 _93DATA EQU 22H ;数据
0023 25 _93ADD EQU 23H ;地址
26 ;显示
0094 27 XSDAT BIT P1.4 ;定义驱动74164的数据脚为P1.4
0095 28 XSCLK BIT P1.5 ;74164的时钟
0090 29 GW BIT P1.0 ;个位显示控制脚
0091 30 SW BIT P1.1 ;十位
0092 31 BW BIT P1.2 ;百位
0093 32 QW BIT P1.3 ;千位
0030 33 SJGW EQU 30H ;显示数据存储器
0031 34 SJSW EQU 31H
0032 35 SJBW EQU 32H
0033 36 SJQW EQU 33H
37 ;24
0097 38 SDA BIT P1.7
0096 39 SCL BIT P1.6
0020 40 I2CADD EQU 20H ;I2C的地址
0021 41 JSTEM EQU 21H ;I2C的数据
42 ;RS232
0020 43 TEMP EQU 20H
44
0000 758150 45 MOV SP,#50H
46 ;***********************************************
0003 7AFA 47 good: MOV R2,#250 ;响250个周期
0005 7B05 48 mov r3,#5
0007 C2B7 49 goo1: cLR SPK ;使V1 9015导通
0009 3175 50 ACALL SOUD10MS ;延时
000B D2B7 51 SETB SPK ;使V1 9015截止
000D 317E 52 ACALL SOUD1MS
000F DAF6 53 DJNZ R2,goo1
0011 DBF4 54 djnz r3,goo1
55
0013 753312 56 goo2: MOV SJQW,#12h ;G
0016 753213 57 MOV SJBW,#13h ;o
0019 753113 58 MOV SJSW,#13h ;o
A51 MACRO ASSEMBLER TEST 21/05/03 15:23:15 PAGE 2
001C 753014 59 MOV SJGW,#14h ;d
001F 12034E 60 lcall display
0022 30B2EE 61 jnb sw1,goo2
0025 D2B2 62 gooTEST:SETB SW1
0027 12034E 63 LCALL DISPLAY
002A 20B2F8 64 JB SW1,gooTEST ;等待,循环
002D 12034E 65 gooKEY: LCALL DISPLAY
0030 30B2FA 66 JNB SW1,gooKEY ;显示消键抖
67
68 ;流水测试
0033 7808 69 LSTEST: MOV R0,#8
0035 758055 70 MOV P0,#55H ;LED灯显示
0038 D2B2 71 SETB SW1
003A 20B2FD 72 JB SW1,$ ;等待 按键,循环
003D D2B2 73 SETB SW1
003F 30B2FD 74 JNB SW1,$
0042 7580AA 75 MOV P0,#0AAH ;
0045 D2B2 76 SETB SW1
0047 20B2FD 77 JB SW1,$
004A 120330 78 LSKEY: LCALL D10MS ;消键抖
004D D2B2 79 SETB SW1
004F 30B2F8 80 JNB SW1,LSKEY
0052 7580FF 81 MOV P0,#0FFH ;熄灭
82 ;显示数码测试
0055 753311 83 LED: MOV SJQW,#11H ;' '
0058 753201 84 MOV SJBW,#1
005B 753106 85 MOV SJSW,#6
005E 753004 86 MOV SJGW,#4 ;显示8164
0061 D2B3 87 DISTEST:SETB SW2
0063 12034E 88 LCALL DISPLAY
0066 20B3F8 89 JB SW2,DISTEST ;等待,循环
0069 120330 90 DISKEY: LCALL D10MS
006C 30B3FA 91 JNB SW2,DISKEY ;显示消键抖
92 ;I2C测试:
006F 752155 93 MOV JSTEM,#55H
0072 752010 94 MOV I2CADD,#10H ;在10H写55H
0075 12029B 95 LCALL I2CWRI
0078 1202E2 96 LCALL I2CREAD
007B EF 97 MOV A,R7
007C B52126 98 CJNE A,JSTEM,I2CERR
007F 753302 99 MOV SJQW,#2
0082 753204 100 MOV SJBW,#4
0085 753100 101 MOV SJSW,#0
0088 753001 102 MOV SJGW,#1
008B 7521FF 103 MOV JSTEM,#0FFH
008E 752010 104 MOV I2CADD,#10H ;若正确改写成FFH
0091 12029B 105 LCALL I2CWRI
0094 12034E 106 I2CTEST:LCALL DISPLAY
0097 D2B4 107 SETB SW3
0099 20B4F8 108 JB SW3,I2CTEST ;等待,循环
009C 120330 109 I2CKEY: LCALL D10MS ;I2C-KEY
009F 30B4FA 110 JNB SW3,I2CKEY
00A2 0200A8 111 LJMP _93TEST
00A5 0200A5 112 I2CERR: LJMP $
113 ;93测试:
00A8 752320 114 _93TEST: MOV _93ADD,#20H
00AB 7522AA 115 MOV _93DATA,#0AAH ;在20H写#0AAH
00AE 120197 116 LCALL AT93WRIT
00B1 752200 117 MOV _93DATA,#0 ;清0以便下面验证
00B4 752320 118 MOV _93ADD,#20H
00B7 120183 119 LCALL AT93READ
00BA E522 120 MOV A,_93DATA
00BC B4AA1D 121 CJNE A,#0AAH,_93ERR
00BF 753309 122 MOV SJQW,#9
00C2 753203 123 MOV SJBW,#3
00C5 753104 124 MOV SJSW,#4
A51 MACRO ASSEMBLER TEST 21/05/03 15:23:15 PAGE 3
00C8 753006 125 MOV SJGW,#6
00CB 12034E 126 _93LO: LCALL DISPLAY
00CE D2B2 127 SETB SW1
00D0 20B2F8 128 JB SW1,_93LO
00D3 120330 129 _93KEY: LCALL D10MS
00D6 30B2FA 130 JNB SW1,_93KEY
00D9 0200DF 131 LJMP RS232TEST
00DC 0200DC 132 _93ERR: LJMP $
133 ;232测试
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -