51单片机AD转换程序

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

#includereg52.h#defineucharunsignedchar#defineuintunsignedintucharcodetable[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};sbitCLK=P3^6;//位定义AD芯片与单片机相应连接口,读取时钟口sbitDAT=P2^4;//读取数据口sbitCS=P2^5;//片选口ucharADresult,flag;voiddelay(ucharz){ucharx,y;for(x=z;x0;x--)for(y=110;y0;y--);}display(uintnum)//数据显示程序{P0=0xfe;P1=table[num/100];delay(1);P0=0xfd;P1=table[num%100/10];delay(1);P0=0xfb;P1=table[num%10];delay(1);}ucharTLC549ADC()//AD转换子程序{ucharADCdata;uchari;CS=0;//置片选为低,选中、读取AD芯片转换结果for(i=0;i8;i++)//依次移位读取AD转换8位数据{delay(1);//等待向DAT移送数据ADCdata=1;//ADCdata左移一位,即将最低位清零ADCdata|=DAT;//ADCdata与DAT相或,即将DAT加到ADCdata的最后一位中(DAT是0或者1)CLK=1;CLK=0;//以上两句产生一个时钟下降沿delay(1);}return(ADCdata);//将读取的转换结果返回}voidmain(){TLC549ADC();delay(10);while(1){if(flag==4)//判断flag是否等于20,如果等于20那么根据显示程序中的延时可算得延时时间至少为12delay(1),那么这时AD转换已经结束,可以读取转换结果ADresult=TLC549ADC();else//转换未完成则falg自加同时显示上一次的AD转换结果{flag++;display(ADresult);}}}/*AD转换数据读取流程:片选信号置底,等待AD芯片确认片选信号,并将AD转换结果最高位传送到数据口,此后每一个下降沿时钟到来时,AD芯片都会将下一位转换结果传送到数据口,当第七个下降沿到来后,AD转换的8位数据已全部发送完毕,这时再给一个下降沿,AD芯片进行下以一次AD转换。AD转换期间不允许对AD芯片进行操作,所以在第八个下降沿后,置片选信号为高或者保持时钟信号为低电平。*/

1 / 2
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功