?? sys.c
字號(hào):
/*------------- 泰興電子集團(tuán) ------------------
*----------------------------------------------
*文件名: Sys.C
*開(kāi)發(fā): www.at90s1200.go.nease.net
*創(chuàng)建日期: 2004.05.20
*創(chuàng)建人: 尹剛
*功能: 系統(tǒng)通用子程序
-----------------------------------------------
-----------------------------------------------*/
#include "global.h"
/**********************************************************
*名稱: void InitCPUIO(void);
*功能: 初始化CPU及其I/O口線
*入口參數(shù): 無(wú)
*出口參數(shù): 無(wú)
***********************************************************/
void InitCPUIO(void)
{
EA=0;
P0=0xff;
P1=0xff;
P3=0xfe;
TwiceBuf=0xDF;
P2=TwiceBuf;
LE373=1;
LE373=0;
P2=0xff;
//-------------------------
IE=0x00;
IP=0x00;
// SP=0xd0;
EA=1;
}
//#pragma NOAREGS
/***************************************************************
*名稱: void UpHandle(void);
*功能: 模擬摘機(jī)
*入口參數(shù): 無(wú)
*出口參數(shù): 無(wú)
****************************************************************/
void UpHandle(void)
{
EA=0;
if (HandMode) P_Online=1;
else P_Online=0;
P2=TwiceBuf;
LE373=1;
LE373=0;
P2=0xff;
EA=1;
}
/***************************************************************
*名稱: void DownHandle(void);
*功能: 模擬掛機(jī)
*入口參數(shù): 無(wú)
*出口參數(shù): 無(wú)
****************************************************************/
void DownHandle(void)
{
EA=0;
if (HandMode) P_Online=0;
else P_Online=1;
P2=TwiceBuf;
LE373=1;
LE373=0;
P2=0xff;
EA=1;
}
/***************************************************************
*名稱: void Delayms(Word count);
*功能: 延時(shí)1mS
*入口參數(shù): Word count,最長(zhǎng)可達(dá)65分鐘
*出口參數(shù): 無(wú)
****************************************************************/
void Delayms(Word count)
{
Word j;
EA=0;
while(count--!=0)
{
for(j=0;j<46;j++);
}
EA=1;
}
/***************************************************************
*名稱: void Delay250uS(Word count);
*功能: 延時(shí)250uS,用來(lái)在Beep函數(shù)中產(chǎn)生2KHz的脈沖
*入口參數(shù): Word count
*出口參數(shù): 無(wú)
****************************************************************/
void Delay250uS(Word count)
{
Word j;
EA=0;
while(count--!=0)
{
for(j=0;j<12;j++);
}
EA=1;
}
/***************************************************************
*名稱: void SBeep(Byte count);
*功能: 蜂鳴器鳴叫(長(zhǎng)鳴)
*入口參數(shù): count 鳴叫次數(shù)
*出口參數(shù): 無(wú)
****************************************************************/
void SBeep(Byte count)
{
Byte i;
EA=0;
for(;count;count--)
{
for(i=0;i<50;i++) //50個(gè)脈沖
{
P_Beep=0;
P2=TwiceBuf;
LE373=1;
LE373=0;
P2=0xff;
Delay250uS(2);
P_Beep=1;
P2=TwiceBuf;;
LE373=1;
LE373=0;
P2=0xff;
Delay250uS(2);
}
Delayms(50); //間隔50mS
}
EA=1;
}
/***************************************************************
*名稱: void Beep(Byte count);
*功能: 蜂鳴器鳴叫(短鳴)
*入口參數(shù):count 鳴叫次數(shù)
*出口參數(shù):無(wú)
****************************************************************/
void Beep(Byte count)
{
Byte i;
EA=0;
for(;count;count--)
{
for(i=0;i<255;i++) //255個(gè)脈沖
{
P_Beep=0;
P2=TwiceBuf;
LE373=1;
LE373=0;
P2=0xff;
Delay250uS(2);
P_Beep=1;
P2=TwiceBuf;;
LE373=1;
LE373=0;
P2=0xff;
Delay250uS(2);
}
Delayms(300); //間隔0.3S
}
EA=1;
}
/***************************************************************
*名稱: void DisplayData(Byte dat);
*功能: 發(fā)送數(shù)據(jù)到Led1---Led4進(jìn)行顯示。
*入口參數(shù):dat(低四位有效的4位數(shù)據(jù))
*出口參數(shù):無(wú)
****************************************************************/
void DisplayData(Byte dat)
{
if (dat&0x08) LED4=0; //Led4亮
else LED4=1; //Led4滅
P1=~(dat&0x07); //Led1---Led3
}
/***************************************************************
*名稱: void Alarm(void);
*功能: 本地警報(bào)函數(shù)
*入口參數(shù):無(wú)
*出口參數(shù):無(wú)
****************************************************************/
void Alarm(void)
{
Byte i;
for (i=0;i<10;i++)
{
DisplayData(0x0f);
Delayms(100);
DisplayData(0x00);
SBeep(1);
}
}
/***************************************************************
*名稱: void OpenThePower(void);
*功能:遠(yuǎn)程控制【開(kāi)機(jī)】函數(shù)
*入口參數(shù):無(wú)
*出口參數(shù):無(wú)
****************************************************************/
void OpenThePower(void)
{
LED1=!LED1;
}
/***************************************************************
*名稱: void CloseThePower(void);
*功能:遠(yuǎn)程控制【關(guān)機(jī)】函數(shù)
*入口參數(shù):無(wú)
*出口參數(shù):無(wú)
****************************************************************/
void CloseThePower(void)
{
LED2=!LED2;
}
/***************************************************************
*名稱: void ByPassThePower(void);
*功能:遠(yuǎn)程控制【旁路】函數(shù)
*入口參數(shù):無(wú)
*出口參數(shù):無(wú)
****************************************************************/
void ByPassThePower(void)
{
LED3=!LED3;
}
/**********************************************************
*名稱: void SetOutTime(Word timeseed);
*功能: 設(shè)置超時(shí)時(shí)間(采用定時(shí)器操作)
*入口參數(shù):timeseed 超時(shí)時(shí)間常數(shù)
*出口參數(shù):無(wú)
***********************************************************/
void SetOutTime(Word timeseed)
{
EA=0;
FgTimeOut=0;
OutTime=timeseed;
K_StartOutTime=1;
EA=1;
}
/**********************************************************
*名稱: void SetDelayTime(Word timeseed);
*功能: 設(shè)置延時(shí)時(shí)間(采用定時(shí)器操作)
*入口參數(shù):timeseed 延時(shí)時(shí)間常數(shù)
*出口參數(shù):無(wú)
***********************************************************/
void SetDelayTime(Word timeseed)
{
EA=0;
FgDelayOver=0;
DelayTime=timeseed;
K_StartDelay=1;
EA=1;
}
/***************************************************************
*名稱: void CheckSignal(void);
*功能: 檢查信號(hào),點(diǎn)亮相應(yīng)的LED
*入口參數(shù):無(wú)
*出口參數(shù):(bit) 有信號(hào)返回 1 ,無(wú)信號(hào)返回 0
****************************************************************/
bit CheckSignal(void)
{
if (!FgNoSignal)
{
if(FgDialVoice) LED1=0;
else LED1=1;
if(FgBusyVoice) LED2=0;
else LED2=1;
if(FgAckVoice) LED3=0;
else LED3=1;
LED4=1;
return (1);
}
else
{
LED4=0;
return (0);
}
}
/***************************************************************
*名稱:void InitBreak(void);
*功能:初始化中斷
*入口參數(shù):無(wú)
*出口參數(shù):無(wú)
****************************************************************/
void InitBreak(void)
{
EA=0; IT1=1; EX1=1; //EX1邊沿中斷
TMOD=0x15; TH1=0xEC; TL1=0x78; //T1計(jì)數(shù)器,優(yōu)先
ET1=1; PT1=1; TR1=1; //T1啟動(dòng)
EA=1;
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -