电子琴课程设计 1

四川师范大学成都学院电子工程学院

电子技术课程设计

电子琴

学生姓名 学 号 所在学院 专业名称 班 级 指导教师 成 绩

刘子仪 2013137052 电子工程学院 汽车服务工程 2013级

苏 清 茂

四川师范大学成都学院 二○一五年十二月

四川师范大学成都学院

电 子 工 程 学 院 课程设计任务书

摘要:随着社会的发展进步,音乐是人们生活中不可缺少的元素,音乐可以使人放松

心情,陶冶情操。要想弹奏出好的乐器。本文设计一个基于AT89c51的简易电子琴。我对电子琴如何实现其功能,如音阶选择,声音强弱控制,自动放音功能也很好奇。电子琴是现代科技与音乐结合的产物,是一种新型的键盘乐器,它在现代音乐扮演者重要的角色。单片机虽然只是一个芯片,单从组成和功能上看,它已经有了微机系统的含义。单片机有着强大的控制功能和灵活的编程的系统,它已经落入人们的生活中,成为不可替代的一部分,目前许多电子琴都用了单片机来实现,利用单片机的不同频率来获得我们的音阶,最终弹奏出我们想要的音乐。

关键字:AT89C51,矩阵键盘,LED显示管,扬声器。

Abstract:

With the development and progress of the society, music is an

indispensable element in people's life, music can make people relax and cultivate their sentiment. To play a good instrument. This paper designs a simple electronic piano based on AT89c51. How do I realize the function of electronic organ, such as the scale selection, sound intensity control, automatic playback function is also very curious. Electronic piano is a product of the combination of modern science and technology, and it is a new type of keyboard instrument, which plays an important role in modern music. SCM is just a chip, a single from the composition and function, it has fallen into people's lives, become an irreplaceable part of the current many electronic piano are used to achieve, the use of different frequency to achieve our scale, and ultimately play the music we want.

Key words: AT89C51, matrix keyboard, LED display tube, the speaker.

前言 ......................................................................................................................................................................... 1 1.总体设计方案 ................................................................................................................................................. 2

1.1主要芯片简介 .......................................................................................................................................... 2 1.2 系统分析 .................................................................................................................................................... 2 1.2.1 系统组成 ............................................................................................................................................. 2 1.2.2系统工作原理 ...................................................................................................................................... 2

2.单元模块设计 ..................................................................................................................................................... 4 2.1系统硬件设计 .............................................................................................................................................. 4

2.1.1 系统硬件总体设计 ............................................................................................................................. 4 2.1.2子系统(模块)一 .............................................................................................................................. 4 2.1.3 子系统(模块)二 ............................................................................................................................. 4 2.1.4 子系统(模块)三 ............................................................................................................................. 5 2.2 系统软件设计 ............................................................................................................................................. 5 2.2.1 子系统一 ............................................................................................................................................. 5 2.2.2 子系统二 ............................................................................................................................................. 6

3.系统功能 ............................................................................................................................................................. 7 4.设计总结 ............................................................................................................................................................. 7 5.参考文献 ............................................................................................................................................................. 8 6.附 录 ................................................................................................................................................................. 9

单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89S51单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。 本文主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。本系统是简易电子琴的设计,按下键盘矩阵中的按键会使数码管显示当前按键,扬声器播放器对应的音符。通过设计本系统可了解单片机的基本功能。对单片机的了解有一个小的飞跃。

1.总体设计方案

1.1主要芯片简介

AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。 AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。

此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。

1.2 系统分析

1.2.1 系统组成

本系统只要以51单片机为主控核心,与矩阵键盘、扬声器、LED显示管模块一起组合而成。具体如下:

1.2.2系统工作原理

本系统扫描键盘矩阵、显示按键、扬声器发出对应音符。 4X4行列式键盘识别及显示原理如下:

组成键盘的按键有机械式、电容式、导电橡胶式、薄膜式多种,但不管什么形式,其作用都是一个使电路接通与断开的开关。目前微机系统中使用的键盘按其功能不同,

通常可分为编码键盘和非编码键盘两种基本类型。 编码键盘:键盘本身带有实现接口主要功能所需的硬件电路。不仅能自动检测被按下的键,并完成去抖动、防串键等功能,而且能提供与被按键功能对应的键码(如ASCII码)送往CPU。所以,编码键盘接口简单、使用方便。但由于硬件电路较复杂,因而价格较贵。 非编码键盘:键盘只简单地提供按键开关的行列矩阵。有关按键的识别、键码的确定与输入、去抖动等功能均由软件完成。目前微机系统中,一般为了降低成本大多数采用非编码键盘。

总体电路具体原理图如下:

键盘接口必须具有去抖动、防串键、按键识别和键码产生4个基本功能。

(1)去抖动:每个按键在按下或松开时,都会产生短时间的抖动。抖动的持续时间与键的质量相关,一般为5—20mm。所谓抖动是指在识别被按键是必须避开抖动状态,只有处在稳定接通或稳定断开状态才能保证识别正确无误。去抖问题可通过软件延时或硬件电路解决。 (2)防串键:防串键是为了解决多个键同时按下或者前一按键没有释放又有新的按键按下时产生的问题。常用的方法有双键锁定和N键轮回两种方法。双键锁定,是当有两个或两个以上的按键按下时,只把最后释放的键当作有效键并产生相应的键码。N键轮回,是当检测到有多个键被按下时,能根据发现它们的顺序依次产生相应键的键码。 (3)被按键识别:如何识别被按键是接口解决的主要问题,一般可通过软硬结合的方法完成。常用的方法有行扫描法和线反转法两种。行扫描法的基本思想是,由程序对键盘逐行扫描,通过检测到的列输出状态来确定闭合键,为此,需要设置入口、输出口一个,该方法在微机系统中被广泛使用。线反转法的基本思想是通过行列颠倒两次扫描来识别闭合键,为此需要提供两个可编程的双向输入/输出端口。

(4)键码产生:为了从键的行列坐标编码得到反映键功能的键码,一般在内存区中建立一个键盘编码表,通过查表获得被按键的键码。

用AT89S51的并行口P1接4×4矩阵键盘,以P1.0-P1.3作输入线,以P1.4-P1.7作输出线;在数码管上显示每个按键的“0-F”序号。

2.单元模块设计

2.1系统硬件设计

2.1.1 系统硬件总体设计

本系统由键盘矩阵、LED显示管、扬声器这几个部分组成,LED显示管显示当前按键,扬声器发出对应音符。硬件总体设计图如下:

2.1.2子系统(模块)一

LED显示模块如图2-2所示,利用AT89S51单片机的P0端口的P0.0-P0.7连接到一个七段数码管的a-h的笔段上,数码管的公共端接电源。

矩阵扫描显示当前按键模块如下:

2.1.3 子系统(模块)二

矩阵扫描扬声器发出对应音符模块如下:

2.1.4 子系统(模块)三

矩阵键盘模块图如下:

2.2 系统软件设计

2.2.1 子系统一

七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的极管的接线形式,可分成共阴极型和共阳极型。 LED数码管的g到a七个发光二极管因加正电压而发亮,因加零电压而不以发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码。

本系统按键显示模块软件流程图如下:

2.2.2 子系统二

一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可。

利用AT89C51的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T=1/523=1912μs,因此只要令计数器计时956μs/1μs=956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。

计数脉冲值与频率的关系式(如式2-1所示)是: N=fi÷2÷fr 2-1

式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。

其计数初值T的求法如下:

T=65536-N=65536-fi÷2÷fr

例如:设K=65536,fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。

T=65536-N=65536-fi÷2÷fr=65536-1000000÷2÷fr=65536-500000/fr

低音DO的T=65536-500000/262=63627 中音DO的T=65536-500000/523=64580 高音DO的T=65536-500000/1046=65059

本系统按键发出对应音符模块软件流程图如下:

3.系统功能

(1)键盘矩阵识别。即矩阵扫描,显示当前按键。 (2)不同频率音符播放。可以通过按键控制16种发音。

4.设计总结

通过这次课程设计,我学到了不少课本上没有的知识,也锻炼了自己的动手能力,将以前学过的零散的知识串到一起。经过我长时间的设计及调试,本系统基本能实现按下键盘矩阵中的按键会使数码管显示当前按键,扬声器播放对应的音符。但由于仿真系统原因,本设计音频效果不是很好。不足之处有:1.可弹奏的音符数较少,只能在一定范围内满足用户需要。可通过改进键盘识别模块和发生模块来增加其复杂度2.音量不可调。

我的综合设计主要涉及硬件和软件两方面的内容,通过这些我的硬件和软件开发能力都获得了提高。首先硬件方面,基本了解了电子产品的开发流程和所要做的工作。基本掌握了Protel99SE原理图的方法,并设计了一个单片机最小系统。通过开发板的设计和硬件搭建的过程,使我对51系单片机的接口有了更深层次的理解,熟悉了一些单片机常用的外围电路引脚和连接方法,如LED数码管,键盘等。并且我学会了分析问题解决问题的能力,加深了对所学理论知识的理解和运用。我的动手能力得到了很大的提高,创新意识得到了锻炼。

5.参考文献

[1] 彭伟.单片机C语言程序设计实训100例.电子工业出版社.2009年 [2] 吴运昌.模拟电子线路基础.广州:华南理工大学出版社,2004年 [3] 阎石.数字电子技术基础.北京:高等教育出版社,1997年 [4] 张晓丽等.数据结构与算法.北京:机械工业出版社,2002年

[5] 马忠梅等. ARM&Linux嵌入式系统教程.北京:北京航空航天大学出版社,2004年 [6] 李建忠.单片机原理及应用.西安:西安电子科技大学,2002年 [7] 韩志军等.单片机应用系统设计[M].机械工业出版社,2004

[8] 周润景等. Proteus在MCS-51&ARM7系统中的应用百例[M].电子工业出版社,2006 [9] 马忠梅等.单片机的C语言应用程序设计[M].北京航空航天大学出版社,2006

[10] 刘树中,孙书膺,王春平.单片机和液晶显示驱动器串行接口的实现[J].微计算机信息,2007

6.附 录

本系统总体代码如下: #include

#define uchar unsigned char #define uint unsigned int uchar code DSY_Table[]=

{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80, 0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xBF}; uint code Tone_Delay_Table[]=

{64021,64103,64260,64400,64524,64580,64684,64777, 64820,64898,64968,65030,65058,65110,65157,65178}; sbit BEEP=P3^0;

uchar KeyNo;

void DelayMS(uchar x) {

uchar i;

while(x--) for(i=0;i

void Keys_Scan() {

uchar Tmp,k; P1=0x0F; DelayMS(2); Tmp=P1^0x0F; switch(Tmp) { case 1:k=0;break; case 2:k=1;break; case 4:k=2;break; case 8:k=3;break; default:return; }

P1=0xF0; DelayMS(2);

Tmp=(P1>>4)^0x0F; switch(Tmp) { case 1:k+=0;break; case 2:k+=4;break; case 4:k+=8;break; case 8:k+=12;break; default:return; }

KeyNo=k; }

void play_Tone() interrupt 1 {

TH0=Tone_Delay_Table[KeyNo]/256; TL0=Tone_Delay_Table[KeyNo]%256; BEEP=~BEEP; }

void main() {

P0=0xBF; TMOD=0x01; IE=0x82; while(1) { P1=0xF0; if(P1!=0xF0) { Keys_Scan(); P0=DSY_Table[KeyNo]; TR0=1; } else { TR0=0; } DelayMS(2); } }

四川师范大学成都学院电子工程学院

电子技术课程设计

电子琴

学生姓名 学 号 所在学院 专业名称 班 级 指导教师 成 绩

刘子仪 2013137052 电子工程学院 汽车服务工程 2013级

苏 清 茂

四川师范大学成都学院 二○一五年十二月

四川师范大学成都学院

电 子 工 程 学 院 课程设计任务书

摘要:随着社会的发展进步,音乐是人们生活中不可缺少的元素,音乐可以使人放松

心情,陶冶情操。要想弹奏出好的乐器。本文设计一个基于AT89c51的简易电子琴。我对电子琴如何实现其功能,如音阶选择,声音强弱控制,自动放音功能也很好奇。电子琴是现代科技与音乐结合的产物,是一种新型的键盘乐器,它在现代音乐扮演者重要的角色。单片机虽然只是一个芯片,单从组成和功能上看,它已经有了微机系统的含义。单片机有着强大的控制功能和灵活的编程的系统,它已经落入人们的生活中,成为不可替代的一部分,目前许多电子琴都用了单片机来实现,利用单片机的不同频率来获得我们的音阶,最终弹奏出我们想要的音乐。

关键字:AT89C51,矩阵键盘,LED显示管,扬声器。

Abstract:

With the development and progress of the society, music is an

indispensable element in people's life, music can make people relax and cultivate their sentiment. To play a good instrument. This paper designs a simple electronic piano based on AT89c51. How do I realize the function of electronic organ, such as the scale selection, sound intensity control, automatic playback function is also very curious. Electronic piano is a product of the combination of modern science and technology, and it is a new type of keyboard instrument, which plays an important role in modern music. SCM is just a chip, a single from the composition and function, it has fallen into people's lives, become an irreplaceable part of the current many electronic piano are used to achieve, the use of different frequency to achieve our scale, and ultimately play the music we want.

Key words: AT89C51, matrix keyboard, LED display tube, the speaker.

前言 ......................................................................................................................................................................... 1 1.总体设计方案 ................................................................................................................................................. 2

1.1主要芯片简介 .......................................................................................................................................... 2 1.2 系统分析 .................................................................................................................................................... 2 1.2.1 系统组成 ............................................................................................................................................. 2 1.2.2系统工作原理 ...................................................................................................................................... 2

2.单元模块设计 ..................................................................................................................................................... 4 2.1系统硬件设计 .............................................................................................................................................. 4

2.1.1 系统硬件总体设计 ............................................................................................................................. 4 2.1.2子系统(模块)一 .............................................................................................................................. 4 2.1.3 子系统(模块)二 ............................................................................................................................. 4 2.1.4 子系统(模块)三 ............................................................................................................................. 5 2.2 系统软件设计 ............................................................................................................................................. 5 2.2.1 子系统一 ............................................................................................................................................. 5 2.2.2 子系统二 ............................................................................................................................................. 6

3.系统功能 ............................................................................................................................................................. 7 4.设计总结 ............................................................................................................................................................. 7 5.参考文献 ............................................................................................................................................................. 8 6.附 录 ................................................................................................................................................................. 9

单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89S51单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。 本文主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。本系统是简易电子琴的设计,按下键盘矩阵中的按键会使数码管显示当前按键,扬声器播放器对应的音符。通过设计本系统可了解单片机的基本功能。对单片机的了解有一个小的飞跃。

1.总体设计方案

1.1主要芯片简介

AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。 AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。

此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。

1.2 系统分析

1.2.1 系统组成

本系统只要以51单片机为主控核心,与矩阵键盘、扬声器、LED显示管模块一起组合而成。具体如下:

1.2.2系统工作原理

本系统扫描键盘矩阵、显示按键、扬声器发出对应音符。 4X4行列式键盘识别及显示原理如下:

组成键盘的按键有机械式、电容式、导电橡胶式、薄膜式多种,但不管什么形式,其作用都是一个使电路接通与断开的开关。目前微机系统中使用的键盘按其功能不同,

通常可分为编码键盘和非编码键盘两种基本类型。 编码键盘:键盘本身带有实现接口主要功能所需的硬件电路。不仅能自动检测被按下的键,并完成去抖动、防串键等功能,而且能提供与被按键功能对应的键码(如ASCII码)送往CPU。所以,编码键盘接口简单、使用方便。但由于硬件电路较复杂,因而价格较贵。 非编码键盘:键盘只简单地提供按键开关的行列矩阵。有关按键的识别、键码的确定与输入、去抖动等功能均由软件完成。目前微机系统中,一般为了降低成本大多数采用非编码键盘。

总体电路具体原理图如下:

键盘接口必须具有去抖动、防串键、按键识别和键码产生4个基本功能。

(1)去抖动:每个按键在按下或松开时,都会产生短时间的抖动。抖动的持续时间与键的质量相关,一般为5—20mm。所谓抖动是指在识别被按键是必须避开抖动状态,只有处在稳定接通或稳定断开状态才能保证识别正确无误。去抖问题可通过软件延时或硬件电路解决。 (2)防串键:防串键是为了解决多个键同时按下或者前一按键没有释放又有新的按键按下时产生的问题。常用的方法有双键锁定和N键轮回两种方法。双键锁定,是当有两个或两个以上的按键按下时,只把最后释放的键当作有效键并产生相应的键码。N键轮回,是当检测到有多个键被按下时,能根据发现它们的顺序依次产生相应键的键码。 (3)被按键识别:如何识别被按键是接口解决的主要问题,一般可通过软硬结合的方法完成。常用的方法有行扫描法和线反转法两种。行扫描法的基本思想是,由程序对键盘逐行扫描,通过检测到的列输出状态来确定闭合键,为此,需要设置入口、输出口一个,该方法在微机系统中被广泛使用。线反转法的基本思想是通过行列颠倒两次扫描来识别闭合键,为此需要提供两个可编程的双向输入/输出端口。

(4)键码产生:为了从键的行列坐标编码得到反映键功能的键码,一般在内存区中建立一个键盘编码表,通过查表获得被按键的键码。

用AT89S51的并行口P1接4×4矩阵键盘,以P1.0-P1.3作输入线,以P1.4-P1.7作输出线;在数码管上显示每个按键的“0-F”序号。

2.单元模块设计

2.1系统硬件设计

2.1.1 系统硬件总体设计

本系统由键盘矩阵、LED显示管、扬声器这几个部分组成,LED显示管显示当前按键,扬声器发出对应音符。硬件总体设计图如下:

2.1.2子系统(模块)一

LED显示模块如图2-2所示,利用AT89S51单片机的P0端口的P0.0-P0.7连接到一个七段数码管的a-h的笔段上,数码管的公共端接电源。

矩阵扫描显示当前按键模块如下:

2.1.3 子系统(模块)二

矩阵扫描扬声器发出对应音符模块如下:

2.1.4 子系统(模块)三

矩阵键盘模块图如下:

2.2 系统软件设计

2.2.1 子系统一

七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的极管的接线形式,可分成共阴极型和共阳极型。 LED数码管的g到a七个发光二极管因加正电压而发亮,因加零电压而不以发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码。

本系统按键显示模块软件流程图如下:

2.2.2 子系统二

一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可。

利用AT89C51的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T=1/523=1912μs,因此只要令计数器计时956μs/1μs=956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。

计数脉冲值与频率的关系式(如式2-1所示)是: N=fi÷2÷fr 2-1

式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。

其计数初值T的求法如下:

T=65536-N=65536-fi÷2÷fr

例如:设K=65536,fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。

T=65536-N=65536-fi÷2÷fr=65536-1000000÷2÷fr=65536-500000/fr

低音DO的T=65536-500000/262=63627 中音DO的T=65536-500000/523=64580 高音DO的T=65536-500000/1046=65059

本系统按键发出对应音符模块软件流程图如下:

3.系统功能

(1)键盘矩阵识别。即矩阵扫描,显示当前按键。 (2)不同频率音符播放。可以通过按键控制16种发音。

4.设计总结

通过这次课程设计,我学到了不少课本上没有的知识,也锻炼了自己的动手能力,将以前学过的零散的知识串到一起。经过我长时间的设计及调试,本系统基本能实现按下键盘矩阵中的按键会使数码管显示当前按键,扬声器播放对应的音符。但由于仿真系统原因,本设计音频效果不是很好。不足之处有:1.可弹奏的音符数较少,只能在一定范围内满足用户需要。可通过改进键盘识别模块和发生模块来增加其复杂度2.音量不可调。

我的综合设计主要涉及硬件和软件两方面的内容,通过这些我的硬件和软件开发能力都获得了提高。首先硬件方面,基本了解了电子产品的开发流程和所要做的工作。基本掌握了Protel99SE原理图的方法,并设计了一个单片机最小系统。通过开发板的设计和硬件搭建的过程,使我对51系单片机的接口有了更深层次的理解,熟悉了一些单片机常用的外围电路引脚和连接方法,如LED数码管,键盘等。并且我学会了分析问题解决问题的能力,加深了对所学理论知识的理解和运用。我的动手能力得到了很大的提高,创新意识得到了锻炼。

5.参考文献

[1] 彭伟.单片机C语言程序设计实训100例.电子工业出版社.2009年 [2] 吴运昌.模拟电子线路基础.广州:华南理工大学出版社,2004年 [3] 阎石.数字电子技术基础.北京:高等教育出版社,1997年 [4] 张晓丽等.数据结构与算法.北京:机械工业出版社,2002年

[5] 马忠梅等. ARM&Linux嵌入式系统教程.北京:北京航空航天大学出版社,2004年 [6] 李建忠.单片机原理及应用.西安:西安电子科技大学,2002年 [7] 韩志军等.单片机应用系统设计[M].机械工业出版社,2004

[8] 周润景等. Proteus在MCS-51&ARM7系统中的应用百例[M].电子工业出版社,2006 [9] 马忠梅等.单片机的C语言应用程序设计[M].北京航空航天大学出版社,2006

[10] 刘树中,孙书膺,王春平.单片机和液晶显示驱动器串行接口的实现[J].微计算机信息,2007

6.附 录

本系统总体代码如下: #include

#define uchar unsigned char #define uint unsigned int uchar code DSY_Table[]=

{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80, 0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xBF}; uint code Tone_Delay_Table[]=

{64021,64103,64260,64400,64524,64580,64684,64777, 64820,64898,64968,65030,65058,65110,65157,65178}; sbit BEEP=P3^0;

uchar KeyNo;

void DelayMS(uchar x) {

uchar i;

while(x--) for(i=0;i

void Keys_Scan() {

uchar Tmp,k; P1=0x0F; DelayMS(2); Tmp=P1^0x0F; switch(Tmp) { case 1:k=0;break; case 2:k=1;break; case 4:k=2;break; case 8:k=3;break; default:return; }

P1=0xF0; DelayMS(2);

Tmp=(P1>>4)^0x0F; switch(Tmp) { case 1:k+=0;break; case 2:k+=4;break; case 4:k+=8;break; case 8:k+=12;break; default:return; }

KeyNo=k; }

void play_Tone() interrupt 1 {

TH0=Tone_Delay_Table[KeyNo]/256; TL0=Tone_Delay_Table[KeyNo]%256; BEEP=~BEEP; }

void main() {

P0=0xBF; TMOD=0x01; IE=0x82; while(1) { P1=0xF0; if(P1!=0xF0) { Keys_Scan(); P0=DSY_Table[KeyNo]; TR0=1; } else { TR0=0; } DelayMS(2); } }


相关文章

  • 电子技术课程设计计划书.课程设计报告
  • <电子技术>课程设计计划书 一.课程设计的总体目标 电子技术课程是一门专业技术基础课,电子技术课程设计是电子技术课程理论教学之 后的一个实践教学环节.其目的是训练学生综合运用学过的电子技术原理的基础知识,独立进行查找资料.选择方 ...查看


  • 电子产品开发设计课程标准最终版8---张进年
  • <电子产品开发设计与制作>课程标准 课程名称:电子产品开发设计与制作 计划学时: 42学时 适用专业:应用电子技术 开设学期:第5学期 制 订:张鹏 审 定: 一.前言 1. 课程性质 本课程是我院三年制高职应用电子技术专业的专 ...查看


  • 2010笔记本电脑组装及工艺方向(修订稿)
  • 重庆民生职业技术学院 计算机网络技术专业"笔记本电脑组装及工艺方向" 人才培养方案 一.培养目标与培养规格 1.培养目标 培养适应我国现代化建设需要及德.智.体.美全面发展的,具有良好的职业素质.文化修养和社会责任感,具 ...查看


  • 纺织工程系
  • 纺织工程系 纺织工程 主要课程:高等数学.大学英语.大学物理.计算机应用基础.机械设计基础.电工电子.纺织材料学.纺纱学.织造学.针织学.染整工艺学.非织造技术:纺纱工艺与质量控制.织造工艺与质量控制.纺织CAD.织物组织与结构.纺织厂设计 ...查看


  • 14电气模拟电路课程设计题目及要求(全)
  • 附件1: 贺州学院课程考核试卷(课程设计) (2014--2015学年第2学期) 课程名称:电子技术课程设计 开课单位:机械与电子工程学院 考核年级.专业:2014级电气工程及其自动化1班.2班 任课教师:杨建湘 <电子技术课程设计& ...查看


  • [数字电子技术]课程标准-11电信
  • 北京电子科技职业学院 <数字电子技术> 课 程 标 准 课程代码 适用专业 编审 制 核 3601850 数字电子技术 何鹏云 胡亦 2011年8月20日 制定日期 一.课程定位 <数字电子技术>是五年制高职应用电子 ...查看


  • 三峡大学人才培养方案
  • 电气信息类 一.学科门类:工学 专业名称.专业代码: 电气工程及其自动化 080601 自动化 080602 电子信息工程 080603 通信工程 080604 授予学位:工学学士 标准学制:4年 在校修业年限:3-8年 二.培养目标 1. ...查看


  • 电子商务专业主要科目课程简介
  • 电子商务专业主要科目课程简介 1.政治(120学时,含法律基础32学时) 讲授马克思主义理论.毛泽东思想.邓小平理论.三个代表重要思想.时事.政治思想品德修养.职业道德和法律知识.树立科学的人生观与世界观,坚定走有中国特色社会主义道路的信念 ...查看


  • 电子信息类毕业设计课题
  • 电子信息类毕业设计课题 [电子通讯] 出租车计价系统 [过程控制] 基于单片机实现单回路智能调节.. [电子通讯] 脉冲数字频率计 [机床仪表] 仪表机床数控系统的设计(论文.. 磁流体发电论文 [电子通讯] 基于VC++6.0的PC 机与 ...查看


  • 电子技术课程设计方案
  • 电子技术课程设计方案 (时间4周) 一.课程设计的目的 电子技术课程设计是自动化.电气工程及其自动化专业的一个重要的实践性教学环节,是对已学模拟电子技术.数字电子技术知识的综合性训练,这种训练是通过学生独立进行某一课题的设计.安装和调试来完 ...查看


热门内容