AD转换与显示.docx
- 文档编号:12368866
- 上传时间:2023-04-18
- 格式:DOCX
- 页数:16
- 大小:222.14KB
AD转换与显示.docx
《AD转换与显示.docx》由会员分享,可在线阅读,更多相关《AD转换与显示.docx(16页珍藏版)》请在冰豆网上搜索。
AD转换与显示
引言
本课题的任务是对A/D转换电路进行设计,了解A/D转换与单片机的接口方法,掌握AD0809转换性能及编程方法。
把模拟量转换成数字量的器件,称为模数转换器,简称为A/D(AnologtoDigit)。
一般的A/D转换过程是通过采样、保持、量化和编码4个步骤完成的,这些步骤往往是合并进行的。
当A/D转换结束,ADC输出一个转换结束信号数据。
CPU可有多种方法读取转换结果:
①查询方式;②中断方式;③DMA方式。
通道8位A/D转换器,ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。
它是逐次逼近式A/D转换器,可以和单片机直接接口。
ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。
多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。
三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。
一个实际的系统中需用传感器把各种物理参数(如压力和温度等)测量出来,并转换为电信号,再经过A/D转换器,传送给微型计算机;微型计算机加工处理后,通过D/A转换器去控制各种参数量。
目录
一、课程设计目的----------------------------------------------3
二、课程设计内容与要求----------------------------------------3
三、芯片简介--------------------------------------------------3
(一)A/D转换芯片0809引脚图与功能简介--------------------3
(二)8051单片机引脚图与引脚功能简介-----------------------6
四、设计方案及程序流程图-------------------------------------8
五、子模块设计及硬件电路连接----------------------------------9
(一)A/D转换模块----------------------------------------9
(二)单片机模块-----------------------------------------10
(三)数码管动态扫描模块--------------------------------10
六、课程设计总结---------------------------------------------10
(一)收获与体会------------------------------------------10
(二)遇到的问题及解决------------------------------------11
七、参考文献-------------------------------------------------11
八、附录(总程序)-------------------------------------------12
一、课程设计目的
单片机课程设计的目的就是要锻炼学生的实际动手能力。
在理论学习的基础上,通过完成一个具有综合功能的小系统,使学生将课堂上学到的理论知识与实际应用结合起来,对电子电路、电子元器件等方面的知识进一步加深认识,同时在软件编程、调试、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立设计单片机应用系统的开发设计工作打下一定的基础。
二、课程设计内容与要求
要求每个学生(或小组)都要自己动手独立设计完成一个典型的单片机应用小系统。
设计题目由指导教师提供,也可以自己选择设计题目,但难度不应小于参考题目,需经指导教师审查后方可确定是否采纳。
课程设计的时间为1周。
设计的最终作品包括硬件和软件两个部分,要求能够演示并达到设计指标的要求。
每个学生在作品完成后,要经指导教师检查通过后才算完成。
设计目的:
利用MCS-51芯片及相关芯片构成模拟温度检测。
设计要求:
1、由可变电阻产生0~5V连续变化的模拟信号代表温度0~100度。
2、用ADC转换器完成模拟量到数字量的转换。
3、用LED数码管显示检测温度结果并精确到小数点后一位
三、芯片简介
(一)A/D转换模块
ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。
它是逐次逼近式A/D转换器,可以和单片机直接接口。
(1)ADC0809的内部逻辑结构
由下图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。
多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。
三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。
(2)ADC0809引脚结构
ADC0809各脚功能如下:
D7-D0:
8位数字量输出引脚。
IN0-IN7:
8位模拟量输入引脚。
VCC:
+5V工作电压。
GND:
地。
REF(+):
参考电压正端。
REF(-):
参考电压负端。
START:
A/D转换启动信号输入端。
ALE:
地址锁存允许信号输入端。
(以上两种信号用于启动A/D转换).
EOC:
转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。
OE:
输出允许控制端,用以打开三态数据输出锁存器。
CLK:
时钟信号输入端(一般为500KHz)。
A、B、C:
地址输入线。
ADC0809对输入模拟量要求:
信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
地址输入和控制线:
4条
ALE为地址锁存允许输入线,高电平有效。
当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。
A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。
通道选择表如下表所示。
C
B
A
选择的通道
0
0
0
IN0
0
0
1
IN1
0
1
0
IN2
0
1
1
IN3
1
0
0
IN4
1
0
1
IN5
1
1
0
IN6
1
1
1
IN7
数字量输出及控制线:
11条
ST为转换启动信号。
当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。
EOC为转换结束信号。
当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。
OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。
OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。
D7-D0为数字量输出线。
CLK为时钟输入信号线。
因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,
VREF(+),VREF(-)为参考电压输入。
(二)、8031单片机引脚图与引脚功能简介
⒈电源:
①VCC-芯片电源,接+5V;
②VSS-接地端;
⒉时钟:
XTAL1、XTAL2-晶体振荡电路反相输入端和输出端。
⒊控制线:
控制线共有4根,
ALE/PROG:
地址锁存允许/片内EPROM编程脉冲
①ALE功能:
用来锁存P0口送出的低8位地址
②PROG功能:
片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
PSEN:
外ROM读选通信号。
RST/VPD:
复位/备用电源。
①RST(Reset)功能:
复位信号输入端。
②VPD功能:
在Vcc掉电情况下,接备用电源。
EA/Vpp:
内外ROM选择/片内EPROM编程电源。
①EA功能:
内外ROM选择端。
②Vpp功能:
片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。
⒋I/O线
8031共有4个8位并行I/O端口:
P0、P1、P2、P3口,共32个引脚。
P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。
四、设计方案及程序流程图
数据采集,主要由三大模块组成:
A/D转换模块,8051单片机模块和七段译码显示模块。
首先,通过实验箱产生0---5V可调电压;然后,将0---5V可调电压输入A/D转换进行数模转换,将0---5V的模拟量转换成00H-----FFH的数字信号,出入到单片机中,作为输入量进行倍率变换,并经软件编程实现动态扫描,最终在七段译码显示管上显示出温度变化,由实验箱和编程实现,所以具有较高的可行性。
五、子模块设计及硬件电路连接
(一)A/D转换模块:
(1)A/D转换原理图及硬件电路连线图示
(2)实验内容与步骤
利用实验仪上的0809做A/D转换实验,电位器提供模拟量输入。
编制程序,将模拟量转换成数字量,通过LED数码管显示。
A/D转换器大致分有三类:
一是双积分A/D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近式A/D转换器,精度、速度、价格适中;三是并行A/D转换器,速度快,价格也昂贵。
实验用ADC0809属第二类,是8位A/D转换器。
每采集一次一般需100μs。
由于ADC0809A/D转换器转换结束后会自动产生EOC信号(高电平有效),取反后将其与8031的INT0相连,可以用中断方式读取A/D转换结果。
①把A/D区0809的0通道IN0用插针接至电位器插孔(0-5V)。
②0809的A/D_CS插孔与CS2相连。
③将KEY/LED_CS与CS0相连
④以连续方式从起始地址06D0运行程序,在数码管上显示当前采集的电压值转换后的数字量,调节W1数码管显示将随着电压变化而相应变化,典型值为0-00H,2.5V-80H,5V-FFH。
(二)单片机处理模块
(1)单片机处理模块功能
由于本设计由可变电阻产生0~5V连续变化的模拟信号代表温度0~100度,于是由单片机来完成由A/D转换来的数字量到数码管能显示的BCD码的转换,由可变电阻产生0~5V连续变化的模拟信号代表温度0~100度的公式为x=D*1000/255=D*4,其中因要显示到小数点后一位所以多乘以10,A/D转换输出值为D
(2)单片机处理程序参考附录
(三)数码管动态扫描模块
用6位8段码LED显示电路,只要按地址输出相应数据,就可以实现对显示器的控制。
显示共有6位,用动态方式显示。
8位段码、6位位码是由两片74LS374输出。
位码经MC1413或ULN2003倒相驱动后,选择相应显示位。
本实验仪中8位段码输出地址为0X004H,位码输出地址为0X002H。
此处X是由KEY/LEDCS决定,参见地址译码。
做LED实验时,需将KEY/LEDCS接到相应的地址译码上,以便用相应的地址来访问。
例如,将KEY/LEDCS接到CS0上,则段码地址为08004H,位码地址为08002H。
显示过程如下:
经过单片机P0输出的八位二进制码,变换成BCD码,在数码管上显示,经过段选信号和位选信号的控制,最后在相应数码管上显示出相应值。
六、课程设计总结
(一)收获与体会
我在这一次数据采集的设计过程中,受益匪浅。
通过对自己在单片机课堂上所学知识的回顾,结合模拟电子技术和数字电子技术的知识,与组员共同设计,完成了目标。
这为自己今后进一步深化学习,积累了一定的宝贵经验,还对电子电路、电子元器件等方面的知识进一步加深认识,同时在软件编程、调试、相关仪器设备的使用技能等方面得到较全面的锻炼和提高。
学以致用,培养了我运用所学知识解决实际问题的能力。
通过这次课程设计我发现,只有理论水平提高了;才能够将课本知识与实践相结合。
另外,小组成员之间的合作也至为重要,遇到不懂的问题,或相互讨论,或请教老师,大家分工明确,有条不紊地完成了设计。
(二)遇到的问题及解决
刚开始,我们一点思路没有,但是大家很积极,很快找到了A/D转换这个切入点。
由此入手,我们进入了硬件连接阶段,由于对实验箱不是很熟悉,我们连线时也不是很顺利。
我们请教了实验室老师,顺利连好了电路。
并且了解到,连电路前要关闭电源并且检查线是否是完好的。
接着,我们进入了程序编写阶段。
光是这个A/D转换的接口问题我们就研究了很久,到最后换了几个试验箱才完成了对A/D转换功能的验证。
模块程序的编写并不是特别难,但是各个模块间的衔接需要仔细思考才能做好。
我们就这样一步一步的走向成功,但是最后还是因为实验箱的问题没有完成设计的最后验证过程。
希望老师在购买实验箱时,认真核对检查。
七、参考文献
[1]李建忠,单片机原理及应用,西安电子科技大学出版社,2008年。
[2]启东单片机仿真试验系统使用说明书。
[3]李珍,单片机原理与应用技术,清华大学出版社,2003年。
[4]严洁,单片机原理及接口技术,机械工业出版社,2010年1月。
[5]QTH-2008XS_系列单片机教学实验仪。
[6]刘瑞新等,单片机原理及应用教程.机械工业出版社,2003年7月。
[7]张毅刚等,MCS-51单片机应用设计(第二版).哈工大出版社,2004年。
八、附录(总程序):
AD0809equ0a000h
lOWFequ0;
HIGHFequ5;
OUTBITequ08002h
OUTSEGequ08004h
LEDBufequ60h
DelayTequ75h
ADResultequ76h
org0
ljmpStart
ORG000BH
LJMPT0INT
ORG0100H
AD0809Read:
;
movdptr,#AD0809;
mova,#0
movx@dptr,a;起动A/D
mova,#40h
djnzACC,$
movxa,@dptr;读入结果
movADResult,a;AD转换结果存入寄存器
ret
LEDMAP:
db3fh,06h,5bh,4fh,66h,6dh,7dh,07h
db7fh,6fh,77h,7ch,39h,5eh,79h,71h
Delay:
movr7,#0
DelayLoop:
djnzr7,DelayLoop;
djnzacc,DelayLoop
ret
SearchLedMap:
;数码管查询显示
anla,#0fh
movdptr,#LEDMAP
movca,@a+dptr
ret
DisplayLED:
movr0,#LEDBuf;缓冲区首地址送到r0中
movr1,#4;共4个八段管显示
movr2,#00100000b;从左边开始显示,位扫描
Loop:
movdptr,#OUTBIT;位首地址送到地址指针
mova,#0
movx@dptr,a
mova,@r0
movdptr,#OUTSEG
movx@dptr,a
movdptr,#OUTBIT
mova,r2
movx@dptr,a
mova,#01
callDelay;
mova,#0
movdptr,#OUTSEG
movx@dptr,a
mova,r2
rra
movr2,a
incr0
djnzr1,Loop;循环直到显示完四位
movdptr,#OUTBIT
mova,#0
movx@dptr,a;关所有八段管
ret
Start:
movsp,#70H
nop
clrp1.0
callAD0809Read;读取AD0809的采样值(0-5V电压值)
mova,ADResult;将AD转换结果送到A寄存器中(0-1之间的一个数)
movb,#(HIGHF-LOWF);量程送到寄存器B中
mulab
pusha
pushb
mova,b;
clrC
subba,#4
jncalarm1
ljmpnext
alarm1:
JBP1.0,NEXT1
lcallalarm
LJMPNEXT1;
next:
CLRTR0;
clrp1.0
NEXT1:
pusha;低位入柞
mova,b;高位送到寄存器A中
callSearchLedMap;查询个位数对应的BCD码
movledbuf+0,a;送到缓冲区进行显示
mova,b;把余数送到A寄存器中
callSearchLedMap;查询小数点后一位数对应的BCD码
orla,#80h;显示小数点
movb,#0ah;
mulab
pusha;
mova,b;
callSearchLedMap;
movledbuf+1,a;
movb,#0ah;
mulab
pusha;
mova,b;
callSearchLedMap;
movledbuf+2,a;
movledbuf+3,a;送到缓冲区进行显示
mova,b;
popa
movb,#0ah
mulab
mova,b
callsearchledmap;查询小数对应的BCD码
movledbuf+3,a
movDelayT,#80
DisplayAgain:
callDisplayLED;循环扫描显示三位数码管
djnzDelayT,DisplayAgain
nop
sjmpStart
alarm:
SETBP1.0
movtmod,#01h
setbtr0
movth0,#0b1h
movtl0,#0e0h
ret
T0INT:
clrtf0
clrp1.0
RETI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AD 转换 显示