毕业设计(论文)单片机歌曲演奏的设计.doc

上传人:仙人指路1688 文档编号:4017453 上传时间:2023-04-01 格式:DOC 页数:33 大小:1,001KB
返回 下载 相关 举报
毕业设计(论文)单片机歌曲演奏的设计.doc_第1页
第1页 / 共33页
毕业设计(论文)单片机歌曲演奏的设计.doc_第2页
第2页 / 共33页
毕业设计(论文)单片机歌曲演奏的设计.doc_第3页
第3页 / 共33页
毕业设计(论文)单片机歌曲演奏的设计.doc_第4页
第4页 / 共33页
毕业设计(论文)单片机歌曲演奏的设计.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《毕业设计(论文)单片机歌曲演奏的设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)单片机歌曲演奏的设计.doc(33页珍藏版)》请在三一办公上搜索。

1、摘 要 本文是应用STC89C52单片机来设计硬件电路,以此控制音乐的产生播放。并利用C语言进行程序设计。通过控制单片机内部的定时器来产生不同频率的方波,驱动蜂鸣器发出不同音调,再利用延迟来控制发音时间的长短,以此来表示不同音阶的变化。蜂鸣器借助这种变化来产生音乐。本设计是8051芯片的电路为基础,外部加上功率放大器、放音设备,以此来实现音乐演奏控制器的硬件电路,通过软件程序来控制单片机内部的定时器使其演奏出设定的音乐。利用琴键控制定时器的开中断和闭中断,即实现发音和闭音。在此期间再通过对定时器的定时时间进行控制来产生不同频率的方波,驱动蜂鸣器发出不同音阶的声音。该软、硬件系统具有很好的通用性

2、,很高的实际使用价值,为广大单片机和音乐爱好者提供了很好的借鉴。关键词:单片机;音乐;C语言;蜂鸣器AbstractThis paper is the application of STC89C52 microcontroller to design the hardware circuit to control the generation of music playing by using C language program design. Through the control of the single chip microcomputer timer to produce diff

3、erent inside the frequency of square wave, drive speaker tones, and then delay to control the pronunciation of the length of time, so as to indicate different scales of change. This change through the buzzer to generate program of musicThis design is 8051 chips based circuit, external plus power amp

4、lifier and let the sound equipment, so as to realize the music playing hardware circuit, through the software program to control of the single chip microcomputer timer internal play a set of music. Using the keys of the timer control open interrupt and closed interrupt, pronunciation and closed soun

5、d is implemented. In this period again through the timing of timer control time to produce different frequency of square wave, drive out the sound of different scales buzzer.The software and hardware system has a good generality and high practical value for the single-chip microcomputer and music lo

6、vers to provide a good reference.Keywords: AT89S51 SCM; music;C language program; buzzer目录 摘 要IAbstractII绪论.11概述.11.1单片机的产生和发展.1 1.1.1什么是单片机11.2单片机的发展史及发展趋势11.3单片机的特点及应用2 1.3.2单片机的特点2 1.3.3单片机的应用22 STC89C52单片机的结构与原理32.1 STC89C52内部组成结构32.2 STC89C52引脚组成42.3 STC89C52硬件组成4 2.3.1 引脚功能部件和特性4 2.3.2 芯片简介4 2

7、.3.3 引脚功能5 2.3.4 单片机工作的最小化配置72.4 STC89C52中断系统9 2.4.1 中断的概念9 2.4.2 STC89C52中断系统10 2.4.3 中断响应过程153 系统设计总体方案16 3.1 设计应用系统时应考虑的问题16 3.2 设计使用芯片STC89C52介绍164 单片机音乐演奏控制器的软硬件设计18 4.1 单片机产生音调的基础知识18 4.2 硬件电路18 4.3 程序设计与调试19 4.3.1 程序设计框图19 4.3.2. 程序设计的程序清单195 论文总结26参 考 文 献27附录128 硬件电路.28附录2.29 硬件电路原理图.,.29致 谢

8、30绪论近年来,科学技术得到了前所未有的提高,可以说,在过去的100年里的发明创造大于之前人类已经取得的发明总和。其中最重要的是电子行业,尤其是计算机。计算机的出现和使用,使人们进入了一个崭新的时代。而单片机,作为一种微型计算机,它的发展与进步,使电子产品能更微小,更精密,更节约和高效。而在单片机上,我们可以让它实现各种各样的功能,以下就介绍用单片机进行音乐演奏的功能设计。1 概述随着信息技术革命的深入和计算机技术的飞速发展,单片机的应用越来越广泛,并逐渐发展成为一门关键的技术学科。单片机具有一些突出优点:体积小、重量轻、耗电少、电源单一、功能强、价格低、运行速度快、抗干扰能力强、可靠性高,所

9、以在通信、家电、工业控制、仪器仪表、汽车等产品中都可以看到单片机的身影。目前国内单片机的应用仍以8051 系列为主。1.1单片机的产生和发展(1)什么是单片机计算机的发展经历了从电子管到大规模集成电路等几个发展阶段,随着大规模集成电路技术的发展,使计算机向性能稳定可靠、微型化、廉价方向发展,从而出现了单片微型计算机。所谓单片微型计算机,是指将组成微型计算机的基本功能部件,如中央处理器CPU、存储器ROM和RAM、输入/输出(I/O)接口电路等集成在一块集成电路芯片上的微型计算机,简称单片机。总体来讲,单片机可以用以下”表达式”来表示单片机=CPU ROM RAM I/O 功能部件。 1.2单片

10、机的发展史及发展趋势 单片机的发展历史可划分为3个阶段:第一阶段(1974-1976)为单片机初级阶段。因受工艺和集成度的限制,单片机采用双片形式。第二阶段(1976-1978)为低性能单片机阶段。单片机由一块芯片构成,但性能低、品种少。第三阶段(1978以后)为高性能单片机阶段。在这一阶段出现了很多新型单片机,这些新型单片机不仅有功能很强的CPU,较多I/O口种类和数量,而且具有容量较大的ROM和RAM及种类繁多的功能部件。随着继承工艺的不断发展,单片机一方面向集成度高、体积更高、功能更强、功耗更低的方向发展;另一方面向32位以上及双CPU方向发展。1.3 单片机的特点及应用(1) 单片机的

11、特点随着现代科技的发展,单片机的集成度越来越高,CPU的位数也越来越高,已能将所有主要部件都集成在一块芯片上,使其应用模式多、范围广,并具有以下特点:a. 体积小,功耗低,价格便宜,重量轻,易于产品化。b. 控制功能强,运行速度快,能针对性地解决从简单到复杂的各类控制问题,满足工业控制要求,并有很强的位处理和接口逻辑操作等多种功能。c. 抗干扰能力强,适用温度范围宽。由于许多功能部件集成在芯片内部,受外界影响小,故可靠性高。(2)单片机的应用 单片机的应用具有面广量大的特点,目前它广泛的应用于国民经济各个领域,对技术改造和产品的更新起着重要作用。主要表现在以下几个方面:a. 单片机在智能化仪器

12、、仪表中的应用:由于单片机有机算计的功能,它 不仅能完成测量,还既有数据处理、温度控制等功能,易于实现仪器、仪表的数 字化和智能化。b. 单片机在实时控制中的应用:单片机可以用于各种不太复杂的实时控制系统中,如一般性的温度控制、液面控制、电镀顺序控制等。将测量技术、自动控制技术和单片机技术相结合,充分发挥单片机的数据处理和实时控制功能,使系统工作于最佳状态。c. 单片机在机电一体化中的应用:单片机有利于机电一体化技术的发展,已广泛应用于数控机床、医疗设备、汽车设备等。d. 单片机在多机系统中的应用:单片机在多机系统中的应用是将来单片机发展的主要模式,它可以提高单片机的可靠性,使系统运行速度更快

13、。单片机在计算机外围设备中的应用:单片机广泛应用于打印机、绘图机等多种计算机的外围设备,特别是用于智能终端,可大大减轻主机负担,提高系统的运行速度。2 STC89C52单片机的结构与原理2.1 STC89C52内部组成结构 STC89C52是低功耗化、高性能化CMOS8位的微控制器,拥有片内集成了8KB的Flash 存储器。使用宏晶公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在线可编程,也适于常规编程器。在单芯片上,具有灵活的8 位微处理器(CPU) 和在线可编程Flash,使得STC89C52在众多嵌入式控制应用系统中得到广泛应用。

14、STC89C52的简单组成结构如图1所示: STC89C52的内部结构图1由上图可知,STC89C52单片机由一个时钟OSC、一个程序存储器ROM、一个数据存储器RAM和一个定时器/计数器组成。时钟电路由外接谐振器的时钟振荡器、时钟发生器及关断控制信号等组成。时钟振荡器是单片机的时钟源,时钟发生器对振荡器的输出信号进行二分频,关断控制信号/PD和/IDL用于单片机的功耗管理。程序和数据存储器分为不同的逻辑空间,使可用8位地址来访问数据存储器(ROM),这样可提高8位微处理器(CPU)的存储和处理速度。2.2 STC89C52引脚组成其引脚组成如下图2所示; 图2 : STC89C52的引脚图2

15、.3 STC89C52硬件组成2.3.1 引脚功能部件和特性 (1)8位微处理器(CPU); (2)数据存储器(128B RAM); (3)程序存储器(4KB Flash ROM); (4)4个8位可编程并行I/O口(P0口、P1口、P2口、P3口); (5)1个全双工的异步串行口; (6)2个可编程的16位定时器/计数器; (7)1个看门狗定时器; (8)中断系统具有5个中断源、5个中断向量; (9)特殊功能寄存器(SFR)26个; (10)低功耗模式有空闲模式和掉电模式,且具有掉电模式下的中断恢复模式; (11)3个程序加密锁定位。2.3.2 芯片简介STC89C52芯片片上Flash允许

16、程序存储器(ROM)在线可编程,也适用于常规编程。在单芯片上,拥有灵活的8 位微处理器(CPU)和在系统可编程Flash,使得STC89C52芯片成为了为众多嵌入式控制系统提供更灵活、高效的解决方案。STC89C52芯片具有以下突出优点:增加了在线可编程功能,灵活的在线编程方式(字节和页编程)使现场程序调试和修改更加灵活方便; 数据指针增加到两个,方便了对片外RAM的访问过程;新增了看门狗定时器,提高了系统的抗干扰能力;增加了掉电标志;增加了掉电状态下的中断恢复模式。2.3.3 引脚功能 (1) 并行I/O口引脚P0 口:8位,漏极开路的双向I/O口 当外扩存储器及I/O接口芯片时,P0口作为

17、低8位地址总线及数据总线的 分时复用端口。 P0口也可用作通用的I/O口,需加上拉电阻,这时为准双向口。作为通用I/O输入,应先向端口写入1,可驱动8个LS型TTL负载。P1 口:8位,准双向I/O口,具有内部上拉电阻。 准双向I/O口,作为通用I/O输入时,应先向端口锁存器写1。P1口可驱动4个LS型TTL负载。 P1.5/MOSI、P1.6/MISO和P1.7/SCK可用于对片内Flash存储器串行编程和校验,它们分别是串行数据输入、输出和移位脉冲引脚。P2 口:8位,准双向I/O口,具有内部上拉电阻。 当AT89S51扩展外部存储器及I/O口时,P2口作为高8位地址总线用,输出高8位地址

18、。 P2口也可作为普通的I/O口使用。当作为通用I/O输入时,应先向端口输出锁存器写1。P2口可驱动4个LS型TTL负载。P3 口:8位,准双向I/O口,具有内部上拉电阻。 可作为通用的I/O口使用。作为通用I/O输入,应先向端口输出锁存器写入1。可驱动4个LS型TTL负载。 P3口还可提供第二功能,功能表如表1所示:表1: P3口第二功能定义引脚第二功能说明P3.0RXD串行数据输入口P3.1TXD串行数据输出口P3.2INT0外部中断0输入P3.3INT1外部中断1输入P3.4T0定时器0外部计数输入P3.5T1定时器1外部计数输入P3.6WR外部数据存储器写选通输出P3.7RD外部数据存

19、储器读选通输出 综上所述,P0口可作为总线口,为双向口。作为通用的I/O口使用时,为准双向口,这时需加上拉电阻。P1口、P2口、P3口均为准双向口。 (2)控制引脚RST:(RESET,9脚)复位信号输入,在引脚加上持续时间大于2个机器周期的高电平,可使单片机复位。正常工作,此脚电平应 0.5V。当看门狗定时器溢出输出时,该脚将输出长达96个时钟振荡周期的高电平。ALE/PROG:(Address Latch Enable/PROGramming,30脚)ALE:为CPU访问外部程序存储器或外部数据存储器提供地址锁存信号,将低8位地址锁存在片外的地址锁存器中。此外,单片机正常运行时,ALE端一

20、直有正脉冲信号输出,此频率为时钟振荡器频率fosc的1/6。可用作外部定时或触发信号。注意,每当AT89S51访问外部RAM时(执行MOVX类指令),要丢失一个ALE脉冲。如需要,可将特殊功能寄存器AUXR(地址为8EH)的第0位(ALE禁止位)置1,来禁止ALE操作,但执行访问外部程序存储器或外部数据存储器指令“MOVC”或“MOVX”时,ALE仍然有效。即ALE禁止位不影响对外部存储器的访问。PROG:引脚第二功能,对片内 Flash编程,为编程脉冲输入脚。PSEN:程序储存允许输出是外部Flash ROM的读选通信号,当STC89C52由外部程序存储器取指令(或数据)时,每个机器周期两次

21、PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器时,输出脉冲负跳沿作为读外部Flash ROM的选通信号。该端可驱动8个LS型TTL负载。EA/VPP: EA是引脚第一功能,外部Flash ROM访问允许控制端。 EA =1,在PC值不超出0FFFH(即不超出片内4KB Flash存储器的地址范围)时,单片机读片内程序存储器(4KB)中的程序,但PC值超出0FFFH (即超出片内4KB Flash地址范围)时,将自动转向读取片外60KB(1000H-FFFFH)程序存储器空间中的程序。 EA =0,只读取外部的程序存储器中的内容,读取的地址范围为0000HFFFFH,片内的4KB

22、Flash 程序存储器不起作用。 VPP是引脚第二功能,对片内Flash编程,接编程电压。(3)时钟引脚 XTAL1:片内振荡器反相放大器和时钟发生器电路输入端。用片内振荡器时,该脚接外部石英晶体和微调电容;外接时钟源时,该脚接外部时钟振荡器的信号。 XTAL2:片内振荡器反相放大器的输出端。当使用片内振荡器,该脚连接外部石英晶体和微调电容;当使用外部时钟源时,本脚悬空。2.3.4 单片机工作的最小化配置单片机的最小化系统包含最基本的复位电路、晶振电路及微机本身,此最小系统主要是负责程序的存储与运行,如图2-4所示。本设计采用的是STC89C52芯片,它内部自带8K的Flash程序存储器,这8

23、K的存储空间足够使用,所以将STC89C52芯片的第31脚(EA)固定接高电平,只用芯片内部的8K程序存储器,单片机的晶振电路由一个12M的晶振和两个30PF的瓷片电容组成,使单片机的工作时间精度为1微秒。下图3 给出了STC89C52的最小化系统图3: STC89C52的最小化系统2.3.5 复位电路 复位主要是在单片机进入系统的正常初始化之后,由于程序运行错误或操作错误使系统处于死锁状态,为摆脱死锁状态,通过按键复位使RST引脚低电平重新启动单片机工作,属于电平复位。复位电路是单片机最小系统的一部分,通常复位电路有两种:上电复位和外部按键复位,本设计系统用的是外部按键复位。该复位电路由一个

24、轻触开关、一个10微法电解电容和一个10K电阻组成。其电路图如下图4。 图4:复位电路图2.2.6 晶振电路晶振电路主要用于产生单片机工作时所必需的时钟控制信号。单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器(简称晶振)和微调电容,就构成一个稳定的自激振荡器。电路中的电容C1和C2典型值通常选择为30PF,对外接电容的值虽然没有严格的要求,但电容的大小会影响振荡器频率的高低、振荡器的稳定性和起振的快速性,此晶振为12MHz,晶振的频率越高,则系统的时钟频率也越高,单片机的运行速度也越快,但反

25、过来运行速度快对存储器的速度要求就高:晶振和电容应该是尽可能安装得与单片机芯片靠近些,以减小寄生电容,更好地保证振荡器稳定、可靠地工作。晶振电路如图5所示: 图5: 晶振电路 2.4 STC89C52中断系统2.4.1 中断的概念当CPU 正在处理某项事务的时候,如果外界或内部发生了更紧急的事件,要求CPU暂停正在处理的工作转而去处理这个紧急事件,待处理完以后再回到原来被中断的地方,继续执行原来被中断了的程序,这样的过程称为中断。能够实现中断处理功能的部件称为中断系统。向CPU 提出中断请求的源称为中断源,STC89C52单片机共有5个中断源。中断源向CPU 提出的处理请求,称为中断请求或中断

26、申请。CPU 同意处理该请求称为中断响应,处理中断请求的程序称为中断服务子程序。当CPU暂时终止正在执行的程序,转去执行中断服务子程序时,除了硬件自动把断点地址(16位程序计数器PC 的值)压入堆栈之外,用户应注意保护有关的工作寄存器、累加器、标志位等信息,这称为保护现场;在完成中断服务子程序后,恢复有关的工作寄存器、累加器、标志位的内容,称为恢复现场;最后执行中断返回指令RETI,从堆栈中自动弹出断点地址PC,继续执行被中断的程序,称为中断返回。其中断响应过程如图6所示 图6:中断响应图2.4.2 STC89C52中断系统A. 中断请求源STC89C52单片机的中断系统有5 个中断源,其入口

27、地址是固定的,见表2-1,同时具有2个中断优先级,分别为高优先级和低优先级,可实现2 级中断服务程序嵌套。中断系统结构示意表如下表2所示 中 断 源并 口 数 址外部中断0(INT0 )0003H定时/计并器T0000BH外部中断1( INT1)0013H定时/计并器T1001BH串行口S0023H 表2:中断系统结构表(1) INT0外部中断请求0,由INT0(P3.2)引脚输入,中断请求标志为IE0(定时器/计数器控制寄存器TCON的D1位)。(2) INT1外部中断请求1,由INT1(P3.3)引脚输入,中断请求标志为IE1(定时器/计数器控制寄存器TCON的D3位)。(3) 定时器/计

28、数器T0 溢出中断请求,中断请求标志为TF0(定时/计数器控制寄存器TCON 的D5 位)。(4) 定时器/计数器T1 溢出中断请求,中断请求标志为TF1(定时/计数器控制寄存器TCON 的D7 位)。(5) 串行口中断请求,中断请求标志为TI 或RI(分别为串行口控制寄存器SCON 的D1 和D0 位)。b. 中断请求标志所在特殊功能寄存器CPU在每个机器周期的S5P2 时刻采样5个中断源的中断标志IE0、IE1、TF0、TF1、TI 和RI,这些中断请求源的中断请求标志位分别由特殊功能寄存器TCON和SCON的相应位锁定。(1) 定时器控制寄存器TCON定时器控制寄存器TCON 如下表3所

29、示,其中TF1 和TF0 为定时器中断标志位,TR1 和TR0 为定时器的启动控制位,在几节中已经介绍过,现介绍与中断有关的低4位的功能。 表3TF1TR1TF0TR0IE1IT1IE0IT0IT0选择外部中断请求INT0(P3.2)为边沿触发方式或电平触发方式的控制位。IT0 可由软件置“1”或清“0”。当IT0 为0时,为电平触发方式,INT0低电平有效。外部中断申请触发器的状态随着CPU 在每个机器周期采样到的外部中断输入线的电平变化而变化,这能提高CPU 对外部中断请求的响应速度。当外部中断源被设定为电平触发方式时,在中断服务子程序返回之前,外部中断请求输入必须无效(即变为高电平),否

30、则CPU 返回主程序后会再次响应中断。所以电平触发方式适合于外部中断以低电平输入,而且中断服务子程序能清除外部中断请求源的情况。当IT0 为l时,INT0为边沿触发方式,INT0 输入脚上的电平从高到低的负跳变有效。外部中断申请触发器能锁存外部中断输入线上的负跳变。即便是CPU 暂时不能响应,中断申请标志也不会丢失。在这种方式时,如果相继连续两次采样,一个周期采样到外部中断输入为高,下个周期采样为低,则置“1”中断申请触发器,直到CPU 响应此中断时才清0。这样不会丢失中断,但输入的负脉冲宽度至少保持12 个振荡周期,才能被CPU 采样到。外部中断的边沿触发方式适合于以负脉冲形式输入的外部中断

31、请求。如ADC0809 的A/D转换结束标志信号EOC 为正脉冲,再反相连到8031 的INT0引脚,就可以中断方式读取A/D的转换结果。IE0:外部中断0 的中断申请标志位。当(IT0)0 即电平触发方式时,每个机器周期的S5P2 采样INT0,若INT0为低电平,则(IE0)置“1”,否则(IE0)清“0”;当(IT0)l,即INT0程控为边沿触发方式时,当第一个机器周期采样到该引脚为低电平时,则置(IE0)“1”( INT1 ),(IE0)为1表示外部中断0 正在向CPU 申请中断。当CPU 响应中断,转向中断服务子程序时,由硬件自动清“0”IE0。ITl:选择外部中断请求INT1(P3

32、.3)为边沿触发方式或电平触发方式的控制位,其意义和IT0类似。lEl:外部中断1的中断申请标志位,其意义和IE0 类似。当MCS-51单片机复位后,TCON 被清0,关闭中断,所有中断请求被禁止。c.串行口控制寄存器SCONSCON 为串行口控制寄存器,字节地址为98H,可位寻址。其低2 位锁定串行口的发送中断和接收中断的中断请求标志TI和RI,格式如表4所示。表4TIRITI:STC89C52单片机串行口的发送中断标志位,在串行口以方式0 发送时,每当发送完8 位数据,由硬件置“1”TI;若以方式1、方式2或方式3发送时,在发送停止位的开始时置“1”TI,(TI)l 表示串行口发送正在向C

33、PU 申请中断,要发送的数据一旦写入串行口的数据缓冲器SBUF,单片机内部的硬件就立即启动发送器继续发送。值得注意的是CPU 响应发送器中断请求,转向执行中断服务程序时并不清“0”TI,TI 必须由用户的中断服务子程序清0,即中断服务子程序中必须用CLR TI 或ANL SCON,#0FDH等清“0”TI 的指令。RI:串行口接收中断标志位,若串行口接收器允许接收,并以方式0 工作,每当接收到第8 位数据时置“1”RI;若以方式1、2、3 工作,且(SM2)0 时,每当接收器接收到停止位的中间时置“1”RI,当串行口以方式2 或方式3 进行工作,且(SM2)1 时仅当接收到的第9 位数据RB8

34、 为1后,同时还要在接收到停止位的中间位置“l”RI,RI 为1,表示串行口接收器正在向CPU 申请中断,同样RI 必须由用户的中断服务子程序清0。MCS-5I 单片机复位后,SCON被清零。B. 中断控制寄存器(1)中断允许寄存器IESTC89C52 单片机的CPU 对中断源的开放或屏蔽,是由片内的中断允许寄存器IE控制的(如图39 所示),IE的字节地址为A8H,可以位寻址。格式如表5所示。表5EA-ESET1EX1ET0EX0中断允许寄存器IE各位的功能如下:EA 中断允许总控制位(EA)0,CPU屏蔽所有的中断请求(关中断);(EA)1,CPU开放所有中断(开中断)。ES串行口中断允许

35、位(ES)0,禁止串行口中断;(ES)1,允许串行口中断。ET1 定时/计数器T1的溢出中断允许位(ET1)0,禁止T1 溢出中断;(ET1)1,允许T1 溢出中断。(EX1)外部中断1中断允许位(EX1)0,禁止外部中断1 中断;(EX1)1,允许外部中断1 中断。(ET0)定时/计数器T0 的溢出中断允许位。(ET0)0,禁止T0 溢出中断;(ET0)1,允许T0 溢出中断。(EX0)中断0中断允许位。(EX0)0,禁止外部中断0 中断;(EX0)1,允许外部中断0 中断。MCS51 单片机复位以后,IE 被清0,由用户程序置“1”或清“0”IE 相应的位,实现允许或禁止各中断源的中断申请

36、。若允许某一个中断源中断,除了开放中断总的允许位EA 外,必须同时使CPU 开放该中断源的中断允许位。因为中断允许寄存器IE 的地址是A8H,可以进行位寻址,所以可以通过位操作指令和字节操作指令实现。C.中断优先级寄存器IPMCS51 单片机有两个中断优先级,对于每一个中断请求源可编程为高优先级中断或低优先级中断。MCS51 单片机的片内有一个中断优先级寄存器IP,其字节地址为B8H,可以位寻址,可进行字节操作和位操作来设置各中断源中断级别。形式如表6所示。表6-PSPT1PX1PT0PX0中断优先级寄存器IP 各位的功能如下:PS 串行口中断优先级控制位(PS)1,串行口中断定义为高优先级;

37、(PS)0,串行口中断定义为低优先级。PT1 定时/计数器T1中断优先级控制位(PT1)1,定时/计数器T1中断定义为高优先级;(PT1)0,定时器T1中断定义为低优先级。 PX1 外部中断1中断优先级控制位(PX1)1,外部中断1 定义为高优先级;(PX1)0,外部中断1 定义为低优先级。 PT0 定时器T0中断优先级控制位(PT0)1,定时/计数器T0中断定义为高优先级;(PT0)0,定时/计数器T0中断定义为低优先级。PX0 外部中断0 中断优先级控制位(PX0)1,外部中断0 定义为高优先级;(PX0)0,外部中断0 定义为低优先级。中断优先级控制寄存器IP 的各位都由用户程序置“1”

38、和清“0”,可用位操作指令或字节操作指令更新IP 的内容,以改变各中断源的中断优先级。MCS51 单片机复位以后IP为0,各个中断源均为低优先级中断D. 中断优先级结构STC89C52 单片机有两个中断优先级,对于每一个中断请求源可编程为高优先级中断或低优先级中断。一个正在执行的低优先级中断程序能被高优先级的中断源所中断,但不能被另一个低优先级的中断源所中断。若CPU 正在执行高优先级的中断,则不能被任何中断源所中断,一直执行到结束,遇到返回指令RETI,返回主程序后再执行一条指令后才能响应新的中断请求。以上所述可以归纳为下面两条基本规则:(1) 低优先级可被高优先级中断,而高优先级中断源不能

39、被任何中断源所中断。(2) 任何一种中断(不管是高级还是低级),一旦得到响应,不会再被它的同级中断所中断。为了实现上述两条规则,中断系统内部包含两个不可寻址的优先级状态触发器。其中一个指示某高优先级的中断正在执行,所有后来的中断均被阻止。另一个触发器指示某低优先级的中断正在执行,所有同级的中断都被阻止,但不阻断高优先级的中断。当几个同优先级的中断同时申请中断,响应哪一个中断源将取决于内部查询顺序,或称为辅助优先级结构,其优先级排列见表7:表7中断源辅助优先级结构外部中断0(INT0 )高定时/计数器T0 溢出中断低外部中1( INT1 )高定时/计数器T1溢出中断低串行口中断S低 2.4.3

40、中断响应过程CPU 在每个机器周期的S5P2 时刻采样中断标志,在下一个机器周期对采样到的中断进行查询。如果前一个机器周期的S5P2 有中断标志,则在查询周期内便会查询到,并按优先级高低进行中断处理,如果响应中断,中断系统将控制程序转入相应的中断服务子程序。但中断响应是有条件的,并不是查询到的所有中断请求都能被立即响应,当遇到下列三种情况之一时,中断响应被封锁:(1) CPU 正在处理相同的或更高优先级的中断;(2) 现行的机器周期不是所执行指令的最后个机器周期;(3) 正在执行的指令是RETI 或是访问IE或IP的指令。CPU 在执行RETI 或访问IE、IP 的指令后,至少需要再执行一条指

41、令才会响应新的中断请求。3 系统设计总体方案3.1 设计应用系统时应考虑的问题在设计一个应用系统时,首先要进行系统的总体设计,对系统的总体设计决定了我们今后的设计方向,因此我们得事先考虑在设计中的各个方面的问题。大体来说可包括以下几个方面:(1).大体设计步骤。在软件和硬件的设计中都应遵循从整体到局部的设计原则。因为它可以把一些较复杂的问题分解成一块一块的较简单的问题来解决,最总达到解决复杂问题的目的。(2).可实现性。 这是设计的根本问题,它直接决定了设计的成功与否。针对本设计采用STC89C52单片机实现对硬件电路的控制。(3).经济性。毕业设计的要求使用固定的有限的资源来完成个人的方案,

42、随意必须考虑经济方面的问题。但并不是说就要尽量少花钱、少买元件,而是说在保证方案可行的前提下电路要简单。(4).可靠性。可靠性是指产品在规定的条件下和规定的时间内完成规定功能的能力。可靠性的指标除了可用完成功能的概率来表示外,还可用平均无故障时间、故障率、实效率或平均寿命来表示。对于一个应用系统来说,不管在原理上如何先进、功能上如何全面、精度上如何精密,如果可靠性差、故障频繁,不能正常工作的话,那么这个系统也没有什么价值了。因此在设计系统的过程中,对于可靠性的要求应该贯穿于每一个环节,采取各种措施来提高可靠性,以保证系统能够长时间的稳定工作。就硬件方面来说,系统所用元件的优劣和制造工艺的精细是影响可靠性的重要原因,因此应该合理购买元器件。另外,在制造电路板时也要遭到工艺精细。软件方面,应该尽可能的不要使用模块化的设计方案,以利于程序的编写和调试,并减少故障率,提高软件的可靠性。3.2 设计使用芯片STC89C52介绍本设计所用单片机如图7所示:图7: STC89C52该单片机功能如下:1. 增强型6时钟/机器周期,12时钟/机器周期 8051 CPU。2.工作电压:5.5V-3.4V(5V单片机)/3.8V-2.0V(3V单片机)。3.工作频率范围:0-40MHZ,相当于普通8051的080MHZ。实际工作频率可达48MHZ。4.用户应用

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号