新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于51單片機(jī)的電源延時(shí)檢測(cè)器的設(shè)計(jì)

基于51單片機(jī)的電源延時(shí)檢測(cè)器的設(shè)計(jì)

作者: 時(shí)間:2016-11-26 來源:網(wǎng)絡(luò) 收藏
//此程序應(yīng)一個(gè)網(wǎng)友要求而作, 批初步在硬件上測(cè)試通過
//晶振11.0592M,50ms常數(shù)是4c00,2ms常數(shù)是f8cc
//功能為檢測(cè)斷電延時(shí)時(shí)間,是否合格(是否在2ms到50ms之間。)
//2007/12/24
#include
sbit led0=P1^0;//顯示錯(cuò)誤
sbit led1=P1^1;//顯示錯(cuò)誤
//led0與led1同時(shí)亮,則測(cè)試通過,只亮一個(gè),則錯(cuò)誤,兩個(gè)全不亮,則異常
sbit starttest=P1^2;//檢測(cè)開始信號(hào),被測(cè)電源關(guān)閉時(shí),同時(shí)產(chǎn)生的信號(hào)
sbit test=P1^3;//高電平等待

void main(void)
{
unsigned int testtime=0;
TMOD=0x01;
EA=1;
TH0=0;//初值為0,這樣可以定時(shí)到最大的值,所測(cè)時(shí)長(zhǎng)不能超過此值(此程序中約71ms)
TL0=0;
while(1)
{
starttest=1;//初始化檢測(cè)點(diǎn)
test=1;//初始化檢測(cè)點(diǎn)
if(starttest)
{
led0=1;
led1=0;
}
else
{
if(!test)
{
led0=0;//如果有了測(cè)試信號(hào),但test為0,則異常
led1=0;
}
else
{
TH0=0;
TL0=0;
TR0=1; //開始對(duì)內(nèi)部時(shí)鐘計(jì)數(shù)(開始測(cè)試)
while(test);//等待延時(shí)完成
TR0=0;
testtime=TH0*256+TL0;
if(0x4c00{led0=1;led1=0;}
else
{led0=0;led1=1;}
}
}
}

}


評(píng)論


技術(shù)專區(qū)

關(guān)閉