在介绍总体方案之前,先简单介绍一下电子琴的发生原理以及如何改变音色的基
本原理:声音的频谱范围约在几十到几千赫兹, 若能利用程序来控制单片机某个口线不
断输出“ 高” “ 低”电平, 则在该口线上就能产生一定频率的方波, 将该方波接上喇
叭就能发出一定频率的声音, 若再利用程序控制“ 高” “ 低”电平的持续时间, 就能
改变输出波形的频率从而改变音调。乐曲中, 每一音符对应着确定的频率, 下表给出各
音符频率。如果单片机某个口线输出“ 高” “ 低”电平的频率和某个音符的频率一
样, 那么将此口线接上喇叭就可以发出此音符的声音。本系统就是根据此原理设计, 对
于单片机来说要产生一定频率的方波大致是先将某口线输出高电平然后延时一段时间
再输出低电平, 如此循环的输出就会产生一定频率的方波, 通过改变延时的时间就可以
改变输出方波的频率。单片机内部有两个位的定时计数器T1和T0, 单片机的定时计数器
实际上是个计数装置它既可以对单片机的内部晶振驱动时钟计数也可以对外部输入的
脉冲计数, 对内部晶振计数时称为定时器, 对外部时钟计数时称为计数器。当对单片机
的内部晶振驱动时钟计数时,每个机器周期定时计数器的计数值就加, 当计数值达到计数
最大值时计数完毕并通知单片机的尸比对外部输入的时钟信号计数时, 外部时钟的每个
时钟上升沿定时计数器的计数值就加, 当计数值达到计数最大值时计数完毕并通知单片
机的尸。因此, 如果知道单片机的机器周期或者外部输入时钟信号的周期单片机就可以
根据定时器的计数值计算出定时的时间。用此方法定时十分准确, 想得到多大的延时时
间就可以给定时器赋一定的计数初值, 定时器从预先设置的计数初值开始不断增当增加
到计数最大值时计数完毕, 调整计数初值的大小就可以调整定时器定时的时间, 从而达
到准确的延时。在本设计中我们使用的外部时钟信号的晶振频率为12MHz,而采用的
计数方式为方式1,所以计数器的初始值可以由如下公式求得。
T=65536-1000000/2/f
评论0
最新资源