51单片机蜂鸣器发出1KHz的信号的c语言程序

Python012

51单片机蜂鸣器发出1KHz的信号的c语言程序,第1张

通过中断的方式,使用定时器0来提供1KHz的方波,蜂鸣器引脚定义为P1.0。代码如下:

#include

<reg51.h>

#define

u8

unsigned

char

sbit

BEEP=P1^0

void

main

{

EA=1//开总中断

IT0=1//打开定时器0源中断允许开关

TMOD=0x01//选择定时器0工作在方式0

TR0=1//启动定时器0

TH1=(65536-1000)/256//赋值,定时1ms

TL1=(65536-1000)%256

while(1)

{}

}

void

TIM()

interrupt

1

{

TH1=(65536-1000)/256

TL1=(65536-1000)%256

BEEP=~BEEP//蜂鸣器引脚输出1KHz方波

}

让蜂鸣器发出两种不同的声调很容易,只要给蜂鸣器的控制信号发送不同频率的脉冲就可以实现了,以下以延时方式来做。

#include<reg51.h>

#define

uchar

unsigned

char

#define

uint

unsigned

int

sbit

SPK=P1^0

sbit

K1=P1^7

//发声函数

void

Alarm(uchar

t)

{

uchari,j

for(i=0i<200i++)

{

SPK=~SPK

for(j=0j<tj++)

//由参数t行成不同的频率

}

}

voidmain()

{

SPK=0

while(1)

{

if(K1==1)

{

Alarm(90)

Alarm(120)

}

}

}