已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机音乐播放器设计摘要本文将介绍一种以89C51型单片机为基础元件设计的自动音乐播放器。在当今这个科技高速发展的时代,生活节奏的加快,人们长期处于工作、学习压力过大的状态,对于调节心理压力而言音乐对于每一个人都十分重要,由此音乐播放器在国内已经开始普及。校园里的上下课的铃声,宿舍内早晨的起床号声音,都由以前枯燥刺耳的铃音转变成了好听的音乐,公路、广场中的计时装置也逐渐开始采用音乐来充当铃声。此装置不仅为人们日常生活的计时提供了方便,同时也为目前快节奏的生活带来了乐趣。本文是应用MCS-51单片机原理和控制理论设计音乐演奏控制器的硬件电路,并利用C语言进行程序设计。通过控制单片机内部的定时器来产生不同频率的方波,驱动蜂鸣器发出不同音调的音乐,再利用延迟来控制发音时间的长短。把乐谱转化成相应的定时常数就可以从发音设备中演奏出悦耳动听的音乐。这种控制电路结构简单,可读性高,应用性强;软件程序适应范围广,对于不同的音乐只需要改变相应的定时常数即可。关键词:单片机;音乐播放器;C语言The design of the music plyerAbstractThis article introduces a kind of 89C51-based microcontroller-based device designed for automatic music player. In todays era of rapid development of this technology, the accelerated pace of life, the long-in work, learning burden the states case for regulating psychological stress is important for everyone, this music player at home has begun universal. Campus on the class of the ring, get up early morning dormitory No. voices, strident tones by the previous dry transformed into good music, road, square in the timing devices are also beginning to use music as ring tones. This device not only for the timing of daily life and provides a convenient, but also for the current fast-paced life fun. This is the application of MCS-51 SCM principles and control theory, music performance controller hardware and programming using c programming language. By controlling the MCUs internal timer to generate square waves of different frequencies to drive speakers make different musical tones, and then use delay to control the length of pronunciation. The music into the corresponding time constants can be played from the sound equipment out of melodious music. This control circuit is simple, readable, application and strong; software program to adapt to a wide range of different music just for the appropriate time constant change can be. Keyword: Single-chip processor; Music player; C programming language目 录1 绪论11.1 概述11.2 单片机的产生和发展11.3 单片机的特点及应用21.3.1 单片机主要特点21.3.2 单片机的应用31.4 系统设计总体方案32 MCS-51单片机的结构与原理52.1 MCS-51单片机的基本结构52.1.1 8051单片机的基本组成及主要性能52.1.2 8051单片机的外部引脚说明62.2 MCS-51单片机的微处理器92.2.1 运算器92.2.2 控制器102.3 MCS-51单片机的存储器112.3.1 内部数据存储器112.3.2 内部程序存储器122.3.3专用寄存器(SFR)简介122.4 MCS-51单片机的定时计数142.4.1 定时器/计数器的结构142.4.2 定时器/计数器的工作方式152.4.3定时/计数器的初始化162.5 MCS-51单片机的中断系统162.5.1 中断源162.5.2 中断控制192.5.3 中断响应202.5.4 中断请求的撤除202.6 MCS-51单片机的并行/串行接口213 硬件电路设计233.1 总体设计框图233.2 时钟电路233.3 复位电路233.4 选曲电路243.5 音频发生及放大电路244 软件程序设计244.1单片机发声概述244.2 程序流程图264.3 音乐的产生275 KEIL仿真软件及Protel 99 SE的应用295.1 KEIL51的应用295.2 protel99se的应用295.3 PCB板的设计制作306 调试与故障分析316.1 软件程序调试316.2 硬件电路调试317 总结与展望32致谢33参考文献34附录1:原理图35附录2:仿真图36附录3:源程序37451 绪论1.1 概述单片机,更确切地说应称为作微控制器,是20世纪70年代中期发展起来的一种面向控制的大规模集成电路模块,其特点是功能强、体积小、可靠性高、价格低廉。它一面世便在工业控制、数据采集、智能仪表化、机电一体化、家用电器等领域得到了广泛应用,极大地提高了这些领域的技术水平和自动化程度。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。本文将介绍一种以89C51型单片机为基础元件设计的自动音乐播放器。在当今这个科技高速发展的时代,生活节奏的加快,人们长期处于工作、学习压力过大的状态,对于调节心理压力而言音乐对于每一个人都十分重要,由此音乐播放器在国内已经开始普及。校园里的上下课的铃声,宿舍内早晨的起床号声音,都由以前枯燥刺耳的铃音转变成了好听的音乐,公路、广场中的计时装置也逐渐开始采用音乐来充当铃声。此装置不仅为人们日常生活的计时提供了方便,同时也为目前快节奏的生活带来了乐趣。本次设计以89C51单片机为基础,利用单片机编成技术对芯片进行功能设定,实现音乐的播放。同时,利用单片机的定时器中断,在单片机内部产生所需要的音乐频率,并通过音频功率放大器将音频信号放大,通过蜂鸣器连续播放一段音乐。此设计通过多次测试,音乐声音宏亮清晰,节拍正常,达到预期效果。本文将围绕基于单片机的自动音乐播放器,介绍一些关于单片机的基础知识、音乐播放器的制作原理及方法(其中包括了音乐编程原理)、定时器的设定,以及仿真软件(Keil、Protel99 SE)的使用方法和相关PCB板的制作。1.2 单片机的产生和发展单片微型计算机是随着微型计算机的发展而产生和发展的。自从1975 年美国德克萨斯仪器公司的第一台单片微型计算机( 简称单片机)TMS-1000 问世以来,迄今为止,单片机技术已成为计算机技术的一个独特分支,单片机的应用领域也越来越广泛,特别是在工业控制中经常遇到对某些物理量进行定时采样与控制的问题,在仪器仪表智能化中也扮演着极其重要的角色。如果将8位单片机的推出作为起点,那么单片机的发展历史大致可以分为以下几个阶段:第一阶段(19761978):单片机的探索阶段。以Intel公司的MCS-48为代表。MCS-48的推出是在工控领域的探索,参与这一探索的公司还有Motorola、Zilog等。都取得了满意的效果。这就是SCM的诞生年代,“单片机”一词即由此而来。第二阶段(19781982):单片机的完善阶段。Intel公司在MCS-48基础上推出了完善的、典型的单片机系列MCS-51。它在以下几个方面奠定了典型的通用总线型单片机体系结构。(1)完善的外部总线。MCS-51设置了经典的8位单片机的总线结构,包括8位数据总线、16位地址总线、控制总线及具有多机通信功能的串行通信接口。(2)CPU外围功能单元的集中管理模式。(3)体现工控特性的地址空间及位操作方式。(4)指令系统趋于丰富和完善,并且增加了许多突出控制功能的指令。第三阶段(19821990):8位单片机的巩固发展及16位单片机的推出阶段,也是单片机向微控制器发展的阶段。Intel公司推出的MCS-96系列单片机,将一些用于测控系统的模数转换器、程序运行监视器、脉宽调制器等纳入片中,体现了单片机的微控制器特征。第四阶段(1990):微控制器的全面发展阶段。随着单片机在各个领域全面、深入地发展和应用,出现了高速、大寻址范围、强运算能力的8位/16位/32位通用型单片机,以及小型廉价的专用型单片机。1.3 单片机的特点及应用1.3.1 单片机主要特点(1)有优异的性能价格比。(2)集成度高、体积小、有很高的可靠性。单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性和抗干扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境下工作。(3)控制功能强。为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。单片机的逻辑控制功能及运行速度均高于同一档次的微机。(4)低功耗、低电压,便于生产便携式产品。(5)外部总线增加了I2C(Inter-Integrated Circuit)及SPI(Serial Peripheral Interface)等串行总线方式,进一步缩小了体积,简化了结构。(6)单片机的系统扩展和系统配置较典型、规范,容易构成各种规模的应用系统。优异的性能价格比。1)集成度高、体积小、有很高的可靠性。 单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性与抗干扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合于在恶劣环境下工作。此外,程序多采取固化形式也可以提高可靠性。2)控制功能强。为了满足工业控制要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。单片机的逻辑控制功能及运行速度均高于同一档次的微机。3)单片机的系统扩展、系统配置较典型、规范,容易构成各种规模的应用系统。1.3.2 单片机的应用A 自动控制例:单片机已在工业过程控制、机床控制、机器人控制、汽车控制以及飞行器制导系统等方面得到广泛的应用。 B 智能仪表智能家居系统智能小区管理系统自动售货机ATMC 在实时控制中的应用数字万用表数字示波器数字温度计环境监测仪D 在分布式多机系统中的应用E 家用电器全自动洗衣机、热水器、电子游戏机等1.4 系统设计总体方案单片机音乐播放器控制系统结构简单,环节较少,因此,单片机音乐播放器包括LED彩灯、数码管的显示。除了播放音乐有按键外,其余的硬件组成大体相同。对于单片机音乐播放器声音的读出除了蜂鸣器以外,还要配置合适的放大器播放出响亮的声音。单片机按键电路复位电路晶振电路发声电路时钟电路电源电路图 1-1 结构总图单片机音乐播放器电路板向着小型化、低功耗、抗千扰、低成本、实用功能方向发展。因此在对单片机的选择趋向于容量适中、功能丰富、性能可靠、价格低的元件。因此本设计中应用最为广泛的MCS-51系列8位单片机8051。2 MCS-51单片机的结构与原理2.1 MCS-51单片机的基本结构 串行通信接口全双工 1个ROMTXD RXD中断系统并行通信接口48bit定时/计数器 n16bitRAM时 钟电 路CPU总线控制2.1.1 8051单片机的基本组成及主要性能图 2-1 8051基本组成(1)中央处理器(CPU)中央处理器是单片机的核心,完成运算和控制功能。8051的CPU能处理8位二进制数或代码。(2)内部数据存储器(内部RAM)8051芯片中共有256个RAM单元,但其中后128单元被专用寄存器占用,能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。(3)内部程序存储器(内部ROM)8051共有4KB掩膜ROM,用于存放程序、原始数据或表格,因此,称之为程序存储器,简称内部ROM。(4)定时/计数器8051共有两个16位的定时/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。 (5)并行I/O口 MCS-51共有4个8位的I/O口(P0、P1、P2、P3),以实现数据的并行输入/输出。(6)串行口8051单片机有一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。(7)中断控制系统8051单片机的中断功能较强,以满足控制应用的需要。8051共有5个中断源,即外中断两个,定时/计数中断两个,串行中断一个。全部中断分为高级和低级共两个优先级别。 (8) 时钟电路8051芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。系统允许的晶振频率一般为6 MHz和12 MHz。从上述内容可以看出,MCS-51虽然是一个单片机芯片,但作为计算机应该具有的基本部件它都包括,因此,实际上它已是一个简单的微型计算机系统了。2.1.2 8051单片机的外部引脚说明8051是标准的40引脚双列直插式集成电路芯片,引脚如图2-2所示。图 2-2 80c51引脚A 信号引脚介绍(1)主电源引脚 VCC:+5 V电源 VSS:地线。(2)时钟电路引脚 XTAL1和XTAL2:外接晶体引线端。当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。(3)控制信号引脚 RST/VPD:复位信号。当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作;当单片机掉电时,此引脚上可接备用电源,由VPD向片内RAM提供备用电源,一保持片内RAM中的数据不丢失。 ALE/PROG:地址锁存控制信号。在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。此外,由于ALE是以晶振1/6的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。 对于EPROM型单片机,在EPRAM编程期间,此引脚接收编程脉冲。 PSEN:片外程序存储器读选通信号输出端。 EA/VPP:访问程序存储控制信号。当EA信号为低电平时,对ROM的读操作限定在外部程序存储器;当EA信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。对于EPROM型单片机,在EPRAM编程期间,此引脚接上加21V EPROM编程电源VPP。(4)I/O引脚P0.0 P0.7: P0口8位双向口线。P1.0 P1.7 :P1口8位双向口线。P2.0 P2.7 :P2口8位双向口线。P3.0 P3.7 :P3口8位双向口线。 1) P3口线的第二功能。P3的8条口线都定义有第二功能,详见表2-1。表 2-1 P3口各引脚与第二功能表引脚第二功能信号名称P3.0RXD串行数据接收P3.1TXD串行数据发送P3.2INT0外部中断0申请P3.3INT1外部中断1申请P3.4T0定时/计数器0的外部输入P3.5T1定时/计数器1的外部输入P3.6WR外部RAM写选通P3.7RD外部RAM读选通以上把8051单片机的全部信号引脚分别以第一功能和第二功能的形式列出。对于各种型号的芯片,其引脚的第一功能信号是相同的,所不同的只在引脚的第二功能信号。对于9、30和31三个引脚,由于第一功能信号与第二功能信号是单片机在不同工作方式下的信号,因此不会发生使用上的矛盾。但是P3口的情况却有所不同,它的第二功能信号都是单片机的重要控制信号。因此,在实际使用时,都是先按需要选用第二功能信号,剩下的才以第一功能的身份作数据位的输入/输出使用。B 并行输入/输出口电路结构单片机芯片内还有一项主要内容就是并行I/O口。8051共有4个8位的并行I/O口,分别记作P0、P1、P2、P3。每个口都包含一个锁存器、一个输出驱动器和输入缓冲器。实际上,它们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。在访问片外扩展存储器时,低8位地址和数据由P0口分时传送,高8位地址由P2口传送。在无片外扩展存储器的系统中,这4个口的每一位均可作为双向的I/O端口使用。8051单片机的4个I/O口都是8位双向口,这些口在结构和特性上是基本相同的,但又各具特点。C 时钟电路(1)内部方式时钟电路在8051芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,这就是单片机的时钟电路,如图3-3所示。时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。请读者特别注意时钟脉冲与振荡脉冲之间的二分频关系,否则会造成概念上的错误。一般地,电容C1和C2取30pF左右,晶体的振荡频率范围是1.212MHz。晶体振荡频率高,则系统的时钟频率也高,单片机运行速度也就快。8051在通常应用情况下,使用振荡频率为6MHz或12MHz。图 2-3 时钟振荡电路(2)外部方式时钟电路在由多片单片机组成的系统中,为了各单片机之间时钟信号的同步,应当引入惟一的公用外部脉冲信号作为各单片机的振荡脉冲。这时,外部的脉冲信号是经XTAL2引脚注入,其连接如图3-4所示。图 2-4 外部时钟源接法(3) 时序时序是用定时单位来说明的。8051的时序定时单位共有4个,从小到大依次是:节拍、状态、机器周期和指令周期。它们之间的关系如下:1)一个振荡脉冲的周期为节拍;2)一个状态就包含两个节拍;3)一个机器周期的宽度为6个状态;4)一条指令周期由若干个机器周期组成。 (4) 单片机的复位电路单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,复位后PC=0000H,使单片机从第一个单元取指令。单片机复位的条件是:必须使RST/VPD 或RST引脚加上持续两个机器周期(即24个振荡周期)的高电平。若时钟频率为12 MHz,每机器周期为1s,则只需2s以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位。单片机复位期间不产生ALE和PSEN信号,即ALE=1和PSEN=1。这表明单片机复位期间不会有任何取指操作。复位后,内部各专用寄存器状态如下:PC: 0000H TMOD:00HACC: 00H TCON: 00HB: 00H TH0: 00HPSW: 00H TL0: 00HSP: 07H TH1: 00HDPTR: 0000H TL1: 00HP0P3:FFH SCON: 00HIP: *00000B SBUF: 不定IE: 0*00000B PCON: 0*0000其中,*表示无关位。注意:(1)复位后PC值为0000H,表明复位后程序从0000H开始执行,这一点在实训中已介绍。(2)SP值为07H,表明堆栈底部在07H。一般需重新设置SP值。(3)P0P3口值为FFH。P0P3口用作输入口时,必须先写入“1”。单片机在复位后,已使P0P3口每一端线为“1”,为这些端线用作输入口做好了准备。2.2 MCS-51单片机的微处理器2.2.1 运算器 ALU 实现8 位数据的算数运算、逻辑运算和位运算。累加器A用于向ALU提供操作数和存放运算的结果。最常用的一个专用寄存器大部分单操作数指令的操作数取自A很多双操作数指令的一个操作数取自A算术运算和逻辑运算的结果放在A或AB对中指令系统采用A 作为累加器的标识符寄存器B8位寄存器 作一RAM单元用与累加器 A 配合使用,一般用于乘除法运算寄存器 B 存放第二操作数、乘积的高8位字节程序状态字PSW8位寄存器,存放ALU运算结果的特征格式如下:表 2-2 八位寄存器运算特征 PSW D7 D6 D5 D4 D3 D2 D1 D0CYACF0RS1RS0OV- P2.2.2 控制器 程序计数器PC16位专用寄存器 ,寻址范围64KB通电时自动复位,运行时可手动复位,复位 后,PC的内容自动清零 PC 0000H 系统的启动地址用来存放下一条指令地址。CPU取指令时,将PC内容经地址总线送到程序存储器,从该地址单元取回指令,译码并执行;同时,PC自动加1 此时的程序是顺序执行的如果程序需要转移,可在程序中安排转移或条件转移指令指令寄存器IR保存当前正在执行的一条指令。定时与控制控制取指令、执行指令、存取操作数或运算结果等操作,向其它部件发出各种微操作控制信号,协调各部件的工作。指令寄存器IR保存当前正在执行的一条指令。定时与控制控制取指令、执行指令、存取操作数或运算结果等操作,向其它部件发出各种微操作控制信号,协调各部件的工作。2.3 MCS-51单片机的存储器 8051单片机与一般微机的存储器配置方式很不相同。一般微机通常只有一个逻辑空间,可以随意安排ROM或RAM。访问存储器时,同一地址对应唯一的存储单元,可以是ROM也可以是 RAM,并用同类访问指令。而MCS-51则普林斯顿与哈佛两种不同结构。8051在物理结构上设计成程序存储器与数据存储器独立分开的哈佛结构:片内程序存储器4KB(ROM 0000H-0FFFH)片内数据存储器128B(RAM 00H-7FH)2.3.1 内部数据存储器 8051单片机的芯片内部有RAM和ROM两类存储器,即所谓的内部RAM和内部ROM,首先分析内部RAM。(1)内部数据存储器低128单元8051的内部RAM共有256个单元,通常把这256个单元按其功能划分为两部分:低128单元(单元地址00H7FH)和高128单元(单元地址80HFFH)。 低128单元是单片机的真正RAM存储器,按其用途划分为寄存器区、位寻址区和用户RAM区三个区域。1)寄存器区8051共有4组寄存器,每组8个寄存单元,各组都以R0R7作寄存单元编号。寄存器常用于存放操作数中间结果等。由于它们的功能及使用不作预先规定,因此称之为通用寄存器,有时也叫工作寄存器。4组通用寄存器占据内部RAM的00H1FH单元地址。 在任一时刻,CPU只能使用其中的一组寄存器,并且把正在使用的那组寄存器称之为当前寄存器组。到底是哪一组,由程序状态字寄存器PSW中RS1、RS0位的状态组合来决定。通用寄存器为CPU提供了就近存储数据的便利,有利于提高单片机的运算速度。此外,使用通用寄存器还能提高程序编制的灵活性,因此,在单片机的应用编程中应充分利用这些寄存器,以简化程序设计,提高程序运行速度。2)位寻址区内部RAM的20H2FH单元,既可作为一般RAM单元使用,进行字节操作,也可以对单元中每一位进行位操作,因此把该区称之为位寻址区。位寻址区共有16个RAM单元,计128位,地址为00H7FH。MCS-51具有布尔处理机功能,这个位寻址区可以构成布尔处理机的存储空间。这种位寻址能力是MCS-51的一个重要特点。3)用户RAM区在内部RAM低128单元中,通用寄存器占去32个单元,位寻址区占去16个单元,剩下80个单元,这就是供用户使用的一般RAM区,其单元地址为30H7FH。对用户RAM区的使用没有任何规定或限制,但在一般应用中常把堆栈开辟在此区中。(2)内部数据存储器高128单元内部RAM的高128单元是供给专用寄存器使用的,其单元地址为80HFFH。因这些寄存器的功能已作专门规定,故称之为专用寄存器(Special Function Register),也可称为特殊功能寄存器。2.3.2 内部程序存储器 8051的程序存储器用于存放编好的程序和表格常数。8051片内有4 KB的ROM。051的片外最多能扩展64 KB程序存储器,片内外的ROM是统一编址的。如端保持高电平,8051的程序计数器PC在0000H0FFFH地址范围内(即前4 KB地址)是执行片内ROM中的程序,当PC在1000HFFFFH地址范围时,自动执行片外程序存储器中的程序;当保持低电平时,只能寻址外部程序存储器,片外存储器可以从0000H开始编址。 8051的程序存储器中有些单元具有特殊功能,使用时应予以注意。其中一组特殊单元是0000H0002H。系统复位后,(PC)=0000H,单片机从0000H单元开始取指令执行程序。如果程序不从0000H单元开始,应在这三个单元中存放一条无条件转移指令,以便直接转去执行指定的程序。还有一组特殊单元是0003H002AH,共40个单元。这40个单元被均匀地分为5段,作为5个中断源的中断地址区。其中:0003H000AH 外部中断0中断地址区000BH0012H 定时/计数器0中断地址区0013H001AH 外部中断1中断地址区001BH0022H 定时/计数器1中断地址区0023H002AH 串行中断地址区中断响应后,按中断种类,自动转到各中断区的首地址去执行程序,因此在中断地址区中理应存放中断服务程序。但通常情况下,8个单元难以存下一个完整的中断服务程序,因此通常也是从中断地址区首地址开始存放一条无条件转移指令,以便中断响应后,通过中断地址区,再转到中断服务程序的实际入口地址。2.3.3专用寄存器(SFR)简介8051共有21个专用寄存器,其中部分寄存器简单介绍如下:(1)程序计数器PC: PC是一个16位的计数器,它的作用是控制程序的执行顺序。其内容为将要执行指令的地址,寻址范围达64 KB。PC有自动加1功能,从而实现程序的顺序执行。PC没有地址,是不可寻址的,因此用户无法对它进行读写,但可以通过转移、调用、返回等指令改变其内容,以实现程序的转移。因地址不在SFR(专用寄存器)之内,一般不计作专用寄存器。(2)累加器 ACC:累加器为8位寄存器,是最常用的专用寄存器,功能较多,地位重要。它既可用于存放操作数,也可用来存放运算的中间结果。MCS-51单片机中大部分单操作数指令的操作数就取自累加器,许多双操作数指令中的一个操作数也取自累加器。(3)B寄存器。B寄存器是一个8位寄存器,主要用于乘除运算。乘法运算时,B存乘数。乘法操作后,乘积的高8位存于B中,除法运算时,B存除数。除法操作后,余数存于B中。此外,B寄存器也可作为一般数据寄存器使用。 (4)程序状态字PSW:序状态字是一个8位寄存器,用于存放程序运行中的各种状态信息。其中有些位的状态是根据程序执行结果,由硬件自动设置的,而有些位的状态则使用软件方法设定。PSW的位状态可以用专门指令进行测试,也可以用指令读出。一些条件转移指令将根据PSW有些位的状态,进行程序转移。PSW的各位定义如下:表 2-3 PSW的位状态PSW位地址D7HD6HD5HD4HD3HD2HD1HD0H字节地 址CYACF0RS1RS0OVF1P除PSW.1位保留未用外,其余各位的定义及使用如下:CY(PSW.7)进位标志位。CY是PSW中最常用的标志位。其功能有二:一是存放算术运算的进位标志,在进行加或减运算时,如果操作结果的最高位有进位或借位时,CY由硬件置“1”,否则清“0”;二是在位操作中,作累加位使用。位传送、位与位或等位操作,操作位之一固定是进位标志位。AC(PSW.6)辅助进位标志位。在进行加减运算中,当低4位向高4位进位或借位时,AC由硬件置“1”,否则AC位被清“0”。在BCD码调整中也要用到AC位状态。 F0(PSW.5)用户标志位。这是一个供用户定义的标志位,需要利用软件方法置位或复位,用以控制程序的转向。RS1和RS0(PSW.4,PSW.3)寄存器组选择位。它们被用于选择CPU当前使用的通用寄存器组。通用寄存器共有4组。这两个选择位的状态是由软件设置的,被选中的寄存器组即为当前通用寄存器组。但当单片机上电或复位后,RS1 RS0=00。OV(PSW.2)溢出标志位。在带符号数加减运算中,OV=1表示加减运算超出了累加器A所能表示的符号数有效范围(-128+127),即产生了溢出,因此运算结果是错误的,否则,OV=0表示运算正确,即无溢出产生。在乘法运算中,OV=1表示乘积超过255,即乘积分别在B与A中,否则,OV=0,表示乘积只在A中。在除法运算中,OV=1表示除数为0,除法不能进行,否则,OV=0,除数不为0,除法可正常进行。P(PSW.0)奇偶标志位。表明累加器A中内容的奇偶性。如果A中有奇数个“1”,则P置“1”,否则置“0”。凡是改变累加器A中内容的指令均会影响P标志位。此标志位对串行通信中的数据传输有重要的意义。在串行通信中常采用奇偶校验的办法来校验数据传输的可靠性。(5)数据指针(DPTR)。数据指针为16位寄存器。编程时,DPTR既可以按16位寄存器使用,也可以按两个8位寄存器分开使用,即: DPH DPTR高位字节 DPL DPTR低位字节DPTR通常在访问外部数据存储器时作地址指针使用。由于外部数据存储器的寻址范围为64 KB,故把DPTR设计为16位。(6)堆栈指针(SPStack Pointer)。堆栈是一个特殊的存储区,用来暂存数据和地址,它是按“先进后出”的原则存取数据的。堆栈共有两种操作:进栈和出栈。由于8051单片机的堆栈设在内部RAM中,因此SP是一个8位寄存器。系统复位后,SP的内容为07H,从而复位后堆栈实际上是从08H单元开始的。但08H1FH单元分别属于工作寄存器13区,如程序要用到这些区,最好把SP值改为1FH或更大的值。一般在内部RAM的30H7FH单元中开辟堆栈。SP的内容一经确定,堆栈的位置也就跟着确定下来,由于SP可初始化为不同值,因此堆栈位置是浮动的。注意:MCS-51系列单片机有21个可寻址的专用寄存器,其中有11个专用寄存器是可以位寻址的。对专用寄存器的字节寻址问题作如下几点说明: 1)21个可字节寻址的专用寄存器是不连续地分散在内部RAM高128单元之中,尽管还余有许多空闲地址,但用户并不能使用。2)程序计数器PC不占据RAM单元,它在物理上是独立的,因此是不可寻址的寄存器。 3)对专用寄存器只能使用直接寻址方式,书写时既可使用寄存器符号,也可使用寄存器。 2.4 MCS-51单片机的定时计数 2.4.1 定时器/计数器的结构 图 2-5 定时器/计数器的结构定时/计数器逻辑结构 计数器 2个16位T/C分别由8位计数器TH0、TL0、TH1、TL1组成“+1”结构 控制寄存器TCON:控制T/C的启停、中断等 方式寄存器TMOD:控制T/C的工作方式 2.4.2 定时器/计数器的工作方式 (1) 方式0 M1M0=00 13位的定时计数器,由TH的8位和TL的低5位组成以T1为例:图 2-6 定时/计数器方式0逻辑图(2) 方式1 M1M0=01 16位的定时计数器,由TH的8位和TL的8位组成以T1为例:图 2-7 定时/计数器方式1逻辑图(3) 方式2 M1M0=10 可自动重装载的8位计数器TL1(TL0)被定义为计数器TH1(TH0)被定义为赋值寄存器以T1为例:图 2-8 定时/计数器方式2逻辑图(4) 方式3 M1M0=11 T0被分成2个相互独立的8位计数器TL0 、TH0TL0使用自己本身的一些控制位C/T、GATE、TR0TF0、INT0等。TH0只能做定时器,并使用T1的控制位TR1、TF1,同时占用T1的中断源图 2-9 定时/计数器方式3逻辑图TH0借用了T1的TR1和TF1,因此控制了T1的中断此时T1只能用在一些不要中断的情况下定时/计数器方式3逻辑图2.4.3定时/计数器的初始化初始化一般有以下几个步骤:(1)确定工作方式,对方式寄存器TMOD赋值(2)预置定时或计数初值,直接将其写入T0、T1中(3)根据需要对中断允许寄存器有关位赋值,以开放或禁止定时/计数器中断(4)启动定时/计数器,将TRi 赋值为“1”2.5 MCS-51单片机的中断系统 中断的概念:中断是计算机工作过程的随机事件。 2.5.1 中断源 A 中断源中断源:引起中断的事件或设备称为中断源。采用中断的优点:良好的中断系统使处理机具有随机应变的能力,从而扩大应用范围,提高CPU效率51中断系统的特点:内容丰富,结构合理,逻辑性强,高效实用中断源是指能发出中断请求,引起中断的装置或事件。8051单片机的中断源共有5个,其中2个为外部中断源,3个为内部中断源: INT0:外部中断0,中断请求信号由P3.2输入。 INT1:外部中断1,中断请求信号由P3.3输入。 T0:定时/计数器0溢出中断,对外部脉冲计数由P3.4输入。 T1:定时/计数器1溢出中断,对外部脉冲计数由P3.5输入。 串行中断:包括串行接收中断RI和串行发送中断TI。B 中断寄存器8051单片机中涉及中断控制的有3个方面4个特殊功能寄存器: 中断请求:定时和外中断控制寄存器TCON;串行控制寄存器SCON; 中断允许控制寄存器IE; 中断优先级控制寄存器IP。 中断请求控制寄存器TCONINT0、INT1、T0、T1中断请求标志放在TCON中串行中断请求标志放在SCON中。TCON的结构、位名称、位地址如下:表 2-4 TCON的状态TCOND7D6D5D4D3D2D1D0位名称TF1-TF0-IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88HTCON位功能: TF1 T1溢出中断请求标志,T1计数溢出后,TF1=1 TF0 T0溢出中断请求标志 T0计数溢出后,TF0=1 IE1 外中断中断请求标志 当P3.3引脚信号有效时,IE1=1 IE0 外中断中断请求标志 当P3.2引脚信号有效时,IE0=1 IT1 外中断触发方式控制位 IT1=1,边沿触发方式; IT1=0,电平触发方式。 IT0 外中断触发方式控制位 其意义和功能与IT1相似。(2)中断请求控制寄存器SCONSCON的结构、位名称、位地址如下: TI 串行口发送中断请求标志 RI 串行口接收中断请求标志表 2-5 SCON的状态SCOND7D6D5D4D3D2D1D0位名称-TIRI位地址-99H98H (3)中断允许控制寄存器IE8051对中断源的开放或关闭由中断允许控制寄存器IE控制。IE的结构、位名称和位地址如下:表 2-6 IE的状态IED7D6D5D4D3D2D1D0位名称EA-ESET1EX1ET0EX0位地址AFH-ACHABHAAHA9HA8H EA CPU中断允许控制位 EA=1,CPU开中; EA=0,CPU关中,且屏蔽所有5个中断源。 EX0 外中断INT0中断允许控制位 EX0=1,INT0开中;EX0=0,INT0关中。 EX1 外中断INT1中断允许控制位 EX1=1,INT1开中;EX1=0,INT1关中。 ET0 定时/计数器T0中断允许控制位 ET0=1,T0开中;ET0=0,T0关中。 ET1 定时/计数器T1中断允许控制位 ET1=1,T1开中;ET1=0,T1关中。 ES 串行口中断(包括串发、串收)允许控制位 ES=1,串行口开中;ES=0,串行口关中。C 中断入口地址8051的五个中断入口地址:INT0:0003H;T0:000BH;INT1:0013HT1:001BH;串行口:0023HD 中断优先控制和中断嵌套(1) 中断优先控制8051中断优先控制首先根据中断优先级,此外还规定了同一中断优先级之间的中断优先权。其从高到低的顺序为:INT0、INT1、T0、T1、串行口。(2) 中断嵌套当CPU正在执行某个中断服务程序时,如果发生更高一级的中断源请求中断,CPU可以“中断”正在执行的低优先级中断,转而响应更高一级的中断,这就是中断嵌套。中断嵌套只能高优先级“中断”低优先级,低优先级不能“中断”高优先级,同一优先级也不能相互“中断”。 2.5.2 中断控制 (1)中断允许寄存器 IE图 2-10 IE工作状态IE 的相应位被置 “0” 或 “1” 该相应中断即被“禁止”或“开放”(2)中断优先级寄存器 IP图 2-11 IP工作状态(3)优先级结构中断优先级控制遵循的两个基本原则: 1)一个正在执行的低级中断服务程序,能被高优先级中断请求所中断,但不能被同优先级中断请求所中断。2)一个正在执行的高级中断服务程序,不能被任何中断请求所中断,直到返回。实现这两个原则的方法:中断系统内部设置了两个不可寻址的优先级状态触发器。一个指出正在处理的是:高优先级中断,并阻止所有其他中断;另一个指出正在处理的是:低优先级中断,并阻止了除高优先级中断外的其他任何中断。 在同级的几个中断源中同时发生请求时,内部对同级的各中断源的优先级别有一个规定的查询顺序: 2.5.3 中断响应 图 2-12 中断相应2.5.4 中断请求的撤除 INT0(P3.2 2个外部中断 INT1(P3.3) 5个中断源 2个优先级 T0 3个内部中断 T1 UARTMCS 51 与中断有关的特殊功能寄存器:中断要 IP: 中断优先控制寄存器 可编程,可控 IE: 中断允许控
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026吉安市新供商贸物流有限公司招募就业见习人员2人笔试参考题库及答案解析
- 2026年西安市莲湖第一学校招聘笔试备考题库及答案解析
- 2026浙江丽水莲都区投资促进中心招募见习生1人考试参考题库及答案解析
- 2026上半年安徽事业单位联考合肥市巢湖市招聘22人笔试备考试题及答案解析
- 2026湖南邵东市城区第五完全小学春季见习教师招聘考试参考题库及答案解析
- 2026山东淄博文昌湖省级旅游度假区面向大学生退役士兵专项岗位招聘1人笔试模拟试题及答案解析
- 2026年家族办公室运营培训
- 2026浙江大学医学院附属第一医院江西医院(江西省心血管神经肿瘤医学中心)高层次人才招聘27人(9)考试参考题库及答案解析
- 首都师大附中科学城学校教师招聘考试备考题库及答案解析
- 2026年甘肃嘉峪关市人力资源和社会保障局招聘公益性岗位考试参考题库及答案解析
- DB5101∕T 214-2025 公园城市立体绿化技术指南
- 基本药物培训课件资料
- 汪金敏 培训课件
- 物流公司托板管理制度
- 医疗护理操作评分细则
- 自考-经济思想史知识点大全
- 银行资金闭环管理制度
- 2024年山东省胸痛中心质控报告
- 中外航海文化知到课后答案智慧树章节测试答案2025年春中国人民解放军海军大连舰艇学院
- dlt-5161-2018电气装置安装工程质量检验及评定规程
- 学习无人机航拍心得体会1000字
评论
0/150
提交评论