资源描述:
《智能DVM程序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#include#include#include#defineucharunsignedchar#defineuintunsignedintsbitCD4051_A=P3^0;sbitCD4051_B=P3^1;sbitEOC=P3^3;sbitAD_A=P2^4;sbitAD_B=P2^5;sbitAD_C=P2^6;sbitSTART=P3^6;sbitOE=P3^7;sbitLED1=P2^0;sbitLED2=P2^1;sbitLED3=P2^
2、2;sbitLED4=P2^3;ucharDisTab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};ucharresult,unit=0,tenth=0,place=0,tens_place=0,gain=1,adc_data;uintsign;voiddelay(longt){while(t--);}voidcheck(void){P2=0x00;P0=0xff;delay(2
3、000);P2=0xff;delay(1000);}voidDelay60ns(void){uchari,j,k;for(i=5;i>0;i--)for(j=3;j>0;j--)for(k=2;k>0;k--);}voidread_adc0809(){AD_A=0;AD_B=0;AD_C=0;START=0;START=1;START=0;while(!EOC);OE=1;adc_data=P1;Delay60ns();OE=0;}voiddata_processing(){result=adc_data/ga
4、in;sign=result;sign=sign*100/51;//ADformula:D=A*5/255unit=sign/100;//thehundredsplacetenth=sign%100/10;//thetensplaceplace=sign%100%10;//theonesplace}voidselector_channel(){if(adc_data<0X05){CD4051_A=0;CD4051_B=0;Delay60ns();gain=50;read_adc0809();data_proce
5、ssing();}else{if(adc_data<0X33&&adc_data>=0X05){CD4051_A=1;CD4051_B=0;Delay60ns();gain=5;read_adc0809();data_processing();}else{CD4051_A=0;CD4051_B=1;Delay60ns();gain=1;read_adc0809();data_processing();}}}voidDisplay(){Delay60ns();LED1=1;LED2=1;LED3=1;LED4=0
6、;P0=DisTab[place];Delay60ns();P0=0;LED1=1;LED2=1;LED3=0;LED4=1;P0=DisTab[tenth];Delay60ns();P0=0;LED1=1;LED2=0;LED3=1;LED4=1;P0=DisTab[unit];Delay60ns();P0=0;LED1=1;LED2=0;LED3=1;LED4=1;P0=0x80;Delay60ns();P0=0;LED1=0;LED2=1;LED3=1;LED4=1;P0=DisTab[tens_plac
7、e];Delay60ns();P0=0;Delay60ns();}voidmain(void){CD4051_A=0;CD4051_B=1;check();while(1){read_adc0809();selector_channel();data_processing();Display();}}