博主福利:100G+电子设计学习资源包!
http://mp.weixin.qq.com/mp/homepage?__biz=MzU3OTczMzk5Mg==&hid=7&sn=ad5d5d0f15df84f4a92ebf72f88d4ee8&scene=18#wechat_redirect --------------------------------------------------------------------------------------------------------------------------
工作原理:
- ADDA/ADDB/ADDC 输入3位地址,并使ALE=1,将地址存入地址锁存器中
ALE:地址锁存允许信号接入端,高电平时允许改变CBA的值,低电平时锁死,防止在A/D转换过程中切换通道 - 地址经译码选通8路模拟输入IN0~IN7之一到比较器,输入与被选通道关系
通道 | C | B | A |
IN0 | 0 | 0 | 0 |
IN1 | 0 | 0 | 1 |
IN2 | 0 | 1 | 0 |
IN3 | 0 | 1 | 1 |
IN4 | 1 | 0 | 0 |
IN5 | 1 | 0 | 1 |
IN6 | 1 | 1 | 0 |
IN7 | 1 | 1 | 1 |
- START端上升沿将逐次逼近寄存器复位,下降沿启动A/D转换
- EOC输出信号变低电平,表示正在转换;当A/D转换完成,EOC变为高电平,结果数据已存入锁存器。
- OE输入高电平,输出三态门打开,转换结果的数字量输出到数据总线上。
OE=1时,D0-D7引脚上为转换后的数据,当OE=0时,D0-D7为对外呈现高阻状态
p.s.
其他引脚:
IN0~IN7:8路模拟量输入引脚
CLK:时钟信号输入端
V_(REF(+)):参考电压正端
V_(REF(-)):参考电压负端
——————————————————————————————————————
数字电压表实验
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- -
实现效果:
- 检测外部模拟电压,并用数字量将其电压值表示出来
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
实现思路:
- A/D转换
- 初始化时启动A/D转换,转换结束后OE自动置位
- 检查OE状态,为高电平时读取数据口数据并转换成对应的电压值
- 显示结束后启动下一次A/D转换
- 数码管显示
- 读入数据并转换成电压值后,通过数码管显示,百位数值后显示小数点
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
连接说明:
ADC0808 | OUT1-OUT8 | 89C51 | P0.0-0.7 | 转换后数据输出到单片机 |
| START |
| P3.0 |
|
| EOC |
| P3.1 |
|
| OE |
| P3.2 |
|
| IN0 | POT-HG | + | 输入模拟信号 |
| ADDA/ADDB/ADDC/VREF(-) | GND |
| 0 0 0 选择通路IN0 |
| ALE/VREF(+) | POWER |
| 将地址存入地址锁存器中 |
数码管 | 1/2/3/4/5/6/7 | 89C51 | P2 | 控制数码管显示位数 |
| A/B/C/D/E/F/G/DP |
| P1 | 控制显示段码 |
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
实现代码: