微机原理第四次实验报告董东启

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验四 A/D转换实验

一、实验目的与要求

目的:掌握A/D芯片与单片机的接口方法及ADC性能;了解单片机实现数据采集的方法。

二、实验参考步骤

1、启动KEIL软件,选择菜单“工程\新建工程”以建立工程(扩展名为.uv2,如T4a.uv2)。

2、选择菜单“文件\新文件”以建立一个新的文本编辑窗口,在窗口中输入参考源程序1并保存(扩展名为.asm),如test4a.asm,然后将其加入到源程序组1中。

3、在工程菜单的选项“目标1属性”中设置相应的选项,包括“输出\产生hex文件”选项以便汇编生成HEX代码供编程器使用,在“调试\使用KeilMonitor-51 Driver”的设置中选择相应的串口号。

4、使用“工程”中的“编译全部文件”完成相应的文件编译,如果程序格式正确将生成相应HEX代码文件,如T4a.hex。如果提示有编译错误请自行修改源程序然后再重新编译。

5、将ad0804 的wr引脚连接P3.6 ,rd引脚接p3.7 ad0804数据接P1口,八路发光管接P0口,完成仿真器与计算机之间的连线并通电。

6、在

KEIL软件中启动“调试\开启仿真模式”,然后用“运行”命令实现全速运行的仿真,调节电位器控制电压输入,观察指示灯状态。

7、根据指示灯状态记录对应的AD结果,利用万用表测量对应的输入电压值进行比较,验证AD结果是否正确。

8、通过多次改变输入值的方式重复步骤7并记录调试结果,然后在KEIL软件中启动启动“中断运行-调试(debug)\关闭仿真模式”退出仿真,选择“工程\关闭工程”可关闭当前工程。

9、根据参考源程序1进行思考、修改和拓展,自行设计程序目标并编程验证,比如利用数码管显示AD值,或者利用AD值控制PWM波的占空比等。

10、完成参考程序二的仿真演示并自行分析其程序设计思想。

三、实验内容

1、程序一:0804的基本应用。

程序演示目的:实验者转动电位器以改变输入电压,利用ad0804读取AD结果并利用P0口显示AD结果;

硬件连接:将ad0804的 wr引脚接P3.6,rd引脚接P3.7,ad0804数据口

接P1口, P0口接八路发光管。

硬件连线图如下所示:

图1 程序一硬件接线图

参考程序如下:

;************************************************************

;0804的基本应用,转动电位器,P0口显示AD结果

;硬件连接:八路发光管接p0口,ad0804 wr接p3.6,rd接p3.7

;ad0804数据接p1口。

;程序假设p3.5脚作为ad0804的片选供大家参考,

;实际上该引脚直接接地芯片一直选通。

;*************************************************************** ;//定义ADC的连接端口

ad_cs equ P3.5 ;芯片选择

ad_wr equ P3.6 ;转换开始

ad_rd equ P3.7 ;RD=LOW,数字信号输出

ad_input_port equ p1

org 0000h

ajmp main

org 0100h

main:

lcall Adc_Start

lcall delay1ms

lcall adc_read

mov p0,a

ajmp main

Adc_Start: ;// 启动AD转换

clr ad_cs

nop

clr ad_wr

nop

setb ad_wr

nop

setb ad_cs

nop

ret

Adc_Read: ;// 读AD转换

mov ad_input_port,#0ffh

clr ad_cs

nop

clr ad_rd

nop

nop

mov a,AD_INPUT_PORT

nop

setb ad_rd

nop

setb ad_cs

ret

delay1ms: ;// AD转换读取延时程序,显示读到的数值mov r7,#10

tt1:

mov r6,#50

djnz r6,$ ;2us

djnz r7,tt1

ret

end

实验现象:

通过旋转电位器并用万用表来测量,调节LED输入电压端子两端的电压,会看到8位LED灯的亮暗情况各不相同。

实验数据记录如下:

表1 程序一实验数据记录表

实验现象分析:

DC0804是属于连续渐进式(Successive Approximation Method)的A/D转换器,动作步骤如下表示(原则上先从左侧最高位寻找起)。

第一次寻找结果:1000000(若假设值≤输入值,则寻找位=假设位=1)第二次寻找结果:11000000(若假设值≤输入值,则寻找位=假设位=1)第三次寻找结果:11000000(若假设值>输入值,则寻找位=该假设位=0)第四次寻找结果:11010000(若假设值≤输入值,则寻找位=假设位=1)第五次寻找结果:11010000 (若假设值>输入值,则寻找位=该假设位=0)第六次寻找结果:11010100(若假设值≤输入值,则寻找位=假设位=1)第七次寻找结果:11010110(若假设值≤输入值,则寻找位=假设位=1)第八次寻找结果:11010110(若假设值>输入值,则寻找位=该假设位=0 这样使用二分法的寻找方式,8位的A/D转换器只要8次寻找,就能完成转换的动作。对8位ADC0804而言,它的输出准位共有28=256种,即它的分辨率是1/256,假设输入信号Vin为0~5V电压范围,则它最小输出电压是5V/256=0.0196V,这代表ADC0804所能转换的最小电压值。

本次实验中每一个LED灯显示的二进制数值对应一个Vi(V)万用表数值,这是利用以上二分法寻找的方式完成的,在A/D转换的的某一电压范围内,LED 灯显示的数字是一定的。

相关文档
最新文档