单片机课程简易电子琴
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
1概述 (1)
2方案设计 (2)
2.1系统设计要求 (2)
2.2电子琴系统的组成 (2)
2.3电子琴系统的设计思想 (2)
2.3.1 硬件设计思想 (2)
2.3.2 软件设计思想 (3)
3硬件电路设计 (4)
3.1系统方案 (4)
3.2系统功能框图 (5)
3.3功能模块详细设计 (5)
3.4主要芯片功能描述 (9)
4 系统软件设计 (11)
4.1主程序流程图 (11)
4.2源程序 (12)
4.3设计总结 (16)
5 仿真与调试 (17)
结束语 (19)
参考文献 (20)
1概述
单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),单片机芯片
常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。
概括的讲:一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
它最早是被用在工业控制领域。
由于单片机在工业控制领域的广泛应用,单片机由芯片内仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
INTEL的Z80是最早按照这种思想设计出的处理器,当时的单片机都是8位或4位的。
其中最成功的是INTEL的8031,此后在8031上发展出了MCS51系列单片机系统。
因为简单可靠而性能不错获得了很大的好评。
尽管2000年以后ARM已经发展出了32位的主频超过300M的高端单片机,直到目前基于8031的单片机还在广泛的使用。
在很多方面单片机比专用处理器更适合应用于嵌入式系统,因此它得到了广泛的应用。
事实上单片机是世界上数量最多处理器,随着单片机家族的发展壮大,单片机和专用处理器的发展便分道扬镳。
现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。
手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。
汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。
2方案设计
2.1 系统设计要求
本系统主要实现电子琴的基础操作。
关于声音的处理,采用使用说明中的响声音的方法,使用汇编语言,利用定时器来控制频率,而每个音符的符号只是存在我自己定义的表中。
具体要求如下:
(1)要求达到电子琴的基本功能,可以用弹奏出简单的乐曲。
(2)用键盘作出电子琴的按键,每键代表一个音符,该设计只有中音音段。
(3)各音符按一定的顺序排列,必须符合电子琴的按键排列顺序。
(4)用汇编语言编程实现程序设计。
(5)利用查表,中断等方式实现目的。
(6)系统的各各功能模块要清楚,有序。
(7)程序运行时有友好的用户界面。
2.2 电子琴系统的组成
单片机因体积小、功能强、价格低廉而得到广泛应用。
AT89C51单片机设计微型电子琴的方法,仅需AT89C51最小系统,扩展一组小键盘,再加一片LM386做音频小功放,输出到扬声器;电源由变压器,整流二极管,电容及稳压器组成;另外,再接一组发光二极管用来指示按键的按下与否。
由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器
T0来产生这样方波频率信号,实际上就是把每个按键所对应的值经过处理后发给单片机,再在单片机内把数字当作指针指向所对应的音符。
2.3 电子琴系统的设计思想
2.3.1 硬件设计思想
电子琴的原理框图如图一所示。
它由以下几个部件组成:单片机
AT89C51、电源、4*4的16个按钮矩阵、音频放大模块。
电源部分:电源部分有二部分组成。
一部分是由220V的市电通过变压、整流稳压来得到+5V电压,维持系统的正常工作;另一部分是由3V的电池供电,以保证停电时正常走时。
正常情况下电池是不提供电能的,以保证电池的寿命。
2.3.2 软件设计思想
本系统的软件系统主要可分为主程序、定时计数中断程序、时间调整或定闹设置程序三大模块。
在程序设计过程中,加强了部分软件抗干扰措施,下面对部分模块作介绍。
定时中断模块我们可以用语句:
MOV TMOD ,#01H 写控制数
MOV TH0 ,#0XH 写定时常数
SETB TR0启动TR0
SETB ET0允许T0
SETB EA开放CPU中断关于声音的处理,第一种方法是使用汇编语言,利用定时器来控制频率,而每个音符的符号只是存在我自己定义的表中。
音符的频率是通过查表得到的(见表2-1)。
一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。
现在以单片机12MHZ晶振为例,列出高中低音符与单片机计数T0相
关的计数值如表2-1所示.
表2-1
音符频率(HZ)简谱码(T值)
低 3 MI33064021
低 4 FA34964103
低 5 SO39264260
低 6 LA44064400
低 7 SI49464524
中 1 DO52364580
中 2 RE58764684
中 3 MI65964777
中 4 FA69864820
中 5 SO78464898
中 6 LA88064968
中 7 SI98865030
高 1 DO104665058
高 2 RE117565110
高 3 MI131865157
高 4 FA139765178采用查表程序进行查表时,可以为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据:
TABLE:DW 64021,64103,64260,64400
DW 64524,64580,64684,64777
DW 64820,64898,64968,65030
DW 65058,65110,65157,65178
3硬件电路设计
3.1 系统方案
通过电子琴按键随意键入所要表达的音符,作为电平送给主体电路,中央处理器通过识别,编译,最后解码输出音符,再通过功放电路进行放大,最后在扬声电路中发出有效的声音。
通过这样可以不断的弹奏音乐。
嵌入式电路由
电源电路,按键电路,LED显示电路,音频放大电路和两个功能键组成,通过功能键可以选择播放音乐。
3.2 系统功能框图
该系统的主要模块由五个部分组成,具体关系如图3-1所示:
单片机电子琴总体框图
图3-1
3.3 功能模块详细设计
系统主要功能模块由以下几部分组成:
1、电源电路设计
从图3-2可知,无论是AT89C51单片机工作电源、二极管还是数码管的驱动,都要用到+5V的直流电源,所以,一个稳定的、持续的+5V直流电源对本系统十分重要。
本系统运用桥式整流电路,将交流转换为直流,为各部分电路提供恒定的+5V直流。
模拟部分和数字部分分别采用一个独立的稳压管供电,保证电路的稳定性和抗干扰。
图3-2
2 . 键盘控制电路设计
本系统采用独立式按键方式来实现键盘的。
独立式按键是指直接用I/O口线构成单个按键电路,每个按键占用一条I/O口线,每个按键的工作状态不会产生相互影响。
如下图所示,当图中的某一个键闭合时,相应的I/O口线变为低电平。
当程序查询到为低电平的I/O
口线时,就可以确定处于闭合状态的键。
图3-3
3、音频放大电路设计
LM386是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。
为使外围元件最少,电压增益内置为20。
但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至200。
输入端以地位参考,同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池供电的场合。
LM386的封装形式有塑封8引线双列直插式和贴片式。
其追求的主要目标是在失真许可的限度内,高效率地为终端负载提供尽可能大的输出功率。
该系统中音频放大电路的设计如图3-4所示:
图3-4
4. 复位电路设计
复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。
除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键以重新启动。
RST引角是复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个振荡脉冲周期以上。
整个复位电路包括芯片内外两部分。
外部电路产生的复位信号(RST)施密特触发器,再由片内复位电路在每个机器周期的
S5P2时刻对施密特触发器的输出进行采样。
然后才得到内部复位操作所需要的信号。
复位电路的基本功能是系统上电时提供复位信号直至系统电源稳定后撤销复位信号为可靠起见电源稳定后还要经一定的延时才撤销复位信号以防电源开关或电源插头分-合过程中引起的抖动而影响复位.
复位操作有上电自动复位和按键手动复位两种方式。
上电自动复位是通过外部复位电路的电容充电来实现的.这样只要电源的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就完成了系统的复位初始化.本设计采用按键
手动复位方式。
而该方式又分为电平方式和脉冲方式。
其中按键电平方式是通过使复位端经电阻与电源接通而实现的。
而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的。
本设计采用按键电平复位方式,具体电路图如下:
图3-5
图中9端口与单片机复位信号(RST)相连。
5. 时钟电路设计
时钟电路用于单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格的按时序进性工作。
而时序所研究的则是指令执行中各信号之间的相互直接关系。
1)时钟信号的产生
在MCS—51芯片内部有一个高增益反向放大器,其输入端为芯片引脚XTAL1,其输出端引脚XTAL2,在芯片的外部通过这两个引脚跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。
如图3-6
所示。
除使用晶体振荡器外,如对时钟频率要求不高,还可以用电感或陶瓷谐振器代替。
电路中的电容C1和C2一般取30pF 左右,而晶体的振荡频率范围通
常是1.2MHz ~12MHz ,晶体振荡频率高,则系统的时钟频率也高,单片机运行速度也就快。
但反过来运行速度快堆存储器的速度要求就高,对印刷电路板的工艺要求也就高(线间寄生电容要小)。
MCS —51在通常应用情况下,使用振
荡频率为6 MHz 的石英晶体,而12 MHz 主要是在高速串行通信的情况下才使
用。
随着技术的发展,单片机的时钟频率也在逐步提高,先在高速芯片已达40 MHz 。
定时振荡器的工作可由专用寄存器PCON 的PD 位进行控制,把PD 位置“1”,振荡器停止工作,系统进入低功耗状态。
2)引入外部脉冲信号
在由多片单片机组成的系统中,为了个单片机之间时钟信号的同步,应当
引入唯一的公用外部脉冲信号作为各单片机的振荡脉冲。
这时外部的脉XTAL2
引脚注入,其连接如图3-7所示。
信信信信信
图3-7
3.4 主要芯片功能描述
1. AT89C51单片机功能描述
51 系列单片机中典型芯片(如A T89C51) 采用40引脚双列直插封装(D IP)
形式, 内部由CPU , 4 kB 的ROM , 256 B 的RAM , 2 个16 b 的定时ö计数器T 0和T1, 4 个8 b 的I öO 端口P0, P1, P2, P3,一个全双功串行通信口等组成。
特别是该系列单片机片内的F lash 可编程、可擦除只读存储器(E2PROM ) , 使其在实际中有着十分广泛的用途, 在便携式、省电及特殊信息保存的仪器和系统中更为有
用。
该系列单片机引脚与封装如图3-8所示。
51系列单片机为许多控制提供了高度灵活和低成本的解决办法。
充分利用他的片内资源,即可在较少外围电路的情况下构成功能完善的超声波测距系统。
2.电路总图
图 3-9
4 系统软件设计
软件由初始化程序、主程序、定时器1中断服务程序、键盘扫描程序和延时程序组成。
4.1主程序流程图
1.电子琴整体程序流程图:
图4-1 2.中断服务流程图:
图4-2 4.2源程序
LINEEQU30H
ROW EQU31H
VAL EQU32H
ORG00H
SJMPSTART
ORG0BH
LJMPINT_T0
START:MOV P0,#00H
MOV TMOD,#01H
;****************************************** ;按键扫描程序
;****************************************** LSCAN: MOV P2,#0F0H
L1: JNB P2.0,L2 LCALLDELAY
JNB P2.0,L2
MOV LINE,#00H LJMPRSCAN
L2: JNB P2.1,L3 LCALLDELAY
JNB P2.1,L3
MOV LINE,#01H LJMPRSCAN
L3: JNB P2.2,L4 LCALLDELAY
JNB P2.2,L4
MOV LINE,#02H LJMPRSCAN
L4: JNB P2.3,L1 LCALLDELAY
JNB P2.3,L1
MOV LINE,#03H RSCAN: MOV P2,#0FH C1: JNB P2.4,C2
MOV ROW,#00H LJMPCALCU
C2: JNB P2.5,C3
MOV ROW,#01H LJMPCALCU
C3: JNB P2.6,C4
MOV ROW,#02H LJMPCALCU
C4: JNB P2.7,C1
MOV ROW,#03H
CALCU: MOV A,LINE;计算键号
MOV B,#04H
MUL AB
ADD A,ROW
MOV VAL,A
;******************************************* ;根据键号查表得到定时器的定时常数,
;从而发出不同频率的声音
;******************************************* MOV DPTR,#TABLE2
MOV B,#2
MUL AB
MOV R1,A
MOVC A,@A+DPTR
MOV TH0,A
INC R1
MOV A,R1
MOVC A,@A+DPTR
MOV TL0,A
MOV IE,#82H
SETBTR0
MOV A,VAL
LCALL LDCX;显示键号
MOV DPTR,#TABLE1
MOVC A,@A+DPTR
MOV P0,A
;******************************************* ;等待按键释放
;*******************************************
W0: MOV A,P2
CJNEA,#0FH,W1
MOV P0,#00H
CLR TR0
LJMPLSCAN
W1: MOV A,P2
CJNEA,#0F0H,W2
MOV P0,#00H
CLR TR0
LJMPLSCAN
W2: SJMPW0
;**************************************** ;定时器0中断服务程序,输出特定频率的方波, ;驱动扬声器发声
;**************************************** INT_T0: MOV DPTR,#TABLE2
MOV A,VAL
MOV B,#2
MUL AB
MOV R1,A
MOVC A,@A+DPTR
MOV TH0,A
INC R1
MOV A,R1
MOVC A,@A+DPTR
MOV TL0,A
CPL P3.7
RETI
LDCX: PUSH ACC MOV DPTR,#TABLE3
MOVC A,@A+DPTR
MOV P1,A
POP ACC
RET
DELAY: MOV R6,#10
D1: MOV R7,#250
DJNZR7,$
DJNZR6,D1
RET
TABLE1: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H
TABLE2: DW 64021,64103,64260,64400
DW 64524,64580,64684,64777
DW 64820,64898,64968,65030
DW 65058,65110,65157,65178
TABLE3: DB 0FEH,0FDH,0FBH,0F7H
DB 0EFH,0DFH,0BFH,7FH
DB 0FEH,0FDH,0FBH,0F7H
DB 0EFH,0DFH,0BFH,7FH
END
4.3设计总结
本系统最终实践效果基本达到设计要求,操作人员每执行一个动作,该系统就会有相应的反应,并且效果比较满意,基本达到设计的要求与目的。
但是该系统的设计,还存在以下几点不足之处:①线性电源应该换为开关电源,这样才与现实中的电子产品更接近,而且这对电路也有保护作用。
②只能自己弹奏,没有涉及激动播放音乐的内容。
③发光二极管的亮与灭应该和按键的按下与释放对应起来,即当按键按下时,和该键相对应的发光二极管应亮着;当按
键释放时,该二极管应该熄灭。
本系统的设计在单片机开发领域来说只能算是一个最初级的水平,当然,在设计该系统的过程中也遇到不少的问题,如:电源设计时变压器和稳压器的选择,功放设计过程中几个参数的确定及喇叭的选择等等,在我的合作伙伴和指导教员的协助下这一系列的问题最终都得到了解决。
5 仿真与调试
的仿真,得出如下的仿真运行是的导出图。
通过proteus
图 5-1
结束语
通过本次课程设计,使我学到了许多书本上无法学到的知识,也使我深刻体会到单片机技术应用领域的广泛。
不仅让我对学过的单片机知识有了很多的巩固,同时也对单片机这一门课程产生了更大的兴趣。
本设计涉及到《单片机原理及应用》、《模拟电子技术》等学科。
让我对专业知识有了更深的理解。
在本次课程设计过程中,我学会了在网络上查找有关本设计的各硬件的资源,其中包括:AT89C51单片机及其引脚说明及其引脚功能等,为本次课程设计提供了一定的资料。
在做课程设计的初期阶段,难度很大,没有头绪。
通过在图书馆里、网上查阅资料,攻克了课程设计中的道道难题。
本次设计我能独立完成,算是有了很大的收获。
总的感受有以下几方面:
1) 巩固了课本上的知识。
通过本次设计,我不但对单片机有了更为深入的了解,对一个课题如何画流程图,编程序等,有了一定的认识。
2) 在本次课程设计中,我进一步加强了自己的动手能力和运用专业知识的能力,从中学习到如何去思考和解决问题,以及如何灵活地改变方法去实现设计方案;特别是深刻体会到的是软件和硬件结合的重要性,以及两者的联系和配合作用。
3) 通过本次毕业设计,让我了解到智能化技术对当今人们生活的重要性。
同时这次做课程设计的经历也使我受益匪浅。
让我知道做任何事情都应脚踏实地,刻苦努力地去做。
只有这样,才能做好。
在这次课程设计中,我既巩固了专业知识,又学到了在智能化设计过程中的许多流程和该注意的事项,增强了电子产品开发的意识。
本次经历将是我在大学时期很好的一次实践和锻炼机会。
参考文献
[1]张淑清等著编.单片微型计算机接口技术及应用[M]. 国防工业出版社 2003年1月
[2]吴金戌郭庭吉编著.8051单片机实践与应用[M]. 清华大学出版社 2001年8月
[3]冯博琴主编.微型计算机原理与接口技术[M]. 清华大学出版社 2004年4月
[4]张友汉主编.新颖实用电子设计与制作[J]. 福建科学技术出版社 2000年1月
[5]谭浩强等著编.C语言程序设计教程[M].高等教育出版社
[6]余孟尝主编数字电子技术基础简明教程[M].高等教育出版社
[7]宋建国.AVR单片机原理及应用[M].北京:北京航空航天大学出版社,1998.
[8]何立民.MCS-51 系列单片机应用设计[M].北京:航空航天大学出版社,1990.
致谢
完成本课程设计,首先要感谢许建明老师,他严谨的治学态度和一丝不苟的精神,给我的学习生活留下了又一笔难忘的记忆。
从选题、中期检查到最终评审,老师都给了我莫大的指导和支持,使我得以顺利地完成论文的写作,因此他是我首先要感谢的人。
通过本次课程设计使我学到了很多的东西,感谢学校及老师给我做此次课程设计的机会,让我得以锻炼。
感谢信息工程班的各位同学好友,由于他们的帮助使我解决了课程设计中的不少难题。