smg.h

来自「单路带数码管可编程可调节延时模块」· C头文件 代码 · 共 97 行

H
97
字号
#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}; //显示段码 数码管字跟
uchar wei[4]={0X01,0X02,0X04,0X08};                                 //位的控制端
uchar numb[4];	      //定义字符串
uchar cnt;
uchar date=1;
uint miao,fen;
void delay(uint x);
/********************************************************************
                            求值函数
*********************************************************************/
void t_to_dis()
{
	numb[0]=ADC_RES/1000;	    //显示千位
	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]];
	  WEI=wei[0];
	  delay(2);

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

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

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

/********************************************************************
                           定时器中断函数
*********************************************************************/
void timer1(void)interrupt 1
{ 
  TH0=0Xa6;//定时初值
  TL0=0X01;//定时初值
   cnt++;
   if(cnt==40)
   {
	 cnt=0;
	 miao++;
	 if(miao==60)
	 {
	   miao=0;
	   fen++;
	 }
    }
	if(ADC_RES==(fen*60+miao))	 
    { 
        jdq=!jdq;
		miao=0;
		fen=0;
    }
}
/********************************************************************
                           中断初始化*********************************************************************/
void cshh()
{ 
 TMOD|=0X01;//定义定时器工作方式
 TH0=0Xa6;
 TL0=0X01;
 ET0=1;
 TR0=1;     //开定时器
 EA=1;      //开中断
 }
#endif

⌨️ 快捷键说明

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