蜂鸣器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机原理及接口技术课程设计报告
设计题目:蜂鸣器
专业:
班级:
姓名:
学号:
一、课程设计题目 (1)
二、设计目的 (2)
三、蜂鸣器功能 (2)
四、操作说明 (2)
五、设计原理图 (2)
六、设计PCB图 (4)
七、程序流程图 (4)
八、程序清单 (6)
九、器件清单及部分作用 (10)
十、参考文献 (11)
十一、设计心得体会 (11)
一、课程设计题目
单片机基本系统的应用:蜂鸣器
二、设计目的
1、通过单片机课程设计,熟练掌握编程方法,将理论联系到实践中去,提高我们
的动脑和动手的能力。
2、通过对蜂鸣器的设计,掌握蜂鸣器的使用方法,和简单程序的编写,最终提高
我们的逻辑抽象能力。
3、通过本次单片机课程设计将单片机软硬件结合起来,加强理论联系实际的能力。
4、通过本次课程设计提高学生的综合能力、动手能力、文献资料查阅能力,为毕
业设计和以后工作打下一个良好的基础。
三、蜂鸣器功能
1、蜂鸣器的作用蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。
2、蜂鸣器的分类蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。
3、蜂鸣器的电路图形符号蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。
4、本次课程设计所采用的蜂鸣器为无源的电磁式蜂鸣器,电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发。
5、这里的“源”不是指电源。而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。
而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K~5K的方波去驱动它。
四、操作说明
程序调试完成后,点击open File。在出现的页面上更改相应的串口,连接好硬件,再进行Down load下载,当下面出现握手连接时,拔起短路块进行上电,输入程序,当程序输入完毕后再分别按下三个按键,第一个代表枪声,发出同一频率声调数码管显示为2,第二个键子发出救护车的声音,发出两个频率音调,数码管显示为2和3。第三个键子为消防车的声音,发出三个频率音调,数码管显示为2、3、4.
五、设计原理图
六、设计PCB图
七、程序流程图
八、程序清单
#include
typedef unsigned char uchar;
typedef unsigned int uint;
sbit BEEP = P2^2;
sbit K1 = P3^5;
sbit K2=P3^6;
sbit K3=P3^7;
uchar Count;
uint m;
uchar n;
uchar H_count,L_count,ssss;
char code reserve [3] _at_ 0x3b; //保留0x3b开始的3个字节
void one(void);
void two(void);
void sss(void);
void three(void);
void delayms(uint ms)
{
uchar t;
while(ms--)
{
for(t=0; t<113; t++);
}
}
void main()
{
P3=0xFF;
while(K1&&K2&&K3);
if(!K1)
one();
else if(!K2)
two();
else
three();
}
void one(void)
{
ssss=1;
P0=0x9d;
BEEP = 1;
TMOD = 0x01;
TH0 = 0xff;
TL0 = 0xa0;
H_count = 0xff;
L_count = 0xa0;
EA = 1;
ET0 = 1;
TR0 = 1;
while(1)
{
if(!K1)
TR0 = 1;
else if(!K2)
two();
else if(!K3)
three();
}
}
void two(void)
{
while(1)
{
P0 = 0x9d; //点亮D00
for(m=0; m<4000; m++) //输出一种频率的声音 {
for(n=0; n<75; n++); //延时245us
BEEP = ~BEEP; //取反产生频率为2KHz
脉冲
}
P0 = 0xd5; //点亮D07
for(m=0; m<3000; m++) //输出另一种频率的声音
{
for(n=0; n<100; n++); //延时325us
BEEP = ~BEEP; //取反产生频率为
1.5KHz脉冲