2个回答
展开全部
#include "reg51.h"
sbit P10=P1^0; //喇叭
sbit P14=P1^4; //按键
#define uc unsigned char//每次定义变量都要写unsigned char,不爽。精简了
void delay(uc d1,d2);//延时用两个变量,使得延时范围更大
//单片机的输入信号太弱,无法驱动喇叭!但是仿真时可以省略。
//单片机输出高电平,喇叭低电平不响;反之则响
main()
{
uc i=0;
P10=1;
while(1)
{
if(!P14);//按下按键不放,啥都不干
else//不按下按键,就叫个不停
{
for(i=0;i<50;i++)//i<50改为200,观察效果
{
P10=0;delay(1,100);//响
P10=1;delay(1,100);//不响
}
for(i=0;i<100;i++)//i<100改为250,观察效果
{
P10=0;delay(1,10);//响
P10=1;delay(1,10);//不响。改为delay(1,100)看看
}
}
}
}
void delay(uc d1,d2) //延时子程序
{
uc i,j;//定义字符型变量,范围为0至255
for (i=0;i<d1;i++)for(j=0;j<d2;j++);
}
看看能否解决
sbit P10=P1^0; //喇叭
sbit P14=P1^4; //按键
#define uc unsigned char//每次定义变量都要写unsigned char,不爽。精简了
void delay(uc d1,d2);//延时用两个变量,使得延时范围更大
//单片机的输入信号太弱,无法驱动喇叭!但是仿真时可以省略。
//单片机输出高电平,喇叭低电平不响;反之则响
main()
{
uc i=0;
P10=1;
while(1)
{
if(!P14);//按下按键不放,啥都不干
else//不按下按键,就叫个不停
{
for(i=0;i<50;i++)//i<50改为200,观察效果
{
P10=0;delay(1,100);//响
P10=1;delay(1,100);//不响
}
for(i=0;i<100;i++)//i<100改为250,观察效果
{
P10=0;delay(1,10);//响
P10=1;delay(1,10);//不响。改为delay(1,100)看看
}
}
}
}
void delay(uc d1,d2) //延时子程序
{
uc i,j;//定义字符型变量,范围为0至255
for (i=0;i<d1;i++)for(j=0;j<d2;j++);
}
看看能否解决
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询