用for語句控制蜂鳴器
上面的電路圖中p1。7接的是蜂鳴器
#include//包含微控制器暫存器的標頭檔案
sbit sound=P1^7; //將sound位定義為P3。7
/****************************************
函式功能:延時形成1600Hz音訊
****************************************/
void delay1600(void)
{
unsigned char n;
for(n=0;n
;
}
/****************************************
函式功能:延時形成800Hz音訊
****************************************/
void delay800(void)
{
unsigned char n;
for(n=0;n
;
}
/****************************************
函式功能:主函式
****************************************/
void main(void)
{
unsigned int i;
while(1)
{
for(i=0;i
{
sound=0; //P3。7輸出低電平
delay1600();
sound=1; //P3。7輸出高電平
delay1600();
}
for(i=0;i
{
sound=0; //P3。7輸出低電平
delay800();
sound=1; //P3。7輸出高電平
delay800();
}
}
}
用while語句控制LED
電路中是p0口接的流水燈!
#include//包含微控制器暫存器的標頭檔案
/****************************************
函式功能:延時約60ms (3*100*200=60000μs)
****************************************/
void delay60ms(void)
{
unsigned char m,n;
for(m=0;m
for(n=0;n
;
}
/****************************************
函式功能:主函式
****************************************/
void main(void)
{
unsigned char i;
while(1) //無限迴圈
{
i=0; //將i初始化為0
while(i
{
P0=i; //將i送P0口顯示
delay60ms(); //延時
i++; //i自增1
}
}
}
用do-while語句控制P0口8位LED流水點亮
電路中是p0口接的流水燈!
#include//包含微控制器暫存器的標頭檔案
/****************************************
函式功能:延時約60ms (3*100*200=60000μs)
****************************************/
void delay60ms(void)
{
unsigned char m,n;
for(m=0;m
for(n=0;n
;
}
/****************************************
函式功能:主函式
****************************************/
void main(void)
{
do
{
P0=0xfe; //第一個LED亮
delay60ms();
P0=0xfd; //第二個LED亮
delay60ms();
P0=0xfb; //第三個LED亮
delay60ms();
P0=0xf7; //第四個LED亮
delay60ms();
P0=0xef; //第五個LED亮
delay60ms();
P0=0xdf; //第六個LED亮
delay60ms();
delay60ms();
P0=0xbf; //第七個LED亮
delay60ms();
P0=0x7f; //第八個LED亮
delay60ms();
}while(1); //無限迴圈,使8位LED迴圈流水點亮
}