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

📄 定时器.c

📁 温度与转速数据采集和控制
💻 C
字号:
#include <reg52.h>

#define miao   6000//时间精度调节
#define bojintime_l            4//报警声时间长短-低电平开始
#define bojintime_h           6//报警声时间长短-低电平结束
#define setdelet                  50//设置状态退出时间




#define lis_f                       0x02//累计时分1
#define lis_s                       0x04//累计时时2

unsigned int mine;//累计时间定时20次数  *50m秒为1秒
unsigned char minm;//累计时间 -秒
unsigned char leiji_minf;//累计时间 -分
unsigned int leiji_mins;//累计时间- 小时

unsigned int mine1;//启动计时后  定时20次数  *50m秒为1秒
unsigned char minm1;//启动计时后-秒
unsigned char minf1;//启动计时后-分
unsigned char mins1;//启动计时后-时
sbit le1=P1^6;
sbit le2=P2^6;

sbit time_led=P2^7;
extern bit time_ledbz;
bit jisiqido1;//启动后计时
extern bit wesan;//位闪启动
extern bit seziws;//设置位闪标志

extern bit wd_bojin_se;//温度报警位
extern bit zs_bojin_se;//转速报警位
extern bit wd_ds;//温度显示状态
extern bit zs_ds;//转速显示状态
extern bit wd_ws;//温度位闪标志
extern bit zs_ws;//转速位闪标志
extern unsigned char gnstr;//功能键状态
unsigned char bose;
unsigned char strat_gn;//退出设置状态
extern void set_gnstr();//设置显示状态
extern bit i2c_write(unsigned char address,unsigned int fb);
void time_qd();

void time2() interrupt 5 using 1
{
mine++;
if(jisiqido1)
    mine1++;
}


void time_qd()
{
if(mine>=miao)
       {
          mine=0;
          if(gnstr!=0)
          	{
          	    strat_gn++;
          	    if(strat_gn>=setdelet)
          	    	  {
          	    	  gnstr=0;
          	    	  set_gnstr();
          	    	  }
          	}
          else strat_gn=0;
          
          if(wd_bojin_se|zs_bojin_se)
          	{
               le1=!le1;
               bose++;
               if(bose==bojintime_l)
               	 le2=0;
               else if(bose>=bojintime_h)
               	{
                       bose=0;
                       le2=1;
             	        }
          	 }
          else {le2=1;bose=0;le1=0;}

          if(wd_bojin_se&wd_ds)
          	   wd_ws=!wd_ws;
          else wd_ws=0; 
          if(zs_bojin_se&zs_ds)
          	zs_ws=!zs_ws;
          else zs_ws=0;
          
          if(time_ledbz&jisiqido1)
          	time_led=!time_led;
          else  if(time_ledbz)time_led=0;
          else time_led=1;
          
           if(wesan)
  	       seziws=!seziws;
           else seziws=0;
           
          minm++;
          if(minm>=125)
               	{
                        minm=0;
                        leiji_minf++;
                      i2c_write(lis_f, leiji_minf);
                       if(leiji_minf>=60)
                             	{
                             	leiji_minf=0;
                             	leiji_mins++;  
         	                      i2c_write(lis_s, leiji_mins);
                                    }
  	              }
             }

if(mine1>=miao)
{
  mine1=0;
  minm1++;
  if(minm1>=125)
  	{
         minm1=0;
         minf1++;
         if(minf1>=60)
         	{
         	minf1=0;
         	mins1++;
              if(mins1>100)
             	     mins1=0;
               }
  	}
  }
}

⌨️ 快捷键说明

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