欢迎来到天天文库
浏览记录
ID:39348665
大小:36.50 KB
页数:4页
时间:2019-07-01
《ADC0809做AD转换的C程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、ADC0809做AD转换的C程序#includeunsignedcharcodedispbitcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsignedchardispbuf[4];unsignedinti;unsignedintj;unsignedchargetdata;unsignedinttemp;unsignedinttemp1;unsignedcharcount;unsignedchard;sbitST=
2、P3^0;sbitOE=P3^1;sbitEOC=P3^2;sbitCLK=P3^3;sbitP34=P3^4;sbitP35=P3^5;sbitP36=P3^6;sbitP20=P2^0;sbitP21=P2^1;sbitP22=P2^2;sbitP23=P2^3;sbitP17=P1^7;voidTimeInitial();voidDelay(unsignedinti);//voidTimeInitial(){TMOD=0x10;TH1=(65536-200)/256;//定时时间为2us,亦即CLK周
3、期为0.4usTL1=(65536-200)%256;EA=1;ET1=1;TR1=1;}voidDelay(unsignedinti)//延时函数{unsignedintj;for(;i>0;i--){for(j=0;j<125;j++){;}}}voidDisplay()//{P1=dispbitcode[dispbuf[3]];//十位P20=0;P21=1;P22=1;P23=1;Delay(10);P1=0x00;P1=dispbitcode[dispbuf[2]];//个位P17=1;//显示小
4、数点P20=1;P21=0;P22=1;P23=1;Delay(10);P1=0x00;P1=dispbitcode[dispbuf[1]];//十分位P20=1;P21=1;P22=0;P23=1;Delay(10);P1=0x00;P1=dispbitcode[dispbuf[0]];//百分位P20=1;P21=1;P22=1;P23=0;Delay(10);P1=0x00;}voidmain()//主函数{TimeInitial();while(1){ST=0;//关闭转换OE=0;//关闭输出ST
5、=1;//开启转换ST=0;//关闭转换P34=0;//选择通道0P35=0;P36=0;while(EOC==0);//判断是否转换结束:是则执行以下语句,否则等待OE=1;//开启数据输出允许getdata=P0;//将数据取走,存放在变量getdata中OE=0;//关闭输出temp=getdata*1.0/255*500;//电压值转换,5V作为参考电压,分成256份dispbuf[0]=temp%10;//百分位dispbuf[1]=temp/10%10;//十分位dispbuf[2]=temp/
6、100%10;//个位dispbuf[3]=temp/1000;//十位Display();}}voidt1(void)interrupt3using0//定时器中断服务函数;作用:产生CLK信号{TH1=(65536-200)/256;TL1=(65536-200)%256;CLK=~CLK;}
此文档下载收益归作者所有