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

📄 chao.lst

📁 用单片机来实现超声波的测距
💻 LST
📖 第 1 页 / 共 2 页
字号:
0118 35F0            172     ADDC A,B
011A FA              173     MOV R2,A
011B 22              174     RET
                     175     
                     176     
                     177     ;DIVD 功能:双字节二进制无符号数除法
                     178     
                     179     ;入口条件:被除数在R2、R3、R4、R5中,除数在R6、R7中。
                     180     ;出口信息:OV=0 时,双字节商在R2、R3中,OV=1 时溢出。
                     181     ;影响资源:PSW、A、B、R1~R7 堆栈需求: 2字节
011C C3              182     DIVD: CLR C; ;比较被除数和除数
011D EB              183     MOV A,R3
011E 9F              184     SUBB A,R7
011F EA              185     MOV A,R2
0120 9E              186     SUBB A,R6
0121 4003            187     JC DVD1
0123 D2D2            188     SETB OV; ;溢出
0125 22              189     RET
0126 75F010          190     DVD1: MOV B,#10H; ;计算双字节商
A51 MACRO ASSEMBLER  CHAO                                                                 02/18/2008 17:00:17 PAGE     4

0129 C3              191     DVD2: CLR C; ;部分商和余数同时左移一位
012A ED              192     MOV A,R5
012B 33              193     RLC A
012C FD              194     MOV R5,A
012D EC              195     MOV A,R4
012E 33              196     RLC A
012F FC              197     MOV R4,A
0130 EB              198     MOV A,R3
0131 33              199     RLC A
0132 FB              200     MOV R3,A
0133 CA              201     XCH A,R2
0134 33              202     RLC A
0135 CA              203     XCH A,R2
0136 92D5            204     MOV F0,C; ;保存溢出位
0138 C3              205     CLR C
0139 9F              206     SUBB A,R7; ;计算(R2R3-R6R7)
013A F9              207     MOV R1,A
013B EA              208     MOV A,R2
013C 9E              209     SUBB A,R6
013D B0D5            210     ANL C,/F0; ;结果判断
013F 4004            211     JC DVD3
0141 FA              212     MOV R2,A; ;够减,存放新的余数
0142 E9              213     MOV A,R1
0143 FB              214     MOV R3,A
0144 0D              215     INC R5; ;商的低位置一
0145 D5F0E1          216     DVD3: DJNZ B,DVD2; ;计算完十六位商(R4R5)
0148 EC              217     MOV A,R4; ;将商移到R2R3中
0149 FA              218     MOV R2,A
014A ED              219     MOV A,R5
014B FB              220     MOV R3,A
014C C2D2            221     CLR OV; ;设立成功标志
014E 22              222     RET
                     223     
                     224     ;HB2 功能:双字节十六进制整数转换成双字节BCD码整数
                     225     ;入口条件:待转换的双字节十六进制整数在R6、R7中。
                     226     ;出口信息:转换后的三字节BCD码整数在R3、R4、R5中。
                     227     ;影响资源:PSW、A、R2~R7 堆栈需求: 2字节
014F E4              228     HB2: CLR A; ;BCD码初始化
0150 FB              229     MOV R3,A
0151 FC              230     MOV R4,A
0152 FD              231     MOV R5,A
0153 7A10            232     MOV R2,#10H; ;转换双字节十六进制整数
0155 EF              233     HB3: MOV A,R7; ;从高端移出待转换数的一位到CY中
0156 33              234     RLC A
0157 FF              235     MOV R7,A
0158 EE              236     MOV A,R6
0159 33              237     RLC A
015A FE              238     MOV R6,A
015B ED              239     MOV A,R5; ;BCD码带进位自身相加,相当于乘2
015C 3D              240     ADDC A,R5
015D D4              241     DA A; ;十进制调整
015E FD              242     MOV R5,A
015F EC              243     MOV A,R4
0160 3C              244     ADDC A,R4
0161 D4              245     DA A
0162 FC              246     MOV R4,A
0163 EB              247     MOV A,R3
0164 3B              248     ADDC A,R3
0165 FB              249     MOV R3,A; ;双字节十六进制数的万位数不超过6,不用调整
0166 DAED            250     DJNZ R2,HB3; ;处理完16bit
0168 8B32            251     mov 32h,r3
016A 8C33            252             mov 33h,r4
016C 8D34            253             mov 34h,r5
                     254     
016E 22              255     RET
                     256     
A51 MACRO ASSEMBLER  CHAO                                                                 02/18/2008 17:00:17 PAGE     5

016F                 257     TIME0: ;定时器0溢出中断
016F C0E0            258             PUSH ACC
0171 C0D0            259             PUSH PSW ;将PSW和ACC入栈
0173 C28C            260             clr tr0;关定时器
0175 C2A8            261             clr ex0;关外中断
0177 74AA            262             mov a,#0aah
0179 F532            263             mov 32h,a
017B F533            264             mov 33h,a
017D F534            265             mov 34h,a
017F 7800            266             mov r0,#00h
0181 7901            267             mov r1,#01h
0183 B291            268             cpl p1.1
0185 D0D0            269             POP PSW
0187 D0E0            270             POP ACC
0189 32              271             RETI
018A                 272     TIME1: ;定时器0的外中断
018A C0E0            273             PUSH ACC
018C C0D0            274             PUSH PSW ;将PSW和ACC入栈
018E C28C            275             clr tr0;关定时器
0190 C2A8            276             clr ex0;关外中断
0192 C2A9            277             clr et0
0194 B297            278             CPL P1.7
0196 E58C            279             mov a,th0;高位
0198 94B3            280             subb a,#0b3h;0b1h
019A F530            281             mov 0030h,a
019C E58A            282             mov a,tl0;低位
019E 946F            283             subb a,#6fh;0e0h
01A0 F531            284             mov 0031h,a
01A2 7800            285             mov r0,#00h
01A4 7900            286             mov r1,#00h
01A6 D0D0            287             POP PSW
01A8 D0E0            288             POP ACC
01AA 32              289             RETI
                     290     
                     291     ;4位7段数码管各划的数字排列表(共阴)
01AB EB0A676E        292     tab:DB 0ebh,00ah,067h,06eh,08eh,0ech,0edh,02ah,0efh,0eeh,014h,074h
01AF 8EECED2A                
01B3 EFEE1474                
                     293     ;0 1 2 3 4 5 6 7 8 9  一。三。
                     294     END
                             ;至此,应该能够掌握程序的编制方法,对之进行优化,增加功能。
                             ;应继续完成课题:按键功能 数据储存 温度修正 通信 模拟量输出 
A51 MACRO ASSEMBLER  CHAO                                                                 02/18/2008 17:00:17 PAGE     6

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


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

AAA1 . . . . . . .  C ADDR   00AAH   A   
ACC. . . . . . . .  D ADDR   00E0H   A   
B. . . . . . . . .  D ADDR   00F0H   A   
D1MS . . . . . . .  C ADDR   00EFH   A   
DENG . . . . . . .  C ADDR   007CH   A   
DISPLAY. . . . . .  C ADDR   00B1H   A   
DIVD . . . . . . .  C ADDR   011CH   A   
DPLOP. . . . . . .  C ADDR   00B6H   A   
DVD1 . . . . . . .  C ADDR   0126H   A   
DVD2 . . . . . . .  C ADDR   0129H   A   
DVD3 . . . . . . .  C ADDR   0145H   A   
EA . . . . . . . .  B ADDR   00A8H.7 A   
ET0. . . . . . . .  B ADDR   00A8H.1 A   
EX0. . . . . . . .  B ADDR   00A8H.0 A   
F0 . . . . . . . .  B ADDR   00D0H.5 A   
HB2. . . . . . . .  C ADDR   014FH   A   
HB3. . . . . . . .  C ADDR   0155H   A   
HERE . . . . . . .  C ADDR   004AH   A   
L2 . . . . . . . .  C ADDR   009EH   A   
L3 . . . . . . . .  C ADDR   00A2H   A   
L4 . . . . . . . .  C ADDR   00ACH   A   
LOOP . . . . . . .  C ADDR   003BH   A   
MULD . . . . . . .  C ADDR   00F4H   A   
OV . . . . . . . .  B ADDR   00D0H.2 A   
P0 . . . . . . . .  D ADDR   0080H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
P2 . . . . . . . .  D ADDR   00A0H   A   
PSW. . . . . . . .  D ADDR   00D0H   A   
START. . . . . . .  C ADDR   0036H   A   
STLOP. . . . . . .  C ADDR   00ACH   A   
TAB. . . . . . . .  C ADDR   01ABH   A   
TH0. . . . . . . .  D ADDR   008CH   A   
TIME0. . . . . . .  C ADDR   016FH   A   
TIME1. . . . . . .  C ADDR   018AH   A   
TL0. . . . . . . .  D ADDR   008AH   A   
TMOD . . . . . . .  D ADDR   0089H   A   
TR0. . . . . . . .  B ADDR   0088H.4 A   


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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