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

📄 chengxu.c

📁 可编程继电器模块
💻 C
字号:
/********************************************************************
                            汇诚科技

实现功能:按键按下保持5秒开关接通,不够5秒,不动作,按键断开,输出也断开
使用芯片:STC15F104E
晶振:12MHZ
波特率:9600
编译环境:Keil
作者:zhangxinchunleo
网站:www.ourhc.cn
淘宝店:汇诚科技 http://shop36330473.taobao.com
【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!     

*********************************************************************/
/********************************************************************/

#include<reg52.h>  	       //库文件
#define uchar unsigned char//宏定义无符号字符型
#define uint unsigned int  //宏定义无符号整型
/********************************************************************
                            初始定义
*********************************************************************/
uint sec; //定义计数值,每过1/10 秒,sec 加一
uchar keycnt=0;//按下次数值
uint tcnt; //键值判断
/********************************************************************
                            I/O定义
*********************************************************************/
sbit P33=P3^3;	 //定义单片机P3口的第3位 (即P3.3)
sbit P3_5=P3^5;
/********************************************************************
                            延时函数
*********************************************************************/
void delay(uchar t)
{
  uchar i,j;
   for(i=0;i<t;i++)
   {
   	 for(j=13;j>0;j--);
	 { ;
	 }
   }
}

/********************************************************************
                            按键扫描函数
*********************************************************************/
void KEY() //按键扫描程序
{
if(P3_5==0)
	{
	TR0=1; //开始定时
   	}

else 
{
 TR0=0;
 tcnt=0;
 sec=0;
 P33=0;
} 	   
}
/********************************************************************
                            定时中断服务函数
*********************************************************************/
void t0(void) interrupt 1 using 0 //定时中断服务函数
{
	tcnt++; //每过250ust tcnt 加一
	if(tcnt==400) //计满400 次(1/10 秒)时
	{
		tcnt=0; //重新再计
		sec++;

		if(sec==50) //定时5 秒,在从零开始计时
		{
			sec=0;
	        P33=1;
		}
	}
}

/********************************************************************
                            主函数
*********************************************************************/
void main()
{
	TMOD=0x02; //定时器工作在方式2
	TH0=0x06; //对TH0 TL0 赋值
	TL0=0x06;
	ET0=1;
	EA=1;
	sec=0;
	TR0=0;
	P33=0;
	while(1)
	{
	 KEY();
	}
}		

	
/********************************************************************
                              结束
*********************************************************************/

⌨️ 快捷键说明

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