⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0809.c

📁 0809的一个比较详细的C程序
💻 C
字号:
#include<at89x52.h>
code unsigned char seg7code[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};   
///////////// //显示段码/////////0      1    2	  3	   4	5	 6	   7   8	 9/////////
unsigned int datain;
unsigned int dataout,datac[4]={0};
float datamo;
sbit ST=P3^0;		////////////////////输入通道就用IN0 ///  A  B  C口 都接地////////////////
sbit OE=P3^1;
sbit EOC=P3^2;	   //////////////////输入通道就用IN0 ///  A  B  C口 都接地////////////////

void delayms(unsigned char x) //////延时x ms  误差16us
{ unsigned char y=123;
  unsigned char j;
  while(x--)
    {
      for(j=0;j<y;j++);
    }
}


void ADC0809(void)       //ADC0809转换函数 
{
 ST=0;
 ST=1;
 ST=0;
 while(EOC==0);
 OE=1;
 datain=P1;     /////单片机接收的数字数据
 OE=0;
}
void Datapro(void)       //ADC0809数据处理函数
{
 datamo=(datain*5)/256.0;
 dataout=(unsigned int)(datamo*1000); //////////强制转换
 datac[3]=dataout%10;////////小数点后第三位/////四位数码管显示
 datac[2]=dataout%100/10;/////////////第二位/////////
 datac[1]=dataout/100%10;//////////////第一位//////////             
 datac[0]=dataout/1000;///////////////个位数/////
}

void Led(void)
{
 P2_3=1;  /////////////////P2低四位控制数码管位选
 P2_0=0;
 P0=seg7code[datac[0]]|0x80;  //输出个位数和小数点
 delayms(4); 
 P2_0=1;
 P2_1=0;
 P0=seg7code[datac[1]];     //输出小数点后第一位
 delayms(4); 
 P2_1=1;
 P2_2=0;
 P0=seg7code[datac[2]];       //输出小数点后第二位
 delayms(4);
 P2_2=1;
 P2_3=0;
 P0=seg7code[datac[3]];           //输出小数点后第三位
 delayms(4);
 
}

void main(void)
{
 P2=0xff; 
 P0=seg7code[0];
 datain=0;
 dataout=0;
 while(1)
   {
    ADC0809();
	Datapro();
    Led();
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -