为音符建立一个数据表,单片机通过查表的方式来获得相应的数据。 低音0-19之间,中音在20-39之间,高音在40-59之间 TABLE1: DW DW DW DW
音乐的音拍,一个节拍为单位(C调)(如表4-2所示)
表4-2 曲调值表
曲调值 调44 调34 调24 DELAY 125ms 187ms 250ms 曲调值 调44 调34 调24 DELAY 62ms 94ms 125ms 对于不同的曲调我们也可以用单片机的另外一个定时计数器来完成。琴键处理程序,根据检测得到按键值,查询音律表,给计时器赋值,发出相应频率的声音。对音调的控制:根据不同的按键,对定时器T1送入不同的初值,调节T1的溢出时间,这样就可以输出不同音调频率的方波。不同音调下各个音阶的定时器。在这个程序中用到了两个定时计数器来完成的。其中T0用来产生音符频率,T1用来产生音拍。
[9]
5 微型电子琴的系统总体原理框图
如图5-1所示,设计出微型电子琴的系统总体原理框图。
图5-1微型电子琴系统原理框图
6 系统主要硬件电路设计
6.1 微型电子琴的Proteus总体设计电路图
电子琴的proteus总体仿真图见图6-1。按下播放键,发光二极管亮一下,系统自动播放预存在内存中的曲子,再按一次播放下一首歌曲,按下复位键,系统复位,停止播放。按下矩阵键盘中的任意键,扬声器发出相应的音符。
图6-1 微型电子琴的Proteus总体设计电路图
6.2单片机主机系统电路 6.2.1 AT89C52单片机简介
AT89C52是美国Atmel公司生产的低电压、高性能CMOS 8位单片机
[10]
,片内
含8KB的可反复檫写的程序存储器和12B的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内配置通用8位中央处理器(CPU)和Flash存储单元,功能强大的AT89C52单片机可灵活应用于各种控制领域。AT89C52单片机属于AT89C51单片机的增强型,与Intel公司的80C52在引脚排列AT89C52引脚图见图6-2.
[11]
、硬件组成、工作特点和指令系统等方面兼容。
图6-2AT89C52引脚图
P3口也可作为AT89C52的一些特殊功能口,如下表所示:
P3口引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 特殊功能 RXD(串行输入口) TXD(串行输出口) (外部中断0) (外部中断1) T0(定时器0外部输入) T1(定时器1外部输入) WR(外部数据存储器写选通) RD(外部数据存储器读先通) P3口同时为闪烁编程和编程校验接收一些控制信号。 其主要功能特性: · 兼容MCS51指令系统
· 8k可反复擦写(>1000次)Flash ROM · 32个双向IO口 · 256x8bit内部RAM
· 3个16位可编程定时计数器中断 · 时钟频率0-24MHz · 2个串行中断 · 可编程UART串行通道 · 2个外部中断源 · 共6个中断源 · 2个读写中断口线 · 3级加密位
· 低功耗空闲和掉电模式 · 软件设置睡眠和唤醒功能 6.2.2时钟频率
单片机必须在时钟的驱动下工作。在单片机内部有一个时钟振荡电路
[12]
,只
需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。外部振荡源电路一般选用石英晶体振荡器,此电路在加电大约延
迟10mS后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容C1,C2,作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。C1,C2的典型值为30PF。 单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。起大小是时钟信号频率的倒数,常用fosc表示。如时钟频率为12MHz,即fosc=12MHz,则时钟周期为112μs。 6.2.3 晶振电路
AT89C52单片机的定时控制功能是用时钟电路和振荡器完成的,而根据硬件电路的不同,连接方式分为内部时钟方式和外部时钟方式。本设计中采用内部时钟方式。
单片机内部有一个反相放大器XTAL1、XTAL2分别为反相放大器的输入端和输
出端,外接定时反馈元件组成振荡器(内部时钟方式),产生时钟送至单片机内部各元件。时钟频率越高,单片机控制器的控制节拍就越快,运算速度也就越快。
一般来说单片机内部有一个带反馈的线性反相放大器,外界晶振(或接陶瓷振
荡器)和电容就可组成振荡器,如图6-2所示。加电以后延时一段时间(约10ms)振荡器产生时钟,不受软件控制,图中X1为晶振,震荡产生的时钟频率主要由Y1确定。
电容C1,C2的作用有两个:一是帮助振荡器起振,二是对振荡器的频率起微调作用,典型值为30pF。
图6-3 晶振电路
6.2.4 按键播放电路
图6-4按键播放电路
6.2.5键盘扫描
在单片机应用中键盘用得最多的形式是独立键盘及矩阵键盘,如图6-5,图6-6所示。
图6-5独立键盘
图6-6 矩阵键盘
它们各有自己的特点,其中独立键盘硬件电路简单,而且在程序设计上也不复杂,一般用在对硬件电路要求不高的简单电路中;矩阵键盘与独立键盘有很大区别,首先在硬件电路上它要比独立键盘复杂得多,而且在程序算法上比它要烦琐,但它在节省端口资源上有优势得多,因此它更适合于多按键电路。