一、蜂鸣器的应用
Lab--MCU51开发板上控制蜂鸣器的端口是P3^7,低电平有效,可利用它进行音阶发声
以下为简单的
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
unsigned int i,a,k;
unsigned char temp;
void delay(uint z)
{
char j;
for(z;z>0;z--)
for(j=110;j>0;j--);
}
void main()
{
for(i=0;i<3;i++)
{
P1=0xaa;
delay(2000);
P1=0x55;
delay(2000);
}
for(k=0;k<3;k++)
{
temp=0xfe;
P1=temp;
for(i=0;i<8;i++)
{ P1=temp;
temp=_crol_(temp,1);
delay(520);
}
a=0x7f;
P1=a;
for(i=0;i<8;i++)
{
P1=a;
a=_cror_(a,1);
delay(520);
}
delay(520);
}
for(i=0;i<3;i++)
{
P1=0x7e;
delay(1000);
P1=0xbd;
delay(1000);
P1=0xdb;
delay(1000);
P1=0xe7;
delay(1000);
}
for(i=0;i<3;i++)
{
P1=0xe7;
delay(1000);
P1=0xdb;
delay(1000);
P1=0xbd;
delay(1000);
P1=0x7e;
delay(1000);
}
for(i=0;i<3;i++)
{
P1=0x0;
delay(1000);
P1=0xff;
delay(1000);
}
}
二、中断和定时器、计数器
中断这部分对于单片机来说非常重要,是以后对于实现大型项目的基础,由于现在处于学习阶段,还不能很好的总结其具体的用途,本人觉得这块需要注意一下几点:
1、设置定时器的工作方式以及设置初值
2、打开中断进行的开关
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
//sbit wela=P2^7;
// sbit dula=P2^6;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x02,0xf8,0x00,0x10};
uchar num;
void delay(uint z)
{
uint x,y;
for(x=100;x>0;x--)
for(y=z;y>0;y--);
}
void main()
{
// wela=1;
P2=0xf0;
// wela=0;
while(1)
{
for(num=0;num<10;num++)
{
// dula=1;
P0=table[num];
// dula=0;
delay(500 );
}
}
}