资源描述:
《adc0832数字电压表(程序 仿真图)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、仿真图:/*********************************包含头文件********************************/#include#include/*********************************端口定义**********************************/sbitCS=P3^5;sbitClk=P3^3;sbitDATI=P3^4;sbitDATO=P3^4;sbitP20=P2^0;/*******************************
2、定义全局变量********************************/unsignedchardat=0x00;//AD值unsignedcharcount=0x00;//定时器计数unsignedcharCH;//通道变量unsignedchardis[]={0x00,0x00,0x00};//显示数值/*******************************共阳LED段码表*******************************/unsignedcharcodetab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0
3、x82,0xf8,0x80,0x90};charcodetablewe[]={0xfd,0xfb,0xf7,0xef,0xdf,0xfe};/****************************************************************************函数功能:AD转换子程序入口参数:CH出口参数:dat****************************************************************************/unsignedcharadc0832(unsignedchar
4、CH){unsignedchari,test,adval;adval=0x00;test=0x00;Clk=0;//初始化DATI=1;_nop_();CS=0;_nop_();Clk=1;_nop_();if(CH==0x00)//通道选择{Clk=0;DATI=1;//通道0的第一位_nop_();Clk=1;_nop_();Clk=0;DATI=0;//通道0的第二位_nop_();Clk=1;_nop_();}else{Clk=0;DATI=1;//通道1的第一位_nop_();Clk=1;_nop_();Clk=0;DATI=1;//通道1的第二位_
5、nop_();Clk=1;_nop_();}Clk=0;DATI=1;for(i=0;i<8;i++)//读取前8位的值{_nop_();adval<<=1;Clk=1;_nop_();Clk=0;if(DATO)adval
6、=0x01;elseadval
7、=0x00;}for(i=0;i<8;i++)//读取后8位的值{test>>=1;if(DATO)test
8、=0x80;elsetest
9、=0x00;_nop_();Clk=1;_nop_();Clk=0;}if(adval==test)//比较前8位与后8位的值,如果不相同舍去。若一直出现显示为零,请将
10、该行去掉dat=test;_nop_();CS=1;//释放ADC0832DATO=1;Clk=1;returndat;}/****************************************************************************函数功能:延时子程序****************************************************************************/voiddelay(void){intk;for(k=10;k<500;k++);}/***************
11、*************************************************************函数功能:将0-255级换算成0.00-5.00的电压数值****************************************************************************/voidconvdata(unsignedchari){dis[0]=i/51;//个位dis[1]=(i%51)*10/51*2;//小数点后第一位dis[2]=((i%51)*10%51)*10/51*2;//小数点后第二位}/
12、*******************