ad0808转换配C程序-绝对正确显示不太监.doc_第1页
ad0808转换配C程序-绝对正确显示不太监.doc_第2页
ad0808转换配C程序-绝对正确显示不太监.doc_第3页
ad0808转换配C程序-绝对正确显示不太监.doc_第4页
ad0808转换配C程序-绝对正确显示不太监.doc_第5页
免费预览已结束,剩余5页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

我在研究ADC0808转换时,发现很多人上传的图片是正确的,附带程序居然不对 而且讲解不详细 让我瞬间有蛋碎的感觉 研究会了后 我觉得要搞个简单易懂的传上去 并且程序一定要对 不太监 。废话说完了,进入正题 ADC0808转换 晶振 和复位 这个不需要多讲 最小单片机系统里面的 固定套路。AD输出部分 特别说明 ADDA ADDB ADDC连接对应INO-IN7选通,简单点讲,就是CBA 000 对应IN0选通 CBA 001对应IN1选通,因此类推。本设计选INO,所以ADDA ADDB ADDC连地。特别注意的是输出端OUT1连接P1.7 OUT 2连P1.6 ,不是大家简单以为OUT1连接P1.0,错位思路。 ADC0808 和单片机接法大图显示大图 U3 LE连P2.6做为段选,U4LE 连P2.7作为位选,不懂段选为选的话。简单点讲,第一个缓存器做为显示0-9的,第二个缓存器是觉得显示第二个数码管显示。因为显示是动态显示,每次只显示一位。因为时间很短,肉眼看不出来而已。具体的adc0808 eoc start等连接图看不出来可以看程序,上面都说清楚了。Dula连P26; Wela连P27;ST连P36; OE连P37;EOC连P23;CLK连P34;完整电路图C程序(说明程序的原理,ADC0808CLOCK需要时钟脉冲信号,所以选择定时器TO 以方式1计数,而ADC0808脉冲最好采取50Khz信号,简单讲运行一次程序就是12*(1/(50*1000))=24微妙,所以定时器中采取从(65536-24)初值开始计数。数码管显示思路也很简单。单片机P1口读取转换的数据,他是滑动变阻器值,而滑动变阻器最大阻值为255欧,对应的是5v电压,那么我们用读取的电压temp/255*5,就是此时的电压。但是数码管是一位一位显示,所以我们需要隔离出,小数点十位 百味 个位。首先强制取整,我们就得到了整数位,接着我们用实际值减去整数值不就是小数点后面所以的值。我们乘以1000,就是把小数点后面的三位变成了三位数,然后分别分离出来显示,不就显示出来个小数点后三位。但是我们知道显示肯定是要带点。所以我们在整数显示时带小数点显示,后三位不带小数点显示,任务不就完成了。你看,如此简单!其他程序不懂,可以参照郭天祥51单片机C那本书定时器章节,很容易懂!程序不坑爹,不太监!#include#include#define uchar unsigned char#define uint unsigned intUchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f ; /共阴极代码19uchar code table1= 0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0x0ff,0xef;/个位带小数点字码表sbit dula=P26;sbit wela=P27;sbit ST=P36;sbit OE=P37;sbit EOC=P23;sbit CLK=P34;float temp=0;uint a,b,c,d,e,f;float g;/*【延时程序】*/void delay(uint ms)uint x,y;for(x=ms;x0;x-)for(y=110;y0;y-);/*【显示程序】*/void display() a=(uint)(5.0*(temp/255); /整数部分 g=5.00*(temp/255);f=(g-a)*1000; /小数部分b=f/100;c=f%100/10;d=f%10; P0=0xff;wela=1;P0=0xfe;wela=0;dula=1;P0=table1a;dula=0;delay(1);P0=0xff;wela=1;P0=0xfd;wela=0;dula=1;P0=tableb;dula=0;delay(1);P0=0xff;wela=1;P0=0xfb;wela=0;dula=1;P0=tablec;dula=0;delay(1);P0=0xff;wela=1;P0=0xf7;wela=0;dula=1;P0=tabled;dula=0;delay(1);/*【中断程序】*/void init(void)TMOD=0x01;TH0=(65536-24)/256;TL0=(65536-24)%256; EA=1; /全局中断允许位ET0=1; /打开T0中断TR0=1;/定时器0运行控制位,置1启动定时器0void timer0() interrupt 1 /中断服务程序 TH0=(65536-24)/256; TL0=(65536-24)%256; CLK=CLK

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论