高精度数字电压表原理图及源程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
RP1
LCD_CMD_WR EQU 00E0H
LCD_DATA_WR EQU 00E1H
LCD_BUSY_RD EQU 00E2H
LCD_DATA_RD EQU 00E3H
;********************************
AD_12CMD_WR EQU 00E0H ;初始化为12位转换器AD_8CMD_WR EQU 00E8H ;初始化为8位转换器AD_8HB_RD EQU 00E4H ;高8Bit输出
AD_4LB_RD EQU 00ECH ;低4Bit输出
;*********************************
ORG 0000H
LJMP MAIN
ORG 0030H
;=========================================
MAIN: MOV SP,#60H
CLR RS0
CLR RS1
ACALL INIT ;LCD初始化
;=======================================
;参数设置
;=======================================
AD574: MOV DPTR,#AD_12CMD_WR
MOVX @DPTR,A ;启动转换
SETB P3.0
LOOP: NOP
JB P3.0,LOOP
MOV DPTR,#AD_8HB_RD
MOVX A,@DPTR
MOV R2,A
MOV DPTR,#AD_4LB_RD
MOVX A,@DPTR
MOV R3,A
;======================================== ;数据处理(参数)传递
;R2R3=(ABC0)
;处理后R2R3=(0ABC)
;======================================== MOV A,R2
SWAP A ;高低交换
MOV R5,A
ANL A,#0F0H ;
MOV R4,A
MOV A,R3
SWAP A
ORL A,R4
MOV R3,A
MOV A,R5
ANL A,#0FH
MOV R2,A
;======================================== ;入口参数:被减数在R2R3中,减数在R6R7中
;出口参数:差值在R2R3中
;======================================== MOV R6,#08H
MOV R7,#00H
CLR C ;=============
MOV A,R2
SUBB A,R6
JNC SUBI ;无借位,直接运算
SETB 02H
MOV A,R2
CPL A ;取反
ANL A,#0FH
MOV R2,A
MOV A,R3
CPL A
MOV R3,A
;===========================
;计算
;==========================
SUBI: CLR C
MOV A,R3
SUBB A,R7
MOV R3,A
MOV A,R2
SUBB A,R6
MOV R2,A
;========================================== ;乘以10计算
;=========================================== MOV R1,#00H
MOV A,R3
LCALL MUL10
MOV 49H,A
MOV A,R2
LCALL MUL10
MOV 48H,A
;========================================
;============================================ ;除法运算
;============================================ ;============================
;整数部分
;============================
MOV R0,#30H
LCALL DIVD0
MOV A,40H
MOV @R0,A
INC R0
MOV A,#2EH
MOV @R0,A
INC R0
;==========================
;小数部分
;==========================
MOV 45H,#05H
ALUDEF: MOV A,42H
LCALL MUL10
MOV 47H,A
MOV A,41H
LCALL MUL10
MOV 46H,A
;==========================
;确定小数
;==========================
LCALL DIVD1
MOV A,40H
MOV @R0,A
INC R0
DJNZ 45H,ALUDEF
MOV A,#05H
CLR C
SUBB A,40H
JC DV53
SJMP DV54
DV53: INC 40H
DEC R0
MOV A,40H
MOV @R0,A
LOPJ: CJNE @R0,#0AH,DV54
MOV @R0,#00H
DEC R0
INC @R0
INC R0 ;==================== SJMP LOPJ
DV54: CLR OV
INC R0
MOV @R0,#56H
;RET
;===========================
;显示
;===========================
MOV A,#01H
ACALL C51
MOV A,#81H
ACALL C51
MOV DPTR,#TAB1
LCHIN: CLR A
MOVC A,@A+DPTR
INC DPTR
LCALL C51DDR
JNZ LCHIN
MOV A,#0C3H
ACALL C51
JNB 02H,LOP_
MOV A,#2DH