单片机 简易电子琴设计.docx
- 文档编号:12625460
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:20
- 大小:102.39KB
单片机 简易电子琴设计.docx
《单片机 简易电子琴设计.docx》由会员分享,可在线阅读,更多相关《单片机 简易电子琴设计.docx(20页珍藏版)》请在冰豆网上搜索。
单片机简易电子琴设计
课程设计
课程单片机原理及应用课程设计
题目简易电子琴设计
院系电子科学学院
专业班级电信06-1班
学生姓名
学生学号
指导教师
2010年3月19日
课程设计任务书
课程单片机原理及应用课程设计
题目简易电子琴设计
专业电子信息工程姓名学号
主要内容、基本要求、主要参考资料等
1、主要内容:
根据单片机课程所学内容,结合其他相关课程知识,设计一个简易电子琴,以加深对单片机知识的理解,锻炼实践动手能力,为以后的毕业设计和工作打下坚实基础。
2、基本要求:
本设计以MCS-51系列单片机为核心,采用常用电子器件设计。
要求最少8个按键,每个按键对应一种音调,按下按键发声,松开按键后声音延迟一段时间后停止,即带余音的电子琴,延时时间可以设置,要求最少8个不同音调,可以采用标准的音调设计。
3、主要参考资料:
[1]张毅坤,陈善久.单片微型计算机原理及应用.西安:
西安电子科技大学出版社,2002.
[2]张友德,赵志英,徐时亮.单片微机原理应用与实验.上海:
复旦大学出版社,2000.
[3]伟福Lab2000P系列单片机仿真实验系统说明书.
完成期限2010.3.15-2010.3.19
指导教师
专业负责人
2010年3月13日
目录
第1章概述..................................................1
第2章系统设计................................................2
2.1简易电子琴设计方案.....................................2
第3章硬件电路设计.............................................2
3.1单片机时钟电路设计......................................2
3.2单片机复位电路设计......................................2
3.3键盘电路设计............................................3
第4章 软件设计................................................4
4.1定时器中断服务控制......................................4
4.2矩阵键盘的行扫描控制....................................4
4.3主程序的实现............................................5
4.4定时器1中断服务程序的实现.............................5
结论...........................................................7
参考文献........................................................8
附录1系统电路图...............................................9
附录2主要源代码...............................................10
第一章 概述
由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言,它是除了二进制机器码以上最低级的语言了,既然这么低级为什么还要用呢?
很多高级的语言已经达到了可视化编程的水平为什么不用呢?
原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。
一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!
对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。
单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。
一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的。
目前最常用的单片机为MCS-51,是由美国INTEL公司(生产CPU的英特尔)生产的,89C51是这几年在我国非常流行的单片机,它是由美国ATMEL公司开发生产的,其内核兼容MCS-51单片机。
本设计主要是通过对电子琴主体部分的电路,以单片机为主要元器件进行模仿设计,达到电子琴固有的基本功能,其主要功能是利用AT89C51单片机和编程技术来完成的,而且在电子琴中再次利用编程技术,设计出固定音乐播放系统,附加进简易电子琴电路中,不用改变原电子琴电路就可以实现既能播放音乐又能弹琴的功能,所以本设计叫嵌入式简易电子琴系统。
本作品设计新颖,操作方便。
音乐产生原理及硬件设计由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,
第2章系统设计
2.1简易电子琴设计方案
声音的频谱范围约在几十hz到几千hz,利用程序来控制单片机某个口线不段的输出“高”、“低”电平,则在该口线上就能产生一定的频率的方波,将该方波接上喇叭,就能发出一定的声音,若在利用程序来控制“高”、“低”电平的持续时间,就能改变输出波形的频率,从而改变音调。
乐曲中,每一个音符对应着确定的频率,表1给出了C调时各音符频率。
如果单片机某个口线输出“高”、“低”电平的频率和某个音符的频率一样,那么将口线接上喇叭就可以发出次音符。
音名
1
2
3
4
5
6
7
频率(hz)
523.3
587.3
659.3
698.3
784
880
967.8
表1C调时各音符频率
第3章硬件电路设计
3.1单片机时钟电路设计
当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。
如果RST持续为高电平,单片机就处于循环复位状态。
时钟电路如图1。
图1时钟电路图
3.2单片机复位电路设计
本设计采用上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。
上电后,由于电容C2的充电和反相门的作用,使RST持续一段时间的高电平。
当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。
C:
=22uF,R=l.5kO。
复位电路如图2。
图2复位电路图
3.3键盘电路设计
键盘扫描的方法是:
先扫描第0行,行输出值为1110B,第0行为”0”,其余3行为“1”(通常把输出为0的行称为当前行),然后读入列信号,判断是否为全“1”。
若列输入值为全“1”,则当前行无键按下,行输出1101(第1行为“0”其余3行为“1”),再扫描下一行……依次规律逐行扫描,直到扫描某行时,其列输入不为全“1”,则根据行输出和列输入值中0的位置确定闭合键的具体位置,从而用计算法或查表法到闭合键的键值。
其流程图如下图4所。
图3键盘扩展图
第四章 软件设计
4.1定时器中断服务控制
本设计通过定时器中断产生是单片机在一定的时间产生方波,整个设计的关键也正是通过该定时器中断服务产生输出不同频率的方波从而来实现个种音符。
这种方法占用CPU时间很少,在显示的同时还可以处理其他事务,效率较高,是通常采用的方法。
定时器其作用主要包括产生各种时标间隔、记录外部事件的数量等,是微机中最常用、最基本的部件之一。
803l单片机有2个16位的定时器:
定时器0(T0)和定时器1(T1)。
其原理图如图5所示。
图4定时器原理图
T0由2个定时寄存器TH0和TL0构成,T1则由TH1和TL1构成,它们都分别映射在特殊功能寄存器中,从而可以通过对特殊功能寄存器中这些寄存器的读写来实现对这两个定时器的操作。
作定时器时,每一个机器周期定时寄存器自动加l,所以定时器也可看作是计量机器周期的计数器。
由于每个机器周期为12个时钟振荡周期,所以定时的分辨率是时钟振荡频率的1/12。
4.2矩阵键盘的行扫描控制
所谓的行扫描,就是通过行线逐行发出低电平信号。
如果该行线所连接的键没有按下,则列线的电平信号是全“1”;如果有键按下的话,则列线得到的是非全“1”信号,即根据列线的电平信号是否有“0”信号来判断有无键按下。
在使用行扫描法时,为了提高效率,首先快速检查整个键盘中是否有键按下。
若无键按下,则结束键盘扫描;若有键按下,则用逐行扫描的方法来确定闭和键的具体位置。
4.3主程序的实现
在主程序中首先调用键盘扫描子程序,进行有无键按下的判断,如无键按下则执行熄灭指示灯、跳回开始位置的命令;如有键按下则扫描出按下的键的位置再将其值赋给TIMER1L和TIMER1H,通过其执行点亮指示灯。
反复执行该命令得到不同的值,输出不同的音符。
其流程图如图6所示。
图5主程序的流程图
4.4定时器1中断服务程序的实现
中断服务程序是通过单片机的T1定时器,在方式1下实现的。
该程序首先将主程序送来的TIMER1L和TIMER1H的值给定时器T1,通过T1从P3.4口输出方波。
输出的方波送LM324放大后再发声。
其流程图如下图7所示。
图6定时器1中断服务程序流程图
总结
课程设计是我们理论联系实际的最好的途径之一,让我们有机会把课本上学到的知识运用到实际生活中。
目前单片机在工业检测领域中得到了广泛的应用,在我们平常的生活中也是随处可见,包括我们日常生活中随处可见的交通灯、闹钟等都含有单片机作为一个主要的部件,懂得并熟悉掌握单片机的运用技术是非常有用的。
参考文献
[1]张毅坤,陈善久.单片微型计算机原理及应用.西安:
西安电子科技大学出版社,2002.
[2]张友德,赵志英,徐时亮.单片微机原理应用与实验.上海:
复旦大学出版社,2000.
[3]伟福Lab2000P系列单片机仿真实验系统说明书.
附录1系统电路图
附录2主要源代码
RSBITP2.0;定义液晶显示端口标号
RWBITP2.1
EBITP2.2
;********************************************
T0THEQU24H;T0两个暂存变量
T0TLEQU23H
ORG0000H
LJMPINITION
ORG000BH
LJMPT0INT
ORG0100H
;********************************************
;*************************液晶初始化******************
INITION:
MOVSP,#70H
MOVP0,#01H;清屏
CALLENABLE
MOVP0,#38H;8位,2行显示
CALLENABLE
MOVP0,#0CH;屏显on,关光标
CALLENABLE
MOVP0,#06H;计数地址加1,自动右移
CALLENABLE
;******************************************
;开机提示
;******************************************
MOVP0,#80H
CALLENABLE
MOVDPTR,#TABLE0;写数据的第一行
CALLWRITE1
MOVP0,#00010000B;光标左移两位
CALLENABLE
MOVP0,#00010000B
CALLENABLE
CALLDEL0
LJMPMAIN
;*********************************************写指令
ENABLE:
CLRRS
CLRRW
SETBE
CALLDEL0
CLRE
RET
;**********************************************写数据
WRITE1:
MOVR1,#00H;查表程序,从表头到表尾
A1:
MOVA,R1
MOVCA,@A+DPTR
CALLWRITE2
INCR1
CJNEA,#00H,A1;未到字符串末尾继续
RET
WRITE2:
MOVP0,A;直接将数据写入液晶屏
SETBRS
CLRRW
SETBE
CALLDEL0
CLRE
RET
DEL0:
MOVR4,#020H
C0:
MOVR5,#020H
C1:
DJNZR5,C1
DJNZR4,C0
RET
;******************************************
TABLE0:
DB'WELCOMHERE',00H
;*************************内存初始化******************
INITIAL:
MOVR3,#08H
MOVR0,#30H
M1:
MOV@R0,#00H
INCR0
DJNZR3,M1
RET
;*************************选择按键播放八个音调******************
MAIN:
MOVSP,#80H;初始化堆栈
MOVTMOD,#11H;定时器0工作方式0,定时器1工作方式0
SETBEA
SETBET0;计数器0允许
SETBET1;计数器1允许
START:
SETBP3.7;关蜂鸣器
CLRTR0;定时器不允许
SCAN:
;键盘扫描
MOVA,P1
CJNEA,#0FFH,SU_KEY;判断键盘按下,跳到SU_KEY,若未按,继续扫描
NOP
LJMPSCAN
SU_KEY:
SU_KEY1:
JBP1.0,SU_KEY2;如果不是第1个键按下,转
MOVDPH,#0FCH
MOVDPL,#44H
SJMPPLAY
SU_KEY2:
JBP1.1,SU_KEY3;如果不是第2个键按下,转
MOVDPH,#0FCH
MOVDPL,#0ACH
SJMPPLAY
……
SU_KEY8:
JBP1.7,KEY1;如果不是第8个键按下,转
MOVDPH,#0FEH
MOVDPL,#22H
SJMPPLAY
PLAY:
MOVT0TH,DPH;存高位字符
MOVT0TL,DPL;存低位字符
MOVTH0,T0TH
MOVTL0,T0TL
SETBTR0;启动定时器0
MOVR2,#01B;1/4拍
DJNZR2,PLAY
LCALLDELAY
SJMPJUDGE
JUDGE:
JBP2.4,START;按键未按下,则继续扫描,否则,开始放音乐
;*************************选择按键播放音乐******************
KEY1:
JBP2.5,KEY2;第一个键(P2.5)按下,放音音乐1
MOVR2,#00H
LCALLMODD;歌曲号显示
MOVDPTR,#MU_TAB1
AJMPMUSIC
KEY2:
JBP2.6,KEY3;第二个键(P2.6)按下,放音乐2
MOVR2,#01H
LCALLMODD;歌曲号显示
MOVDPTR,#MU_TAB2
AJMPMUSIC
KEY3:
JBP2.7,NEXT_2;第三个键(P2.7)按下,放音乐3
MOVR2,#02H
LCALLMODD;歌曲号显示
MOVDPTR,#MU_TAB3
AJMPMUSIC
NEXT_2:
LJMPSTART;返回
MUSIC:
MOVTMOD,#01H
MOVIE,#82H;允许T0中断
MOVR7,#00H
LOOP:
CLRA
MOVCA,@A+DPTR;查表取代码
MOVR1,A;定时器高八位存R1
INCDPTR
PUSHDPH;保护现场
PUSHDPL
MOVP0,#01H;清屏
CALLENABLE
LJMPINITION;从头开始演奏
NEXT:
MOVT0TH,R1;装定时初值
MOVTH0,T0TH
MOVT0TL,R0
MOVTL0,T0TL
SETBTR0;启动定时器
SJMPNEXT1
NEXT0:
CLRTR0;关闭定时器
NEXT1:
CLRA
INCDPTR
MOVCA,@A+DPTR;查延时常数
MOVR2,A
LOOP1:
ACALLD200
DJNZR2,LOOP1;控制延时次数
INCDPTR
AJMPLOOP
D200:
MOVR3,#81H;延时程序
D200B:
MOVA,#0FFH
D200A:
DECA
JNZD200A
DECR3
CJNER3,#00H,D200B
RET
QINGCHU:
MOVA,#00100000B
MOVP0,#0C0H;将第二行的第一位置0
LCALLENABLE
LCALLWRITE2
MOVA,#00100000B;将第二行的第二位置0
MOVP0,#0C1H
LCALLENABLE
LCALLWRITE2
……
MOVA,#00100000B;将第二行的第七位置0
MOVP0,#0C6H
LCALLENABLE
LCALLWRITE2;将第二行的第三位置0
;***************************************************
;定时器0中断子程序,定时音乐
;***************************************************
T0INT:
;中断服务子程序
MOVTH0,T0TH
MOVTL0,T0TL
CPLP3.7;反相输出,演示音乐
RETI
;******************************************
;显示
;******************************************
MODD:
MOVP0,#8EH
LCALLENABLE
MOVA,R2
MOVDPTR,#TABLE2
MOVCA,@A+DPTR
LCALLWRITE2
RET
TABLE2:
DB31H,32H,33H
GE1:
db'xin',00h,'nian',00h,'hao',00h,'ya',00h,'xin',00h,'nian',00h,'hao',00h,'ya',00h
db'zhu',00h,'fu',00h,'da',00h,'jia',00h,'xin',00h,'nian',00h,'hao',00h
GE2:
DB'liang',00H,'zhi',00H,'lao',00H,'hu',00H,'liang',00H,'zhi',00H,'lao',00H,'hu',00H,'pao',00H,'de',00H,'kuai',00H
DB'pao',00H,'de',00H,'kuai',00H,'yi',00H,'zhi',00H,'mei',00H,'you',00H,'yan',00H,'jing',00H,'yi',00H,'zhi',00H
DB'mei',00H,'you',00H,'er',00h,'duo',00h,'zhen',00h,'qi',00h,'guai',00h,'zhen',00h,'qi',00h,'guai',00h
GE3:
DB'wo',00h,'ai',00h,'bei',00h,'jing',00h,'tian',00h,'an',00h,'men',00h,'tian',00h,'an',00h
;*************************延时子程序******************
DELAY:
MOV30H,#100;延长时间等待,键盘消抖
D1:
MOVR5,#200
D2:
DJNZR5,D2
DJNZ30H,D1
RET
课程设计成绩评价表
课程名称
单片机原理及应用课程设计
题目名称
简易电子琴设计
学生姓名
学号
指导教师姓名
职称
序号
评价项目
指标
满分
评分
1
工作量、工作态度和出勤率
按期圆满的完成了规定的任务,难易程度和工作量符合教学要求,工作努力,遵守纪律,出勤率高,工作作风严谨,善于与他人合作。
20
2
课程设计质量
课程设计选题合理,计算过程简练准确,分析问题思路清晰,结构严谨,文理通顺,撰写规范,图表完备正确。
45
3
创新
工作中有创新意识,对前人工作有一些改进或有一定应用价值。
5
4
答辩
能正确回答指导教师所提出的问题。
30
总分
评语:
指导教师:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 简易电子琴设计 简易 电子琴 设计