您当前的位置:五五电子网电子知识单片机-工控设备51单片机TLC1549数字电压表程序 正文
TLC1549数字电压表程序

TLC1549数字电压表程序

点击数:7651 次   录入时间:03-04 11:58:51   整理:http://www.55dianzi.com   51单片机

;TLC1549数字电压表程序数字电压表:量程为 5V,精度为0.1V (不带字库12864显示)   
CS1     BIT     P2.3
CS2     BIT     P2.4
D_I     BIT     P3.6   ;4
R_W     BIT     P2.5   ;5
E       BIT     P2.6   ;6
DB0_DB7 EQU     P0
X       EQU     22H ;页地址
Y       EQU     23H ;列地址 
COM     EQU     24H
DAT     EQU     24H
COUNT   EQU     25H       ;代码倒计数单元        
CODE0   EQU     26H     ;表格起始地址,赋0值后与DPTR合成查表指针地址
MUL_    EQU     26H  ;显示数字时,暂存单元(要显示的数是几就在里面存几) 
   CLK1  BIT P3.4
   DATA1 BIT P3.5
   CS    BIT P3.7

         ORG 0000H
         JMP MAIN
      ORG 0030H
MAIN:    MOV SP,#60H
   ACALL INT
         SETB  CS1
      SETB  CS2
         ACALL CLEAR
   ACALL SY
BEGIN:   ACALL TLC1549
         MOV R3,58H  ;;********
   MOV R2,59H
         MOV R7,#0AH
   MOV R6,#00H
   ACALL MULD
   MOV R7,#0CCH
    ACALL D457
   MOV A,R3
   ACALL HBCD
   MOV R3,A
   CALL TUBCD
   CALL  DSP1
   ACALL DEL
   JMP   BEGIN
TUBCD:   MOV A,R3
         ANL A,#0FH
   MOV 30H,A   ;低位 

   MOV A,R3
   SWAP A
   ANL A,#0FH
   MOV 31H,A
   RET
HBCD: MOV B,#100 ;分离出百位,存放在R3中
DIV AB
MOV R3,A
MOV A,#10 ;余数继续分离十位和个位
XCH A,B
DIV AB
SWAP A
ORL A,B ;将十位和个位拼装成BCD码
RET
HB2: CLR A          ; 双字节十六进制转BCD码  
     MOV R3,A
     MOV R4,A
     MOV R5,A
     MOV R2,#10H    ; 转换双字节十六进制整数
HB3: MOV A,R7       ; 从高端移出待转换数的一位到CY中
     RLC A
     MOV R7,A
     MOV A,R6
     RLC A
     MOV R6,A
     MOV A,R5      ;BCD码带进位自身相加,相当于乘2
     ADDC A,R5;
     DA A          ; 十进制调整
     MOV R5,A
     MOV A,R4
     ADDC A,R4
     DA A
     MOV R4,A
     MOV A,R3
     ADDC A,R3
     MOV R3,A       ; 双字节十六进制数的万位数不超过6,不用调整
     DJNZ R2,HB3    ; 处理完16bit
     RET
MULD: MOV A,R3 ;计算R3乘R7
MOV B,R7
MUL AB
MOV R4,B ;暂存部分积
MOV R5,A
MOV A,R3 ;计算R3乘R6
MOV B,R6
MUL AB
ADD A,R4 ;累加部分积
MOV R4,A
CLR A
ADDC A,B
MOV R3,A
MOV A,R2 ;计算R2乘R7
MOV B,R7
MUL AB
ADD A,R4 ;累加部分积
MOV R4,A
MOV A,R3
ADDC A,B
MOV R3,A
CLR A
RLC A
XCH A,R2 ;计算R2乘R6
MOV B,R6
MUL AB
ADD A,R3 ;累加部分积
MOV R3,A
MOV A,R2
ADDC A,B
MOV R2,A
RET
D457: CLR C
MOV A,R4
SUBB A,R7
JC DV50
SETB OV ;商溢出
RET
DV50: MOV R6,#8 ;求平均值(R4R5/R7-→R3)
DV51: MOV A,R5
RLC A
MOV R5,A
MOV A,R4
RLC A
MOV R4,A
MOV F0,C
CLR C
SUBB A,R7
ANL C,/F0
JC DV52
MOV R4,A
DV52: CPL C
MOV A,R3
RLC A
MOV R3,A
DJNZ R6,DV51
MOV A,R4 ;四舍五入
ADD A,R4
JC DV53
SUBB A,R7
JC DV54
DV53: INC R3
DV54: CLR OV
RET
TLC1549:    SETB    CLK1             ;读AD数据
            SETB    CS
            SETB    DATA1
            CLR     CS
            CLR     CLK1
            MOV      C,DATA1
            MOV      22H.1,C

            SETB    CLK1
            NOP
            NOP
            CLR     CLK1
            NOP
            NOP
            MOV      C,DATA1
            MOV      22H.0,C

            SETB    CLK1
            NOP
            NOP
            CLR     CLK1
            NOP
            NOP
            MOV      C,DATA1
            MOV      ACC.7,C
            SETB    CLK1
            NOP
            NOP
            CLR     CLK1
            NOP
            NOP
            MOV      C,DATA1

[1] [2] [3] [4]  下一页


本文关键字:程序  电压表  51单片机单片机-工控设备 - 51单片机