|
0.png (41.66 KB, 下載次數(shù): 83)
下載附件
2018-7-25 16:12 上傳
附件忘記上傳了:
ADC.zip
(15.57 MB, 下載次數(shù): 204)
2018-7-25 11:52 上傳
點(diǎn)擊文件名下載附件
附件 下載積分: 黑幣 -5
- #include<STC15WXX.H>
- #include<intrins.h>
- void Delay_ms(unsigned int ms)
- {
- unsigned int a,b;
- for(a=ms;a>0;)
- {
- for(b=1000;b>0;)
- {
- b=b-1;
- }
- a--;
- }
- }
- void ADC_int() //ADc初始化
- {
- P1ASF=0X01; //吧P1.0設(shè)置為ADC引腳
- CLK_DIV=0X20; //ADC結(jié)果設(shè)置
- ADC_CONTR=0X80; //打開(kāi)ADC 電源
- ADC_RESL=0;
- ADC_RES=0;
- Delay_ms(10);
- }
- unsigned int ADC_Read() //讀ADCCH6
- {
- unsigned int a=0;
- ADC_CONTR = 0X88; //啟動(dòng)ADC電源和設(shè)置P1.0口為ADC轉(zhuǎn)換并且540個(gè)時(shí)鐘轉(zhuǎn)換一次
- Delay_ms(1);
- while(!(ADC_CONTR&0X10)); //等待轉(zhuǎn)換完成
- a=ADC_RES*256+ADC_RESL; //獲取ADC結(jié)果
- ADC_CONTR&=~0x10;
- return a;
- }
- void UartInit() //9600bps@11.0592MHz
- {
- SCON = 0x50; //8位數(shù)據(jù),可變波特率
- AUXR = 0x14;
- AUXR |= 0x01; //串口1選擇定時(shí)器2為波特率發(fā)生器
- T2L = 65536-(11059200/4/9600); //設(shè)定定時(shí)初值
- T2H = (65536-(11059200/4/9600))>>8; //設(shè)定定時(shí)初值
- }
- void Uartsend_1(unsigned char send)
- {
- SBUF=send; //發(fā)送數(shù)據(jù)
- while(!TI); //等待前一幀數(shù)據(jù)發(fā)送完畢
- TI=0; //復(fù)位標(biāo)志位
- }
- void U1_TX_C(char *send)
- {
- unsigned char a=0;
- while(send[a])
- {
- Uartsend_1(send[a]);
- a++;
- }
- }
- void Uartsend_adc(unsigned long send)
- {
- unsigned char a[4],b;
- send=send*506/1024; //電壓計(jì)算
- a[0]=send%10+'0';
- a[1]=send/10%10+'0';
- a[2]='.';
- a[3]=send/100+'0';
- for(b=4;b>0;b--) //發(fā)送
- Uartsend_1(a[b-1]); //
- }
- void main()
- {
- unsigned int adcnum;
- ADC_int(); //ADc初始化
- UartInit(); //9600bps@11.0592MHz
- while(1)
- {
- U1_TX_C("t1.txt=");//先發(fā)送t1.txt=(因?yàn)橛|摸屏顯示的格式是(t1.txt="多少V" 最后還要發(fā)送三個(gè)結(jié)束標(biāo)志 0xff))
- Uartsend_1(0X22);//' “ '的十六進(jìn)制數(shù)
- adcnum=ADC_Read(); //讀取一次
- Uartsend_adc(adcnum);
- U1_TX_C("V");
- Uartsend_1(0X22);
- Uartsend_1(0Xff);
- Uartsend_1(0Xff);
- Uartsend_1(0Xff);
- Delay_ms(1000);
- }
- }
復(fù)制代碼
|
|