/*********************************************************************************************
程序名: 占用CPU延時程序應(yīng)用實例
編寫人: 葛?
編寫時間: 2017年08月9日
硬件支持: STC12C2052AD 12MHz
接口說明: P1接口8個LED燈
修改日志:
NO.1-
/*********************************************************************************************
說明:本程序可使單片機P1.0接口上的LED燈以1秒為周期閃爍。
/*********************************************************************************************/
#include <STC12C2052AD.H> //通用89C51頭文件
sbit LED1 = P1 ^ 7; //定義閃爍LED
sbit KEY = P3 ^ 7; //
/*********************************************************************************************
函數(shù)名:毫秒級CPU延時函數(shù)
調(diào) 用:DELAY_MS (?);
參 數(shù):1~65535(參數(shù)不可為0)
返回值:無
結(jié) 果:占用CPU方式延時與參數(shù)數(shù)值相同的毫秒時間
備 注:應(yīng)用于1T單片機時i<600,應(yīng)用于12T單片機時i<125
/*********************************************************************************************/
void DELAY_MS (unsigned int a){
unsigned int i;
while( a-- != 0){
for(i = 0; i < 600; i++);
}
}
/*********************************************************************************************/
void main (void){ //主程序
P3M0 = 0x80;//1000 0000 設(shè)置P3.7口為高阻輸入
P3M1 = 0x00;//0000 0000 設(shè)置P3.7口為高阻輸入
LED1=1;
KEY=0;
while(1){
P3M0 = 0x00;//0000 0000 此時設(shè)置P3.7口為常規(guī)I/O口
DELAY_MS (1);// 延時
P3M0 = 0x80;//0000 0000 此時設(shè)置P3.7口為高阻輸入
DELAY_MS (1);// 延時
LED1=~KEY; // 取反KEY的狀態(tài)
}
}
/********************************************************************************************/