1、更改keil uvision3的字體以及關(guān)鍵字顏色的設(shè)置:
修改順序入下1打開edit2打開edit最下方configuration3打開colars4選擇8051editcfile可以修改C語言的大小和關(guān)鍵詞著色問題。
源自http://zhidao.baidu.com/question/137561189.html
voiddelay1ms(unsignedinti)
{
unsignedcharj;
while(i--)
{
for(j=0;j<125;j++)//1ms基準延時程序
{
;
}
}
//j<125是因為for(){;}循環(huán)每循環(huán)一次括號內(nèi)消耗3個指令周期,{;}內(nèi)執(zhí)行一個空語句消耗1個指令周期,即:每循環(huán)一次消耗4個指令周期(12M晶振:1us*4)
//注意在寫延時函數(shù)時while(){}和for(;;){}的區(qū)別。
最好利用定時器實現(xiàn),這樣比較精確。通過延時函數(shù)實現(xiàn)也行,不過要確保延時的精確度,最好不要使用帶有參數(shù)的延時函數(shù)。
示例如下:
無源蜂鳴器要發(fā)聲音,必須給它提供一定頻率(1KHz左右)的方波。(聲音頻率)
實現(xiàn)方法:周期性的將打片機引腳“置位、延時、復(fù)位、延時”
示例中無源蜂鳴器接在AT89S52單片機的P3^6引腳:
/******************************************************************************
*說明: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;//關(guān)掉FMQ1s(延時) delay1ms(1000); } } 將delay500ms()函數(shù) 和 beep_sound()函數(shù)改成如下形式,蜂鳴器的聲音頻率和發(fā)聲時長完全面目全非了,很無解!歡迎有經(jīng)驗的朋友通過評論的方式進行交流。 /****************************************************************************** *名稱:delay500us() *功能:延時500us *參數(shù):intt *返回:無 ******************************************************************************/ voiddelay500us(intt) { inti; for(i=0;i<63*t;i++) { ; } } /****************************************************************************** *名稱:beep_sound() *功能:產(chǎn)生FMQ發(fā)聲需要的1KHz的聲音頻率 *參數(shù):無 *返回:無 ***********