课设报告1简易电子琴.doc

课设报告1简易电子琴.doc

ID:56264329

大小:106.00 KB

页数:15页

时间:2020-06-04

课设报告1简易电子琴.doc_第1页
课设报告1简易电子琴.doc_第2页
课设报告1简易电子琴.doc_第3页
课设报告1简易电子琴.doc_第4页
课设报告1简易电子琴.doc_第5页
资源描述:

《课设报告1简易电子琴.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、课程设计报告课程设计名称:单片机课程设计课程设计题目:单片机简易电子琴设计专业班级:测控技术与仪器1101班姓名:管文龙学号:110401119实验室号:信息楼220实验组号:20实验时间:2013.12.30-2014.1.10批阅时间:指导教师:许会成绩:1.题目名称单片机简易电子琴设计2.课设目的①掌握KEILuv下汇编语言的调试方法②了解单片机简单应用系统的研发及调试过程③掌握定时器的功能并能使用定时器产生音频从而使单片机板实现电子琴功能3.课设内容①、在口线P1.7,通过20uf电解连接0.25W扬声器再接VCC②、编

2、写软件由键盘控制单片机定时器的溢出频率符合下表,由口线P1.7输出C调音符561234567Hz392440494524660698784880988③、选择演奏两支简单乐曲④掌握串口调试助手的使用,在m2t2上实现单片机串口通信注释:外接扬声器声音很小,需要外接功率放大电路,而单片机带有一蜂鸣器,可以用单片机上的蜂鸣器代替扬声器,因此定时器的脉冲输出端口为P2.6;在按键时,蜂鸣器响应相应的音符,数码管显示相应的数字。4.课设方案(1)定时器控制音符频率原理乐音实际上是有固定周期的信号,用单片机的一个定时器(如T0)控制,在P

3、2.6输出方波周期信号,产生乐音。根据不同的按键,调节T0的溢出时间,可输出不同频率的乐音。如果要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将P2.6反相,然后在定时器中重新装入初值,重复计时再反相。就可在P2.6引脚上得到此频率的脉冲。用定时器T0实现定时,并使其工作在计数模式1下,改变TH0、TL0的初值以产生不同频率从而产生不同音阶。例如,SO的频率是784HZ,单片机机器周期为MC=12/22.1184MHZ=0.542us,所以定时器

4、应计的数为:SO音符周期=1/784=1275us因此可得定时器初值为:65536-1275/2/0.542=FB68H故可得音符与计数初值对应表,如下:表1C调音符561234567初值0F6D1H0FBD1H0F7B6H0F921H0FA8CH0FAD8H0FB68H0FBE9H0FC5BH(2)课设思路单片机有8个按键,根据表1,分别控制K1—K7发出中音DO~SI,这样便可手动演奏简单乐曲,控制K8自动播放简单乐曲——祝你生日快乐。另外,接通电源,当手动按键演奏时,对应数码管显示相应数字。(3)实现功能①、手动演奏简单乐

5、曲②、自动播放简易乐曲③、数码管显示5.课设总结⑴程序清单及注释DCLKBITP3.4;串行数据时钟,上升沿有效DINBITP3.3;串行数据输入LOADBITP2.3;串行命令加载,上升沿有效DOUTBITP2.2;键盘中断和键值数据输出SPEAKERBITP2.6ORG0000HLJMPMAINORG0030HMAIN:ACALLCH451_INT1;调用CH451_INT1ACALLDSP;调用DSPMOVSP,#60H;设置堆栈指针MOV30H,#00H;定时器初值清零MOV31H,#00HMOVTMOD,#01H;定时

6、器T0工作在工作模式1下SETBEASETBET0CLRTR0PLEASE:ACALLSCAN;调用键盘扫描子程序SJMPPLEASESJMP$CH451_INT1:CLRDIN;置低电平,通知ch451使能4线串行接口SETBDCLK;设置默认高电平SETBDIN;设置默认高电平SETBLOAD;设置默认高电平SETBDOUT;设置默认高电平CLRIT0SETBPX0SETBEX0MOVB,#04;H设定系统参数,启动键盘和显示MOVA,#03HACALLWRITERETWRITE:CLRLOAD;操作命令开始MOVR3,#0

7、8HWRITE1:CLRDCLKRRCA;进位循环右移,将ACC中8位送出MOVDIN,CSETBDCLK;DCLK上升沿时CH451从DIN输入数据DJNZR3,WRITE1;将A中放入的8位送出,低位在前高位在后MOVA,BMOVR3,#04HWRITE2:CLRDCLKRRCAMOVDIN,CSETBDCLKDJNZR3,WRITE2;将B中放入的4位送出,低位在前,高位在后SETBLOAD;包括一个上升沿的低脉冲,加载12位寄存器中的数据RETDSP:MOVB,#0FH;加载字数据7MOVA,#0BEH;数字0的字形码传

8、送给AACALLWRITE;调用WRITE函数MOVB,#0EHMOVA,#0BEHACALLWRITEMOVB,#0DHMOVA,#0BEHACALLWRITEMOVB,#0CHMOVA,#0BEHACALLWRITEMOVB,#08HMOVA,#0BEHAC

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。