AD转换接口实验

单片机实验

27人已加入

描述

AD转换接口实验

实验目的

1、掌握A/D转换器0809的工作原理及其与8031的连接方法。

2、掌握A/D转换的程序设计。

(一)ADC0809 接口编程

实验板中,A/D接口采用0809芯片,其接口连接如图6-1示。8路模拟输入,由A、B、C三脚选择。输入Vin=0~5V时,相应输出00H~FFH。

为了启动A/D转换,应在STAR引脚加正脉冲,通常可用写入指令MOVX @DPTR,A来获得。A/D转换结束后,EOC脚发出高电平,通知CPU从数据口D7~D0读取转换结果。线路中,0809 EOC接至8031的INT1,所以即可通过查询,也可利用中断响应来判断A/D转换是否完成。

本实验仅采集一路(IN1)的模拟输入0~5V,假设A/D转换的结果存放于CPU内RAM 50H。下面分别列出查询法或中断法的转换程序。


ORG  0600H

查询法

   AD1:

MOV  DPTR, #5001H

MOVX  @DPTR, A

;启动0809通道1

MOV  R2, #20H

;延时

   DL:

DJNZ  R2, DL

WEND:

JB  P3.3 ,WEND

;等待A/D完成

MOVX  A, @DPTR

;读A/D结果

MOV  50H, A

;存50H

RET

ORG  0620H

中断法,主程序。

MAIN:

MOV  SP #60H

;设置堆栈指针

SETB  EA

;开CPU中断

SETB  EX1

;允许INT1中断

SETB  IT1

;INT1边沿触发

  

MOV  DPTR, #5001H

MOVX  @DPTR, A

;启动0809通道1

SJMP  $

;等待中断或其它

ORG  0013H

LJMP  AD2

;中断入口

ORG  0640H

   AD2:

PUSH  PSW

; A/D中断服务子程序

PUSH  A

;入栈保护

PUSH  DPL

PUSH  DPH

MOV  DPTR, #5001H

MOVX  A, @DPTR

;读A/D转换结果

MOV  50H, A

;结果存50H

MOV  DPTR, #5001H

MOVX  @DPTR ,A

;再次启动通道1

POP  DPH

;恢复现场

POP  DPL

POP  A

POP  PSW

RETI

实验步骤:

1、 输入程序。

2、采用设置断点和连续执行方式,运行程序。检查模拟输入电压和A/D转换结果之间是否互相对应。

思考题:

1、中断法A/D采样程序,中断子程序中为什么要再次启动A/D?

2、仿真调试中,如何确认中断已经响应?

3、如果采集8路输入,程序如何改写?

(二)A/D演示实验

实验内容:

实验板的最左二位数码管显示0809通道1的A/D转换结果(16进制数字量),它经标度变换后得到的模拟输入电压值(10进制)显示在最右三位,两者之间以“一”号分开。

设A/D转换结果为数字量N,则对应的模拟输入大小为 。可见,只要将乘积5×N的小数点右移8位,就能实现标度变换了。

参考程序:

ORG  0000H

LJMP  MAIN

ORG

  MAIN:

MOV  SP, #60H

;设置堆栈

MOV  DPTR, #0B000H

;8155命令字

MOV  A, #03H

MOVX  @DPTR, A

;A、B口输出,C口输入

MOV  R0, #2AH

;显示初始化

MOV  A, #11H

;全部亮“一”

   ML0:

MOV  @R0, A

INC  R0

CJNE  R0, #30H, ML0

   DIS:

LCALL  DISP

;调用显示

LCALL  AD1

;调用A/D

MOV  A, 50H

;采样值高8位送显示缓冲2A

ANL  A, #0F0H

SWAP  A

MOV  2AH, A

MOV  A, 50H

;低8位送显示缓冲2B

ANL  A, #0FH

MOV  2BH, A

MOV  A, 50H

;标度度换:5×N×2-8

MOV  B, #05H

MUL  AB

;结果:整数存B,小数存A

PUSH  A

;暂存

MOV  A, B

;整数加亮小数点后送显示2DH

ADD  A, #14H

;14H为显示字形码中加亮小数点的偏移量

MOV  2DH, A

POP  R3

;小数部分变换为BCD码后,存入显示缓冲2EH、2FH

MOV  R0, #2E

;调用二进制小数→十进制

LCALL  PBTD

SJMP  DIS

END

实验步骤:

1、输入程序。

2、单步执行,观察程序执行过程。

3、连续运行。改变模拟输入的大小,观察显示结果。

思考题:

拟将实验板作为温度变送器的测量值数字显示。温度变送器量程0~300℃、输出0~5V,接至0809的通道1,试编写程序。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分