//此程序应一个网友要求而作, 批初步在硬件上测试通过
//晶振11.0592M,50ms常数是4c00,2ms常数是f8cc
//功能为检测断电延时时间,是否合格(是否在2ms到50ms之间。)
//2007/12/24
单片机学习视频教程
http://www.studydz.com/html/60/category-catid-60.html
电路分析的视频教程
http://www.studydz.com/html/62/category-catid-62.html
#include
sbit led0=P1^0; //显示错误
sbit led1=P1^1; //显示错误
//led0与led1同时亮,则测试通过,只亮一个,则错误,两个全不亮,则异常
sbit starttest="P1"^2; //检测开始信号,被测电源关闭时,同时产生的信号
sbit test="P1"^3; //高电平等待
void main(void)
{
unsigned int testtime="0";
TMOD="0x01";
EA="1";
TH0=0;//初值为0,这样可以定时到最大的值,所测时长不能超过此值(此程序中约71ms)
TL0=0;
while(1)
{
starttest="1";//初始化检测点
test="1"; //初始化检测点
if(starttest)
{
led0=1;
led1=0;
}
else
{
if(!test)
{
led0=0;//如果有了测试信号,但test为0,则异常
led1=0;
}
else
{
TH0=0;
TL0=0;
TR0=1; //开始对内部时钟计数(开始测试)
while(test);//等待延时完成
TR0=0;
testtime="TH0"*256+TL0;
if(0x4c00 {led0=1;led1=0;}
else
{led0=0;led1=1;}
}
}
}
}
文章评论(0条评论)
登录后参与讨论