急求单片机的自动断电C语言程序!!!

来源:百度知道 编辑:UC知道 时间:2024/09/22 15:39:28
我们单片机课程设计,要求2小时后整个控制系统自动断电,包括单片机也断电.我学过一点C语言,要用C语言去编.希望哪个高手指点一下,怎么编这个断电程序.

用一个PNP(或NPN)三极管起到开关的作用.控制单片机的电源.E极接5VCC,C极通过限流电阻接单片机的VCC,另外,加一个开关S,一端接单片机的VCC,一端加外加5VCCC.B极接单片要的P1.0口,程序的思路是:按下开关S,使单片机运行程序从P1.0输出低电平,使三极管导通,单片机供电,按然放开开关S.这时,单片机内部的定器启动,进行定时,定时隐时现2个小时后,中断使P1.0口输出低电平,本极管截止,单片机断电.程序如下:
/*用定时器定时2小时后控制单片机断电,
作者:w418781840,日期,2008.5.26*/
//========声明区====================
#include <reg51.h>
#define count 50000 //定时50MS
#define TH_M1 (65536-count)/256
#define TL_M1 (65536-count)%256
unsigned long count_T0; //中断计数
sbit p1_0=P1^0; //声明P1.0口
//====主函数==============
main()
{ EA=1; //开总中断
ET0=1; //定时器中断
TMOD=0x01; //工作方式1
TH0=TH_M1; //赋值
TL0=TL_M1; //启动
TR0=1; //输出低电平,给单片机供电
p1_0=0; //等待
while(1);
}
//======定时器中断函数=======
void timer(void)interrupt 1
{ TH0=TH_M1; //重新赋值
TL0=TL_M1;
if(++count_T0==144000) //144000*50MS=2小时
TR0=0; //关闭定时器
p1_0=1; /