基于单片机的音乐门铃设计.doc_第1页
基于单片机的音乐门铃设计.doc_第2页
基于单片机的音乐门铃设计.doc_第3页
基于单片机的音乐门铃设计.doc_第4页
基于单片机的音乐门铃设计.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、绪论随着科学技术的不断发展,二十一世纪已经是科技信息的时代,近三十年,数字技术、电子技术、计算机技术,以及传感器技术和永磁材料技术等的发展,积极推动了各种产业的发展,单片机等技术有了长足的发展,人们已经进入了电脑信息时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类类似计算机的东西,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的-单片机。顾名思义,这种计算机的最小系统只需用一片集成电路,即可进行简单运算和控制。它的出现是近代计算机技术发展史上的一个重要里程碑,因为它体积小、拆装方便、灵敏度高等优点,通常都藏在被控机械的“肚子”里。它在这个装置中,起着有如人类头脑的作用,如果它出了损坏,整个装置就相当于瘫痪了。单片机具有体积小、功能强、灵敏度高、抗干扰能力强、应用面广等优点,目前正以前所未见的速度取代着传统复杂的电子线路构成的经典系统,蚕食着传统数字电路与模拟电路固有的领地。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理及结构的最佳选择。现在,这种单片机的使用领域已十分广泛。彩电、玩具、冰箱、空调、录像机、VCD、遥控器、游戏机、电饭煲等等地方,它的影子已是无处不见了,单片机早已深深地融入我们每个人的生活之中。单片机能大大地提高这些产品的智能性、易用性及节能性等主要性能指标,给我们的生活带来舒适和方便的同时,在工农业生产上也极大地提高了生产效率和产品质量。2、单片机的基础知识2.1认识单片机单片机又称单片微控制器MCU,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲,一块芯片就成了一台计算机。MCS-51单片机是美国INTEL公司于1980年推出的产品,与MCS- 48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,MCS-51单片机可以算是相当成功的产品,一直到现在,MCS-51系列或与其兼容的单片机仍是应用的主流产品,各高校及专业学校的培训教材仍以此单片机作为代表进行理论基础学习。2.2 单片机的应用领域 单片机被广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备、网络与通信、智能化管理及过程控制等领域。2.2.1在智能仪器仪表的应用单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。2.2.2在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭煲、洗衣机、电冰箱、空调机、彩电、音响视频器材、再到电子秤量设备,五花八门,无所不在。2.2.3 在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等等。2.2.4 在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机、电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。此外,单片机在工商、金融、科研、教育、国防航空等领域都有着十分广泛的用途。2.3 单片机的发展趋势现在可以说单片机的发展是百花齐放,百家争鸣的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有和它不兼容的,但它们都各具特色,互成互补,为单片机的应用提供了广阔的天地。纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:(1)低功耗 MCS-51系列的8031推出时的功耗达630mW,而现在的单片机普片都在100mW左右,随着对单片机功耗要求越来越低,现在的各单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺)。像80C51就采用了HMOS(即高密度金属氧化物半导体工艺)。CMOS虽然功耗较低,但由于其物理特征决定其工作速度不够高,而CHMOS则具备了高速和低功耗的特点,这些特征,更适合于要求低功耗的场合,譬如电池供电的应用场合。所以这种工艺将是今后一段时期单片机发展的主要途径。(2)微型单片化现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中SMD(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。(3)主流与多品种共存现在虽然单片机的品种繁多,各具特色,但仍以80C51为核心的单片机占主流,兼容其结构和指令系统的有PHILIPS公司的产品,ATMEL公司的产品和中国台湾的WINBOND系列单片机。所以C8051为核心的单片机占据了半壁江山。而MICROCHIP公司的PIC精简指令集(RISC)也有着强劲的发展势头,中国台湾的HOLTEK公司近年的单片机产量与日俱增,与其低价质优的优势,占据一定的市场分额。此外还有MOTOROLA公司的产品,日本几大公司的专用单片机。 在一定的时期内,这种情形将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补,相辅相成、共同发展的道路。2.4 单片机的可靠性技术伴随着半导体技术的发展,单片机本身的设计中不断的采用一些新的抗干扰技术,使单片机的可靠性不断提高。除选则抗干扰能力强的单片机,单片机系统中其他辅助元件也至关重要,一些抑制干扰的辅助元件的使用有助于提高系统的可靠性。此外,单片机系统在电路设计、印制板电路设计、布线与制造工艺、系统安装时有无良好的接地等,都直接影响应用的可靠性能。2.4.1 单片机干扰来源首先,是来自放电噪声:主要是雷电、静电、电动机的电刷跳动、大功率开关触点开、断等放电产生的干扰。其次,是来自高频振荡噪声:主要是中频电弧炉、感应电炉、开关电源、直流交流变换器等产生高频振荡时形成的噪声。最后,是来自浪涌噪声:主要是交流系统中电动机启动电流、电炉合闸电流、开关调节器的导通以及晶闸管变流器等设备产生涌流引起的噪声。2.4.2单片机可靠性技术主要表现2.4.2.1单片机自身的抗干扰措施 (1) 外部时钟是高频噪声源处能引起本系统干扰外,还能产生外界干扰,使电磁兼容检测不能达标。在对系统可靠性要求很高的应用系统中,选用频率低的单片机是降低系统噪声的原则之一。 (2) 低噪声系列单片机改变了传统的集成电路设计中,电源和地对称分布的方法,降低了穿过整个硅片的电流,这样也可使更多元件方便安装及驱动。 (3) 时钟检测电路、看门狗技术及低电压复位。检测系统时钟是当发生系统时钟停振时,产生系统复位信号以恢复系统时钟,是单片机提高系统可靠性措施之一。 (4) 看门狗技术是检测应用程序中一段定时中断服务程序的运行状况。当程序不工作时判断为系统故障,从而产生复位。低电压复位技术是用于检测单片机电源电压,当低于某一值时复位,随着技术发展,现在电源电压值如(5V、3.3V、2.7V 、2.2V、1.8V)。 (5) EFT和软件方面的措施,交替使用施密特电路和RC滤波器,使如正弦波受到干扰时产生的毛刺的技术就是EFT技术。单片机本身也有一些抗干扰的考虑。写定了一些防止系统受到干扰而产生的,非法指令或寻址发生的程序,使CPU不易出错。2.4.2.2抗干扰的控制元件和主要措施 (1) 元器件的选择每一个集成电路电源、地之间配置去耦电容,用以滤掉来自电源的高频噪声,以独特的石英电容、瓷片电容为好。在数字、模拟、大功率驱动区的储能电容和电源间配置抑制高频的电感,同时还应有自动恢复保险丝、防雷击器件等。 (2) 软件抗干扰主要措施常用的软件抗干扰技术有:数字滤波、信息传送过程的自动检验、系统运行状态监视与发生故障时的自动恢复等。(3) 抗干扰的其它手段主要考虑到电源噪声对单片机的影响;I/O口和噪声源之间应隔离;晶振外壳的接地方法;数字区和模拟区隔离;在单片机I/O口、电源线、电路板连接线等关键地方使用抗干扰元件如磁珠、磁环、电源滤波器、屏蔽罩,这样可显著提高电路的抗干扰性能;在速度能满足要求的前提下,尽量降低单片机的晶振和选用低速数字电路。印制电路板的布线工艺(本着控制噪声源、降低噪声传播与耦合、尽量减少噪声的吸收这三大原则)。一块多板机印制电路板,它会充分的考虑元件的抗干扰能力。2.5 单片机的发展史单片机自问世以来,性能不断的提高和完善,其资源不仅能满足应用场合的需要,而且具有集成度高、功能强、速度快、体积小功耗低、使用方便、性能可靠、价格低廉等优点,因此,在工业控制、智能仪表仪器、数据采集和处理、通信技术、网络系统、国防工业、高级计算器具、家用电器等领域应用日益广泛,并且正在逐步现有的多片微机应用系统,单片机的潜能日益被人们所重视。特别是当前用的CMOS工艺制成的各种单片机,由于功耗低,使用的温度范围大、抗干扰能力强、能满足一些特殊的场合,更加大了单片机的应用领域,也进一步促进单片机技术的发展。单片机的发展主要经历了3各阶段:第一阶段(1971-1978):初级单片机,以MCS-48系列为代表。有4位、8位CPU,并行I/O口,8位定时/计数器,并行口、中断处理比较简单,RAM、ROM容量较小,寻址范围不超过4KB。第二阶段(1978-1983):单片机普及阶段,以MCS-51系列为代表。是8位CPU,片内RAM、ROM容量加大,寻址可达64KB,增加了串行口,多级中断处理系统,16位定时/计数器。第三阶段(1983年以后):16位单片机阶段,以MCS-96系列为代表。是16位CPU,片内RAM、ROM容量进一步增大,增加了AD/DA转换器,8级中断处理功能,实时处理能力更强,它允许用户采用面向工业控制的专用语言,如C语言等。总之,单片机发展可归纳为以下几个方面:(1) 增加字长,提高数据精度和处理速度;(2) 改进了制作工艺,提高单片机的整体性能;(3) 由复杂的指令集CISC转向简单指令集RISC技术;(4) 多功能模块集成技术,使一块“嵌入式”芯片具有多功能;(5) 微处理器与DSP技术相结合;(6) 融入了高级语言的编译程序;(7) 低电压、宽电压、低功耗。目前,国际市场上8位、16位单片机系列已有很多,32位的单片机也已进入了实用阶段。随着单片机的技术的不断发展,新型单片机还将不断涌现,单片机技术正以惊人的速度向前发展着。3、硬件设计3.1 硬件部分的介绍图3-1 MCS-51系列单片机3.1.1 AT89S52单片机其内部包含的功能部件及技术参数如下:(1) 一个有运算器和控制器组成的8位CPU; (2) 片内含8KB Bytes ISP(In-Insysterm programmable)的可反复擦写1000次Flash程序存储器;(3) 256B的内部数据存储器;(4) 45.5V的工作电压; (5) 最高工作频率33 MHz; (6) 32个可编程I/O引脚; (7) 3个16位可编程计数器/定时器; (8) 8个中断源,2个优先嵌套中断结构; (9) 1个全双工UART串行通信口,看门狗(WDT)电路; (10) 一个片内时钟振荡器; (11) 双数据指针使得程序运行更快; (12) 低功耗空闲和掉电模式 、掉电后中断可唤醒。 AT89S52功能特性概述: AT89S52提供以下标准功能:一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用ATMEL公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。在本次设计中选用了适用性强的AT89S52,同时,AT89S52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式下CPU暂停工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。AT89S52在掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。 AT89S52集成了CPU、ROM、RAM定时器、计数器、I/O等各功能接口,并由内部总线把这些连接在一起。同时,该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。 AT89S52基本结构如图3-2所示: P0驱动器缓冲器程序地址寄存器寄存器2P2驱动器ALU中断、串行口和定时器PC+1堆栈指针ACCRAM地址储存器PSWP0锁存器内存寄存器1RAM看门狗P2锁存器寄存器程序计数器PC双重数据指针P3驱动器ISP PORTP3锁存器PROGRAM LOGICP1驱动器P1锁存器OSC定时控制指令寄存器P0.0-P0.7P2.0-P2.7VccGND3029319内部振荡器P1.0-P1.7P3.0-P3.7图3-2 AT89S52基本结构框图单片机的引脚如图3-3所示:图3-3 AT89S52单片机芯片引脚图引脚功能说明:VCC(40):电源电压GND(20):接地P0口(3239):一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流驱动8个TTL逻辑门电路,对端口P0置“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部含有的上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1(18):一个具有内部上拉电阻的8位双向I/O口,P1 输出缓冲器能驱动8个TTL逻辑电平。对P1 端口置“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 Flash编程和程序校验期间,P1接收低8位地址。引脚号第二功能:P1.0 T2(定时器/计数器T2的外部计数输入/时钟输出) P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用) 与AT89S51不同之处是,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2 的触发输入(P1.1/T2EX)参见表3-1:表3-1 P1.0和P1.1的第二功能引脚号功能特性P1.0T2(定时/计数器2外部计数脉冲输入/时钟输出)P1.1T2EX(定时/计数2捕获/重装载触发和方向控制)P2口(2128):一个带内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVXDPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVXRI指令)时,P2口输出P2锁存器的内容。FLASH编程或校验时,P2亦接收高位地址和一些控制信号。P3(1017):一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表3-2所示:表3-2 P3口第二功能端口引脚第二功能说明P3.0RXD串行输入口P3.1TXD串行输出口P3.2INT0外中断0P3.3INT1外中断1P3.4T0定时/计数器0P3.5T1定时/计数器1P3.6WR外部数据存储器写选通P3.7RD外部数据存储器读选通此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。RST(9):复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平(由低到高跳变),将单片机复位。ALE/PROG(30);当访问外部程存储器或数据存储器时,用于输出允许地址锁存信号。8051单片机可以寻址应有16条地址线,其中低8位的地址线与数据线共用P0口,在发出低8位的地址信号时,ALE有效,当ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲,所以有时可以加以利用。这个引脚另一功能是在EPROM编程时,作为编程脉冲的输入端。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN(29):外部程序存储器读选通信号输出端,低电平有效。当AT89S52接收外部程序存储器取指令(或数据)时,每个机器周期两次PROG有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号(即PSEN无效)。EA/VPP(31):内部程序存储器和外部程序存储器选择端。外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。若EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。XTAL1(19):内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。当采用外部振荡器时,此引脚接外部振荡源。XTAL2(18):内部振荡电路反相放大器的输出端,是外接晶体的另一个引脚。当采用外部振荡器时,此引脚接地。Flash存储器编程时,该引脚允许加上12V的编程电源Vpp。以上对单片机的引脚作了简单的介绍,现将单片机常用系统作一下说明,单片机的常用系统是指单片机要工作所必须保证的最低配置,也是设计必须的一些硬件,如图3-4所示:AT89S52图3-4 单片机常用系统3.1.2 时钟周期时钟周期又称为状态周期,用S表示,是振荡周期的两倍。每个时钟周期分为P1和P2两个节拍,P1节拍完成算术逻辑操作,P2完成内部寄存器间数据的传递。S=2个振荡周期机器周期的基本操作周期1个机器周期=2个时钟周期=12个振荡周期指令周期每行一条指令所占用的全部时间。一个指令周期通常由14个机器周期组成。AT89S52系统中,有单周期指令、双周器指令等。如:外接晶振频率为f=12MHz,则四个基本周期的具体数值为:振荡周期=1/12s时钟周期=1/6s机器周期=1s 指令周期=14s3.1.2 放大器通常我们用的三极管,其放大倍数都是不相同的,我们选择放大器时,可以用万用表进行测出其放大系数:S9014A的放大倍数在60150之间,S9014B放大倍数在100300之间,S9014C在200600间,S9014D在4001000间。且A、B、C类放大器实际测量一般都是偏向大数的,D类多为中间值。我在这次设计中,根据需要我选用了S9014C型放大器。其结构示意图如图3-4:图3-4 三极管S9014C 该三极管为NPN型结构,以上是NPN型三极管示意图,它是由两个N型半导体和中间一块P型半导体构成。由图可见发射区和基区之间形成的PN结为发射极,而集电区和基区构成的PN结为集电极,三个引脚分别为发射极E、基极B、集电极C。3.1.3 扬声器 这次设计我选用了8欧姆、0.5W的扬声器。其价格便宜、使用方便、易于安装等特点,在很多行业都应用广泛。(例如:电子门铃、在学校的实验器材室也很多,收音机等也会用到这类器材)3.1.4 电源部分音乐门铃所需要的电源很小,仅仅需要5V的电源足矣,还可以使用5V的蓄电池提供。只要将电源的正极同单片机的Vcc接口直接连接,然后将电源的负极和单片机的Vss接口直接连接就可以了。3.2 硬件电路图 硬件电路图见附表A4、软件的编写及分析4.1 设计的原理根据我们所学的有关单片机的知识,我们可以利用中断系统来控制音乐门铃,控制音乐的播放程序。同时加内部晶振工作原理,就可以使其它信号转换为电信号输出,这样来实现整个系统的工作。当有人按下门铃时,音乐程序开始运行,扬声器就立马响起音乐,在音乐响起时,当再有键按下时,且不受影响。当一首音乐播放完,按下门铃,且在播放第二首音乐。当主人来应答时,如果他不希望音乐继续播放可以按下控制停止按钮。信号传给单片机时,无论门铃是否在播放音乐,都要执行该程序。4.1.1 设计的设定参数要实现一个设计的正常运行,必须给他设定必要的参数,就必须正确的选择控制寄存器,我在设计中选择了特殊功能寄存器TMOD,其地址为89H,由他来决定T0和T1的工作方式,在使用定时器/计数器之前,要根据需要,对他进行初始化。TMOD的各个位定义如表4-1所示:表4-1 TMOD的各个位定义D7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M0T1T0其中高四位表示控制定时器T1,低四位控制定时器T0。M1、M0:工作方式选择位。定时器/计数器具有4种工作方式,由M1、M0位来定义,如表4-2所示:C/T:选择计数器或定时器的功能,决定哪一个脉冲源计数,C/T=1为计数器的功能,C/T=0是定时器的功能,GATE:选通控制,GATE=0,由软件控制TR0和TR1位启动定时器,定时计数器启停仅受TR1的控制;GATE=1,由外部中断引脚INT0(P3.2)和INT1(P3.3)输入电平分别控制T0和T1运行。表4-2 定时器/计数器工作方式M1 M0工作方式功能说明0 0方式013位定时器/计数器0 1方式116位定时器/计数器1 0方式2可自动再装入的8位定时器/计数器1 1方式3把定时器/计数器0分成2个8位的计数器,关闭定时器/计数器本设计中选用T0方式1来控制音乐程序,设计中的主要参数有:C/T=0、 GATE=0、 M1、M0等于1或0。由于执行音乐程序和停止程序需要开关控制,所以中会用到中断系统,在单片机中会用到三类五个中断源,其中两个为外部中断请求INT0和INT1,由(P3.2和P3.3输入),两个为片内定时器/计数器T0和T1的溢出中断请求YF0和TF1,另外一个为片内串行口中断请求TI和RI。这次设计中我用到了外部中断源INT1(P3.3)口控制停止程序的运行,用定时器T0(P3.4)口控制音乐程序的运行。在上述过程中我已经阐述过,当音乐程序运行时若有停止信号输入时,且运行程序,这就需要中断优先级的判断,中断优先级越高的就会先运行。中断优先级寄存器(IP)如表4-3所示。表4-3 中断位地址分布IP/PSPT1PX1PT0PX0位地址BFHBEHBDHBCHBBHBAHB9HB8H因为设计中外部中断1为高优先级,所以PX1=1。4.1.2 系统流程图流程图如图4-1所示:对TMOD赋初始值将第一首音乐的节拍码赋予(30H)中将音符的简谱码赋予DPTR中查表取值P3.4=0?A=0?播放第(30H)首将后面的音乐节拍码赋予(30H )YYNYNY开始图4-1 系统设计流程图4.2 音乐程序4.2.1 音乐程序的设计原理如果使用单片机控制音乐,那么它所控制的只能是单音频率,所以用单片机演奏乐曲只需要弄清楚两个概念即可。也就是“音调”和“节拍”这两个概念。音调表示一个音符唱多高的频率,节奏表示一个音唱多长的时间。音乐中所说的音调就是说,1、#1、2、#2、3、4、#4、5、#5、6、#6、7这十二个音调,它的分度基本上是以对数关系来划分的,所以,我们只要知道了十二个音符的音高,也就是基本音调的频率,我们就可以根据倍频程的关系得到其他基本音调的频率。通常采用的方法就是通过单片机的定时器定时中断,将单片机上的对应交流喇叭的I/O来回取反,或者说来回取零、置位,从而让交流喇叭发出声音。为了让单片机控制不同的声音,不同频率的音乐,我们要将定时器预置不同的定时值才可以实现。关于音乐的节奏,我们还可以举例来说明。在一张乐谱中,我们经常会看到一些表达式,用来表示节拍的。如C=,其中就是表示接拍的。“新年好”大家一定很熟悉的,其中有一段简谱是这样的:1=C 3 3 3 11 3 5 5,其中的3 3 3为一拍,1各为一拍,1 3 5为一拍,5为一拍,一共四拍。其中既有四分音符,又有八分音符。那么一般来说一拍应该唱多长呢?如果乐曲没有说明,一拍时常大约为400500ms。我以一拍400ms为例,则当以四分音符为节拍,四分音符时长为400ms,八分音符时长为200ms,十六分音符时长为100ms。因此在单片机上控制一个音符唱多长,可采取循环延时的方式来控制实现,首先,我们应确定一个基本时长的延时程序。如果它是以十六分音符的时长为一个基本延时时间,那么,对于一个音符,十六分音符只需调用一次延时程序,如果它为八分音符,则需要调用两次延时程序,如果它为四分音符,就需要调用四次延时程序,其他的可以以此类推。按照这样的方法,对音符音调和节拍的确定方法,我们就可以在单片机上进行音乐演奏了。4.2.2 音乐程序的编写原理要在单片机上演奏音乐,我们还需要搞清楚它的原理。单片机演奏的原理是,通过控制定时器的定时来产生不同的方波,驱动交流喇叭发音后就发出不同音节的声音;再利用延时来控制发音时间的长短,即可控制音调中的节拍,把乐谱中的音符和相应的节拍变换为定时常数或延时常数,做成数据表格存放在储存器中,有程序查表得到定时常数或延时常数,分别用以控制定时器产生方波的频率和发出该频率方波持续的时间。当延迟时间到时,再查一下音符的定时长数和延时常数,依次进行下去的话,就可以自由演奏出悦耳动听的音乐了。下面我就以12MHz晶振为例,里列出高低音符与单片机计时器T0相关的计数值,如表4-4所示:表4-4 音符、频率、简谱码关系音符频率(HZ)简谱码(T值)音符频率(HZ)简谱码(T值)低1 DO26263628# 4 FA#74064860#1DO#27763731中 5 SO78464898低2RE29463835# 5 SO#83164934# 2 RE#31163928中 6 LA88064968低 3 M33064021# 693264994低 4 FA34964103中 7 SI98865030# 4 FA#37064185高 1 DO104665058低 5 SO39264260# 1 DO#110965085# 5 SO#41564331高 2 RE117565110低 6 LA44064400# 2 RE#124565134# 646664463高 3 M131865157低 7 SI49464524高 4 FA139765178中 1 DO52364580# 4 FA#148065198# 1 DO#55464633高 5 SO156865217中 2 RE58764684# 5 SO#166165235# 2 RE#62264732高 6 LA176065252中 3 M65964777# 6186565268中 4 FA69864820高 7 SI196765283我们还可以为这些音符建立一个表格,有助于单片机通过查表的方式获得相关音符的相应的数据:TABLE: DW 63628,63835,64021,64103,64260,64400,64524DW 63731,63928,0,64185,64331,64463DW 64580,64684,64777,64820,64898,64968,65030DW 64633,64732,0,64860,64934,64994DW 65058,65110,65157,65178,65217,65252,65283DW 65085,6 5134,0,65198,65235,65268DW 0用定时器T0方式1来产生歌谱中各音符对应频率的方波,由P1.0输出驱动交流喇叭发声。节拍的控制可以调用延时子程序DELAY(延时100ms)的次数来实现,现以每拍400ms的节拍时间为例,那么一个节拍需要循环调用DELAY延时子程序四次,同样的道理,半拍就需要2次。音乐的节拍,以一个节拍为单位(C调),如表4-5所示:表4-5 音乐节拍延时程序曲调值DELAY曲调值DELAY调4/4125ms调4/462ms调3/4187ms调3/494ms调2/4250ms调2/4125ms4.2.3 音乐程序的编写与分析 音乐程序的编写见附表B。4.3 停止程序4.3.1 程序编写原理当P1.0输出为高电平1时,晶体管导通,音乐播放不受影响;当P1.0输出低电平0时,三极管截止,交流喇叭停止鸣叫。4.3.2 程序的编写下面是连续交流喇叭的鸣音控制的子程序:INT1: NOPLOOP: CLR P1.0 LCALL DELAY2 AJMP LOOP RETIDELAY2: MOV R5,#64HLOOP7 MOV R6,#60HLOOP8: MOV R7,#01HLOOP9: DJNZ R7,LOOP9 DJNZ R6,LOOP8 DJNZ R5,LOOP7 RET5、软件部分的调试5.1 调试工具5.1.1 伟福仿真软件使用WAVE6000软件在以前的版本就基础上增加了很多新的功能,特别是窗口管理、项目管理和源文件管理编辑工具做了较大的改善。在WAVE6000环境下所有的窗口均可以放在窗口的同一个区域,过窗口可以直接的转换,节省了窗口面积,使窗口管理更有效。WAVE6000还增强了项目管理和源文件编辑方面的功能,使得项目、文件之间的切换更方便,可以有效的后退和前进,修改程序更方便。新增的书签窗口和断点窗口,可以有效的管理书签和断点,所以程序员无需在众多断点和代码中进行逐行查询,断点信息和书签信息在各自的窗口中便一目了然了。5.1.2 Proteus仿真软件 在我们所学的单片机课程教学中,所用的学习软件Proteus仿真软件,可以虚拟的进行单片机仿真。它的实践性环节很强,具有系统资源丰富、硬件投入少、形象、直观等特点,它更好的解决了我们学生在学习过程中遇到的实际性操作问题,很大程度的提高了我们的教学水平,及学习效果。同样在科研中单片机仿真软件Proteus也起着很大的作用,它可以很方便的观察“细节”,并大大的提高产品的性能,提高科研研发效率。通过了解,在一些工具书中,单片机系统仿真软件工具Proteus在教学和科研中的应用,通过事例分析,显示了这种软件对提高科学研究效果及效率,提升研究工作者的“装备水平”具有莫大的益处。当然,每一种软件都有它固有的缺陷与不足之处,它们的仿真精度是有限的,而且不是所有的器件都能找到与它相匹配的仿真软件模型,用仿真器和开发板当然是最好的选择,单片机系统仿真软件,对单片机爱好者、做简单的单片机研发产品,固然是比较好的选择。Proteus软件与其它仿真软件所不同的是:它不仅能仿真单片机的CPU的工作情况,还能仿真到单片机的围电路工作情况,以及在没有单片机参加的其他工作电路。因此在仿真和程序调试时,关心的不再是某些语句的执行时单片机寄存器和存储器的改变,而是从工程的就角度直接看程序的运行和电路工作的过程和结果。对于这样的仿真试验,从某种意义上讲,是弥补了实验和工程应用脱节的矛顿和现象。5.2 下载器这次设计使用了AT89S52下载器:它由连接电缆和接口板组成,接口板的原理图如图5-1所示。其中4、5脚控制U201芯片,在其低电平时允许数据正常传输,高电平时,74HC244的输出呈高阻状态;6脚输出数据到单片机;7脚是时钟信号;9脚是输出复位信号;10脚是接收从单片机接收的信号。连接器CN201是标准的10针IDC插座,其各项功能如图5-2所示:图5-1 下载器原理图 下载电缆采用扁平电缆,两头有插座,一端接下载器,一端接单片机的排针cNC MOSINC MISONCNCLCKRSTGND图5-2 插座功能图结论在本次课程设计中,我基本上完成了学校对我们的最基本的要求,我学会了很多的东西,我深刻的感受到,毕业设计才真正的是检验我们这三年在学校到底有没有学到东西的最好的试金石,在设计中,各个学科的东西可能都会被用到。这对我们学生的综合素养要求比较高,在运用到所学知识时,会发现、提出、分析和解决比较实际的问题,是锻炼我们的良好时机。是对学生实际的动手能力的大考验,和新要求,这能使我们从书本中走出来,与实践相结合。这毕竟是第一次做设计,难免会遇到过各种各样难以解决的问题,同时在设计的过程中也发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说三极管NPN管脚不懂怎么放置,不懂分得二极管的正负极,对单片机汇编语言掌握得不好等等。举几个简单的例子:在Proteus软件安装上是经过了几次试验的;在选择放大器上,我也知不知道怎么做,在老师的指导下才最终确定用什么样的放大器;在选用5V电源的时候,也不知所措;还有在振动传感器的选择;扬声器;电源等方面也是同样,尤其是在AT89S51、AT89S52的选择上,由于不太精通,所以很困难,在实际中遇到很多类似的事情。这次课程设计之后,在一定程度上使以前所学过的知识得到了重新温故。 我的设计现在基本成型了,通过这次粗略的学习设计操作中,我学到了很多,发现更多以前的学习方法中永远都无法发现的问题,虽然、设计中我会觉得,内容繁多而且烦琐,但我收获颇多,也提高了我查阅文献资料、手册以及电脑制图等方面的专业能力。通过对整体的掌控;对局部的取舍;对细节的斟酌处理,都使我得到了锻炼,经验得到了丰富,并且在意志力,抗压能力及耐力等方面也都得到了不同程度的提升。在整个学习设计中,要用到很多学科的知识,还会用到很多的应用软件,各种系统的应用选择,各种芯片的选择,以及一些具体的数据分布表,定时、延时程序,必要的电路图等等内容都是一个不断学习的过程,在和同学交谈交流、相互讨论的过程中逐步的适应设计的环境,向老师的请教过程中我茅塞顿开,老师的细心指导和不倦教诲中,更使我受益颇多。致谢这次课题设计实际上是检验了自己,是对这三年来的学习成果的一个总结。在这里我要向所有真诚的关心和帮助我的良师益友表示衷心的感谢。首先,最感谢的是王信老师和覃智广老师,他们一直在指引着我,给我指明了前进的方向,花费了很多的心血,极大的帮助和支持了我,无论从是选材、总体构思、还是设计的流程以及设计格式的修改、最后的定稿完成,都为我提出了许多宝贵的建议,才使得我个人的课题设计得以如期完成。宜宾职业技术学院给我们提供这次课题设计,让我们检验了自己,它精良的硬件设施和许多优秀的老师,更为我们设计的完成提供了很大的帮助。我还应感谢拥有严谨的治学态度、渊博的知识、敏锐的思维方式、侮人不倦的师者们,老师们高深精湛的造诣与严谨求实的治学精神,将永远激励着我,所有教导过我的老师,谢谢你们的悉心教导,才使我得以完成此课题,才使我得以在以后的征程中翱翔。在设计的过程中,离不开周围的同学友人,离不开向你们请教沟通,我也得感谢你们,感谢你们给我的帮助。最后,向百忙之中抽出时间,对我的设计进行评审的专家老师们,示以诚挚的谢意。参考文献1朱定华.单片机原理及接口技术

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论