欢迎来到天天文库
浏览记录
ID:58397809
大小:17.00 KB
页数:3页
时间:2020-05-08
《adc0809电压采样并用数码管显示.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、/*********************************************************************************************************数码管显示AD采样得到电压值,输入电压0-5V(可以加一个分压电路,进而扩大采样范围,其他举一反三)。步进0.01V,误差0.01V。改进:1.可改用液晶显示,进而增加可显示范围2.可加键盘,完成通道的步进****************************************************************************************
2、******************/#includesbitst=P3^2;//定义引脚ST,EOC,OEsbiteoc=P3^3;sbitoe=P3^4;sbita=P2^5;//地址ABC口sbitb=P2^6;sbitc=P2^7;sbitw1=P2^3;//定义数码管位选引脚sbitw2=P2^2;sbitw3=P2^1;sbitw4=P2^0;sbitxiaoshudian=P0^7;#defineA{w1=0;w2=1;w3=1;w4=1;}//定义数码管位选#defineB{w1=1;w2=0;w3=1;w4=1;}#defineC{w1=1;w2=1;
3、w3=0;w4=1;}#defineD{w1=1;w2=1;w3=1;w4=0;}//#definetongdao{a=b=c=0;}//选择通道0#defineuintunsignedint#defineucharunsignedcharuintgetdata,temp;//定义变量ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88};ucharad0,ad1,ad2,ad3;//定义缓存区voiddelay(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y
4、>0;y--);}voidmain(){a=b=c=0;//tongdao;while(1){st=0;//启动转换st=1;st=0;while(!eoc);//等待转换结束oe=1;getdata=P1;oe=0;temp=getdata;//temp=temp/0.51;//也可以搞定temp=temp*1.97;/*dispbuf[3]=(temp/10000)%10;//分离数据dispbuf[2]=(temp/1000)%10;dispbuf[1]=(temp/100)%10;dispbuf[0]=(temp/10)%10;*/ad0=(temp/1000)%10;//分离数
5、据ad1=(temp/100)%10;ad2=(temp/10)%10;ad3=(temp/1)%10;/********************************************************************************************************************************这个鸟程序烦死我了,最后发现是这里(下面屏蔽掉的那一部分,一起记录下自己的错误,印记成长的足迹)的问题,一共烧写了60多次才发现是这里的问题。问题就是:在用移位法选中数码管位(低四位)的时候无意间屏蔽掉了或者说是影响了高位,而高三位
6、恰好是选择通道的控制口。由于是1111(f),所以AD的通道就有这条语句控制为第七个通道,而前面的程序的意思就是只选中通道0.因此数码管上不管怎么烧程序都是现实000.//P2=0xf7;P0=table[ad0];delay(2);//P2=0xfb;P0=table[ad1];xiaoshudian=0;delay(2);//P2=0xfd;P0=table[ad2];delay(2);//P2=0xfe;P0=table[ad3];delay(2);一点自己的体会:程序开始的风格模仿无悔的程序;所有的接口用#define搞定,程序可移植性高。学习别人的优点,取人之长,补己之短。**
7、******************************************************************************************************************************/A;P0=table[ad0];delay(2);//送数码管显示B;P0=table[ad1];xiaoshudian=0;delay(2);C;P0=table[ad2];del
此文档下载收益归作者所有