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

📄 smg.h

📁 单路带数码管可编程可调节延时模块
💻 H
字号:
#ifndef __SMG_H__
#define __SMG_H__  
#define uchar unsigned char//宏定义无符号字符型
#define uint unsigned int  //宏定义无符号整型

#define DUAN P2	  //P0口控制段
#define WEI  P1	  //P2口控制位
sbit jdq=P3^7;
/********************************************************************
                            初始定义
*********************************************************************/
code uchar seg7code[11]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0XBF}; //显示段码 数码管字跟
sbit wei1=P1^0;
sbit wei2=P1^1;
sbit wei3=P1^2;
sbit wei4=P1^3;                              //位的控制端
uchar numb[4];	      //定义字符串
uchar cnt,keynum;
uint miao;
void delay(uchar x);
/********************************************************************
                            求值函数
*********************************************************************/
void t_to_dis()
{
	numb[0]=keynum;	            //显示千位
	numb[1]=ADC_RES%1000/100;	//显示百位
	numb[2]=ADC_RES%100/10;		//显示十位
	numb[3]=ADC_RES%10;         //显示个位
}

/********************************************************************
                            显示函数
*********************************************************************/        
void display()  //显示函数
{
      WEI&=0XF0;
	  DUAN=seg7code[numb[0]]&0x7f;
	  wei1=1;
	  delay(2);

	  WEI&=0XF0;  
      DUAN=seg7code[numb[1]];
	  wei2=1;
	  delay(2);

	  WEI&=0XF0;  
   	  DUAN=seg7code[numb[2]];
	  wei3=1;
	  delay(2);

	  WEI&=0XF0;  
      DUAN=seg7code[numb[3]];
	  wei4=1;
	  delay(2);
	   
	  WEI&=0XF0;
}

/********************************************************************
                           定时器T0中断函数
*********************************************************************/
void timer0(void)interrupt 1  using 2
{ 
  TH0=0X9c;//定时初值
  TL0=0X40;//定时初值
   cnt++;
   if(cnt==40)
   {
	 cnt=0;
	 miao++;
	 if(ADC_RES==miao)
	 {
	    jdq=1;
	    TR0=0;
		TR1=1;
		cnt=0;
	    miao=0;
	  }
	}
}

/********************************************************************
                           定时器T1中断函数
*********************************************************************/
void timer1(void)interrupt 3  using 3
{ 
 TH1=(65536-30000)/256;
 TL1=(65536-30000)%256;
   cnt++;
   if((cnt==10)&&(keynum==0))
    {
	    TR1=0;
		jdq=0;
	}
	if(cnt==100)
    {
	  cnt=0;
	  miao++;
	  if(miao==4)
	  {
	    miao=0;
		jdq=0;
		TR1=0;
	  }
	 }
}
/********************************************************************
                           定时器T0初始化*********************************************************************/
void timer0init(void)
{ 
	 TMOD|=0X11;//定义定时器工作方式
	 TH0=0X9c;
	 TL0=0X40;
	 TH1=(65536-30000)/256;
	 TL1=(65536-30000)%256;
	 ET0=1;
	 ET1=1;
 }
#endif

⌨️ 快捷键说明

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