当前位置: 首页> 汽车> 时评 > 网站定制项目_汕头app开发_seo和sem是什么意思啊_百度技术培训中心

网站定制项目_汕头app开发_seo和sem是什么意思啊_百度技术培训中心

时间:2025/7/12 19:38:07来源:https://blog.csdn.net/lj2407727730/article/details/144470719 浏览次数: 0次
网站定制项目_汕头app开发_seo和sem是什么意思啊_百度技术培训中心

实际项目中,尤其是小家电产品,经常出现1个按键短按开机-再按1档-再按2档-再按关机的任务框架。本案例基于辉芒芯片,记录按键逻辑与切换不同工作模式的方法.

#include "SYSCFG.h"
//***********************宏定义****************************
#define  unchar     unsigned char 
#define  unint     unsigned int 
#define  LED1	PA1 
#define  LED2	PA4 
#define  LED3	PA0  
#define  KEY1	PA3
#define  SEN1	PA2#define  key_short	10   //修改此参数可以调整按键响应时间
/*-------------------------------------------------*  函数名:POWER_INITIAL*	功能:  上电系统初始化*  输入:  无*  输出:  无--------------------------------------------------*/	
void POWER_INITIAL (void) 
{ OSCCON = 0B01110001;				//IRCF=111=16MHz/4T=4MHz,0.25usINTCON = 0;  						//暂禁止所有中断OPTION = 0B00001000;				//Bit3=1,WDT MODE,PS=000=WDT RATE 1:1PORTA  = 0B00000000;					TRISA  = 0B00001100;				//PA输入 0-输出 1-输入WPUA   = 0B00000000;     			//PA端口上拉控制 1-开上拉 0-关上拉								MSCKCON = 0B00000000;//Bit4=0,禁止LVR(60e01x O版之前)       //Bit4=0,LVREN使能时,开启LVR(60e01x O版及O版之后)  //Bit4=1,LVREN使能时,工作时开启LVR,睡眠时自动关闭LVR(60e01x O版及O版后) 
}
/*-------------------------------------------------*  函数名:DelayUs*  功能:  短延时函数 *  输入:  Time延时时间长度 延时时长Time us* 	输出:  无 -------------------------------------------------*/
void DelayUs(unsigned char Time)
{unsigned char a;for(a=0;a<Time;a++){NOP();}
}                  
/*------------------------------------------------- * 	函数名:DelayMs* 	功能:  短延时函数--16M-4T--大概快1%左右.* 	输入:  Time延时时间长度 延时时长Time ms* 	输出:  无 -------------------------------------------------*/
void DelayMs(unsigned int Time)
{unsigned int a,b;for(a=0;a<Time;a++){for(b=0;b<5;b++){DelayUs(98);                //快1%}}
}
void main()
{unchar mode_flag;unint key_cnt;POWER_INITIAL();				  //系统初始化mode_flag=0;key_cnt=0;while(1){if(!KEY1)          //只要检测到按键按下就开始计数{    		 		   key_cnt++;		  }                    while((KEY1)&&(key_cnt>0))//等待按键松后开并且要按键计数大于0{if(key_cnt>=key_short)		  //如果检测到按键按下计数大于设定值,表示按下成功mode_flag++;	        //切换到下一个模式key_cnt=0;		    //计数清0,退出循环	  }if(mode_flag>2)       //有多少个模式就写多少值{mode_flag=0;       //让模式重新回到第一个状态}   switch ( mode_flag )  //根据模式的标志位,进入到对应的工作状态,开启相应功能{case 0:              //模式1 待机/关机状态LED1=1;LED2=0;LED3=0;  break;case 1:            //模式2 LED1=0;LED2=1;LED3=0;  break; case 2:           //模式3LED1=0;LED2=0;LED3=1;  break;           }}
}
关键字:网站定制项目_汕头app开发_seo和sem是什么意思啊_百度技术培训中心

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: