嗯,是这样的。老师要我们先设计一个程序使得蜂鸣器会叫。然后添加到按键的程序里使得在按下按键后,蜂鸣器“滴”声。#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit we1=P2^7;
sbit we2=P2^6;
sbit we3=P2^5;
sbit we4=P2^4;
sbit key=P3^5;
sbit stop=P3^4;
sbit BZ=P2^3;
uchar buffer[4]={0x00,0x00,0x00,0x00};
uchar SEG[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar xsd[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
uint x=0000,y;
void initial(void)
{
TMOD=0x00;
TH1=0xf0;
TL1=0x0c;
IE=0X00;
TR1=1;
}
T0_init()
{
TMOD=0x01;
TL0=0xf0;
TH0=0xd8;
TR0=1;
IE=0x82;
EA=1;
}
void delay(uint t)
{
uint i,j;
for(i=0;i<t;i++)
{
for(j=0;j<121;j++);
{;}
}
}
COUN()
{
int a,b,c,d;
a=x/1000;
buffer[0]=SEG[a];
y=x%1000;
b=y/100;
buffer[1]=xsd;
y=y%100;
c=y/10;
buffer[2]=SEG[c];
d=y%10;
buffer[3]=SEG[d];
}
T0_INT() interrupt 1
{
TH0=0xd8;
TL0=0xf0;
if (x==9999){x++;x=0;}
x++;
}
void main(void)
{
initial();
{
while(!TF1);
TF1=0;
BZ=!BZ;
}
we1=we2=we3=we4=0;
P0=0xc0;
if(key==0)
{
delay(100);
{
if(key==0)
{
int x=0;
T0_init();
while(1)
{
if(stop==0) TR0=0;
{
COUN();
we1=0;
P0=buffer[0];
delay(1);
we1=1;
we2=0;
P0=buffer[1];
delay(1);
we2=1;
we3=0;
P0=buffer[2];
delay(1);
we3=1;
we4=0;
P0=buffer[3];
delay(1);
we4=1;
}
}
}
}
}
}可是这个程序存在问题,不晓得如何改 |