微机原理实验报告5
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理实验报告
实验四模数转换
一、实验目的
了解模数转换原理,掌握ADC0809的使用方法。
二、实验内容
将温度传感器输出端连至ADC0809的IN0端;
编写程序对IN0通道的模拟量进行模数转换;
将模数转换得到的数字量换算成温度值显示在微机屏幕上。
三、实验原理图
四、实验流程图
五、实验结论
能够得到相应的实验结果,并能通过三种方式输出不同显示方式的数字量。
六、实验心得
了解使用了ADC0809,并掌握了相关汇编编程。
附录:程序清单
IOPORT EQU 0EF00H-280H+298H
STACK SEGMENT STACK
DB 100 DUP(?)
STACK ENDS
DATA SEGMENT
HEX DB 2 DUP(?),'H',' '
BYT DB 8 DUP(?),'B',' '
DECI DB 3 DUP(?),' '
UI DB 'Please choose the mode:1.hexadecimal 2.binary 3.decimal p ress enter to exit.'
CTRL DB 0DH,0AH,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
MAIN PROC
MOV AX,DATA
MOV DS,AX
AGAIN1: MOV AH,9
LEA DX,CTRL
INT 21H
LEA DX,UI
INT 21H
LEA DX,CTRL
INT 21H AGAIN: MOV AH,1
INT 21H
CMP AL,'1'
JZ THEN1
CMP AL,'2'
JZ THEN2
CMP AL,'3'
JZ THEN3
CMP AL,0DH
JZ EXIT
JMP AGAIN THEN1: MOV DX,IOPORT
OUT DX,AL
CALL DELAY
IN AL,DX
CALL XFER1
CALL OUTPUT1
CALL DELAY
MOV AH,6
MOV DL,0FFH
INT 21H
JZ THEN1
JMP AGAIN1 THEN2: MOV DX,IOPORT
OUT DX,AL
CALL DELAY
IN AL,DX
CALL XFER2
CALL OUTPUT2
CALL DELAY
MOV AH,6
MOV DL,0FFH
INT 21H
JZ THEN2
JMP AGAIN1 THEN3: MOV DX,IOPORT
OUT DX,AL
CALL DELAY
IN AL,DX
CALL XFER3
CALL OUTPUT3
CALL DELAY
MOV AH,6
MOV DL,0FFH
INT 21H
JZ THEN3
JMP AGAIN1 EXIT: MOV AX,4C00H
INT 21H MAIN ENDP
DELAY PROC
MOV BX,0FFH
MOV CX,0 NEXT7: LOOP NEXT7
DEC BX
JNZ NEXT7
RET
DELAY ENDP
XFER1 PROC
PUSH AX
MOV DL,AL
MOV CL,4
SHR DL,CL
CMP DL,9
JBE NEXT
ADD DL,7H NEXT: ADD DL,30H
LEA SI,HEX
MOV [SI],DL
POP AX
MOV DL,AL
AND DL,0FH
CMP DL,9
JBE NEXT1
ADD DL,7H NEXT1: ADD DL,30H
MOV [SI+1],DL
RET
XFER1 ENDP
XFER2 PROC
MOV CX,8
LEA SI,BYT NEXT6: MOV DL,AL
ROL DL,1
MOV AL,DL
AND DL,01H
ADD DL,30H
MOV [SI],DL
INC SI
LOOP NEXT6
RET
XFER2 ENDP
XFER3 PROC
LEA SI,DECI
MOV AH,0
MOV BL,100
DIV BL
ADD AL,30H
MOV [SI],AL
MOV AL,AH
MOV AH,0
MOV BL,10
DIV BL
ADD AL,30H
ADD AH,30H
MOV [SI+1],AL
MOV [SI+2],AH
RET
XFER3 ENDP
OUTPUT1 PROC
MOV CX,4
LEA SI,HEX NEXT2: MOV AH,2
MOV DL,[SI]
INT 21H
INC SI
LOOP NEXT2
RET
OUTPUT1 ENDP OUTPUT2 PROC
MOV CX,10
LEA SI,BYT NEXT3: MOV AH,2
MOV DL,[SI]
INT 21H
INC SI
LOOP NEXT3
RET