关于单片机驱动蜂鸣器发出滴滴的声音的程序怎么写

关于单片机驱动蜂鸣器发出滴滴的声音的程序怎么写,第1张

#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)

}

}

}

下驱动蜂鸣器的编程示例,供参考

A.第一种,普通IO高低电平驱动法

运行环境: S3F9454,Fosc= 3.2MHz无分频

P2.0为蜂鸣输出端口

本例输出频率为4KHZ,即每250US一个周期,高低电平时间分老搭别为125US

BEEP:

LD BTCON,#10100011B 看门狗禁用

DI

PUSH R5

PUSH R6

首先配置P2.0为普通推挽输出端口

AND P2CONL,#0FEH

OR P2CONL,#02H

LD R6,#0FAH R6设置慧腊输出方波个数,本例为250个(计时62.5MS)

ONE_BEEP:

LD R5,#27H R5为频率发生计时器,本例为近似125US(4KHZ)

XOR P2,#01H

_LOOP:

DEC R5

JR NZ,_LOOP

DEC R6

JR NZ,ONE_BEEP

LD BTCON,#02H 恢复看门狗运行

EI

POP R6

POP R5

RET

-----------------------------------------------------------

B.利用P2.0配置为T0定时器匹配输出方式产生

注: 该方式可用于侍碧拿带多位数码显示扫描的软件中,可有效避免因蜂鸣器

输出而造成的数码显示抖动闪烁


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12276121.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存