1、點亮閃爍的LED燈。
#include
sbitLED00=P0^0;//位定義,定義單片機引腳
voiddelay(intt)
{
inti,j;
for(i=0;i<100*t;i++)
{
for(j=0;j<125;j++)
{
;
}
}
}
voidmain(void)
{
while(1)
{
LED00=0;//此開發(fā)板是低電平點亮
delay(5);
LED00=1;//此開發(fā)板是高電平熄滅
delay(5);
}
}
/******************************************************************************
*說明:AT89S52芯片,12M晶振
*P0、P1兩個8位端口分別連接8個LED燈
*低電平點亮,高電平熄滅。
******************************************************************************/
#include
#include
//http://baike.baidu.com/view/1745068.htm?fromTaglist
//http://wenku.baidu.com/view/06ba3d00b52acfc789ebc97b.html
//sbitLED00=P0^0;//位定義,定義單片機引腳
voiddelay(intt)
{
inti,j;
for(i=0;i<100*t;i++)
{
for(j=0;j<125;j++)
{
;
}
}
}
voidmain(void)
{
P0=0xfe;//0b11111110
P1=0x7f;//0b01111111
while(1)
{
P0=_crol_(P0,1);//循環(huán)左移,每次循環(huán)1位
P1=_cror_(P1,1);//循環(huán)右移,每次循環(huán)1位
delay(5);
}
}
/******************************************************************************
*說明:AT89S52芯片,12M晶振
*此開發(fā)板繼電器的控制端口和單片機的P3^7引腳相連接
*因為繼電器的工作電流比較大,
*所以P3^7連接的是一個三極管,通過三極管驅(qū)動繼電器
******************************************************************************/
#include
sbitJDQ=P3^7;//位定義,定義單片機引腳
voiddelay(intt)
{
inti,j;
for(i=0;i<100*t;i++)
{
for(j=0;j<125;j++)
{
;
}
}
}
voidmain(void)
{
while(1)
{
JDQ=0;
delay(5);//延時0.5s
JDQ=1;
delay(5);
}
}
4、控制無源蜂鳴器每隔1s響1s (有一個疑問)/******************************************************************************
*說明:AT89S52芯片,12M晶振
*此開發(fā)板蜂鳴器的控制端口和單片機的P3^6引腳相連接
*用三極管進行驅(qū)動
*無源蜂鳴器:需要寫函數(shù)產(chǎn)生1KHz左右的聲音頻率(方波)
******************************************************************************/
#include
sbitFMQ=P3^6;//位定義,定義單片機引腳
/******************************************************************************
*名稱:delay1ms()
*功能:延時1ms
*參數(shù):intt
*返回:無
******************************************************************************/
voiddelay1ms(intt)
{
unsignedchari;
while(t--)
{
for(i=0;i<125;i++)
{
;
}
}
}
/******************************************************************************
*名稱:delay500us()
*功能:延時500us
*參數(shù):無
*返回:無
******************************************************************************/
voiddelay500us(void)
{
inti;
for(i=0;i<63;i++)
{
;
}
}
/******************************************************************************
*名稱:beep_sound()
*功能:產(chǎn)生FMQ發(fā)聲需要的1KHz的聲音頻率
*參數(shù):無
*返回:無
******************************************************************************/
voidbeep_sound(void)
{
FMQ=0;
delay500us();
FMQ=1;
delay500us();
}
voidmain(void)
{
inti,t;
while(1)
{
t=1000;//蜂鳴器發(fā)聲1000*1ms1KHz頻率的方波,一個周期是1ms
for(i=0;i { beep_sound(); } FMQ=1;//關掉FMQ1s(延時) delay1ms(1000); } } 注意:盡量使用定時器產(chǎn)生標準頻率的方波,或用延時函數(shù)產(chǎn)生時,函數(shù)最好不要通過參數(shù)來改變延時效果。 疑問:把500us延時函數(shù)改成可以傳參數(shù)t的形式,結(jié)果蜂鳴器發(fā)出的聲音頻率和發(fā)聲的時長變得面目全非,很無解。有經(jīng)驗的朋友歡迎通過評論的方式討論一下。 改過后的delay500ms()函數(shù) 和 beep_sound()函數(shù)內(nèi)容如下: /****************************************************************************** *名稱:delay500us() *功能:延時500us *參數(shù):intt *