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

📄 up51s010.lst

📁 UP51C开发板所有源代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
                     138     ; END OF timer0
                     139     
                     140     ;===============================================================================
006A                 141     UPDATE_DISBUF:
                     142             USING   1
                     143     
006A AF8D            144             MOV     R7,TH1
006C AE8B            145             MOV     R6,TL1
006E 120000   F      146             LCALL   BIN16BCD
                     147             
0071 900000   F      148             MOV     DPTR, #DIS_CODE
                     149     
0074 EC              150             MOV     A,R4
0075 03              151             RR      A
0076 03              152             RR      A
0077 03              153             RR      A
0078 03              154             RR      A
0079 540F            155             ANL     A,#0FH
007B 93              156             MOVC    A,@A+DPTR
007C F500     F      157             MOV     DIS_BUF,A
                     158             
007E EC              159             MOV     A,R4
007F 540F            160             ANL     A,#0FH
0081 93              161             MOVC    A,@A+DPTR
0082 F500     F      162             MOV     DIS_BUF+1,A
                     163             
0084 EB              164             MOV     A,R3
0085 03              165             RR      A
0086 03              166             RR      A
0087 03              167             RR      A
0088 03              168             RR      A
0089 540F            169             ANL     A,#0FH
008B 93              170             MOVC    A,@A+DPTR
008C F500     F      171             MOV     DIS_BUF+2,A
                     172             
008E EB              173             MOV     A,R3
008F 540F            174             ANL     A,#0FH
0091 93              175             MOVC    A,@A+DPTR
0092 F500     F      176             MOV     DIS_BUF+3,A
                     177     
0094 22              178             RET     
                     179     ; END OF UPDATE_DISBUF
                     180     
                     181     
                     182     ;===============================================================================
0095                 183     BIN16BCD:
                     184     ; 将16位二进制数转化为5位压缩的BCD码
                     185     ; 传入参数: R7:R6 --- 16位二进数; R7 --- MSB; R6 --- LSB
                     186     ; 返回参数: R5:R4:R3 --- 5位压缩的BCD码;  R5 --- MSB; R3 --- LSB
                     187     ; 
                     188             
0095 E4              189             CLR     A
0096 FB              190             MOV     R3,A                    ; 
A51 MACRO ASSEMBLER  UP51S010                                                             01/06/2005 15:17:35 PAGE     4

0097 FC              191             MOV     R4,A
0098 FD              192             MOV     R5,A
                     193             
0099 7810            194             MOV     R0,#16                  ; 共需左移16次
                     195     
009B                 196     BIN16BCD_LP:
009B EE              197             MOV     A,R6                    ; 将R6左移一位到R7
009C 33              198             RLC     A
009D FE              199             MOV     R6,A
009E EF              200             MOV     A,R7                    ; 将R6的高位移入到R7
009F 33              201             RLC     A                       ; 将R7的高位移出到C
00A0 FF              202             MOV     R7,A                    
                     203             
                     204             ;-------------------------------
00A1 EB              205             MOV     A,R3                    ; 将C移入到目标数(BCD)的最低位
00A2 3B              206             ADDC    A,R3                    ; 这里用ADDC进行移位,而没有使用RLC,
                     207                                             ; 是为下面能正确的使用十进制调整指令DA
00A3 D4              208             DA      A                       ; 十进制调整
00A4 FB              209             MOV     R3,A                    ; 存回
                     210             
00A5 EC              211             MOV     A,R4                    ; 将R3的高位移入
00A6 3C              212             ADDC    A,R4                    ; 
00A7 D4              213             DA      A                       ; 十进制调整
00A8 FC              214             MOV     R4,A                    ; 存回
                     215             
00A9 ED              216             MOV     A,R5                    ; 将R4的高位移入
00AA 3D              217             ADDC    A,R5
00AB D4              218             DA      A                       ; 十进制调整
00AC FD              219             MOV     R5,A                    ; 存回
                     220             
00AD D8EC            221             DJNZ    R0,BIN16BCD_LP
                     222             
00AF 22              223             RET
                     224     
00B0                 225     DIS_CODE:
00B0 C0              226             DB      0C0H
00B1 F9              227             DB      0F9H
00B2 A4              228             DB      0A4H
00B3 B0              229             DB      0B0H
00B4 99              230             DB      099H
00B5 92              231             DB      092H
00B6 82              232             DB      082H
00B7 F8              233             DB      0F8H
00B8 80              234             DB      080H
00B9 90              235             DB      090H
00BA FF              236             DB      0FFH 
                     237     
                     238             END
A51 MACRO ASSEMBLER  UP51S010                                                             01/06/2005 15:17:35 PAGE     5

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


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

ACC. . . . . . . .  D ADDR   00E0H   A   
BIN16BCD . . . . .  C ADDR   0095H   R   SEG=CODE_SEG
BIN16BCD_LP. . . .  C ADDR   009BH   R   SEG=CODE_SEG
CODE_SEG . . . . .  C SEG    00BBH       REL=UNIT
DATA_SEG . . . . .  D SEG    0007H       REL=UNIT
DIS_BUF. . . . . .  D ADDR   0002H   R   SEG=DATA_SEG
DIS_CODE . . . . .  C ADDR   00B0H   R   SEG=CODE_SEG
DIS_DIGIT. . . . .  D ADDR   0000H   R   SEG=DATA_SEG
DIS_INDEX. . . . .  D ADDR   0001H   R   SEG=DATA_SEG
DPH. . . . . . . .  D ADDR   0083H   A   
DPL. . . . . . . .  D ADDR   0082H   A   
END_TIMER0 . . . .  C ADDR   0061H   R   SEG=CODE_SEG
IE . . . . . . . .  D ADDR   00A8H   A   
MAIN . . . . . . .  C ADDR   0000H   R   SEG=CODE_SEG
P0 . . . . . . . .  D ADDR   0080H   A   
P2 . . . . . . . .  D ADDR   00A0H   A   
PSW. . . . . . . .  D ADDR   00D0H   A   
SP . . . . . . . .  D ADDR   0081H   A   
STACK. . . . . . .  I ADDR   0000H   R   SEG=STACK_SEG
STACK_SEG. . . . .  I SEG    0014H       REL=UNIT
TH0. . . . . . . .  D ADDR   008CH   A   
TH1. . . . . . . .  D ADDR   008DH   A   
TIMER0 . . . . . .  C ADDR   0031H   R   SEG=CODE_SEG
TL0. . . . . . . .  D ADDR   008AH   A   
TL1. . . . . . . .  D ADDR   008BH   A   
TMOD . . . . . . .  D ADDR   0089H   A   
TMP. . . . . . . .  D ADDR   0006H   R   SEG=DATA_SEG
TR0. . . . . . . .  B ADDR   0088H.4 A   
TR1. . . . . . . .  B ADDR   0088H.6 A   
UPDATE_DISBUF. . .  C ADDR   006AH   R   SEG=CODE_SEG
WL012. . . . . . .  N NUMB   -----       


REGISTER BANK(S) USED: 0 1 

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

⌨️ 快捷键说明

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