1 #include "reg51.h" 2 #include "stdio.h" 3 #define OSC 18432000L 4 #define BAUD 9600 5 #define ADC_POWER 0x80 6 #define ADC_FLAG 0x10 7 #define ADC_START 0x08 8 #define ADC_SPEEDLL 0x00 9 #define ADC_SPEEDL 0x20 10 #define ADC_SPEEDH 0x40 11 #define ADC_SPEEDHH 0x60 12 13 sfr T2H=0xD6; 14 sfr T2L=0xD7; 15 sfr AUXR=0x8E; 16 sfr ADC_CONTR=0xBC; 17 sfr ADC_RES=0xBD; 18 sfr ADC_RESL=0xBE; 19 sfr P1ASF=0x9D; 20 21 unsigned char ch=2; 22 float voltage =0; 23 unsigned char tstr[5]; 24 unsigned int ref=0,vin=0; 25 26 void sendData(unsigned char dat) 27 28 { 29 while(!TI); 30 TI=0; 31 SBUF=dat; 32 } 33 34 void adc_int() interrupt 5 35 { 36 unsigned char i=0; 37 unsigned long int j=0; 38 ADC_CONTR&=!ADC_FLAG; 39 vin=(ADC_RES*4+ADC_RESL); 40 voltage=2.5*vin/ref; 41 sprintf(tstr,"%1.4f",voltage); 42 sendData('\r'); 43 sendData('\n'); 44 for(i=0;i<5;i++) 45 sendData(tstr[i]); 46 47 for(j=0;j<=80000;j++); 48 ADC_RES=0; 49 ADC_RESL=0; 50 ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ADC_START|ch; 51 } 52 53 void main() 54 { 55 unsigned int i; 56 SCON=0x5A; 57 T2L=65536-OSC/4/BAUD; 58 T2H=(65536-OSC/4/BAUD)>>8; 59 AUXR=0x14; 60 AUXR|=0x01; 61 P1ASF=0xFF; 62 ADC_RES=0; 63 ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ADC_START|ch; 64 for(i=0;i<=10000;i++); 65 IE=0xA0; 66 while(1); 67 } 68
STC8_ADC
猜你喜欢
转载自www.cnblogs.com/https/p/9303541.html
今日推荐
周排行