电子产业一站式赋能平台

PCB联盟网

搜索
查看: 1762|回复: 2
收起左侧

萌新提问,我的想法是蜂鸣器跟着流水灯响,但是每次流水灯到头

[复制链接]

604

主题

947

帖子

5151

积分

四级会员

Rank: 4

积分
5151
发表于 2022-6-19 07:33:22 | 显示全部楼层 |阅读模式
萌新提问,我的想法是蜂鸣器跟着流水灯响,但是每次流水灯到头,另外一端蜂鸣器就响一下不知道为啥

#include <reg52.h>
//宏定义,定义uint和 uchar
#define uint unsigned int
#define uchar unsigned char
void delay(uint);//声明延时函数
#include <intrins.h>//引用移位库函数头文件
//定义移位用temp变量
uchar temp;
uchar temp2;
//定义流水循环用变量
uint left;
uint right;
//定义蜂鸣器
sbit BU = P2^3;
void main()
{
while(1)
{
temp = 0xfe;//将temp赋值 0xfe 就表示16进制数字1111 1110
//代表第一个灯亮 如果用位移函数可以变成1111 1101 可以让第二个灯亮
P1 = temp;//将temp赋值给P1
//蜂鸣器在移位后蜂鸣
BU = 0;
delay(20);
BU = 1;
for(left = 8;left >0 ;left--)
{
    delay(2000);//调用延时函数
     temp = _crol_(temp,1);//调用移位函数,将temp的量改变,变为下个灯
P1 = temp;//将temp再次赋值给P1,完成移位
//蜂鸣器在移位后蜂鸣
BU = 0;
delay(20);
BU = 1;
}

temp2 = 0x7f;
P1 = temp2;
BU = 0;
delay(20);
BU = 1;
for(right = 8;right > 0 ;right--)
{

    delay(2000);
     temp2 = _cror_(temp2,1);
P1 = temp2;
BU = 0;
delay(20);
BU = 1;
}
}
}
//延时函数
void delay(uint c)
{
uint a,b;
for (a = 1; a <10 ;a++)
{
for (b = c ; b > 0; b--)
{

}
}
}
回复

使用道具 举报

657

主题

1025

帖子

5598

积分

四级会员

Rank: 4

积分
5598
发表于 2022-6-19 07:33:58 | 显示全部楼层
自定
回复 支持 反对

使用道具 举报

616

主题

968

帖子

5301

积分

四级会员

Rank: 4

积分
5301
发表于 2022-6-19 07:34:44 | 显示全部楼层
自顶
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表