基于单片机的八音盒电路原理图和完整程序源代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
51单片机课程设计报告(八音盒)
2010-12-13 22:28:24| 分类:电子、课程设计类| 标签:51单片机八音盒程序|字号大中小订阅
摘要
本文设计了一种基于51单片机(AT89C52)的八音盒,利用蜂鸣器和K20—K27制作了一个八音盒,内置八首乐曲,当按下不同的按键时,奏出不同的乐曲。并且把其他按键当作琴键,可以用它弹奏乐曲。本设计充分利用51单片机定时器的功能,根据do、re、mi等音调的频率,利用其产生不同的音调,从而演奏乐曲。在设计需考虑到歌曲曲谱的解析,令单片机能够解读其含义并工作,并根据演奏出乐曲的效果
不断调整程序,进行优化。
关键词:51单片机、八音盒、定时器
Abstract
This article introduces a design based on 51 SCM (AT89C52), using the buzzer and buttons as K20 - K27 made a her bed-room, with built-in eight songs。When pressing different button, it goes out different pieces of music. And taking the other buttons as keys, we can use it to play music. This design make full use of 51 single-chip microcomputer timer function, according to do, re, mi tones of frequency, we use it to produce different tone, thus playing music. In the design song analysis should be considered, so the songs can be understood by SCM and make it work, and according to play music effect constantly adjust procedure, making
optimization.
Keywords:51 SCM、her bed-room、timer
目录
摘要 I
第一章51单片机简介 1第二章系统设计 1
2.1 主要电路图及说明 1
2.2 软件方框图及说明 3
第三章实验结果及讨论 17第四章总结 17
参考文献 17
附录 18
第一章 51单片机简介
单片机现在是越来越普及了,学习单片机的热潮也一阵阵赶来,许多人因为工作需要或者个人兴趣需要学习单片机。可以说,掌握了单片机开发,就多了一个饭碗。51 单片机已经有30 多年的历史了,在中国,高校的单片机课程大多数都是51,而51 经过这么多年的
发展,也增长了许多的系列,功能上有了许多改进,也扩展出了不少分支。而国内书店的单片机专架上,也大多数都是51 系列。可以预见,51 单片机在市场上只会越来越多,功能只会越来越丰富,在可以预见的数十年内是不可能会消失的。
在数字电路中,电压信号只有两种情况,高电平和低电平,用数字来记录就是1 和0。单片机内部的CPU,寄存器,总线等等结构都是通过1 和0 两种信号来运作的,数据也是以1 或者0 来保存的。单片机的输入输出管脚,也就是IO 口,也是只输出或识别1 和0 两种信号,也就是高电平和低电平。当单片机输出一个或一组电平信号到IO 口后,外部的设备就可以读到这些信号,并进行相应操作,这就是单片机对外部的控制。当外部一个或一组电平信号送到单片机的IO 口时,单片机也可以读到这些信号,并进行分析操作,这就是单片机对外部设备信号的读取。当然实际的操作中,这些信号可能十分复杂,必须严格地按照
规定的时间顺序(时序)输入输出。每种设备也都规定了自己的时序,只要都严格遵守,就可以控制任何设备,做出只要你想象得出的任何事情。
如何让单片机去控制和分析外部设备呢?答案是程序,我们可以编写相关的程序,并且把他们烧写到单片机内部的程序空间,单片机在上电时,就会一步一步按照您写的程序去执行指令,做您想做的事情。
在51 标准芯片中,有32 个输入输出IO,分为4 组,每组8 个,分别为P0 口,P1 口,P2 口,P3 口。P1 口的8 条脚就用P1.0 至P1.7 表示,其余类似。51 就是用这32 个口来完成所有外部操作的。
第二章系统设计
2.1 主要电路图及说明
本设计使用的是单片机实验箱来实现八音盒功能,实验箱包含单片机接口的各个电路。本章中只介绍本设计所使用的主要电路部分。如图2.1.1所示为单片机的最小系统部分,只有这部分电路正常,整个系
统才能正常工作。
图2.1.1 单片机最小系统
如图2.1.2所示为键盘接口电路图,此电路包含行列式键盘和独立式按键输入电路。
P20-23为行,P24-27为列,构成4×4行列式键盘。按键编号规律为S2+行号+列号。例如S226表示
P22行和P26列跨接处的按键。
K20-27构成独立式按键,分别接在P20-27上,当按键按下时,对应的口线输入0,同时相应的LED
点亮。但在本设计中未使用。
图2.1.2 键盘接口电路
如图2.1.3电路为蜂鸣器电路。蜂鸣器采用9012三极管驱动,其基极接到RD端,当RD端为低电平时,三极管导通,蜂鸣器响。否则关断。
图2.1.3 蜂鸣器电路图2.2 软件方框图及说明
实验程序及解析:
#include
#define uchar unsigned char //定义一下方便使用
#define uint unsigned int
#define ulong unsigned long
#define SPEAK RD
/*sbit SPEAK = P2^0;*/
uchar th0_f; //在中断中装载的T0的值高8位
uchar tl0_f; //在中断中装载的T0的值低8位
uchar key;
/*------------------------------------------------函数声明
------------------------------------------------*/ uchar keyscan(void);//键盘扫描
void delay(uint i); //延时程序
/*------------------------------------------------*/ //T0的值,及输出频率对照表
uchar code freq[36*2]={
0xA9,0xEF,//00220HZ ,1 //0
0x93,0xF0,//00233HZ ,1#
0x73,0xF1,//00247HZ ,2
0x49,0xF2,//00262HZ ,2#
0x07,0xF3,//00277HZ ,3
0xC8,0xF3,//00294HZ ,4
0x73,0xF4,//00311HZ ,4#
0x1E,0xF5,//00330HZ ,5
0xB6,0xF5,//00349HZ ,5#
0x4C,0xF6,//00370HZ ,6
0xD7,0xF6,//00392HZ ,6#
0x5A,0xF7,//00415HZ ,7