ddcchh 发表于 2012-5-5 11:26:24

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

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

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

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

;
;
ORG    0000H
      
      AJMP   START   ;转开始

ORG    0003H

      AJMPINT0_1   ;转INT0中断子程序

ORG   0020H

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

         MOV P1,#0FFH;   关显示

START1:SETBIE.0    ;   开INT0中断

         SETBIE.7    ;    开总中断
   
K1:    MOVA,20H    ;    低字节缓冲区首地址

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

;       CALL   DELAY   ;   延时便于观看

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

         ANLA,#0FH    ;   
      
         MOVC,ACC.0    ;

         MOV P2.4,C      ;

         MOVC,ACC.1    ;

         MOV P2.5,C      ;

         MOVC,ACC.2    ;

         MOV P2.6,C      ;

         MOVC,ACC.3    ;

         MOV P2.7,C      ;


         CALL   DELAY   ;   延时便于观看


         AJMP   START1   ;   转开始循环

      

INT0_1:   CLR   IE.0         ;   关INT0中断

          CLR   IE.7         ;   关总中断

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

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

          MOVXA,@DPTR   ;   读低字节

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

          INC   R0          ;    指向高位地址

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

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

          MOV@R0,A          ;

          RETI               ;   中断返回

DELAY:   PUSHR2            ;

         PUSHR3            ;

      MOVR2,#0FFH      ;    延时子程序

K2:   MOVR3,#0FFH      ;

      DJNZR3,$         ;

      DJNZR2,K2      ;

      POP   R3             ;

      POP    R2            ;

      RET                  ;


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

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

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

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


      ORG   0300H

      MOVR2,#0FFH   ;

      MOVR3,#0FFH   ;

      CALL   IBTD2   ;

         AJMP$       ;


IBTD2:   CLR A         ;

         MOVR4,A   ;

         MOVR5,A   ;

         MOVR6,A   ;

         MOVR7,#16   ;

LOOP:    CLR   C       ;

         MOVA,R3   ;

         RLCA      ;

         MOVR3,A   ;

         MOVA,R2   ;

         RLC A         ;

         MOV R2,A      ;

         MOVA,R6   ;

         ADDCA,R6    ;
   
         DAA         ;

         MOVR6,A   ;

         MOV A,R5      ;

         ADDCA,R5    ;

         DAA         ;

         MOVR5,A   ;

         MOVA,R4   ;

         ADDCA,R4    ;

         DAA         ;

         MOVR4,A   ;

         DJNZR7,LOOP;

         RET            ;



      END   








页: [1]
查看完整版本: 89C51和ICL7109 转换程序----原创程序4