单片机课程设计.docx

上传人:b****5 文档编号:8485506 上传时间:2023-01-31 格式:DOCX 页数:14 大小:104.25KB
下载 相关 举报
单片机课程设计.docx_第1页
第1页 / 共14页
单片机课程设计.docx_第2页
第2页 / 共14页
单片机课程设计.docx_第3页
第3页 / 共14页
单片机课程设计.docx_第4页
第4页 / 共14页
单片机课程设计.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

单片机课程设计.docx

《单片机课程设计.docx》由会员分享,可在线阅读,更多相关《单片机课程设计.docx(14页珍藏版)》请在冰豆网上搜索。

单片机课程设计.docx

单片机课程设计

用MCS--51单片机构成的电子琴

摘要:

通过键盘输入不同数字,对单片机定时器的定时时间进行控制来产生不同频率的方波,驱动蜂鸣器发出不同音阶的声音;并且利用琴键控制定时器的开中断和闭中断,即实现发音和闭音。

关键词:

8051单片机;键盘;放大电路;时钟电路

引言:

电子琴现代与音乐结合的产物,是一种新型的键盘乐器。

它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。

本文的主要内容是用AT89S51单片机为核心控制元件,设计一个电子琴。

以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有8个按键和扬声器。

本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。

1设计说明

利用单片机的I/O接口设计4×4键盘,8个键依次对应0~7。

通过检测不同数字键的按下,8051单片机根据不同的琴键产生不同的乐曲音符,并经过信号放大,由喇叭放出,并且利用琴键控制定时器的开中断和闭中断,实现发音和闭音。

以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有8个按键和扬声器。

本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠。

2系统硬件设计

2.1键盘输入系统

此系统琴键输入是通过独立式键盘来完成的。

由于8051单片机的八位I/O口足以能实现控制C调各音阶的输出,并且独立式键盘的编程容易易懂,结构简单,实现起来方便,而且每个按键单独占有一根I/O接口线,每个I/O口的工作状态互不影响,所以采用独立式键盘。

P0.0~P0.7口分别对应琴键1~7输入,原理电路如图1。

单片机的频率和声音输出的原理是,利用琴键控制定时器的开中断和闭中断,即实现发音和闭音。

在此期间再通过对定时器的定时时间进行控制来产生不同频率的方波,驱动蜂鸣器发出不同音阶的声音。

把C调中相应琴键对应的音符变换为定常数,作为数据表格存放在存储器中。

由程序查表得到定时常数,用以控制定时器产生方波的频率。

当下一个琴键按下时,再查下此琴键所对应音符的定时常数。

依次进行下去,就可以演奏出自己所要的歌曲。

用定时器T0方式0来产生琴键对应音符的频率的方波,由P1.0输出驱动蜂鸣器。

单片机所用的晶振的频率为6MHz,琴键所对应音符、频率及定时常数三者之间的对应关系如下所示。

C调音符

7

1

2

3

4

5

6

7

频率(Hz)

494

524

588

660

698

784

880

988

半周期(ms)

1.01

0.95

0.85

0.76

0.72

0.64

0.57

0.51

定时值

FE07

FE25

FE57

FE84

FE98

FEC0

FEE3

FF01

 

 

2.2放大电路图1输入键盘连接电路图

此部分的放大电路简单容易实现。

可以采用一个小功率PNP型硅管9012,

利用“分压偏置式工作点稳定直流通路”,达到了对静态工作点的稳定。

分压电阻分别选择1K和5.5K。

蜂鸣器一端接+5V电压,一端接晶体管的发射极。

由P1.0输出预定的方波,加到晶体管进行放大,再输出到蜂鸣器,很好的实现了频率、声音的转换。

 

图2输出放大电路图

2.3时钟电路

此系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。

MCS-51内部有一个用于构成振荡器的高增益反相放大器。

引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。

这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。

外接晶体谐振器以及电容CX1和CX2构成并联谐振电路,接在放大器的反馈回路中。

对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。

因此,此系统电路的晶体振荡器的值为6MHz,电容应尽可能的选择陶瓷电容,电容值约为22μF。

在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。

2.4复位电路

MS-51的复位是由外部的复位电路来实现的。

片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。

复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路,如图4所示。

当时钟频率选用6MHz时,C取22μF,Rs约为200Ω,Rk约为1KΩ。

 

图3时钟电路图图4复位电路图

2.5硬件连接电路

图5电子琴硬件连接电路图

3系统软件设计

系统软件包括系统的初始化、数据采集、键盘扫描、定时器设置、。

3.1主程序框图

程序开始

 

读P0口的状态

延迟10ms

再读P0口的状态

判断是否是抖动

Y

N

判断是几号琴键,

并跳转到相应的程序

中断程序流图

查表得相应琴键的定时初值

 

启动定时器T0

等待中断,并判断此次琴键是否被释放

Y

主程序流图

4结束语

本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。

5程序清单

ORG0000H

LJMPMAI

ORG000BH

LJMPTIM

MAI:

CLRTR0;停止T0工作

MOVTMOD,#01H;设置T0工作方式

MOVIE,#82H;开T0中断

MOVA,P1;读取P0口的状态

MOV30H,A

LCALLD10MS;10ms等待中断

MOVA,P1

CJNEA,30H,MAI;判断抖动

JNBP0.0,N1;1键输入处理

JNBP0.1,N2;2键输入处理

JNBP0.2,N3;3键输入处理

JNBP0.3,N4;4键输入处理

JNBP0.4,N5;5键输入处理

JNBP0.5,N6;6键输入处理

N6:

LJMPLA;7键输入处理

JNBP0.6,N7

N7:

LJMPXI;7键输入处理

JNBP0.7,N8

N8:

LJMPDO

N1:

MOVDPTR,#TAB

MOVA,#00H

MOVCA,@A+DPTR;查询1键在TAB中的值

MOVR1,A

MOVA,#01H

MOVCA,@A+DPTR

MOVR0,A

MOVTH0,R1

MOVTL0,R0;通过TAB中的查询值设置T0初值

SETBTR0;启动T0

RE1:

JBP0.0,MAI;中断子程序

AJMPRE1

N2:

MOVDPTR,#TAB

MOVA,#02H

MOVCA,@A+DPTR

MOVR1,A

MOVA,#03H

MOVCA,@A+DPTR;查询2键在TAB中的值

MOVR0,A

MOVTH0,R1

MOVTL0,R0;通过TAB中的查询值设置T0初值

SETBTR0;启动T0

RE2:

JBP0.1,MAI;中断子程序

AJMPRE2

N3:

MOVDPTR,#TAB

MOVA,#04H

MOVCA,@A+DPTR

MOVR1,A

MOVA,#05H

MOVCA,@A+DPTR;查询3键在TAB中的值

MOVR0,A

MOVTH0,R1

MOVTL0,R0;通过TAB中的查询值设置T0初值

SETBTR0;启动T0

RE3:

JBP0.2,MAI;中断子程序

AJMPRE3

N4:

MOVDPTR,#TAB

MOVA,#06H

MOVCA,@A+DPTR

MOVR1,A

MOVA,#07H

MOVCA,@A+DPTR;查询4键在TAB中的值

MOVR0,A

MOVTH0,R1

MOVTL0,R0;通过TAB中的查询值设置T0初值

SETBTR0;启动T0

RE4:

JBP0.3,A1;中断子程序

AJMPRE4

A1:

LJMPMAI

N5:

MOVDPTR,#TAB

MOVA,#08H

MOVCA,@A+DPTR

MOVR1,A

MOVA,#09H

MOVCA,@A+DPTR;查询5键在TAB中的值

MOVR0,A

MOVTH0,R1

MOVTL0,R0;通过TAB中的查询值设置T0初值

SETBTR0

RE5:

JBP0.4,A2;中断子程序

AJMPRE5

A2:

LJMPMAI;返回主程序继续查询P0口

LA:

MOVDPTR,#TAB

MOVA,#0AH

MOVCA,@A+DPTR

MOVR1,A

MOVA,#0BH

MOVCA,@A+DPTR;查询6键在TAB中的值

MOVR0,A

MOVTH0,R1

MOVTL0,R0;通过TAB中的查询值设置T0初值

SETBTR0;启动T0

RE6:

JBP0.5,A3;中断子程序

AJMPRE6

A3:

LJMPMAI;返回主程序继续查询P0口

XI:

MOVDPTR,#TAB

MOVA,#0CH

MOVCA,@A+DPTR

MOVR1,A

MOVA,#0DH

MOVCA,@A+DPTR;查询7键在TAB中的值

MOVR0,A

MOVTH0,R1

MOVTL0,R0;通过TAB中的查询值设置T0初值

SETBTR0;启动T0

RE7:

JBP0.6,A4;中断子程序

AJMPRE7

A4:

LJMPMAI;返回主程序继续查询P0口

DO:

MOVDPTR,#TAB

MOVA,#0EH

MOVCA,@A+DPTR

MOVR1,A

MOVA,#0FH

MOVCA,@A+DPTR;查询7键在TAB中的值

MOVTH0,R1

MOVTL0,R0

SETBTR0

RE8:

JBP0.7,A5;中断子程序

A5:

LJMPMAI

TIM:

MOVTH0,R1

MOVTL0,R0

CPLP1.0;通过计时值输出矩形波

RETI

D10MS:

MOVR1,#100;10ms抖动延时子程序

D1:

MOVR2,#98

NOP

D2:

DJNZR2,D2

DJNZR1,D1

RET

TAB:

DB0FEH,25H;输入键值查询表

DB0FEH,57H

DB0FEH,84H

DB0FEH,98H

DB0FEH,0C0H

DB0FEH,0E3H

DB0FFH,01H

DB0EFH,07H

END

4总结体会

课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。

随着科学技术发展的日新月异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。

因此作为电气工程专业的学生来说掌握单片机的开发技术是十分重要的。

这次单片机课程设计我们历时一个星期,在我们班里算是倒数几组完成的吧,但经过这两个星期的实践和体验下来,我们又怎么会去在乎那个先后问题呢,因为对我来说学到的不仅是那些知识,更多的是团队和合作。

现在想来,也许学校安排的课程设计有着它更深层的意义吧,它不仅仅让我们综合那些理论知识来运用到设计和创新,还让我们知道了一个团队凝聚在一起时所能发挥出的巨大潜能!

两个星期前我们五个人还在为到底选那个课题而发生分歧,最后还是在龚老师的耐心分析和指导下完成了课题的选定,但是随之而来的问题却远比我们想想的要困难的多。

作为一个团队,分工就显得尤为重要,在我们的讨论下我得到了连接硬件电路的任务,不过没想到这项看起来不需要多少技术的工作却是非常需要耐心和精力,最后在我们组员的帮助下也算是很好的完成了这项任务,在其他组员纷纷完成了初步的工作后,我们自信满满的来到了实验室准备调试,但第一次就给了我们致命的打击,设计的功能不能全部实现出来,只有彩灯变化正常,电机却不会转动,于是我们就拿着程序反复分析和修改,还对部分芯片进行了更换,经过一次次的尝试之后我们把问题锁定在了驱动程序那部分,然后我们就针对这部分程序进行了深入思索,并在龚老师和其他同学的帮助下完成了程序的修改...此时我忽然发现我们几个在开始时的分歧已全然化解,留给我们的是互相信任和帮助!

当然在这我们也要谢谢帮助过我们的人,其中要感谢龚老师的鼓励和耐心的指导,这给了我们很大的动力,最后我还要谢的就是一直在我身边的四个组员,只有大家的共同努力和互相信任我们才能完成这次的课程设计!

在两个星期后的今天我已明白课程设计对我来说的意义,它不仅仅是让我们把所学的理论知识与实践相结合起来,提高自己的实际动手能力和独立思考的能力,更重要的是同学间的团结,虽然我们这次花去的时间比别人多,但我相信我们得到的也会更多!

设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。

在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

我们通过查阅大量有关资料,并在小组中互相讨论,交流经验和自学,若遇到实在搞不明白的问题就会及时请教老师,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。

在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。

而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。

虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富。

单片机课程设计虽然结束了,但通过设计所学到的东西将长久存在。

相信这次设计带给我们的严谨的学习态度和一丝不苟的科学作风将会给我们未来的工作和学习打下一个更坚实的基础。

 

5参考文献

[1]冯育长主编.单片机系统设计与实例分析.西安:

西安电子科技大学出版社,2007

[2]谢维成,杨加国主编.单片机原理与应用及C51程序设计.北京:

清华大学出版社,2006.

[3]王思明,张金敏主编.单片机原理及应用.兰州大学出版社,2001年

 

单片机课程设计报告

题目:

电子琴模拟实验

班级电气072

姓名何晨龙

学号200708820

指导教师徐金阳

设计时间2010年01月01日

评语:

 

成绩

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1