数字电压表设计实验报告
- 格式:doc
- 大小:146.00 KB
- 文档页数:6
一、实验内容、方法与步骤
1实验原理
A/D转换器的功能主要是将输入的模拟信号转换成数字信号,如电压、电流、温度测量等都属于这种转换。本实验中采用的转换器为ADC0809,它是一个8位逐次逼近型A/D转换器,可以对8个模拟量进行转换,转换时间为100μS。工作过程如下:首先由地址锁存信号ALE的上升沿将引脚ADDA、ADDB和ADDC上的信号锁存到地址寄存器内用以选择模拟量输入通道;START 信号的下降沿启动A/D转换器开始工作;转换结束时,ADC0809使EOC引脚由低电平变成高电平,程序可以通过查询EOC读取转换结果,也可以通过中断方式读取转换结果。CLOCK为转换时钟输入端,频率为100KHz–1.2MHz,推荐值为640KHz。实验线路如图21所示。
2.实验电路
如程序存放在AT89S51中,AT89S51的/EA(引脚31)必须接高电平,实验时需短路J13的1和2引脚,否则;必须短路J13的2和3引脚;
3.实验内容与实验要求
调节可变电阻VR4,使输入到ADC0809第5引脚的电压从0V变到5V,转换结果通过发数码显示器显示出来,特别注意0V、0.5V、1.0V、1.5V、2.0V、2.5V、3.0V、3.5V、4.0V、4.5V以及5.0V时的转换结果。
4汇编源程序
(1) 汇编语言程序清单 (FileName:ex21.asm)
CS8279C EQU 0FFFFH
CS8279D EQU 0FFFEH
CS0809 EQU 0A007H
ADRESULT EQU 3AH
ADBAK EQU 3BH
; DISPLAY BUFF 30H(low) ~ 35H (high)
ORG 0000H
MAIN:
MOV SP, #60H
ACALL INI8279
MOV ADRESULT, #00H
MOV ADBAK, #0FFH
MAINLP:
ACALL DISPLAY
ACALL EXINT1
SJMP MAINLP
EXINT1:
MOV DPTR,#CS0809
MOVX @DPTR,A ;START CONVERT
MOV R6,#30
DLY: NOP
NOP
NOP
DJNZ R6,DLY
MOVX A,@DPTR ; READ CONVERT RESULT MOV ADRESULT,A
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; subprogram name :INI8279
; function: initial 8279 as 8 digtal left in ALE/10
; input parameter : none
; output parameter: none
; others 8279 command port address 0FFE9H;8279 data port address
0FFE8H
; the subprogram affect A、 DPTR
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INI8279:
MOV DPTR,#CS8279C
MOV A,#0DDH ; First set all display RAM as 0FFH
MOVX @DPTR,A
IL0:MOVX A,@DPTR ;wait clear
JB ACC.7,IL0
LCALL DLT ; WAIT 400MS
LCALL DLT
MOV A,#0D1H ; clear all display RAM as 00H
MOVX @DPTR,A
IL1:MOVX A,@DPTR
JB ACC.7,IL1
LCALL DLT
LCALL DLT
MOV A,#00H ;key/display mode command word 000DDKKK
MOVX @DPTR,A ;8 char left in
MOV A,#2AH ; ALE/10
MOVX @DPTR,A
RET
DLT: MOV R7,#200 ; Delay 400 ms(6M)
DLT1: MOV R6,#250 ; 12T
DLT2: DJNZ R6,DLT2 ; 24T
DJNZ R7,DLT1
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; NAME:DISPLAY 显示子程序
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DISPLAY:
MOV A,ADRESULT
CJNE A,ADBAK,REDISP
SJMP DSPEXIT
REDISP:
MOV ADBAK, ADRESULT
ACALL CONVBCD
MOV DPTR,#CS8279C
MOV A,#90H ;write display RAM command
MOVX @DPTR,A
MOV R7,#6
MOV DPTR,#CS8279D
MOV R0,#30H
DISPL1:
PUSH DPL
PUSH DPH
MOV A,@R0
MOV DPTR,#TAB
MOVC A,@A+DPTR
POP DPH
POP DPL
MOVX @DPTR,A
INC R0
DJNZ R7,DISPL1
DSPEXIT:
RET
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
DB 0FFH,00H,73H ; 全亮;全灭;P
;;;;;;;;;;;;;;;;;; Convert ADRESULT to BCD ;;;
; send to 30H ~ 35H location
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CONVBCD:
MOV A,ADRESULT
MOV B,#100
DIV AB
MOV 32H,A
MOV A,B
MOV B,#10
DIV AB
MOV 31H,A
MOV A,B
MOV 30H,A
MOV A,32H
CJNE A,#00,CONB1
MOV A,31H
CJNE A,#00,CONB2
MOV R7,#5
SJMP CONB3
CONB2:
MOV R7,#4
SJMP CONB3
CONB1:
MOV R7,#3
CONB3:
MOV R0,#35H
MOV A,#0BH
CONBLP:
MOV @R0,A
DEC R0
DJNZ R7,CONBLP
RET
END ; program end
二、实验结果
通过调节可变电阻VR4的电阻大小,使得输入到ADC0809的第5引脚的电压从0V变到5V,转换相应的结果并通过数码显示器显示出来。实验结果与预测结果一置。