|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
大家都知道,在现实生活中,我们不只会遇到离散的数字量,像声音电压等连续变化的模拟量也很重要。
; B/ \: ]" d1 f+ C7 k51单片机只能使用符合TTL电平标准的数字量,而在基础款的51单片机中,并没有集成数模转换的功能。那么为了让单片机可以处理这些模拟量,我们势必要借助其他芯片的帮助。
% i7 B0 X6 U$ @) u0 t借助A/D转换芯片,我们可以将外部的模拟量转化为数字量输入单片机,也可以将单片机的数字量转换为模拟量输出外界。) A Y9 z7 ^* S- {% D
; h$ x9 j, N; ~8 O* b一、A/D转换原理8 h, u' R; Q. N, d; ^8 g8 c
A/D转换常用如下几种方式:- n3 Y: r5 G' w5 E/ E4 n1 D
1、逐次逼近法; G' l! W( }" E: f- a
逐次逼近型A/D转换器应用比较广泛,基本原理就是先将逐次逼近寄存器最高位置1,并送入D/A转换器生成模拟量V0,使用V0与输入的模拟量Vi进行比较,如果V0大于Vi则该位被保留,否则被清除。然后将寄存器次高位 置1,并不断重复上述操作,直到得出输入模拟量所对应的数字量。) J K( b6 C+ t7 Q1 z& [
2、双积分法, m/ H; P2 [ \) }. R$ c
基本原理为,对输入模拟电压和参考电压分别进行两次积分,将输入电压平均值变换为与之成正比的时间间隔,然后利用时钟脉冲和计数器测量出时间间隔,由此得到相应的数字量输出。可以看出,这是一种间接A/D转换器,是对输入电压的平均值进行转换,所以具有很强的抗工频干扰能力。
+ ^4 }7 A$ b* q8 U9 M3、电压频率转换法
6 m, [- x. D: h( u9 q* T, u, b当模拟电压Vi加到V/F的输入端,便产生频率F与Vi成正比的脉冲,在一定的时间内对该脉冲信号计数,将统计到计数器的计数值正比于输入电压Vi,完成A/D转换。7 Y. d, r- E! B: S5 a! L: M
( C5 }& N8 X4 y% `1 [' n& u二、ADC0809 A/D转换器介绍2 \% {/ w4 K/ E
今天我们要了解的ADC0809 A/D转换器就是一款使用逐次逼近法的CMOS芯片,它使用单电源供电,转换时间100us,输入电压范围0V-5V,通过三位地址选择位来处理8路模拟量输入,可与TTL电平兼容。
N5 o- l5 `% B* x" h* r* }" P
' S6 g$ w$ U/ |& q7 H1 A单片机与ADC0809的通信有:查询、中断、延时三种方式。
" V% M4 k. A" t: Z1.查询方式:单片机使用轮询方式查看EOC引脚状态,低电平说明转换正在进行,高电平证明转换完成,单片机将OE线(读数据允许线)变为高电平,读出数据;
! J; `7 u4 @' z9 s; A3 l0 y* n2.中断方式:单片机的外部中断引脚接ADC0809的EOC引脚,在中断程序中进行读数据操作;$ c: Z- f) Y5 o$ O' Y; P6 q4 x
3.延时方式:ADC0809转换时间为100us,所以可以使用定时器定时,每间隔一段时间(>100us)就读取一次数据。
* N5 J3 o/ t. Y这三种方式程序都不困难,特别是查询方式,只需要通过软件的方式进行,无需调用外部中断寄存器与定时器作为辅助。但当然,这种方式缺点也比较大,如果A/D转换器因为硬件软件原因没有工作,整个程序就会卡在循环中无法跳出,无法进行其他操作。
1 d. D- M @/ S. f' Y# T建议大家自行使用ADC0809转换器,并配合之前讲过的LCD1602显示屏,尝试制作一款电压测量仪器,这个项目难度适中,所要注意的是由于ADC0809采用并行方式输出数据,接线比较多,建议按类型将导线归类连接,不要在简单的问题上出错。
4 A* B6 ]+ h% ?“范例演练”设置了六篇公众号内容,大家能够将前五篇多多练习就可以对51单片机的认识更进一步,甚至可以举一反三,自己设计完成一些实用的小项目。
) u* f) W+ a2 c; i& |2 Z; E5 }5 p在下次也就是最后一次课程中,我们将简单了解一下现在火热的神经网络在单片机中的实现。 |
|