#include "REG52.H"
void initial_myself(); //初始化單片機的寄存器及個別IO口,如繼電器等等。
void initial_peripheral(); /*初始化上電不立即處理的外圍芯片和模塊,
如液晶模塊,AT24C02存儲芯片,DS1302時鍾芯片 */
void delay_short(unsigned int uiDelayshort); //小延時,參數取10~100,專門用於時序延時。
void delat_long(unsigned int uiDelaylong); //大延時,參數取多少,表示多少個500條空指令。
void led_flicker();
void initial_peripheral(); /*初始化上電不立即處理的外圍芯片和模塊,
如液晶模塊,AT24C02存儲芯片,DS1302時鍾芯片 */
void delay_short(unsigned int uiDelayshort); //小延時,參數取10~100,專門用於時序延時。
void delat_long(unsigned int uiDelaylong); //大延時,參數取多少,表示多少個500條空指令。
void led_flicker();
/************************
輸出后綴_dr,輸入后綴_sr
dr代表drive驅動,sr代表sensor傳感器
************************/
輸出后綴_dr,輸入后綴_sr
dr代表drive驅動,sr代表sensor傳感器
************************/
sbit led_dr = P3^5;
void main()
{
initial_myself();
delay_long(100);
initial_peripheral();
while(1)
{
led_flicker();//LED閃爍應用程序
}
{
initial_myself();
delay_long(100);
initial_peripheral();
while(1)
{
led_flicker();//LED閃爍應用程序
}
}
void led_flicker()
{
led_dr=1;//LED亮
delay_short(50000);//延時50000個空指令的時間
led_dr=0;
delay_long(100); //延時50000個空指令的時間,因為內部嵌套了500次for循環
}
{
led_dr=1;//LED亮
delay_short(50000);//延時50000個空指令的時間
led_dr=0;
delay_long(100); //延時50000個空指令的時間,因為內部嵌套了500次for循環
}
void delay_short(unsigned int uiDelayShort)
{
unsigned int i;
for(i=0;i<uiDelayShort;i++)
{
;//一個;相當於一個空語句
}
}
{
unsigned int i;
for(i=0;i<uiDelayShort;i++)
{
;//一個;相當於一個空語句
}
}
void delay_long(unsigned int uiDelayLong)
{
unsigned int i;
unsigned int j;
for(i=0;i<uiDelayLong;i++)
{
for(j=0;j<500;j++)
{
;
}
}
}
{
unsigned int i;
unsigned int j;
for(i=0;i<uiDelayLong;i++)
{
for(j=0;j<500;j++)
{
;
}
}
}
void initial_myself() //初始化單片機
{
led_dr=0;//LED滅
}
{
led_dr=0;//LED滅
}
void initial_peripheral() //初始化外圍
{
; //本例為空
} //之后程序均從吳堅鴻所寫的PDF文件中選取,任何法律責任均無本人無關
{
; //本例為空
} //之后程序均從吳堅鴻所寫的PDF文件中選取,任何法律責任均無本人無關