基于51单片机的低成本音乐门铃设计 毕业论文.doc

上传人:小小飞 文档编号:3919550 上传时间:2019-10-10 格式:DOC 页数:44 大小:1.50MB
返回 下载 相关 举报
基于51单片机的低成本音乐门铃设计 毕业论文.doc_第1页
第1页 / 共44页
基于51单片机的低成本音乐门铃设计 毕业论文.doc_第2页
第2页 / 共44页
基于51单片机的低成本音乐门铃设计 毕业论文.doc_第3页
第3页 / 共44页
基于51单片机的低成本音乐门铃设计 毕业论文.doc_第4页
第4页 / 共44页
基于51单片机的低成本音乐门铃设计 毕业论文.doc_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《基于51单片机的低成本音乐门铃设计 毕业论文.doc》由会员分享,可在线阅读,更多相关《基于51单片机的低成本音乐门铃设计 毕业论文.doc(44页珍藏版)》请在三一文库上搜索。

1、基于基于 51 单片机的低成本音乐门铃设计单片机的低成本音乐门铃设计 摘摘 要要 门铃的应用,在现代社会里随处可见,但是出于多方面的考虑,如成本的高低, 声音的模式等,需要我们进一步去挖掘。本论文的设计就是围绕低成本音乐门铃进行 研究开发。其中主要运用到了 51 芯片,51 芯片是微型处理器, 51 单片机具有优异的 性能价格比、集成度高、体积小、可靠性高、 控制功能强、低电压、低功耗等优点。 本设计中音乐门铃的基本功能都能由 51 芯片提供,且价格低廉。除芯片基本电路部分 外,还需要声音扩大部分,用到 386DE 芯片。整个系统围绕价格低廉展开,拓展功能 由程序部分实现。 先用 c 语言编写

2、实现音乐门铃的程序代码,然后将 c 语言用 keil 软件生成 hex 文 件下载到 stc89c51 集成芯片中,利用不同的频率发出不同的音调,利用延时产生不同 的节拍,通过功率放大器传送到喇叭使其发出美妙的音乐。为进一步降低成本,所以 本设计主要完成部分在于程序,程序分为主体与扩展部分。扩展部分用于规定的歌曲 节拍,音调控制。扩展部分由主程序,音乐曲目以及歌曲数组函数组成。在利用画图 工具完成基本电路设计后,再焊接电路,最后再进入变成部分。 关键词关键词:单片机,低成本,程序,音乐 Abstract Doorbell application, can be seen everywhere

3、in modern society, but because of various considerations, such as low cost, voice pattern, we need to dig further. The design of this thesis is to focus on research and development cost music doorbell. Mainly applied to the 51- chip, 51 chip is a microprocessor, microcontroller 51 has excellent perf

4、ormance and low cost, high integration, small size, high reliability, high control, low voltage, low power consumption. The design of the basic functions of music doorbell can be from 51 chips, and low prices. In addition to the basic part of the circuit chip, but also need to expand the sound secti

5、on, use 386DE chip. Expand the system around the low cost and expand the function by the program partially achieved. First with the c language code to achieve musical doorbell, and then use keil software c language generated hex file to stc89c51 integrated chip, the use of different frequencies make

6、 different tone, the use of delay have different beats, transmitted through the power amplifier To the speaker to broadcast the wonderful music. To further reduce costs, so the design process the main part is completed, the program is divided into subject and extension. Extension of the provisions o

7、f the songs used in rhythm, tone control. Extension from the main program, music tracks and songs composed of an array of functions. In the use of drawing tools to complete the basic circuit design, and then soldering the circuit, and finally re-entering into a part. Key words:Single chip, Low-cost,

8、 Program,Music 目录目录 1 绪论.1 1.1 题目背景及目的 1 1.2 国内外研究状况 1 1.3 题目研究方法 2 1.4 论文构成及研究内容.2 2 电子音乐门铃系统简介.3 2.1 分析功能要求.3 2.2 系统原理与控制方法 4 2.3 单片机发音概述 4 2.3.1 音调4 2.3.2 节拍5 3 系统硬件设计.7 3.1 原理简介 7 3.2 主电路设计 8 3.3 音乐功放电路设计 11 3.3.1 概述11 3.3.2 特性12 3.3.3 应用电路.12 3.3.4 芯片使用方法与自激啸叫防治措施14 4 系统软件设计.16 4.1 软件介绍 16 4.2

9、主程序设计 18 4.3 播放文件程序设计 20 5 系统调试与实现.22 5.1 硬件调试与实现 22 5.2 软件调试与实现 22 结论.24 参考文献.25 致谢.26 附录 A 主文件程序.27 附录 B 播放文件程序.30 1 1 绪论绪论 以下是关于此次毕业设计的题目北京以及目的,国内外研究状况,题目研 究方法还有论文构成和研究内容的介绍。 1.1 题目背景及目的题目背景及目的 随着时代的发展和进步,控制智能化、仪器小型化、功耗微小化得到广泛 关注。在这些领域中,单片机起到了举足轻重的作用,这就把单片机的应用提 升到重要的地位,单片机应用系统设计就成为新的技术热点。 近几年来,随着

10、市场上智能化楼宇的不断升温,门铃系统已作为智能化办 公室和智能化住宅小区的一个重要组成部分,被各商家和用户所接受。人们已 开始习惯用门铃系统代替传统的铁钥匙去管理各通道门,这使门铃系统得到了 飞跃性的发展。随着单片机技术的飞速发展,通过单片机实现人们对物质生活 的满足,这将会日益成为今后的一个重要发展的方向1。 由于电子音乐门铃具有铃声悦耳动听,价格低廉、耗电少等优点,在现代 家具中的应用越来越流行。有了电子音乐门铃,在有客人在拜访时,听到的将 不再是单调的提示等候音,而是不同凡响的流行音乐旋律、特效音等个性化的 电子声乐。 1.2 国内外研究状况国内外研究状况 目前在家庭住宅中使用的电子门铃

11、大多数是没用音乐,只有简单的叮咚叮 当的声音,比较单调。其中绝大多数没有按钮提示以及其他功能,要不就是造 价昂贵,诸多缺点。 经了解,现在市场上所有销售的门铃主要有以下几种: 1、敲击式电子音乐门铃,采用声控触发电路和音乐集成电路组成,通过一个可 调电阻来控制喇叭的灵敏度,一个电容快速充电来维持后续工作; 2、不用按钮的音乐门铃,采用红外线发射接收电路和自激多谐振荡电路构成, 荡发出的红外线被人遮挡住的一瞬间,扬声器就发出有没动听的音乐; 3、带们演示电路的音乐门铃,采用低功耗交流继电器 TLP3502 和高频小功率 管组成。只要按下门铃按钮就会同时打开门灯,使主人可以通过门镜来识别来 2 客

12、身份。门灯经一段时间的延时后自动熄灭; 4、无限遥控门铃,采用脉冲调制发射,及石英晶振稳频技术,实现远距离遥控。 1.3 题目研究方法题目研究方法 充分调查研究并且认真深刻学 51 芯片功能以及使用方法,掌握单片机应用 系统的开发流程、硬软件系统设计以及相关工具软件的使用方法,同时对被控 的实际应用对象有更深入的了解,达到学以致用、系统地整合所学专业知识的 目的,达到设计的系统抗干扰能力强、稳定可靠、成本低廉、使用方便,满足 相关的功能要求。 掌握单片机的体系结构、工作原理、指令系统与编程技巧以及相关接口技 术,熟悉单片机开发工具并掌握单片机应用系统的设计开发流程;选择并设计 合理的补偿算法与

13、程序结构;掌握相应的抗干扰措施;设计出系统的硬件结构 与接口电路,编写相关软件。 1.4 论文构成及研究内容论文构成及研究内容 论文主要有绪论、电子音乐门铃系统简介(分析功能要求、系统原理与控 制方法) 、系统硬件设计、系统软件设计、系统调试与实现、结论、参考文献、 致谢、附录各部分组成。 研究内容为开发研究出低成本音乐门铃。本文利用单片机体积小、速度快、 功能强、性能可靠、价格低廉等优点,介绍了用 AT89C52 单片机设计电子音乐 门铃的方法,系统实现简单、功能稳定。日后可在此基础上进一步完善,如增 加语音防盗报警功能、有人无人语音门铃切换功能,甚至增加可视对讲功能等。 3 4 2 电子音

14、乐门铃系统简介电子音乐门铃系统简介 了利用单片机为主控制器设计电子门铃的具体方法。该电子门铃具有普通 门铃的功能,而且还具有一些扩展功能。 2.1 分析功能要求分析功能要求 本设计要求是要完成低成本音乐门铃设计,芯片可采用 51 芯片,89C51 是 一种带 4K 字节闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压,高性能 CMOS 8 位微处理器,俗称 单片机。2AT89C2051 是一种带 2K 字节闪烁可编程可擦除只读存储器的单片 机。单片机的可擦除只读存储器可以反复擦除 100 次。 该

15、器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合 在单个芯片中,ATMEL 的 AT89C51 是一种高效微控制器,AT89C2051 是它的 一种精简版本。 AT89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 主要特性:与 MCS-51 兼容 , 4K 字节可编程闪烁存储器,寿命:1000 写/擦 循环,数据保留时间:10 年,全静态工作:0Hz-24MHz,三级程序存储器锁定, 1288 位内部 RAM, 2 可编程 I/O 线,两个 16 位定时器/计数器, 5 个

16、中断 源,可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路2。 因为需要用到播放音乐功能,所以需要用到功放电路,其中采用 LM386 芯 片, LM386 是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电 压范围大、外接元件少和总谐波失真小等优点的功率放大器,广泛应用于录音 机和收音机之中。 LM386 是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消 费类产品。为使外围元件最少,电压增益内置为 20。但在 1 脚和 8 脚之间增加一 只外接电阻和电容,便可将电压增益调为任意值,直至 200。输入端以地位参考, 同时输出端被自动偏置到电源电压的一半,在 6V

17、电源电压下,它的静态功耗仅为 24mW,使得 LM386 特别适用于电池供电的场合。 5 2.2 系统原理与控制方法系统原理与控制方法 利用单片机89C52产生乐曲音符,再把乐谱翻译成计算机音乐语言,由单 片机进行信息处理,在经过信号放大,由喇叭放出乐曲声。 通过控制定时器的定时时间来产生不同频率的方波,驱动喇叭发出不同音 阶的声音,再利用延迟来控制发音时间的长短,即可控制音调中的节拍。把乐 谱中的音符和相应的节拍变换为定常数和延迟常数,作为数据表格存放在存储 器中。由程序查表得到定时常数和延迟常数,分别用以控制定时分别代表某一 频率的声音。3 以 STC89C52RC 为核心,加上芯片最小系

18、统电路,按钮,外围电源, LM386 功放电路,扬声器电路组成。该系统通过 STC89C52RC 单片机的中断调 用来实现将音符转换为相应的电信号输出到扬声器,组成一首完整的音乐,并 通过按钮实现歌曲的转换。 2.3 单片机发音概述单片机发音概述 一般来说,单片机不像其他专业乐器那样能奏出多种音色的声音,即不包 含相应幅度的谐振频率。单片机演奏的音乐基本都是单音频率。因此单片机演 奏音乐比较简单,只需能清楚“音调”和“节拍”两个概念即可。 音调表示一个音符唱多高的频率。 节拍表示一个音符唱多长的时间。 知道了一个音符的频率后,便可以让单片机发出相应频率的振荡信号,从 而产生相应的音符声音。通过

19、单片机的定时器进行定时中断,在中断服务程序 中将单片机上完结 LM386 的 I/O 口来回置高电平或者是低电平的,从而让扬声 器发出声音。通过节拍计算出每个音符所需要的时间,采用循环延时的方法来 实现控制一个音符唱多长的时间,从而构成一首完整的音乐。 2.3.1 音调 音调主要由声音的频率决定。对一定强度的纯音,音调随频率的升降而升 降;对一定频率的纯音、低频纯音的音调随响度增加而下降,高频纯音的音调 却随响度增加而上升。 音调的高低还与发声体的结构有关,因为发声体的结构影响了声音的频率。 6 大体上,2000 赫兹以下的低频纯音的音调随响度的增加而下降,3000 赫兹以 上高频纯音的音调随

20、响度的增加而上升。 例如,在音乐中常常把中音 C 上方的 A 音定位标准高音,其频率 F=440HZ,其余音均与其进行比较。F1 和 F2 为两个音符,如果这两个音符的 频率相差一倍时,也即 F2=2*F1 时,则称 F2 比 F1 高一个频程。 在音乐中音符 1 与音符 2,音符 2 与音符 3等等之间正好相差一个倍频 程,在音乐学中称它相差一个八度音。在一个八度内,有 12 个半音。由于人耳 的听觉效果,这 12 个音阶的分度基本上是以对数的关系来划分的。只要知道 12 个音符的音高,也就是其基本频率,就可以根据音符之间的倍频关系得到其 他音符的基本音调频率3。 以标准高音 A 的频率 F

21、=440HZ,其对应的周期为: T=1/F=1/440=2272us 因此需要在单片机 I/O 端口输出周期为 T=2272us 的方波脉冲,也就是 t=T/2=2272/2=1136us 也就是说,单片机上定时器的中断出发时间为 1136us。如果单片机采用定 时器为工作方式 1,它以振荡器的十二分频信号为计数脉冲。设外接晶振的振 荡器频率为 f,则定时器的预置初始值有以下公式来确定: Temp = 65536-(50000/CurrentFre)*10/(12000000/SYSTEM_OSC) TH = Temp /256 TL = Temp %256 2.3.2 节拍 在音乐中,时间被

22、分成均等的基本单位,每个单位叫做一个“拍子”或 称一 拍。拍子的时值是以音符的时值来表示的,一拍的时值可以是四分音符(即以 四分音符为一拍) ,也可以是二分音符(以二分音符为一拍)或八分音符(以八 分音符为一拍) 。 拍子的时值是一个相对的时间概念,比如当乐 曲的规定速度为每分钟 60 拍时,每拍占用的时间是一秒,半拍是二分之一 秒;当规定速度为每分钟 120 拍时,每拍的时间是半秒,半拍就是四分之一 秒,依此类推。拍子的基本时值 7 确定之后,各种时值的音符就与拍子联系在一起。例如,当以四分音符为一拍 时,一个全音符相当于四拍,一个二分音符相当于两拍, 八分音符相当于半拍, 十六分音符相当于

23、四分之一拍;如果以八分音符做为 一拍,则全音符相当于八 拍,二分音符是四拍,四分音符是两拍,十六分音 符是半拍4。 对于一拍的发音时间,如果乐曲没有特殊说明,一般来说,一拍大约为 400450ms。 对于计算机编程 节拍码及节拍数如图 2.15所示: 图 2.1 节拍码及节拍数 8 9 3 系统硬件设计系统硬件设计 系统以AT89C51单片机为核心,加上外围电源时钟电路、LM386功放电路 及扬声器电路组成。 Atmel公司的生产的AT89C51单片机是一种低功耗1氐电压、高性能的8位 单片机,内部除CPU外,还包括128字节RAM,4个8位并行IO口,5个中断优 先级,2层中断嵌套中断,2个

24、16位可编程定时计数器,片内集成4K字节可改变 程序Flash存储器,具有低功耗,速度快,程序擦写方便等优点,完全满足本系 统设计需要。 系统通过P3连接功放电路从而驱动扬声器产生电子声乐,P1口连接门铃按 键。 3.1 原理简介原理简介 总体设计方案本系统采用 STC89C52 作为系统核心,音乐是由音符组 成不同的音符是由相应频率的振动产生产生不同的音频需要有不同固定周 期的脉冲信号。要产生音频林冲,只要算出某一音颉的周期 T,将此周期 T 除 2即为毕周期的时间。 我们利用单片机的内部定时器 TO,使其工作在计数器模式 MODEl 下韧 始化适当的计数值 THO 及 TLO 以计时这个半

25、周期时间每当计时时间到后就 将输出脉冲的 P1.0 口反相然后重复计时此半周期时间。 再对 P1.0 口反相就可在单片机 Pl.0 引脚上得到此频率的脉冲。P1.0 引脚 脉冲接 LM386 作音频功放,然后辅出到扬声器从而发出美妙的乐音6。 通过音频功放电路,把信号输出到扬声器,播出美妙的音乐。只要一按下 按钮,就会有音乐播出,等一首歌播放完毕后,当再次按下按钮,就会播放下 一首音乐,如此循环,知道再次出现第一首音乐为止。本系统可以奏出三首不 同旋律的歌曲。 为绘制此次电路图,采用 DXP2004 软件,Protel DXP2004 是 Altium 公司 于 2004 年推出的最新版本的电

26、路设计 软件,该软件能实现从概念设计,顶 层设计直到输出生产数据以及这之间的所有分析验证和设计数据的管理。当 前比较流行的 Protel 98、Protel 99 SE,就是它的前期版本。 10 Protel DXP 2004 已不是单纯的 PCB(印制电路板)设计工具,而是由 多个模块组成的系统工具,分别是SCH(原理图)设计、 SCH(原理图) 仿真、PCB(印制电路板)设计、 Auto Router(自动布线器)和 FPGA 设 计等,覆盖了以 PCB 为核心的整个物理设计。该软件将 项目管理方式 、原 理图和 PCB 图的双向同步技术、多通道设计、拓朴自动布线以及电路仿真 等技术结合在

27、一起,为电路设计提供了强大的支持。 与较早的版本 Protel99 相比,Protel DXP 2004 不仅在外观上显得更 加豪华、人性化,而且极大地强化了电路设计的同步化,同时整合了 VHDL 和 FPGA 设计系统,其功能大大加强了 7。 此电子音乐门铃的电路设计方案如图 3.1 所示 图 3.1 PCB 绘制电路图 3.2 主电路设计主电路设计 AT89C5l 单片机简介:单片机发展至今已有 20 余年的历史,形成了约 50 个 系列 400 余种机型,设计者不可能对每一种芯片都熟悉,因此在选择芯片时切 勿追赶时髦,使用从未接触过的芯片。 单片机控制系统的核心器件是单片机芯片,它提供的

28、功能和资源对整个应 11 用系统所需要的支持电路、接口硬件设计以及软件程序设计起着关键的作用。 ATMEL 公司以 E2PROM 技术和 Intel 公司的 80C31 单片机核心技术交换,从 而取得 80C31 核的使用权。ATMEL 公司把自身的优势,即先进的 Flash 技术和 80C31 核相结合,从而生产出 Flsah 单片机 AT89C51 系列8。 ATMEL89 系列单片机具有下列优点:内部含 Flsah 存储器,在系统开发过 程中,可以十分容易进行程序的修改,大大缩短了系统的开发周期9。 同时,在系统工作过程中,能有效地保存一些数据信息,即使外界电源损 坏也不影响到信息的保存

29、;输出引脚和指令系统与 80C51 兼容用 89 系列单片 机取代 80C51 时,可以直接进行代换;静态时钟方式,89 系列单片机采用静态 时钟方式,所以可以节省电能,这对降低产品的功耗十分有利;错误编程亦无 废品产生错误编程之后仍可以重新编程,直到正确为止,故不存在废品;可进 行反复系统试验到最优。而且随用户的需要和发展,还可以修改,使系统不断 适应用户的最新要求13。 ATMEL9 系列单片机是以 80C31 核构成的,它和 8051 系列单片机是兼容 的系列,故对于 8051 的用户来说,用 ATMEL 公司的 89 系列机进行取代 8051 的系统设计,是轻而易举的事10。 AT89

30、C51 是一种低功耗低电压、高性能的 8 位单片机,其输出引脚和指 令系统都与 MCS 一 51 兼容,双列直插封装图如 3.214所示。它具有下列主要 功能: 12 图 3.2 51 芯片引脚图 其最小系统电路如图 3.3 所示: 图 3.3 最小系统电路 13 其最小系统实物电路如图 3.4 所示: 图 3.4 最小系统实物电路图 3.3 音乐功放电路设计音乐功放电路设计 LM386 引脚图,特性及典型功放电路和芯片使用方法与自激啸叫防治措施介 绍。 3.3.1 概述 LM386 是美国国家半导体公司生产的音频功率放大 器,主要应用于低电压 消费类产品。为使外围元件最少,电压增益内置为 2

31、0。但在 1 脚和 8 脚之间增加 一只外接电阻和电容,便可将电压增益调为任意值,直至 200。输入端以地位参考,同 时输出端被自动偏置到电源电压的一半,在 6V 电源电压下,它的静态功耗仅为 24mW,使得 LM386 特别适用于电池供电的场合。 LM386 的封装形式有塑封 8 引线双列直插式和贴片式。其封装图如 3.5 所 示: 14 图 3.5 LM386 引脚图 3.3.2 特性 静态功耗低,约为 4mA,可用于电池供电,工作电压范围宽,4-12V or 5-18V, 外围元件少,电压增益可调,20-200, 低失真度。 LM386 电源电压 4-12V,音频功率 0.5w。LM38

32、6 音响功放是由 NSC 制造 的,它的电源电压范围非常宽,最高可使用到 15V,消耗静态电流为 4mA,当 电源电压为 12V 时,在 8 欧姆的负载情况下,可提供几百 mW 的功率。它的典 型输入阻抗为 50K。 3.3.3 应用电路 如图 3.6 所示 图 3.6 功放电路图 15 焊接功放电路实物图如 3.7 所示 图 3.7 功放电路实物图 喇叭实物图如 3.8 所示 图 3.8 喇叭实物图 16 3.3.4 芯片使用方法与自激啸叫防治措施 LM386 是电子产品和家庭业余制作中广泛使用的音频功率放大 Ic。其典型 应用电路如图 3.9 所示。在绝大多数场合或单独使用的情况下,LM3

33、86 比较正 常;但在和其它电路搭配之后,有可能产生自激和灵敏度降低等现象。就该 Ic 的使用方法和自激啸叫的防治措施介绍如下。 图 3.9 典型应用电路 1、入信号过强引起的自激啸叫。对于由于输入信号过强引起的啸叫,可在 LM386第、脚之间加阻容网络,批量应用时,R的阻值可由实验决定,或 将R代换为微调电位器w,若信号仍然过强,可将LM386第、脚悬空。 2、高频自激。防高频自激电路原理如图 3.10 所示。对高频自激引起的啸叫可 在信号输入端与地之间接一只 47oo#-o F 的瓷片电容,在第脚与地之间 接一只 l00 470opF 瓷片电容。作单端输人时,闲置的输入端不要悬空而要接地。

34、 3、低频自激。对于低频自激引起的啸叫可试在输入端与地之间接一只 6822kn 电阻,将第脚的滤波电容增大到 1000F,在制作印制板时, iM386 尽量靠近电源输出端。 4、在使用其它品牌产品(如(jI386、l(A386 等)时,有的 IC 会对高音频的灵敏度 17 有影响。可在其第脚与地之间接一只 01 F 瓷片电容,在第、脚间(注: 不同于第脚接地)接一保 01 F 瓷片电容11。 图 3.10 防高频自激电路原理图 18 4 系统软件设计系统软件设计 本设计需要用到的软件都是大众一般使用的软件,具有方便简易快捷的优 点,程序用 C 语言编程,也是编程的主流语言,方便日后修改与调试。

35、 4.1 软件介绍软件介绍 本系统程序开发需要用到 keil、STC-ISP V35 软件以及郭天祥 51 开发板。 以下是关于 keil 和 STC-ISP 的简介。 现代电子系统的基本核心是嵌人式计算机系统,而单片机是最典型、最广 泛、最普及的嵌入式系统。学好单片机,灵活应用 Keil 软件在电子、科技领域 灵活应用单片机技术,将是带动国家科技发展、增强国家综合实力的必经之路。 Keil 软件是目前最流行开发 MCS-51 系列单片机的软件,这从近年来各仿 真机厂商纷纷宣布全面支持 Keil 即可看出。Keil 提供了包括 C 编译器、宏汇编、 连接器、库管理和一个功能强大的仿真调试器等在

36、内的完整开发方案,通过一 个集成开发环境(uVision)将这些部分组合在一起。运行 Keil 软件需要 Pentium 或以上的 CPU,16MB 或更多 RAM、20M 以上空闲的硬盘空间、 WIN98、NT、WIN2000、WINXP 等操作系统。 掌握 Keil 软件的使用对于使用 51 系列单片机是十分必要的,即使不使用 c 语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工 具也会令单片机开发事半功倍。12 STC-ISP 是单片机下载编程烧录软件,是针对 STC 系列单片机而设计的, 可下载 STC89 系列、12C2052 系列和 12C5410 等系列的 ST

37、C 单片机,使用简 便,现已被广泛使用。 程序控制流程图如图 4.1 所示。 19 准备 调用初始化程序 读 P3 口, 判断有无按 键按下 调用初始化程序 调用延时子程序 读 P3 口, 判断有无按 键按下 调用初始化程序 调用延时子程序 调用延时子程序 调用播放子程序 调用播放子程序 读 P3 口, 判断有无按 键按下 调用初始化程序 读 P3 口, 判断有无按 键按下 调用初始化程序 读 P3 口, 判断有无按 键按下 调用初始化程序 读 P3 口, 判断有无按 键按下 调用初始化程序 调用播放子程序 图 4.1 程序控制流程图 20 4.2 主程序设计主程序设计 本系统首先建立音乐,把

38、音乐的音符找出,建立各个音符的常数表,如下 图 4.2: 图 4.2 音符常数表 编写程序时,我们把表建立在一个数组内,每个发音符使用一个字节,字 节高四位(简谱码)代表音符的高低,低四位(节拍码)代表音符的节拍。如 果一拍为 0.4 秒,1/4 秒就是 0.1 秒,只要设定延时时间就可以求得节拍的时间。 假设 1/4 拍为 1 DELAY,则 1 拍应该为 4 DELAY,以此类推。所以只要求得 1/4 拍的 DELAY 时间,其余的节拍就是它的倍数。1/4 拍的延时时间在此我们 设为 125 毫秒。 主文件程序由主程序、延时程序以及歌曲程序组成。 主程序首先对所有端口进行初始化操作,接着进

39、入不断循环部分,直到按 键按下,进入防止抖动程序,如果不是抖动,则进入音乐播放程序,直到音乐 播放完毕,再次进入等待按键按下部分,直到第二次按键按下,再次进入防止 抖动程序,如果不是抖动,则再次进入音乐播放程序,直到音乐播放完毕,直 到第三次按键按下,最后一次次进入防止抖动程序,如果不是抖动,则最后一 次次进入音乐播放程序,直到音乐播放完毕,回到循环起点,等待第四次按键 按下部分,如此类推。程序如下: main() InitialSound(); while(1) if(key=0) 21 Delay1ms(10); if(key=0) Play(Music_Girl,0,3,360); do

40、 while(key=1); if(key=0) Delay1ms(10); if(key=0) Play(Music_Same,0,3,360); do while(key=1); if(key=0) Delay1ms(10); if(key=0) Play(Music_Two,0,3,360); 延时程序部分。为防止按键抖动,对门铃进行有效保护,设计了防止抖动 延时程序,程序如下: void Delay1ms(unsigned int count) 22 unsigned int i,j; for(i=0;i= 2; /低音 if (SM=3) CurrentFre #include “S

41、oundPlay.h“ void Delay1ms(unsigned int count) unsigned int i,j; for(i=0;i 11) j = j-12; NewFreTabi = FreTabj*2; else NewFreTabi = FreTabj; if(Octachord = 1) NewFreTabi=2; else if(Octachord = 3) NewFreTabi= 2; /低音 if (SM=3) CurrentFre 0;i-) /发规定长度的音 while(TF1=0); TH1 = Sound_Temp_TH1; TL1 = Sound_Temp_TL1; TF1=0; if(LDiv2!=0) TR0=0; BeepIO=0; for(i=LDiv2;i0;i-) /音符间的间隔 while(TF1=0); TH1 = Sound_Temp_TH1; TL1 = Sound_Temp_TL1; TF1=0; Point+=2; Tone=SoundPoint; 40 Length=SoundPoint+1; BeepIO = 0; /* * #endif

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1