码迷,mamicode.com
首页 > 其他好文 > 详细

简单的独立按键控制继电器

时间:2016-07-31 22:29:37      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:include   定时器   继电器   count   断电器   

/***************************
	独立按键控制继电器
***************************/
#include <reg52.h>

#define uchar unsigned char

sbit KEY = P1 ^ 0;
sbit RelayEN = P0 ^ 0;				   //定义继电器开启信号

void Timer0Init();					   //声明定时器0初始化函数
void RelayProcess();				   //声明断电器处理函数

uchar count = 0;					   //计秒数

void main()							   //主函数
{
	RelayEN = 1;					   //开机时关闭继电器,否则一上电继电器有动作;

	Timer0Init();
	RelayProcess();
	
}

void Timer0Init()					   //定时器初始化函数
{
	TMOD |= 0x01;					   //“|”使用多个定时器时不受影响
	TH0 = 0xFC;						   //定时1MS
	TL0 = 0x67;
	TR0 = 1;						   //开启定时器0
	EA = 1;							   //开启总中断
	ET0 = 1;						   //开启定时器0中断
}

void RelayProcess()					  //继电器处理函数
{
	KEY = 0x01;						  //读外部状态时,先使端口输出高电平;
	while (1)
	{
		if(!KEY)					  //判定有无按键按下
		{
			if(count >= 20)			  //判定秒数是否达到20MS,即去抖
			{
				count = 0;
				if(!KEY)
				{
					RelayEN = ~RelayEN;//当按键按下时,改变继电器的状态
					while(!KEY);	   //等待按键释放;
				}
			}
		}
	}
	
}

void Timer0() interrupt 1				//定时器0中断函数
{
	TH0 = 0xFC;							//重新赋值给定时器0
	TL0 = 0x67;
	count++;							//计秒数
}


本文出自 “阳子” 博客,请务必保留此出处http://9832751.blog.51cto.com/9822751/1832566

简单的独立按键控制继电器

标签:include   定时器   继电器   count   断电器   

原文地址:http://9832751.blog.51cto.com/9822751/1832566

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!