实验六 并行AD实验(数字电压表实验)
1、ADC0809(G4区)
(1) 模数转换器,8位精度,8路转换通道,1路并行输出 (2) 转换时间100us,转换电压范围0~5V
2、编写程序:制作一个电压表,测量0~5V,结果显示于数码管上。
2、调节0~5V电位器(D2区)输出电压,显示在LED(最右边2位)上的电压数字量 会随之改变。用万用表验证AD转换的结果。
.MODEL TINY
ADDR_0809 EQU 0F000H EXTRN Display8: NEAR .STACK 100 .DATA
BUFFER DB 8 DUP(?) LastAD DB 0 ;é?ò?′?AD×a???μ .CODE
START: MOV AX,@DATA MOV DS,AX NOP
XOR AL,AL JMP START6 START1: MOV CX,50 ;2é?ù??ê?′? MOV BX,0 ;à?????ê?′?μ?2é?ù?μ START2: CALL AD0809 XOR AH,AH ADD BX,AX LOOP START2 MOV AX,50 XCHG AX,BX DIV BL ;??ê?′?μ????ù?μ CMP AL,LastAD JZ START3 START6: MOV LastAD,AL
CALL Display_Data LEA SI,BUFFER CALL Display8 START3: CALL DLTime JMP START1
AD0809 PROC NEAR PUSH CX
MOV AL,0
MOV DX,Addr_0809 OUT DX,AL MOV CX,200 LOOP $ ;?óê±,μè′yAD×a??íê3é MOV DX,Addr_0809 IN AL,DX POP CX RET AD0809 ENDP
DISPLAY_DATA PROC NEAR MOV AH,AL AND AL,0FH MOV BUFFER + 4,AL MOV AL,AH AND AL,0F0H ROR AL,4 MOV BUFFER + 5,AL MOV AL,AH XOR AH,AH MOV BL,51 ;255/51 (16????μ?1 = 1/51V) DIV BL OR AL,80H ;?óé?D?êyμ? MOV BUFFER + 2,AL MOV AL,10 MUL AH DIV BL MOV BUFFER + 1,AL ;μúò???D?êy MOV AL,10 MUL AH DIV BL MOV BUFFER,AL ;μú?t??D?êy MOV buffer+3,10H MOV buffer+6,10H MOV buffer+7,10H ;??òt RET
DISPLAY_DATA ENDP
DLTime PROC NEAR MOV CX,30000 LOOP $
RET
DLTime ENDP
END START