单片机课程设计 电子琴

上传人:wm****3 文档编号:42644575 上传时间:2018-06-02 格式:DOC 页数:17 大小:403.93KB
返回 下载 相关 举报
单片机课程设计    电子琴_第1页
第1页 / 共17页
单片机课程设计    电子琴_第2页
第2页 / 共17页
单片机课程设计    电子琴_第3页
第3页 / 共17页
单片机课程设计    电子琴_第4页
第4页 / 共17页
单片机课程设计    电子琴_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《单片机课程设计 电子琴》由会员分享,可在线阅读,更多相关《单片机课程设计 电子琴(17页珍藏版)》请在金锄头文库上搜索。

1、长春工业大学课程设计说明书课程设计说明书课程设计名称 单片机原理课程设计(40346581) 专 业 电气工程及其自动化 班 级 学 生 姓 名 指 导 教 师 2013 年 1 月 7 日课程设计任务书课程设计题目: 电子琴起止日期:2013.1 .7-2013.1.11设计地点:单片机原理实验室设计任务及日程安排:设计任务及日程安排:着重提高学生在单片机应用方面的实践技能,树立严谨的科学作风,培养学生综合运用理论知识解决实际问题的能力。学生通过单片机和硬件和软件设计、安装、调试、整理资料等环节,初步掌握工程设计方法和组织实践的基本技能,逐步熟悉开展科学实践的程序和方法。 设计要求:设计要求

2、:1) 根据应用系统的要求,初步掌握总体结构设计的方法和构思,从中选择一种最佳设计方案;2) 根据应用系统结构规模的要求,掌握单片机外部扩充系统硬件设计的基本过程; 3) 根据任务要求和硬件设计要求,首先画出程序的总体流程图,然后进行各控制模块的程序设计; 4) 掌握如何应用单片机仿真器来开发应用系统及仿真调试的过程。 参考资料:参考资料:1.单片机原理及应用 张毅刚等编,高等教育出版社,2004 年 1 月。2.单片机原理课程设计实验指导书,林志奇,校内印刷,2012 年 12 月。 日程安排:日程安排:201317 上午 动员/布置任务/分组/查资料。201317 下午201319 进行理

3、论设计和形成设计报告。20131102011110 进行实验和完成实验报告。2013111 分组进行考核。 设计报告的总体要求:设计报告的总体要求:每人独立完成设计内容,并提交一份课程设计报告。报告内容包括:设计题目/设计要求/设计方案/硬件电路/软件流程图/程序/工作原理阐述/系统性能分析和心得体会等。考核办法:考核办法:1) 出勤 20%;2) 实验结果 30%;3) 报告 20%;4) 答辩 30%。1 1 设计内容:设计内容:电子琴 2 2 任务及要求:任务及要求:设计一个 51 单片机系统,实现简易电子琴操作的电路。要求:1.设计 51 单片机最小系统;2.设置至少 10 个按键,能

4、发出 do re mi fa sol la si do;能播放示范曲; 3.能够调节低音、高音和中音。 3 3 总体设计方案:总体设计方案:1)定时/计数器的设计和状态字定义:若要产生音频脉冲,只要算出某一音频的周期(1/频率) ,再将此周期除以 2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将P1.0 反相,然后重复计时再反相。就可在 P1.0 引脚上得到此频率的脉冲。利用 AT89C51 的内部定时器使其工作计数器模式(MODE1)下,改变计数值 TH0及 TL0 以产生不同频率的方法产生不同音阶,例如,频率为 523Hz,其周期T1/5231912s,因此只要令计数器计

5、时 956s/1s956,每计数 956 次时将 I/O 反相,就可得到中音 DO(523Hz) 。计数脉冲值与频率的关系式是:Nfi2fr,式中,N 是计数值;fi 是机器频率(晶体振荡器为 12MHz 时,其频率为 1MHz) ;fr 是想要产生的频率。其计数初值 T 的求法如下:T65536N65536fi2fr例如:设 K65536,fi1MHz,求中音 DO(261Hz) 。T65536N65536fi2fr6553610000002fr65536500000/fr,中音 DO 的 T65536500000/52364580。单片机 12MHZ 晶振,中音符与计数 T0 相关的计数值

6、如表所示:音符频率(HZ)简谱码(T 值) 音符频率(HZ)简谱码(T 值)低 1 DO26263628# 4 FA#74064860#1 DO#27763731中 5 SO78464898低 2 RE29463835# 5 SO#83164934#2 RE#31163928中 6 LA88064968低 3 M33064021# 693264994低 4 FA34964103中 7 SI98865030# 4 FA#37064185高 1 DO104665058低 5 SO39264260# 1 DO#110965085# 5 SO#41564331高 2 RE117565110低 6 LA

7、44064400# 2 RE#124565134# 646664463高 3 M131865157低 7 SI49464524高 4 FA139765178中 1 DO52364580# 4 FA#148065198# 1 DO#55464633高 5 SO156865217中 2 RE58764684# 5 SO#166165235# 2 RE#62264732高 6 LA176065252中 3 M65964777# 6186565268中 4 FA69864820高 7 SI196765283采用查表程序进行查表时,可以为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据:

8、低音 019 之间,中音在 2039 之间,高音在4059 之间,用单片机播放音乐,或者弹奏电子琴,实际上是按照特定的频率,输出一连串的方波。为了输出合适的方波,首先应该知道音符与频率的关系。 2)音名 主要分成低音、中音和高音三个区域,每个区域都有 12 个琴键。其中的白键, 简谱音符标为 1、2、3、4、5、6、7,大家一般都读成哆、来、咪、发、嗦、 拉、西。按键1234567音符1234567频率值52466069878488098810483)音调数据表单片机发出不同频率的方波,人听起来,就是不同的音调。 上表中的频率数值,有些过多,去掉不常用的黑键频率,只是把白键对应的数 据存放在单

9、片机中,即可满足绝大部分的应用需求。 定义音调数据表的程序如下:DW 63628,63835,64021,64103,64260,64400,64524 ;64580,低音区:1 2 3 4 5 6 7DW 64580,64671,64777,64820,64898,64968,65030 65058中音区:1 2 3 4 5 6 7DW 65058,65110,65157,65178,65217,65252,65283 65312高音区:1 2 3 4 5 6 7 把这个数据表,放在程序中,需要播音的时候,就从表中取出一个数据送到定 时器,当定时器溢出中断的时候,再对输出引脚取反,那么,在扬

10、声器中,即 可听到上表中频率的声音。 音乐的音拍,一个节拍为单位(C 调)曲调值DELAY 曲调值DELAY调 4/4125ms 调 4/462ms调 3/4187ms 调 3/494ms调 2/4250ms 调 2/4125ms4 4、系统硬件设计:、系统硬件设计: 1)晶振部分 本次采用 12MHZ 晶振,机器周期为 1us,连接两个 30pF 的电容,连接到 的 XATL1, 上面,连接电路图如下:2)音频输出 本次只是简单的使用一个蜂鸣器连接到AT89C51的p1.0口上3)高、中、低及音乐播放键:检测高中低是否按下,来跳转到音阶键上输出不 同频率的音阶音,检测播放是否按下,跳转到示范

11、曲目播放4)AT89C51AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能 CMOS8 位 微处理器,俗称单片机。AT89C2051 是一种带 2K 字节闪烁可编程可擦除只读存 储器的单片机。单片机的可擦除只读存储器可以反复擦除 1000 次。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出 管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微

12、控制器,。AT89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 1主要特性:与 MCS-51 兼容 4K 字节可编程闪烁存储器 寿命:1000 写/擦循环 数据保留时间:10 年 全静态工作:0Hz-24Hz 三级程序存储器锁定 128*8 位内部 RAM 32 可编程 I/O 线 两个 16 位定时器/计数器 5 个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 5)音阶键部分6)设计电路总体图样5 5、 系统软件设计:系统软件设计: 1)音阶键识别开始P1口低4位为0P1口高四位是否为 1?延时 去抖动P1口高四位是否为 1?NYYN设置行扫描初值扫

13、描从P1口输出读P1口高位该行有键按下即P1 口高位是否全为1形成下一按扫描码到最后一行?键码输出YNNY YY YNYNY NYNYN NY返回开始是否有按键按下是 do re mi fa sol la si do?UP DOWN 键按下?检测是 high ave low 键按下示范音按下?Esm=1?Esm 置 1 TR1 置 1Esm 置 0 TR1 置 0相应的数值 n 加减TR0 置 0do re mi fa sol la si TR0 置 1 TR1 置 0 执行 T0 中 断节拍延时将相应的 freq 附值相应的灯亮Esm=1?6、程序清单:程序清单:KEYBUF EQU 30H

14、 STH0 EQU 31H STL0 EQU 32H DELY EQU 33HNUM EQU 34H ORG 0000HAJMP MAIN ;跳转到主函数ORG 000BHLJMP INT_T0 ;音乐输出口ORG 0040HMAIN: MOV TMOD,#01H ;写出计时器控制字,T0 方式计时SETB EA ;开中断总开关SETB ET0 ;允许 T0 中断MOV NUM,#01H;;num 置 1MOV R1,#00HTEST: ;低音检测ANL TH0,#00H ;高位清零ANL TL0,#00H ;低位清零MOV A,P2 ;P2 进入CJNE A,#0FEH,TEST1 ;检测

15、P2.0 口低音键是否按下MOV DPTR,#TABLE1 ;低音键按下,进入低音表地址AJMP WAIT ;跳转到音阶检测TEST1: ;中音检测CJNE A,#0FDH,TEST2 ;检测 P2.0 中音键是否按下MOV DPTR,#TABLE2 ;中音键按下,进入中音表地址AJMP WAIT TEST2: ;高音检测CJNE A,#0FBH,TEST3 ;检测 P2.0 口高音键是否按下MOV DPTR,#TABLE3 ;高音键按下,进入高音表地址AJMP WAIT TEST3: ;音乐播放检测CJNE A,#0F7H,TEST4 ;检测音乐播放键是否按下 若有按下则转至 EXITLCALL DELAY10MS ;软件延时消抖MOV A,P2CJNE A,#0F7H,TEST4 ;检测播放键是否再次按下MOV A,NUMCJNE A,#01H,EXIT ;检测高低中是否再次按下MOV NUM,#00HMOV DPTR,#TABLE4 ;进入音乐播放表AJMP WA

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号