2012年5月。
目录。1设计任务1
2基本原理及总体方案框图1
3单元电路的设计和元件的选择2
3.1 stc89c52单片机芯片2
4 总体原理图10
6. 总结及心得体会14
7 元件清单14
8 参考文献15
9 附录。1设计任务
1)利用i/o口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演乐曲。
2)可通过功能键选择乐曲,暂停,**,上一曲,下一曲。
2基本原理及总体方案框图。
单片机****器系统总体设计由五个部分构成:晶振电路模块、复位电路模块、st89c52单片机、发声模块以及按键模块。其中五个模块连接在at89c52单片机上构成一个完整的系统。
如图2-1所示。
图2-1单片机****器系统原理图。
**作为一种物理现象,是由于物体振动而产生的,振动产生的声波作用于人耳,听觉系统将神经冲动传达给大脑,进而产生听觉。人耳能听到的声音频率大约在11—20000hz,而**使用的音一般在27—4100hz。
乐音体系中各音级的名称叫做音名,被广泛采用的是c d e f g a b (do re mi fa so la si则多用于歌唱,称为唱名)。乐音体系中音高关系的最小计量单位叫做半音,两个半音构成一个全音。乐音中有几十个高低不同的音,但是最基本只有这七个音,其他高、低音名都是在这个基础上变化出来的。
乐谱表上用来表示正在进行的音的长短的符号,叫做音符。不同的音符代表不同的长度。音符有以下几种:
全音符、二分音符、四分音符、八分音符、十六分音符、三十二分音符、六十四分音符。此外,还有附点音符,它就是指带附点的音符,所谓附点就是记在音符右边的小圆点,表示增加前面音符时值的一半。音持续的长短即时值,一般用拍数表示,休止符表示暂停发音。
一首**就是由许多不同的音符组成的,而每一个音符对应着不同的频率,这样就可以利用不同的频率的组合,加以拍数对应的延时来构成不同的**。
**的产生需要不同频率的音频脉冲,对于单片机而言,可以利用它的定时/计数器产生这样的方波频率信号。在本设计中,单片机工作在12mhz时钟频率下,其时钟周期为1us,因此可以利用st89c52的内部定时/计数器t0,使其工作模式为1,根据对应音符的不同频率求出计数器的初值t(即是th0和tl0的值),则th0=t/256,tl0=t%256。
c调各音符频率与计数值t的对照如下表2-1所示。
表2-1 c调各音符频率与计数值t的对照表。
节拍是指**持续的长短,是除音符之外**的另一关键组成部分,在单片机系统中可以通过延时来实现。
如果1/4拍的延时设为0.2s,则1拍的时间为0.8s,依次类推,可以求出其余节拍的值,节拍的延时时间与**的曲调值有相对应的关系,下面为不同曲调下的1/4和1/8节拍的时间设定,如下表2-2所示。
表2-2 不同曲调下1/4和1/8节拍的延时表。
1)要产生音频脉冲,只要算出某一音频的周期(1/音频),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的i/o反相,然后重复计时此半周期时间再对i/o口反相,就可在i/o脚上得到此频率的脉冲。
2)利用8051的内部定时器使其工作在计数器模式mode1下,改变记数值th0及tl0以产生不同频率的方法。例如频率为523hz,其周期t=1/523=1912微秒,因此只要令计数器定时956/1=956在每记数9次时将i/o口反相,就可得到中音d0(523hz)。
记数脉冲值与频率的关系公式如下:
n=fi/2/fr n:记数值。
fi:内部计时一次为1微秒.故其频率为1mhz
fr;要产生的频率。
3):起记数值的求法如下:
t=65536-n=65536-fi/2/fr
例如:设k=65536,f=1000000=fi=1mhz,求低音d0(523hz),高音的d0(1046hz)的记数值。
低音d0的t=65536-500000/262=63627
中音d0的t=65536-500000/523=64580
低音d0的t=65536-500000/1047=65059
3单元电路的设计和元件的选择。
3.1 stc89c52单片机芯片。
3.1.1概述。
stc89c52是一款低功耗、高性能cmos的8位微控制器,芯片采用atmel 公司的高密度、非易失性存储器技术制造,兼容标准的mcs-51指令系统及8051引脚结构。stc89c52具有:8kb flash,节ram,32 位双向i/o 口线,看门狗(wdt)定时器,2个数据指针,2个16位可编程定时器/计数器,1个6向量2级中断结构,全双工串行口,片内时钟振荡器。
另外,stc89c52可降至0hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,cpu暂停工作,允许ram、定时器/计数器、串口、中断系统继续工作。掉电保护模式下冻结振荡器但保存ram中的数据,单片机部分停止工作,直到下一个中断或硬件复位为止。
stc89c52的工作电压是4.5~5.5v,时钟频率可以在0~33mhz范围内选择,采用pdip、tqfp和plcc三种封装形式。
实习采用较易焊接的pdip封装形式,封装引脚分布和外形见图(1)。外形的封装尺寸物理参数见表(1)
3-1stc89c52的pdip-40封装。
表(1) at89s52 pdip封装尺寸(mm)
3.1.2引脚介绍。
采用pdip封装的stc89c52有40个引脚,下面就对各个引脚的功能进行详细介绍。
vcc:电源。
gnd:地。
p0.0~p0.7:
p0口是一个8位漏极开路的双向i/o口。作为输出口,每位能驱动8个ttl逻辑电平。对p0端口写“1”时,引脚端用作高阻抗输入。
当访问外部程序和数据存储器时,p0口也被作为低8位地址/数据复用。在这种模式下,p0具有内部上拉电阻。在flash编程时,p0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
p1.0~p1.7:
p1口是一个具有内部上拉电阻的8位双向i/o口,p1输出缓冲器能驱动4个ttl 逻辑电平。对p1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚端由于内部电阻的原因,将输出电流(iil)。
此外,p1.0和p1.2分别作定时器/计数器2的外部计数输入(p1.
0/t2)和时器/计数器2的触发输入(p1.1/t2ex),具体如表(3)所示。在flash编程和校验时,p1口接收低8位地址字节。
表(3) p1 口引脚端第二功能。
p2.0~p2.7:
p2口是一个具有内部上拉电阻的8位双向i/o口,p2 输出缓冲器能驱动4个ttl 逻辑电平。对p2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(iil)。
单片机课程设计
可变程序控制器是集微机技术 自动化技术 通讯技术于一体的通用工业控制装置。它可靠性强 性能 比高 使用方便,已在工业控制的各个领域里得到了极为广泛的应用,成为实现工业自动化的一种强有力的工具 1 plc的定义有许多种。国际电工委员会 iec 对plc的定义是 可编程控制器是一种数字运算操作的电子系统...
单片机课程设计
目录。内容提要2 关键词2引言3 一 硬件电路设计3 一 电路板原理3 二 电路元器件3 二 软件设计3 一 秒钟设计方案3 二 时钟设计方案4 结语7单片机时钟设计。内容摘要 一 在实验板上用动态扫描显示00 59秒钟,具体要求如下 一 6m晶振 二 l9 l10显示00 59十进制数并循环,间隔...
单片机课程设计
1 选题背景。1.1 家庭智能防盗报警系统设计的背景及目的。随着经济的发展,人们对防盗 防劫 防火保安设备的需求量大大增加。针对偷盗 抢劫 火灾 煤气泄漏等事故进行检测和报警的系统,其需求也越来越高。家居智能是以家为平台,兼备建筑 自动化,智能化于一体的高效 舒适 安全 便利的家居环境。自动化的家居...