综合课程设计
题 目:演奏电子琴
学 院:理科学工程学院
演奏电子琴
摘:着社会发展进步音乐逐渐成生活中重部分说喜欢音乐会恶会抽空欣赏世界名曲作精神洗礼文设计基单片机简易电子琴电子琴现代电子科技音乐结合产物种新型键盘乐器现代音乐扮演着重角色单片机具强控制功灵活编程实现特性已溶入现代生活中成代部分系统51系列单片机AT89C51控制器附矩阵键盘LED显示扬声器组成系统完成显示输入信息播放相应音符等基功系统运行稳定优点硬件电路简单软件功完善控制系统性价较高等具定实参考价值
关键词:AT89C51矩阵键盘LED显示扬声器
1 引言
11 目意义
单片微型计算机规模集成电路技术发展产物属第四代电子计算机具高性高速度体积价格低廉稳定应广泛特点应必定导致传统控制技术根发生变革单片机开发应已成高科技工程领域项重课题
电子琴现代电子科技音乐结合产物种新型键盘乐器现代音乐扮演着重角色单片机具强控制功灵活编程实现特性已溶入现代生活中成代部分文容AT89S51单片机核心控制元件设计电子琴单片机作控核心键盘扬声器等模块组成核心控制模块控模块设16键扬声器
文单片机设计简易电子琴进行分析介绍基单片机电子琴统硬件组成利单片机产生频率获求音阶终意弹奏想表达音乐文分原理图芯片模块原理模块程序调试详细阐述系统简易电子琴设计键盘矩阵中键会数码显示前键扬声器播放器应音符通设计系统解单片机基功单片机解飞跃
12 系统研究容
系统设计制作演奏电子琴综合应两项设计
(1)键盘矩阵识矩阵扫描显示前键
(2)频率音符播放通键控制16种发音
13 芯片简介
AT89S51低功耗高性CMOS 8位单片机片含4k Bytes ISP(Insystem programmable)反复擦写1000次Flash读程序存储器器件采ATMEL公司高密度非易失性存储技术制造兼容标准MCS51指令系统80C51引脚结构芯片集成通8位中央处理器ISP Flash存储单元功强微型计算机AT89S51许嵌入式控制应系统提供高性价解决方案
AT89S51具特点:40引脚(引脚图图12示)4k Bytes Flash片程序存储器128 bytes机存取数存储器(RAM)32外部双输入输出(IO)口5中断优先级2层中断嵌套中断216位编程定时计数器2全双工串行通信口门狗(WDT)电路片时钟振荡器
外AT89S51设计配置振荡频率0Hz通软件设置省电模式空闲模式CPU暂停工作RAM定时计数器串行口外中断系统继续工作掉电模式冻结振荡器保存RAM数停止芯片功直外中断激活硬件复位时该芯片具PDIPTQFPPLCC等三种封装形式适应产品需求
2 系统分析
21 系统组成
系统51单片机控核心矩阵键盘扬声器LED显示模块起组合成具体:
22 系统工作原理
系统扫描键盘矩阵显示键扬声器发出应音符
4X4行列式键盘识显示原理:
组成键盘键机械式电容式导电橡胶式薄膜式种什形式作电路接通断开开关目前微机系统中键盘功通常分编码键盘非编码键盘两种基类型
编码键盘:键盘身带实现接口功需硬件电路仅动检测键完成抖动防串键等功提供键功应键码(ASCII码)送CPU编码键盘接口简单方便硬件电路较复杂价格较贵
非编码键盘:键盘简单提供键开关行列矩阵关键识键码确定输入抖动等功均软件完成目前微机系统中般降低成数采非编码键盘
键盘接口必须具抖动防串键键识键码产生4基功
(1)抖动键松开时会产生短时间抖动抖动持续时间键质量相关般5—20mm谓抖动指识键必须避开抖动状态处稳定接通稳定断开状态保证识正确误抖问
题通软件延时硬件电路解决
(2)防串键:防串键解决键时者前键没释放新键时产生问题常方法双键锁定N键轮回两种方法双键锁定两两键时释放键作效键产生相应键码N键轮回检测键时根发现序次产生相应键键码
(3)键识:识键接口解决问题般通软硬结合方法完成常方法行扫描法线反转法两种行扫描法基思想程序键盘逐行扫描通检测列输出状态确定闭合键需设置入口输出口该方法微机系统中广泛线反转法基思想通行列颠倒两次扫描识闭合键需提供两编程双输入输出端口
(4)键码产生:键行列坐标编码反映键功键码般存区中建立键盘编码表通查表获键键码
AT89S51行口P1接4×4矩阵键盘P10-P13作输入线P14-P17作输出线数码显示键0-F序号
总体电路具体原理:
3 系统硬件设计
31 系统硬件总体设计
系统键盘矩阵LED显示扬声器部分组成LED显示显示前键扬声器发出应音符硬件总体设计图:
32子系统(模块)
LED显示模块图22示利AT89S51单片机P0端口P00-P07连接七段数码a-h笔段数码公端接电源
矩阵扫描显示前键模块:
33子系统(模块)二
矩阵扫描扬声器发出应音符模块:
4 系统软件设计
41 系统软件总体设计
系统软件流程图:
42 子系统
七段LED显示器部七条形发光二极圆点发光二极组成根极接线形式分成阴极型阳极型 LED数码g~a七发光二极加正电压发亮加零电压发亮亮暗组合形成字形种组合称字形码
系统键显示模块软件流程图:
43子系统二
首音乐许音阶组成音阶应着频率样利频率组合构成想音乐然单片机产生频率非常方便利单片机定时计数器T0产生样方波频率信号首歌曲音阶应频率关系正确
利AT89C51部定时器工作计数器模式(MODE1)改变计数值TH0TL0产生频率方法产生音阶例频率523Hz周期T=1523=1912μs令计数器计时956μs1μs=956计数956次时IO反相中音DO(523Hz)
计数脉值频率关系式(式21示):
N=fi÷2÷fr 21
式中N计数值fi机器频率(晶体振荡器12MHz时频率1MHz)fr想产生频率
计数初值T求法:
T=65536-N=65536-fi÷2÷fr
例:设K=65536fi=1MHz求低音DO(261Hz)中音DO(523Hz)高音DO(1046Hz)计数值
T=65536-N=65536-fi÷2÷fr=65536-1000000÷2÷fr=65536-500000fr
低音DOT=65536-500000262=63627
中音DOT=65536-500000523=64580
高音DOT=65536-5000001046=65059
系统键发出应音符模块软件流程图:
5 系统说明
51 系统安装配置说明
511 系统运行环境
WINDOWS XP PROTEUS 71 SP2 Keil uv3 212
512 系统安装配置
安装Protues keil uVsision3
52 系统操作说明
(1)Keil编译产生目标HEX文件ProteusProgramme Files选择产生HEX文件点击运行开始模拟
(2)开启系统数码显示
(3)意键盘数码显示键盘数扬声器发出相应音符
6 结
通次课程设计学少课没知识锻炼动手力前学零散知识串起长时间设计调试系统基实现键盘矩阵中键会数码显示前键扬声器播放应音符仿真系统原设计音频效果足处:1弹奏音符数较少定范围满足户需通改进键盘识模块发生模块增加复杂度2音量调
综合设计涉硬件软件两方面容通硬件软件开发力获提高首先硬件方面基解电子产品开发流程做工作基掌握Protel99SE原理图方法设计单片机系统通开发板设计硬件搭建程51系单片机接口更深层次理解熟悉单片机常外围电路引脚连接方法LED数码键盘等学会分析问题解决问题力加深学理知识理解运动手力提高创新意识锻炼
参考文献
[1] 彭伟单片机C语言程序设计实训100例电子工业出版社2009年
[2] 吴运昌.模拟电子线路基础.广州:华南理工学出版社2004年
[3] 阎石.数字电子技术基础.北京:高等教育出版社1997年
[4] 张晓丽等.数结构算法.北京:机械工业出版社2002年
[5] 马忠梅等. ARM&Linux嵌入式系统教程.北京:北京航空航天学出版社2004年
[6] 李建忠.单片机原理应.西安:西安电子科技学2002年
[7] 韩志军等单片机应系统设计[M]机械工业出版社2004
[8] 周润景等 ProteusMCS51&ARM7系统中应百例[M]电子工业出版社2006
[9] 马忠梅等单片机C语言应程序设计[M]北京航空航天学出版社2006
[10] 刘树中孙书膺王春单片机液晶显示驱动器串行接口实现[J]微计算机信息2007
附录
系统总体代码:
#include
#define uchar unsigned char
#define uint unsigned int
uchar code DSY_Table[]
{0xc00xf90xa40xb00x990x920x820xf80x80
0x900x880x830xc60xa10x860x8e0xBF}
uint code Tone_Delay_Table[]
{6402164103642606440064524645806468464777
6482064898649686503065058651106515765178}
sbit BEEPP3^0
uchar KeyNo
void DelayMS(uchar x)
{
uchar i
while(x) for(i0i<120i++)
}
void Keys_Scan()
{
uchar Tmpk
P10x0F
DelayMS(2)
TmpP1^0x0F
switch(Tmp)
{
case 1k0break
case 2k1break
case 4k2break
case 8k3break
defaultreturn
}
P10xF0
DelayMS(2)
Tmp(P1>>4)^0x0F
switch(Tmp)
{
case 1k+0break
case 2k+4break
case 4k+8break
case 8k+12break
defaultreturn
}
KeyNok
}
void play_Tone() interrupt 1
{
TH0Tone_Delay_Table[KeyNo]256
TL0Tone_Delay_Table[KeyNo]256
BEEP~BEEP
}
void main()
{
P00xBF
TMOD0x01
IE0x82
while(1)
{
P10xF0
if(P10xF0)
{
Keys_Scan()
P0DSY_Table[KeyNo]
TR01
}
else
{
TR00
}
DelayMS(2)
}
}
目 录
摘 1
1 引言 2
11 目意义 2
12 系统研究容 2
13 芯片简介 3
2 系统分析 3
21 系统组成 3
22 系统工作原理 3
3 系统硬件设计 5
31 系统硬件总体设计 5
32子系统(模块) 6
33子系统(模块)二 6
4 系统软件设计 6
41 系统软件总体设计 6
42 子系统 7
43子系统二 8
5 系统说明 9
51 系统安装配置说明 9
系统运行环境 9
系统安装配置 9
52 系统操作说明 9
6 结 10
参考文献 11
附录 12
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档