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

📄 chengxu.c

📁 MQ8氢气检测传感器说明书V1.1
💻 C
字号:
/********************************************************************
                           龙戈电子
网址:http://www.auto-ctrl.com
*********************************************************************/
#include <reg52.h>             //头文件
#define uchar unsigned char	   //宏定义无符号字符型
#define uint  unsigned  int	   //宏定义无符号整型
code uchar seg7code[10]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //显示段码 数码管字跟
uchar wei[4]={0XEf,0XDf,0XBf,0X7f};  //位的控制端								 //位控制码
sbit ST=P3^0;   //A/D启动转换信号
sbit OE=P3^1;   //数据输出允许信号
sbit EOC=P3^2;  //A/D转换结束信号
sbit CLK=P3^3;  //时钟脉冲  
uint z,x,c,v,AD0809, date;	//定义数据类型
/******************************************************************
延时函数
******************************************************************/
void delay(uchar t)
{
  uchar i,j;
   for(i=0;i<t;i++)
   {
   	 for(j=13;j>0;j--);
	 { ;
	 }
   }
}
/**********************************************************************
                数码管动态扫描
*********************************************************************/
void xianshi() //显示函数
 { 
uint z,x,c,v;
  z=date/1000;			 //求千位
  x=date%1000/100;		 //求百位
  c=date%100/10;		 //求十位
  v=date%10;			 //求个位

      P2=0XFF;
	  P0=seg7code[z]&0x7f;
	  P2=wei[0];
	  delay(80);
	  P2=0XFF;  
      P0=seg7code[x];
	  P2=wei[1];
	  delay(80);
	  P2=0XFF;  
   	  P0=seg7code[c];
	  P2=wei[2];
	  delay(80);
	  P2=0XFF;  
      P0=seg7code[v];
	  P2=wei[3];
	  delay(80); 
	  P2=0XFF;
  }
 /*************************************************************************
                                CLK振荡信号	
**************************************************************************/
void timer0( ) interrupt 1 //定时器0工作方式1
{

TH0=(65536-2)/256;	  //重装计数初值
TL0=(65536-2)%256;	  //重装计数初值
CLK=!CLK;			  //取反
}

 /*************************************************************************
                                主函数	
**************************************************************************/
 void main()
{ 
TMOD=0X01;			  //定时器中断0

CLK=0;				  //脉冲信号初始值为0
TH0=(65536-2)/256;	  //定时时间高八位初值
TL0=(65536-2)%256;	  //定时时间低八位初值
EA=1;				  //开CPU中断
ET0=1;				  //开T/C0中断
TR0=1;
 while(1)			   //无限循环
	{
	ST=0;				//使采集信号为低
	ST=1;				//开始数据转换
	ST=0;				//停止数据转换
	while(!EOC);		//等待数据转换完毕
	OE=1;				//允许数据输出信号
	AD0809=P1;		    //读取数据
	OE=0;				//关闭数据输出允许信号
	if(AD0809>=251)		//电压显示不能超过5V
	AD0809=250;
	date=AD0809*20;		//数码管显示的数据值,其中20为采集数据的毫安值
	xianshi();			//数码管显示函数
    
    }
}	

⌨️ 快捷键说明

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