在以下程序中加入音乐程序用p3.7控制、、、无限感激
#include "reg51.h" //包含51单片机头文件sbit HOST=P3^0; //设置主持人变量,接P3.0
sbit BEEP=P3^7; //设置扬声器变量,接P3.7
//-----------------------------------------------------------------------------------
//延时子程序
//-----------------------------------------------------------------------------------
delay(int t) //整型参变量t,可用于调整延时时间
{
int i; //整型变量
while(t--) //参变量非0时执行下面语句
for(i=0;i<120;i++) //下面语句循环执行120次
; //空操作
}
//-----------------------------------------------------------------------------------
//初始化子函数
//-----------------------------------------------------------------------------------
void sysini(void)
{
HOST=1; //设置主持人按钮引脚为高电平1,表示未按键
BEEP=1; //设置扬声器引脚为高电平1,表示未发声
P2=0xFF; //设置选手按钮引脚为高电平1,表示未按键
}
//-----------------------------------------------------------------------------------
//发声子函数
//-----------------------------------------------------------------------------------
void sound(int t)
{
int i;
for(i=0;i<100;i++) //循环执行100次
{
BEEP=0; //扬声器发声
delay(t); //发声保持一段时间
BEEP=1; //停止扬声器发声
delay(t); //停止发声保持一段时间
}
}
//-----------------------------------------------------------------------------------
//主函数
//-----------------------------------------------------------------------------------
void main(void)
{
sysini( ); //初始化
while(1) //循环执行下述语句
{
while(HOST==1); //主持按键引脚为高电平1时不断循环执行本语句,其实就是等待主持人按键按下
P2=0xC0; //C0是数字0的段码,所以LED数码管显示0
while(P1==0xFF); //循环判断,等待选手按键
switch(P1) //判断并送显函数
{
case 0xFE: //FEH=11111110B,表明1号选手抢答
P2=0xF9; //F9是1的段码,故LED数码管显示1
break; //返回
case 0xFD: //FDH=11111101B,表明2号选手抢答
P2=0xA4; //A4是2的段码,故LED数码管显示2
break; //返回
case 0xFB: //FBH=11111011B,表明3号选手抢答
P2=0xB0; //B0是3的段码,故LED数码管显示3
break; //返回
case 0xF7: //F7H=11110111B,表明4号选手抢答
P2=0x99; //99是4的段码,故LED数码管显示4
break; //返回
case 0xEF: //EFH=11101111B,表明5号选手抢答
P2=0x92; //92是5的段码,故LED数码管显示5
break; //返回
case 0xDF: //DFH=11011111B,表明6号选手抢答
P2=0x82; //82是6的段码,故LED数码管显示6
break; //返回
case 0xBF: //BFH=10111111B,表明7号选手抢答
P2=0xF8; //F8是7的段码,故LED数码管显示7
break; //返回
case 0x7F: //7FH=01111111B,表明8号选手抢答
P2=0x80; //80是8的段码,故LED数码管显示8
break; //返回
default:
P2=0x90; //默认情况LED数码管显示9
}
sound(1); //调用发声子函数
}
}