用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循环流水点亮

}

推荐内容