《单片机原理及应用》课程设计---八音盒设计---院系:机电汽车工程学院姓名:班级:机101-4班组长:组员:指导教师:姜风国完成时间:2013年6月5日单片机课程设计-2-目录一、课程设计任务书................................................................................3二、设计项目简介....................................................................................32.1总体设计思路..................................................................................................32.2音符产生方法.................................................................................................32.3节拍产生方法.................................................................................................42.4核心器件简介.................................................................................................52.5任务分工...................................................................................................7三、系统功能简介.....................................................................................8四、电路原理图........................................................................................84.1硬件电路设计框图…………………………………………………………..104.2键盘控制电路………………………………………………………………..104.3LCD显示电路……………………………………………………………….114.4晶振和复位电路……………………………………………………………..114.5扬声器和闪烁电路…………………………………………………………...124.6播放和停止电路……………………………………………………………...12五、程序框图............................................................................................13六、程序清单..........................................................................................166.1主函数main.c………………………………………………………………..166.2功能函数fun.c………………………………………………………………186.3数据函数data.c……………………………………………………………...276.4主函数变量定义……………………………………………………………336.5功能函数相关变量定义…………………………………………………….336.6数据函数相关变量定义………………………………………………………34七、总结...................................................................................................35参考文献:..............................................................................................36单片机课程设计-3-摘要近年来随着科技的飞速发展,单片机的应用正在不断地走向深入。当今,利用单片机控制音乐播放举不胜举,而利用单片机存储音乐,控制播放最为广泛,它具有功能多、价格优、外围电路简单等特点,很受音乐爱好者和音乐芯片制造商的青睐。本设计主要是应用单片机的原理和控制理论来设计音乐播放器的硬件电路,并利用C语言进行软件程序设计。通过控制单片机内部的定时器产生不同频率的方波,驱动蜂鸣器发出不同音调的音乐,再利用延时来控制发音时间的长短。把乐谱转化成相应的定时常数就可以从发音设备中演奏出悦耳动听的音乐。最后利用编程软件uVision3和仿真软件PROTEUS对该音乐播放器进行仿真,完全实现所需功能。关键词89C51单片机;矩阵键盘;蜂鸣器;LCD;八音盒单片机课程设计-4-一、课程设计任务书本设计利用89C51单片机结合内部定时器以及外接LCD和矩阵键盘设计了一个八音盒,按下单键可以演奏预先设置的歌曲旋律。本设计可以学习89C51定时器程序设计,按键扫描及歌曲旋律简单直觉式输入法的设计方法。其基本功能为:1、使用LCD显示器来显示目前演奏的歌曲编号;2、具有16个按键操作来选择演奏哪一首歌曲;3、内建10首歌曲旋律,按下单键可以演奏歌曲;4、演奏时可以按键中断。程序执行后工作指示LED闪动,表示程序开始执行,按下单键0~9便可以演奏歌曲,歌曲演奏中,可以按键中断。二、设计项目简介1、设计思路:⑴选用ATMEL公司89C51单片机,它具有16KB的内部ROM,2个定时器/计数器,2个外部中断。⑵通过中断实现歌曲的播放和暂停。⑶通过定时实现LED闪烁和音乐频率的变化。⑷通过键盘实现歌曲的选择。2、音符产生方法:不同的音调有不同的频率。频率不同,音调也就不同。利用定时器,使其工作在模式0,定时中断,然后控制P3.7引脚的输出每次取反,就可以在P3.7的引脚输出相应的方波频率。改变计数初值,就改变了频率。定时器的定时时间等于半个周期,定时时间到就输出脉冲取反,重复此过程,就可在P3.7引脚得到一音频的脉冲。如:C调中音1的频率=523HZ,周期T=1/523=1912us;定时器的定时时间为:T/2=1912/2us=956us;则其计数初值为:TH0=(8192-C)/32;TL0=(8192-C)%32;下面是音符及其程序中对应的编码表2.1音符编码表音符音符编码音符音符编码音符音符编码低音1l_dao中音1dao高音1h_dao低音2l_re中音Re高音2h_re单片机课程设计-5-低音3l_mi中音Mi高音3h_mi低音4l_fa中音Fa高音4h_fa低音5l_sao中音Sao高音5h_sao低音6l_la中音La高音6h_la低音7l_xi中音Xi高音7h_xi3、节拍产生方法:音乐中的节拍用延时时间产生。假设1/4拍执行一次延时程序,1/2拍就执行两次延时程序,所以只要求出1/4延时时间,其余的节拍就是他的倍数。为方便记谱,将节拍数也进行编码,如下:表2.2节拍编码表节拍节拍编码(基本延时次数)1/411/223/434/44建立曲谱编码表,例如:简谱编码:re,sao,mi,re,mi,sao,mi,re,dao,re,re,sao,re,mi,sao,mi,re,dao,l_la,dao,dao,mi,re,mi,l_sao,re,l_xi,l_la,l_sao,l_la,dao,re,l_xi,l_la,l_sao,l_mi,l_sao,0xff节拍编码:4,4,2,2,4,2,2,2,2,8,4,4,4,2,2,2,2,2,2,8,4,4,2,2,4,2,2,2,2,4,单片机课程设计-6-6,2,2,2,2,2,164、核心器件简介(1)AT89C51的性能介绍AT89C51是一种带4K字节闪烁可编程可擦除只读存储器,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。它可以提供以下的功能标准:1)4K的字节闪烁存储器;2)128字节随机存取数据存储器;3)32个I/O口;4)2个16位定时/计数器;5)1个串行通信口;6)片内振荡器和时钟电路。(2)蜂鸣器蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。1)压电式蜂鸣器压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。多谐振荡器由晶体管或集成电路构成。当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。2)电磁式蜂鸣器电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。(3)矩阵键盘单片机系统中,若使用按键的数量比较多时,通常选用用矩阵式键盘。矩阵式键由行线和列线构成,按键位于行、列线的交叉点上,键盘矩阵是由四行四列构成,矩阵的四列和P2口的低四位相连,四行与P2口的高四位相连。其键盘识别方法如下:1)判断键盘中有无键按下将全部行线置低电平,然后检测列线的状态。只要有一列的电平为单片机课程设计-7-低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。2)判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键(4)LCD1602液晶显示器简介工业字符型液晶,能够同时显示16X02即32个字符。(16列2行)1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。基本内容如下:单片机课程设计-8-5、任务分工(1)系统总体设计及调试方面-----臧(2)键盘扫描程序编辑方面-----------刘(3)LCD显示程序编辑方面------------臧(4)中断程序及protues仿真调试方面-------周(5)扬声器、二极管闪烁程序以及protues硬件电路设计-------王(6)歌曲搜集整理、歌曲播放程序及文档编写-------林、李、刘三、系统功能简介1、此80C51八音盒有矩阵式键盘共十个按键,0~9按键用于选择歌曲,通过P2口与单片机相连。2、LCD通过用于显示,显示当前正在播放的歌曲编号。P0口输出编号,P1.4、P1.5、P1.6用于控制LCD。3、有中断按键,在单片机播放旋律时可以按外部中断1键实现歌曲暂停,再按中断T0实现歌曲暂停后的播放。4、LED灯连接在P1.7口,用LED灯闪