基于单片机的数字压表设计c语言,单片机数字电压表,单片机数字电压表设计,基于单片机数字电压表,单片机数字电压表程序,简易数字电压表单片机,单片机c语言,单片机c语言教程,南通单片机c语言培训,pic单片机c语言教程
#include #include
sbit st P2^4;
sbit eoc P3^7;
sbit oe P2^5;
sbit ale P2^3;
sbit key1 P3^6;
sbit key2 P3^5;
unsigned char
seg_code[] 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 ; unsigned char seg_ale[] 0xf8,0xf9,0xfa,0xfb ; unsigned char num[4]; /************延时函数**********************/
void delay_us unsigned int delayus while delayus-- ; void delay_ms unsigned int delaytime unsigned int i;
unsigned char j;
for i 0;i delaytime;i++ for j 0;j 110;j++ ; /********************************************/
/************ADC转换函数*********************/
void adc_convert void double temp1;
unsigned int temp2,temp3;
st 0;
_nop_ ; st 1;
_nop_ ; st 0;
oe 0;
while eoc 0 ; oe 1;
_nop_ ;
temp1 P0;
_nop_ ; temp1* 492; //基准电压 4.9 V
temp1/ 255;
temp2 unsigned int temp1%1000;
num[2] unsigned char temp2/100 ;
temp3 unsigned int temp2%100;
num[1] unsigned char temp3/10 ;
num[0] temp3%10;
delay_us 1 ;
oe 0; /*******************************************/
/**************显示函数*********************/
void dis void unsigned char i,b;
b 0x01;
for i 0;i 4;i++ if i 2 P1 seg_code[num[i]]&0x7f; else if i 3 P1 seg_code[num[i]]&0x7f;
else P1 seg_code[num[i]]; P3 ~b;
b 1;
delay_ms 5 ; /*******************************************/
/****************主函数*********************/
void main void unsigned char i,automatic; unsigned char keynum; int j; for i 0;i 4;i++ num[i] 0; keynum 0; for ;; /**************按键扫描******************************/ if key1 0 delay_ms 1 ; dis ; delay_ms 1 ; dis ; delay_ms 1 ; dis ; delay_ms 1 ; dis ; delay_ms 1 ; dis ; delay_ms 1 ; dis ; delay_ms 1 ; dis ; if key1 0 if keynum 3 keynum++; else keynum 0; if key2 0 //自动加按键 delay_ms 1 ; dis ; delay_ms 1 ; dis ; delay_ms 1 ; dis ; delay_ms 1 ; dis ; delay_ms 1 ; dis ; if key2 0 if automatic 0 automatic 1; else automatic 0; /***********************************************/
/****************开启四通道自动切换*************/ if automatic 1 if keynum 3 ale 1; _no