adc0809 c语言程序,ADC0809模数转换程序及详解
描述
模数转换器最重要的参数是转换的精度,通常用输出的数字信号的位数的多少表示。转换器能够准确输出的数字信号的位数越多,表示转换器能够分辨输入信号的能力越强,转换器的性能也就越好。
A/D 转换一般要经过采样、保持、量化及编有些过程是合并进码4 个过程。在实际电路中,如采样和保持,量化和编码在转换过程中行的,是同时实现的。 而ADC0809是采样频率为8位的、以逐次逼近原理进行模—数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
ADC0809主要特性:
1)8路8位A/D转换器,即分辨率8位。
2)具有转换起停控制端。
3)转换时间为100μs
4)单个+5V电源供电
5)模拟输入电压范围0~+5V,不需零点和满刻度校准。
6)工作温度范围为-40~+85摄氏度
7)低功耗,约15mW。
ADC0809内部结构
ADC0809是CMOS单片型逐次逼近式A/D转换器,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近
ADC0809外部特性(引脚功能)
ADC0809芯片有28条引脚,采用双列直插式封装,下面说明各引脚功能。
IN0~IN7:8路模拟量输入端。
2-1~2-8:8位数字量输出端。
ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路
ALE:地址锁存允许信号,输入,高电平有效。
START: A/D转换启动信号,输入,高电平有效。
EOC: A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。
REF(+)、REF(-):基准电压。
Vcc:电源,单一+5V。
GND:地。
ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此 地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可 用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。
值得一提的是,我按照上面电路,把AD的ABC三脚共同接接地时,AD0809088始终输出高电平,最后当我把BC共同接地,在程序中给A一个0,则AD0809正常运行,有输出,并且发现当所给的时钟频率越低,最高精度的那位输出越稳定。
ADC0809模数转换完整的程序:
#include《 reg52.h》
#define uint unsigned int
#define uchar unsigned char
uchar aa,qian,bai,shi,ge;
uint temp;
sbit clock=P2^0;
sbit start=P2^1;
sbit eoc=P2^2;
sbit oe=P2^3;
sbit ale=P2^4;
sbit adda=P2^5;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71
};
//void display(uchar bai,uchar shi,uchar ge);
void delay(uint z);
void main()
{
TMOD=0x20; //设置定时器1为工作方式2
TH1=0x216; //216
TL1=0x216; //216
EA=1; //开总中断
ET1=1; //开t1中断
TR1=1;
start=0; //复位
oe=0; //输出
adda=0;
//eoc=0;
ale=0; //关闭地址选择
while(1)
{
start=0;
///delay(10);
start=1; // 复位
ale=1; // 打开地址选择
adda=0;
///delay(10);
start=0; // 开始转换
ale=0; // 关地址
//delay(1);
while(eoc==0); // 等待eoc变为1
//delay(1);
oe=1; // 打开输出
//delay(1);
//P1=0xff;
temp=P1; // 取p1到p3
oe=0; // 关输出
temp=temp*50;
temp=temp/256;
qian=temp/1000;
bai=temp%1000/100;
shi=temp%100/10;
ge=temp%10;
P3=0x00;
P0=0xfe;
P3=table[qian];
delay(50);
P3=0x00;
P0=0xfd;
P3=table[bai];
delay(50);
P3=0x00;
P0=0xfb;
P3=table[shi];
delay(50);
P3=0x00;
P0=0xf7;
P3=table[ge];
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x》0;x--)
for(y=1;y》0;y--);
}
void cl() interrupt 3
{
clock=!clock;
打开APP精彩内容
点击阅读全文
adc0809 c语言程序,ADC0809模数转换程序及详解相关推荐
- adc0809 c语言程序,ADC0809 模数转换 89C52单片机C语言程序(电压表)
很不错的程序哦! ADC0809 模数转换 89C52单片机C语言程序 阅读108 评论0 字号:大中小 /**********[数字电压温度表]***********/ #include #defi ...
- 1000以内完数c语言程序_C语言经典面试题目及答案详解(二)
接着上次来说,C语言经典面试题目及答案详解(一)当中大部分是一些概念和理解的东西 ,今天说一说实践操作,有关c的经典程序. 1.输出9*9口诀.共9行9列,i控制行,j控制列. #include &q ...
- c语言50到100套,c语言51-100套试题答案及详解.pdf
c语言51-100套试题答案及详解 2 double ave=0.0; 第 51 套 试题答案及详解 3 *n=0; 4 for(i=0; i 5 ave /=N; /* 计算平均值 */ 一.程序填 ...
- c语言编程 输入螺旋数组,C语言 经典题目螺旋矩阵 实例详解
C语言 经典题目螺旋矩阵 实例详解 C语言 经典题目螺旋矩阵 //N阶螺旋矩阵 #include #include int main() { int N,i,j,n,num=1; int a[10][ ...
- c语言二级指针有什么作用,C语言中二级指针的实例详解
C语言中二级指针的实例详解 C语言中二级指针的实例详解 用图说明 示例代码: #include int main(int argc, const char * argv[]) { // int a = ...
- c语言sort函数_C语言经典面试题目及答案详解(二)
接着上次来说,C语言经典面试题目及答案详解(一)当中大部分是一些概念和理解的东西 ,今天说一说实践操作,有关c的经典程序. 1.输出9*9口诀.共9行9列,i控制行,j控制列. #include 2. ...
- python源程序文件的扩展名_python程序文件扩展名知识点详解
python程序文件的扩展名称是什么 python程序的扩展名有.py..pyc..pyo和.pyd..py是源文件,.pyc是源文件编译后的文件,.pyo是源文件优化编译后的文件,.pyd是其他语言 ...
- c语言二级证题库及详解答案,全国计算机等级考试二级C语言上机题库及其答案详解...
全国计算机等级考试二级C语言上机题库及其答案详解 全国计算机二级C语言上机考试题第一套给定程序的功能是:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积( 注: 圆面积公式为:2 ...
- Go 语言快速开发入门(基础语法详解,第一节)
Go 语言快速开发入门(基础语法详解,第一节) 一.基础语法详解,第一节 1.HelloWorld 1.1.代码编写和解释 1.2.go语言注意事项 2.Go 语言的转义字符&&Go ...
最新文章
- c++ topk问题
- DL:听着歌曲《成都》三分钟看遍主流的深度学习的神经网络的发展框架(1950~2018)
- unity怎么实现人脸追踪_景区人脸识别解决方案 人脸识别过闸机怎么实现
- c++ primer 练习题4.34:
- 实现Github和Coding仓库等Git服务托管更新
- java 网格布局管理器,Java使用网格组布局管理器
- 华为回应关于“获政府巨额补贴”报道;最高法:微信微博聊天记录可作为证据;GoLand 2020.1 路线图公布 | 极客头条...
- Grammarly SCI语法检查总结
- 最新python爬取喜马拉雅音频_Python爬虫实战案例之爬取喜马拉雅音频数据详解
- 变形监测与数据处理复习总结
- 基于nrf52832 mpu6050应用实例(7)
- 2021-2027中国家具门立柱市场现状及未来发展趋势
- 科学计算机壁纸,科幻题材电脑插画桌面壁纸
- 爬取新浪微博(一)Scrapy入门教程
- python获取pdf页数_Python分割指定页数的pdf文件方法
- 锁相环(PLL)基本结构及相关基本知识
- 纯css修改图标颜色的五种方式
- 背水一战!华为正式起诉美国政府“销售限令违宪”
- 诺基亚5310XM基本属性
- 杭州为什么能办一个区块链周
热门文章
- mysql复合主键优缺点_提问关于 mysql得联合主键和复合主键的问题
- 每日一题【49】导数-放缩法处理恒成立问题
- 【智慧农业】农业物联网解决方案
- Python金融学基础——夏普比率(Sharpe-ratio)和资产组合价值(portfolio-value)
- 施耐德PLC与迪文DGUSⅡ屏软硬件连接指南
- 【软件质量与软件测试】
- java后端开发工程师_后端工程师与 Java 工程师的区别?
- 你以为福昕阅读器只是阅读器吗
- 雄迈云台摄像机开箱评测:科技感+个性外观,彰显智能生活品质
- 一键root手机,快速获取权限的方法