標(biāo)題: AD轉(zhuǎn)換電壓測量 [打印本頁]

作者: sibera    時間: 2017-7-11 10:54
標(biāo)題: AD轉(zhuǎn)換電壓測量
AD轉(zhuǎn)換電壓測量
#include <reg51.h>
char code TAB[10]={ 0xc0, 0xf9, 0xa4, 0xb0, 0x99,
     0x92, 0x83, 0xf8, 0x80, 0x98 };
#define  ADC P0
#define  SCANP P1  
#define  SEG7P P2
sbit  relay=P3^0;
sbit  LED=P3^1;
unsigned char  disp[4]={0, 0, 0, 0};
unsigned char _adc;  
void dataproc(unsigned char);   
void display(void);
void delay1ms(char);
main()     
{ while(1)
{ display();
  _adc=ADC;
  dataproc(_adc);  
}   
}     
void dataproc(unsigned char data_in)
{ unsigned int results;
        LED=1;   
results= data_in*197;
results=((results/(50000-results))*10000);   
disp[3]=results/10000;  
disp[2]=(results/1000)%10;
disp[1]=(results/100)%10;
disp[0]=(results/10)%10;
if(disp[3]>3)
  {  
     relay=0;
  LED=~LED;
  delay1ms(500);
  }   
}        
void display(void)
{ char i,scan;  
char times=20;   
while (--times>=0)
{ scan=1;   
  for(i=0;i<4;i++)
  { SEG7P=0xff;  
   SCANP=scan;  
   SEG7P=TAB[disp[i]];
   delay1ms(4);
   scan<<=1;   
  }     
}      
}      
void delay1ms(char x)
{ int i,j;   
for(i=0;i<x;i++)   
  for(j=0;j<120;j++);
}      






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1