求stc12c5a60sa的stc ad转换换程序,P1^0测电压

您当前的位置:&>&&>&
基于AD574的高精度数字电压表
 AD574A是单片高速12位逐次比较型A/D转换器,内置双极性电路构成的混合集成转换显片,具有外接元件少,功耗低,精度高等特点,并且具有自动校零和自动极性转换功能,只需外接少量的阻容件即可构成一个完整的A/D转换器,其主要功能特性如下:分辨率:12位
非线性误差:小于&1/2LBS或&1LBS 转换速率:25us&&模拟电压输入范围:0&10V和0&20V,0&&5V和0&&10V两档四种&&电源电压:&15V和5V&&数据输出格式:12位/8位&
芯片工作模式:全速工作模式和单一工作模式
我们利用AD574与ATMEL公司的低价高性能单片机AT89C2051组成一个高精度的数字电压表,电原理图如图1,AD574是12位逐次比较型A/D转换器,共有12根数据线,AT89C2051的P1与AD574的高8位数据线直接相接,AD574的低4位数据线与单片机的高半4位P1.4&&P1.7直接相接,数据的读取是依靠单片机的控制线进行分时选通进行。P3.5接AD574的字节短周期控制线(A0),P3.4接读转换数据控制脚(
),P3.7直接与工作状态指示端(STS)相连,这样的结构决定只能是8位输出形式,故
数据模式选择端直接接地即可。AT89C2051只有15根I/O口线,上述用了11根,只余下4根口线,我们将输出的数据通过单片机的串行口输出,外接一片74LS164(串入并出)译码器进行扩展,同时显示的数据为4位,剩下的2根口线仍不能满足要求,还需要一片74LS138三&&八译码器对显示LED进行地址选通。
  这里我们采用10V量程的输入模式,故AD574的Pin13为被测电压的输入端,因为只使用了一片AD574转换芯片,所以CS端直接接地即可。转换器使用&12V电源电压供电,工作电压为+5V。
  74LS164为串入并出译码器,AT89C2051通过串行口输出的BCD串行码经74LS164译码输出为七段BCD码,直接与LED的a&&g相连,同时四位LED的数据线都一一对应连接在一起。LED数码管选用共阳型,74LS138输出的地址码经一个三极管2SA1015(PNP)接LED的公共端,四位LED的显示是通过地址线进行分时选通的,这就是我们常用的动态扫描显示方式。
  值得一提的是,动态扫描显示方式中,动态扫描的频率有一定的要求,频率太低,LED将出现闪烁现象。如频率太高,由于每个LED点亮的时间太短,LED的亮度太低,肉眼无法看清,所以一般均取10ms左右为宜,这就要求在编写程序时,选通某一位LED使其点亮并保持一定的时间,程序上常采用的是调用延时子程序。在C51指令中,延时子程序是相当简单的,并且延时时间也很容易更改。
经过反复的比较和遴选,《今日电子》和21ic中国电子网举办的2013年度产品奖正式揭晓…
() () () () () () () () ()AD转换与数据采集_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
5页免费11页免费3页免费12页免费8页1下载券 5页免费4页免费4页免费4页免费10页1下载券
喜欢此文档的还喜欢29页免费28页免费47页免费4页1下载券3页免费
AD转换与数据采集|A​D89​与​L​T​C4A​D​转​换​与​数​据​采​集​电​路​与​程​序
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢基于89C51的AD转换的小型测光台灯_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
28页¥2.0045页免费86页免费6页¥2.0052页免费 53页免费85页免费85页1下载券4页免费3页1下载券
喜欢此文档的还喜欢45页免费21页免费14页1下载券6页免费42页1下载券
基于89C51的AD转换的小型测光台灯|本​文​章​是​基​于9​C1​的​A​D​转​换​的​小​型​测​光​台​灯​,​主​要​应​用​单​片​机​的​外​围​电​路​和​运​放​O​P​A7​和​A​D​C89​的​使​用​。
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢人人网-抱歉,没有找到该网页
你输入的网址可能不正确,或者该网页不存在。&或者
北京千橡网景科技发展有限公司:
文网文[号··京公网安备号·甲测资字·文化部监督电子邮箱:wlwh@·
文明办网文明上网举报电话: 举报邮箱:admin1@&&&&&&&&&&&&200分求一个STC12C5A08AD的AD转换检测电流C程序_百度知道
提问者采纳
STC12C5A08AD的AD转换程序 #include &reg51.h&#include &intrins.h&#include &string.h&#include &stdio.h&//定义与ADC有关的寄存器sfr P1_ADC_EN=0x9d;
//AD转换功能允许寄存器sfr ADC_CONTR=0
//AD转换控制寄存器sfr ADC_DATA=0
//AD转换结果寄存器,高8位sfr ADC_DATAL2=0
//AD转换结果寄存器,低2位sfr ADC_AUXR1=0xa2;sbit LED1_CS=P0^0;typedef unsigned char INT8U;typedef unsigned int INT16U;void delay(INT8U delay_time)
//延时函数{INT8UINT16Ufor(n=0;n&delay_n++){
for(m=0;m&1000;m++);}}INT16U get_AD_result(INT8U channel){INT16U myRS;INT8U myRSL;INT8U AD_finished=0;
//存储AD转化标志ADC_DATA=0;ADC_CONTR=
//选择ad当前通道
_nop_();ADC_CONTR |=0x80;
_nop_();ADC_AUXR1&=0ADC_CONTR |=0x08;
//令ADC_START=1,启动AD转换for(i=1;i&=100;i++);AD_finished=0;
while(AD_finished==0){
AD_finished=(ADC_CONTR & 0x10);//AD_FLAG==1测试AD转换结束否}ADC_CONTR &=0xf7;
//令ADC_START=0,关闭AD转换
,AD_FLAG=0,清零myRSL =ADC_DATAL2;myRSL&=0x03;myRS=0;myRS=ADC_DATA;myRS=myRS*4;myRS=myRS+myRSL;return(myRS);
//返回AD转换结果 }void main(){SCON=0x50;TMOD=0x20;PCON=0x80;TL1=0xf4;TH1=0xf4;TR1=1;TI=1;P1=P1|0x63;
//要设置为AD专函的P1.x口,先设为高P1_ADC_EN=0x63;
//p1.0;.1;.5;.6设置为AD转换输入脚
//断开P1.0,P1.1,P1.5,P1.6内部上拉电阻while(1){
if (LED1_CS==0)
LED1_CS=1;
LED1_CS=0;
rs=get_AD_result(0);
rs=rs/1024.00;
printf(&ad is %f\n&,rs) ;
delay(0x20);}}
能加你QQ吗?我QQ:
提问者评价
你真棒,学习了
其他类似问题
ad转换的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 stc ad转换 的文章

 

随机推荐