/*********************************************************************************************
程序名: 占用CPU延时程序应用实例
编写人: 葛?
编写时间: 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; //
/*********************************************************************************************
函数名:毫秒级CPU延时函数
调 用:DELAY_MS (?);
参 数:1~65535(参数不可为0)
返回值:无
结 果:占用CPU方式延时与参数数值相同的毫秒时间
备 注:应用于1T单片机时i<600,应用于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 设置P3.7口为高阻输入
P3M1 = 0x00;//0000 0000 设置P3.7口为高阻输入
LED1=1;
KEY=0;
while(1){
P3M0 = 0x00;//0000 0000 此时设置P3.7口为常规I/O口
DELAY_MS (1);// 延时
P3M0 = 0x80;//0000 0000 此时设置P3.7口为高阻输入
DELAY_MS (1);// 延时
LED1=~KEY; // 取反KEY的状态
}
}
/********************************************************************************************/