微机实验报告 模数转换器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告——模/数转换器
专业:材料物理;姓名:曾瑞;学号:2011301230019
一、实验目的
了解模/数转换的基本原理,掌握ADC0809的使用方法。
二、实验内容
1、实验电路原理图如图11.1。
通过实验台左下角电位器RW1输出0~5V直流电压送入ADC0809通道0(IN0),利用debug的输出命令启动A/D转换器,输入命令读取转换结果,验证输入电压与转换后数字的关系。
启动IN0开始转换: Out 0298 0
读取转换结果: In 0298
图11.1 模数转换电路
2、编程采集IN0输入的电压,在屏幕上显示出转换后的数据(用16进制数)。
三、程序的流程图
有键按下吗?开 始开 始N
延 时Y N
启动A/D转换
读入转换后数据所读数据赋给BL 将数据右移四位调显示子程序显示其高四位
从BL中取出数据和0FH相与
调显示子程序显示其低四位
将AL赋给DL DL大于9吗?DL加7
DL加30H
显示ASC码为DL的字符
结 束
Y 结 束
(A) 主程序 (B ) 显示子程序
四、源程序
;FILENAME ZDR.ASM STACK SEGMENT DW 100 DUP(?) STACK ENDS CODE SEGMENT
ASSUME CS:CODE,SS:STACK MAIN PROC
START : MOV DX,0C818H MOV AL,56H
OUT DX,AL ;启动A/D 转换 MOV CX,0FFFFH
DELAY: LOOP DELAY ;延时
IN AL,DX ;读取转换结果存放于AL 中 MOV BL,AL
MOV CL,4
SHR AL,CL ;右移四位 CALL DISP ;显示高四位
MOV AL,BL AND AL,0FH
CALL DISP ;显示低四位
MOV AH,2
MOV DL,48H
INT 21H ;输出’H’
MOV AH,2
MOV DL,0DH
INT 21H ;回车
MOV AH,2
MOV DL,0AH
INT 21H ;换行
MOV DL,0FFH
MOV AH,6
INT 21H ;检测键盘是否有输入
JZ START ;无输入则跳转
MOV AH,4CH
INT 21H ;返回到DOS
MAIN ENDP
DISP PROC
MOV DL,AL
CMP DL,9
JLE NEXT ;小于等于9则跳转
ADD DL,7 ;DL加7
NEXT: ADD DL,30H ;字符的ASCII码
MOV AH,2
INT 21H ;显示字符
RET
DISP ENDP
CODE ENDS
END START
五、实验结果及分析
(1)实验结果如下:
00H 00H 00H···43H 43H 43H···50H 50H 50H···FFH FFH FFH···
发现,随着滑动变阻器的滑动,显示的数值不断增大,最终增大到FFH,产生的原因是阻值的变化使得输入电压变大,因而显示数增大;
(2)从上结果可以看出,其结果是一长串的数字,有很多的是重复的,很不简洁,其原因在于没有对相邻的数字进行比较。
要使以上结果得到进一步优化改进,一个可行的方法是通过比较前后两次的数值,如果相同,则重新从端口输入,继续比较;如果不相同,则显示输出。