hotpower
/*---------------------------------------------------------
STC單片機(jī)IO管腳毀壞動(dòng)態(tài)自檢程序
[email protected] 2005.6.6
----------------------------------------------------------*/
#i nclude <REGX52.h>
#i nclude <stdio.h>
#i nclude <absacc.h>
#i nclude <intrins.h>
#i nclude <string.h>
#pragma NOAREGS
//STC ISP_V2.0 PCB的晶振為18.432MHz
#define WdtTime_71_1mS 0x30 //71.1mS
#define WdtTime_141_2mS 0x31 //141.2mS
#define WdtTime_284_4mS 0x32 //284.4mS
#define WdtTime_568_8mS 0x33 //568.8mS
#define WdtTime_1_1377S 0x34 //1.1377S
#define WdtTime_2_755S 0x35 //2.755S
#define T2_5mS -1536*5//5ms 18.432MHz
/*------------------------------------------------
AT89S5X
--------------------------------------------------*/
sfr AUXR = 0x8e;
sfr WDTRST = 0xa6;
sfr16 TIMEER2 = 0xcc;
sfr16 RCAP = 0xca;
/*------------------------------------------------
STC89C5XRC
--------------------------------------------------*/
sfr WDT_CONTR = 0x0e1;
//全局變量定義
typedef struct Systemstruct{//系統(tǒng)數(shù)據(jù)結(jié)構(gòu)
unsigned char TimeCount;
unsigned int RamTest;
unsigned char SioTxCount;
unsigned char SioTxSum;
unsigned char SioRxCount;
unsigned char SioTxBuff[32];
// unsigned char SioRxBuff[32];
}SystemData;
data SystemData SystemBuffers;//申請(qǐng)系統(tǒng)數(shù)據(jù)結(jié)構(gòu)
void MainInit(void);//系統(tǒng)初始化
void SystemInit(void);//系統(tǒng)初始化
void SystemSetup(void);//系統(tǒng)設(shè)置
void SystemIoInit(void);//系統(tǒng)接口初始化
void TimeInit(void);//定時(shí)器定時(shí)參數(shù)設(shè)置
void UserSetup(void);//用戶運(yùn)行環(huán)境設(shè)置
void ClrWdt(void);//喂狗
void IoPinTest(void);
unsigned char Port0Test(void);
unsigned char Port1Test(void);
unsigned char Port2Test(void);
unsigned char Port3Test(void);
void main(void)
{
MainInit();//系統(tǒng)初始化
while (1) {//主循環(huán)
IE |= 0xb2;//保證中斷可靠EA,ET2,ES,ET0
TCON |= 0x55;//保證定時(shí)器開
PCON |= SMOD_ + GF0_ + IDL_;//進(jìn)入空閑狀態(tài)并喂軟件狗
_nop_();
_nop_();
}
}
void MainInit(void) using 0//系統(tǒng)初始化
{
ClrWdt();//清除看門狗計(jì)數(shù)器
SystemIoInit();//系統(tǒng)接口初始化
SystemInit();//系統(tǒng)上電初始化
SystemSetup();//系統(tǒng)運(yùn)行環(huán)境設(shè)置
UserSetup();//用戶運(yùn)行環(huán)境設(shè)置
}