课 程 设 计
2010——2011 学年
第 一 学期
设 计 名 称: 基于单片机的电子门铃设计
学 生 学 号:
学 生 姓 名:
指 导 教 师:
院 、 系 : 信息工程学院
教 研 室: 电 子 信 息
设计目的:
1、动手焊接单片机硬件电路板,增进对单片机的感性认识,加深对单
片机理论方面的理解。
2、了解单片机的内部功能模块的应用。
3、了解和掌握单片机应用系统的硬件设计和制作过程、方法及实现。
设计任务:
1、了解单片机的组成结构,设计相关电路原理图;
2、根据原理图焊接硬件电路。
3、实现所要求的功能。
设计要求:
1、要求理解单片机的组成结构;
2、根据给出的主要芯片,设计相关电路原理图;
3、焊接电路板,检测并调试。
设计目标:
1、设计相关电路图;
2、焊接电路板;
3、检测并调试。
设计内容:
传统的电子音乐门铃通常采用分立元件或专用的音乐IC制作。本文介绍一
个用AT89C51单片机设计的电子音乐门铃,仅需AT89C51单片机最小系统再加一
片LM386做音频小功放驱动扬声器发声。客人来访时,按一下按钮,门铃就会
奏出优美的电子音乐声;再按一下,门铃又会奏出下一首电子音乐声音.共可
以奏出六首不同旋律的歌曲。
设计原理:
音乐是由音符组成,不同的音符是由相应频率的振动产生。产生不同的音
频需要有不同固定周期的脉冲信号。要产生音频脉冲,只要算出某一音频的周
期 T(1/f) ,然后将此周期 T 除以 2,即为半周期的时间。我们利用单片机的
内部定时器 TO,使其工作在计数器模式 MODEl 下.初始化适当的计数值 THO
及 TLO 以计时这个半周期时间。每当计时时间到后就将输出脉冲的 P1.0 口反
相。然后重复计时此半周期时间,再对 P1.0 口反相,就可在单片机 Pl.0 引脚
上得到此频率的脉冲。P1.0 引脚脉冲接 LM386 作音频功放,然后辅出到扬声器,
从而发出美妙的乐音。
例如设单片机晶振为12MHz,每计数一次用时1µs。我们要产生f低音DO,
其频率为392Hz,周期T=1/392=2551µs,半周期时间为1276µs。因此计数器应
每计数1276次时将P1.0口反相, 即计数初值应设定为(THxTLx)= 一
1276=64260,就可得到低音D0。P3.5口作为控制门铃的按钮,每按一次,产生
的电子乐音就改变一次,按完6次,再重复循环。6首歌曲分别为《生日快乐》、
《两只老虎》 、《三只小猫》、《哈巴狗》 、《不倒翁》 、《妹妹背着洋
娃娃》 。
硬件电路设计:
系统以AT89C51单片机为核心,加上外围电源时钟电路、LM386功放电路及
扬声器电路组成。AT89C51是一种低功耗/低电压、高性能的8位单片机,内部
除CPU外,还包括128字节RAM,4个8位并行I/O口,5个中断优先级,2层中断
嵌套中断,2个16位可编程定时计数器,片内集成4K字节可改变程序Flash存储
器,具有低功耗、速度快、程序擦写方便等优点,完全满足本系统设计需要。
系统通过P1.0连接功放电路从而驱动扬声器放出电子声乐,P3.5口连接门铃按
键。此电子音乐门铃的电路连接图如下图1所示。
软件设计:
首先建立音乐,把音乐的音符找出,建立各个音符的定时常数T值表,如
表1所示。
编写程序时我们把T值表按顺序建立在“TABLE”。每个发音符使用1个字
节,字节的高4位(简谱码)代表音符的高低,低4位(节拍码)代表音符的节拍。
如果l拍为0.4s,1/4拍就是0.1s,只要设定延迟时间就可求得节拍的时间。
假设1/4拍为1DELAY,则1拍应为4 DELAY,以此类推。所以只要求得1/4拍的
DELAY时间,其余的节拍就是它的倍数。1/4拍的延时时间在此我们设为125ms,
节拍码如表2所示。音符节拍码编程时放在程序的最后面“SONGx” 处。
表 1 音符对应的简谱码、频率、定时常数
音符
简谱码
频率(Hz)
定时常数(T)
低SO
低LA
低TI
中DO
中RE
中MI
中FA
中SO
中LA
中TI
高DO
高RE
1
2
3
4
5
6
7
8
9
A
B
C
392
440
494
523
587
659
698
784
880
988
1046
1175
64260
64400
64524
64580
64684
64777
64820
64898
64968
65030
65058
65110
高MI
高FA
高SO
不发音
D
E
F
0
1318
1397
1568
65157
65178
65217
表2 节拍码及节拍数
节拍码
节拍数
1
2
3
4
5
6
8
A
C
F
1/4拍
2/4拍
3/4拍
1拍
1又1/4拍
1又1/2拍
2拍
2又1/2拍
3拍
3又3/4拍
本系统采用MCS-51汇编语言编程。软件程序由主程序、定时器TO中断服务
程序和延时子程序组成。系统初始化后,系统扫描按键(P3.5口的电平)判断是
否有键按下,有键按下时,根据按下键的次数,向音频字符码指针赋以不同歌
曲的地址,通过定时器TO中断子程序使P1.0口输出相应频率的音频脉冲,以达
到发声目的。主程序流程图如图2所示。
N
Y
Y
Y
N
N
图2
定时器TO中断服务程序流程图如图3所示。
仿真界面如下:
图3
00H
START
ORG
TIM0
0BH
源程序:
ORG
JMP
LJMP
START:MOV
IE,#10000010B
MOV
JB
P3.5, $
CALL DELAY1
TMOD,#00000001B
;初始化程序
;主程序
JNB
MOV
P3.5, $
31H,#00
START0:
30H,#SONG
A,30H
DPTR,# TABLE
A,#0FH
A,#0FH
R2,A
END0
R5,A
A,R2
SING
TR0
D1
MOV
NEXT: MOV
MOV
MOVC A,@A+DPTR
MOV
JZ
ANL
MOV
MOV
SWAP A
ANL
JNZ
CLR
JMP
SING: DEC
MOV
RL
MOV
MOVC A,@A+DPTR
MOV
MOV
MOV
RL
INC
MOVC A,@A+DPTR
MOV
MOV
SETB
TH0,A
21H,A
A,22H
A
A
TL0,A
20H,A
TR0
A
22H,A
A
DPTR,#TABLE
D1:
CALL DELAY
A,#00H
30H
NEXT
TR0
A,31H
INC
JMP
END0: CLR
MOV
XRL
END1
JNZ
P3.5,$
JB
CALL DELAY1
P3.5,$
JNB
INC
31H
30H,#SONG1
MOV
JMP
NEXT
END1:
MOV
A,31H