基于STC12C2052AD芯片的自动关机代码

功能:无干预5秒后(大约是)自动关机

(使用了定时器0,模式1,不允许外部中断,允许定时器中断)

详细:开机后,在无人干预(关机除外)的时候5秒后自动关机。思路是:在开机的时候调用初始化函数,在干预动作产生后调用T0_ress函数进行定时器数据重载。当不干预5秒后定时器中断函数调用关机函数,完成关机。关机函数中关闭总中断(随你),关闭定时器中断(随你),关闭定时器,计时标志也清零,这样就不会影响下一次开机。

#include "stc12c2052ad.h"
//下面是定时自动关机的代码
unsigned int T = 0;//Timing mark

void T0_INIT(void)
{
	TMOD = 0x0;
	TMOD |= 0x01;
	TH0 = 0x3c;
	TL0 = 0xb0;//50ms
	EA = 1;   //Turn on total interrupt
	ET0 = 1; //Allow timer interruption
	TR0 = 1;//open timer
	T = 0;
}

void T0_reass(void)//Timer parameter reload
{
	TR0 = 0;
	TH0 = 0x3c;
	TL0 = 0xb0;
	T = 0;	
	TR0 = 1;
}
void T0_Subfunction(void) interrupt 1 //Interrupt subfunction
{
	TH0 = 0x3c;
	TL0 = 0xb0;
	T++;
	if(T>=200)//Over 10 seconds automatic shutdown
	{
		CLOSE_MACHINE();//关机函数
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值