89C51和ICL7109 转换程序----原创程序4

2020-02-05 09:30发布

; *************** 89C51和ICL7109 转换程序****************************************

; 电路硬件连接见北航{单片机应用接口技术}P289页面

;  2007/09/01  在清河第二次修改

;  
;
ORG    0000H
      
        AJMP   START   ;  转开始

ORG    0003H

        AJMP  INT0_1   ;  转INT0中断子程序
  
ORG   0020H

START:   MOV SP,#60H   ;   设堆栈

         MOV P1,#0FFH  ;   关显示

START1:  SETB  IE.0    ;   开INT0中断

         SETB  IE.7    ;    开总中断
   
  K1:    MOV  A,20H    ;    低字节缓冲区首地址

         MOV  P1,A     ;    低八位结果送P1口显示

  ;       CALL   DELAY   ;   延时便于观看

         MOV  A,21H     ;  高八位结果送P1口显示

         ANL  A,#0FH    ;   
      
         MOV  C,ACC.0    ;

         MOV P2.4,C      ;

         MOV  C,ACC.1    ;

         MOV P2.5,C      ;

         MOV  C,ACC.2    ;

         MOV P2.6,C      ;

         MOV  C,ACC.3    ;

         MOV P2.7,C      ;


         CALL   DELAY   ;   延时便于观看


         AJMP   START1   ;   转开始循环

      

INT0_1:   CLR   IE.0         ;   关INT0中断

          CLR   IE.7         ;   关总中断

          MOV  R0,#20H      ;   低八位缓冲区地址

          MOV  DPTR,#0200H  ;   p2.0=0,  P2.1=1,低八位选通

          MOVX  A,@DPTR     ;   读低字节

          MOV  @R0,A        ;    送缓冲区保存

          INC   R0          ;    指向高位地址

          MOV  DPTR ,#0100H   ;   p2.0=1,  P2.1=0,高六位选通

          MOVX A,@DPTR        ;  送缓冲区保存

          MOV  @R0,A          ;  

          RETI               ;   中断返回

DELAY:   PUSH  R2            ;

         PUSH  R3            ;

        MOV  R2,#0FFH        ;    延时子程序

K2:     MOV  R3,#0FFH        ;

        DJNZ  R3,  $         ;

        DJNZ  R2,  K2        ;

        POP   R3             ;

        POP    R2            ;

        RET                  ;


;双字节二进制数转换为BCD数

;入口:(R2、R3)为双字节16位二进制数。

;出口:(R4、R5、R6)为转换后的压缩BCD码。

;    2007/09/02   于清河宝盛北里


        ORG   0300H

        MOV  R2,#0FFH   ;

        MOV  R3,#0FFH   ;

        CALL   IBTD2   ;

         AJMP  $       ;


IBTD2:   CLR A         ;

         MOV  R4,A     ;

         MOV  R5,A     ;

         MOV  R6,A     ;

         MOV  R7,#16   ;

LOOP:    CLR   C       ;

         MOV  A,R3     ;

         RLC  A        ;

         MOV  R3,A     ;

         MOV  A,R2     ;

         RLC A         ;

         MOV R2,A      ;

         MOV  A,R6     ;

         ADDC  A,R6    ;
   
         DA  A         ;

         MOV  R6,A     ;

         MOV A,R5      ;

         ADDC  A,R5    ;

         DA  A         ;

         MOV  R5,A     ;

         MOV  A,R4     ;

         ADDC  A,R4    ;

         DA  A         ;

         MOV  R4,A     ;

         DJNZ  R7,LOOP  ;

         RET            ;



        END     








  
0条回答

一周热门 更多>