打印
[经验分享]

用for、while、do-while​语句控制蜂鸣器、流水灯

[复制链接]
957|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hilahope|  楼主 | 2025-3-14 06:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用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循环流水点亮
}



使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

1442

帖子

0

粉丝