单片机原理及应用课后答案华中科技大学版

上传人:无*** 文档编号:126305235 上传时间:2022-07-28 格式:DOC 页数:40 大小:85KB
收藏 版权申诉 举报 下载
单片机原理及应用课后答案华中科技大学版_第1页
第1页 / 共40页
单片机原理及应用课后答案华中科技大学版_第2页
第2页 / 共40页
单片机原理及应用课后答案华中科技大学版_第3页
第3页 / 共40页
资源描述:

《单片机原理及应用课后答案华中科技大学版》由会员分享,可在线阅读,更多相关《单片机原理及应用课后答案华中科技大学版(40页珍藏版)》请在装配图网上搜索。

1、习题11.1什么是单片微型计算机?答:单片微型计算机是将计算机的基本部件微型化并集成到一块芯片上的微型计算机,是计算机微型化的典型代表之一,一般片内都具有CPU、ROM、RAM、并行I/O、串行I/O、定期器/计数器、中断控制、系统时钟及系统总线等。1.2单片机的发展经历了哪几种阶段?在哪一阶段确立了单片机在嵌入式应用中的地位。答:单片机初级阶段(19741976年),芯片化摸索阶段(19761978年),8位单片机成熟阶段(19781982年),从SCM向MCU过渡阶段(19831990年),MCU百花齐放阶段(1990年至今)。其中,芯片化摸索阶段(19761978年)确立了单片机在嵌入式

2、应用中的地位。1.3 单片机可分为几种系列?简述每个系列的重要特性。答:单片机按系列可分为80C51系列、PIC系列和AVR系列等。PIC系列单片机是Micro Chip公司的产品,与51系列单片机不兼容。1) PIC系列单片机最大的特点是从实际出发,注重产品的性能与价格比,发展多种型号来满足不同层次的应用规定。2) 精简指令使其执行效率大为提高。3) 产品上市零等待(Zero time to market)。4) PIC有优越开发环境。5) 其引脚具有防瞬态能力,通过限流电阻可以接至220V交流电源,可直接与继电器控制电路相连,不必光电耦合器隔离,给应用带来极大以便。6) 彻底的保密性。7)

3、 自带看门狗定期器,可以用来提高程序运营的可靠性。8) 睡眠和低功耗模式。AVR单片机是1997年由ATMEL公司研发出的增强型内置Flash的RISC(Reduced Instruction Set CPU) 精简指令集高速8位单片机。AVR单片机的重要特性1) AVR单片机以字作为指令长度单位,将内容丰富的操作数与操作码安排在一字之中(指令集中占大多数的单周期指令都是如此),取指周期短,又可预取指令,实现流水作业,故可高速执行指令。 2) AVR单片机硬件构造采用8位机与16位机的折中方略,即采用局部寄存器堆(32个寄存器文献)和单体高速输入/输出的方案(即输入捕获寄存器、输出比较匹配寄存

4、器及相应控制逻辑)。提高了指令执行速度(1MIPS/MHz),克服了瓶颈现象;同步又减少了对外设管理的开销,相对简化了硬件构造,减少了成本。 3) AVR单片机内嵌高质量的Flash程序存储器,擦写以便,支持ISP和IAP,便于产品的调试、开发、生产、更新。 4) AVR单片机的I/O线所有带可设立的上拉电阻、可单独设定为输入/输出、可设定(初始)高阻输入、驱动能力强(可省去功率驱动器件)等特性,使得I/O口资源灵活、功能强大、可充足运用。5) AVR单片机片内具有多种独立的时钟分频器,分别供URAT、I2C、SPI使用。6) 增强性的高速同/异步串口,具有硬件产生校验码、硬件检测和校验帧错、

5、两级接受缓冲、波特率自动调节定位(接受时)、屏蔽数据帧等功能,提高了通信的可靠性,以便程序编写,更便于构成分布式网络和实现多机通信系统的复杂应用,串口功能大大超过MCS-51/96单片机的串口,加之AVR单片机高速,中断服务时间短,故可实现高波特率通讯。7) 面向字节的高速硬件串行接口TWI、SPI。TWI与I2C接口兼容,具有ACK信号硬件发送与辨认、地址辨认、总线仲裁等功能,能实现主/从机的收/发所有4种组合的多机通信。SPI支持主/从机等4种组合的多机通信。8) AVR单片机有自动上电复位电路、独立的看门狗电路、低电压检测电路BOD,多种复位源(自动上电复位、外部复位、看门狗复位、BOD

6、复位),可设立的启动后延时运营程序,增强了嵌入式系统的可靠性。9) AVR单片机具有多种省电休眠模式,且可宽电压运营(52.7V),抗干扰能力强,可减少一般8位机中的软件抗干扰设计工作量和硬件的使用量。10) AVR单片机技术体现了单片机集多种器件(涉及FLASH程序存储器、看门狗、EEPROM、同/异步串行口、 TWI、SPI、A/D模数转换器、定期器/计数器等)和多种功能(增强可靠性的复位系统、减少功耗抗干扰的休眠模式、品种多门类全的中断系统、具有输入捕获和比较匹配输出等多样化功能的定期器/计数器、具有替代功能的I/O端口等)于一身,充足体现了单片机技术的从“片自为战”向“片上系统SOC”

7、过渡的发展方向1.4 简述单片机技术发展的趋势。答:(1)单片机的大容量化单片机内存储器容量进一步扩大。以往片内ROM为1KB8KB,RAM为64字节256字节。目前片内ROM可达40KB,片内RAM可达4KB,I/O也不需再外加扩展芯片。OTPROM、Flash ROM成为主流供应状态。而随着单片机程序空间的扩大,在空余空间可嵌入实时操作系统RTOS等软件。这将大大提高产品的开发效率和单片机的性能。(2)单片机的高性能化高性能化重要是指进一步改善CPU的性能,加快指令运算的速度和提高系统控制的可靠性。采用精简指令集(RISC)构造,可以大幅度提高运营速度。并加强位解决功能、中断和定期控制功能

8、;采用流水线构造,指令以队列形式出目前CPU中,因而具有很高的运算速度,有的甚至采用多级流水线构造。单片机的扩展方式从并行总线到发展出多种串行总线,并被工业界接受,形成某些工业原则。如I2C、SPI串行总线等。它们采用3条数据总线替代现行的8条数据总线,从而减少了单片机引线,减少了成本。单片机系统构造更加简化及规范化。(3)单片机的小容量低廉化小容量低廉的4位、8位机也是单片机发展方向之一。其用途是把以往用数字逻辑电路构成的控制电路单片化。专用型的单片机将得到大力发展。使用专用单片机可最大限度地简化系统构造,提高可靠性,使资源运用率最高。在大批量使用时有可观的经济效益。(4)单片机的外围电路内

9、装化随着集成度的不断提高,可以把众多的外围功能器件集成到单片机内。除了CPU、ROM、RAM外,还可把A/D、D/A转换器、DMA控制器、声音发生器、监视定期器、液晶驱动电路、锁相电路等一并集成在芯片内。为了减少外部的驱动芯片,进一步增强单片机的并行驱动能力。有的单片机可直接输出大电流和高电压,以便直接驱动显示屏。为进一步加快I/O口的传播速度,有的单片机还设立了高速I/O口,可用最快的速度驱动外部设备,也可以用最快的速度响应外部事件。甚至单片机厂商还可以根据顾客的规定量身定做,把所需要的外围电路所有集成在单片机内,制造出具有自己特色的单片机。(5)单片机的全面CMOS化单片机的全面CMOS化

10、,将给单片机技术发展带来广阔的天地。CMOS芯片除了低功耗特性之外,还具有功耗的可控性,使单片机可以工作在功耗精细管理状态。低功耗的技术措施可提高可靠性,减少工作电压,可使抗噪声和抗干扰等各方面性能全面提高。单片机的全盘CMOS化的效应不仅是功耗低,并且带来了产品的高可靠性、高抗干扰能力以及产品的便携化。(6)单片机的应用系统化单片机是嵌入式系统的独立发展之路,单片机向MCU发展的重要因素,就是谋求应用系统在芯片上的最大化解决。因此,专用单片机的发展自然形成了SOC(System on Chip)化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SOC的单片机应用系统设计会有较大的发展。

11、因此,随着集成电路技术及工艺的迅速发展,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。1.5 单片机具有哪些突出长处?举例阐明单片机的应用领域。答:1单片机寿命长所谓寿命长,一方面指用单片机开发的产品可以稳定可靠地工作十年、二十年,另一方面是指与微解决器相比生存周期长。MPU更新换代的速度越来越快,以386、486、586为代表的MPU,几年内就被裁减出局。而老式的单片机如 8051、68HC05等年龄已有二十多岁,产量仍是上升的。某些成功上市的相对年轻的CPU核心,也会随着I/O功能模块的不断丰富,有着相称长的生存周期。28位、32位单片机共同发展这是目前单片机技术发展

12、的另一动向。长期以来,单片机技术的发展是以8位机为主的。随着移动通讯、网络技术、多媒体技术等高科技产品进入家庭,32位单片机应用得到了长足、迅猛的发展。3低噪声与高速度为提高单片机抗干扰能力,减少噪声,减少时钟频率而不牺牲运算速度是单片机技术发展之追求。某些8051单片机兼容厂商改善了单片机的内部时序,在不提高时钟频率的条件下,使运算速度提高了诸多。Motorola单片机使用了琐相环技术或内部倍频技术使内部总线速度大大高于时钟产生器的频率。68HC08单片机使用4.9MHz外部振荡器而内部时钟达32MHz。三星电子新近推出了1.2GHz的ARM解决器内核。4低电压与低功耗几乎所有的单片机均有W

13、ait、Stop等省电运营方式。容许使用的电源电压范畴也越来越宽。一般单片机都能在36V范畴内工作,对电池供电的单片机不再需要对电源采用稳压措施。低电压供电的单片机电源下限已由2.7V降至2.2V、1.8V。0.9V供电的单片机已经问世。5低噪声与高可靠性为提高单片机系统的抗电磁干扰能力,使产品能适应恶劣的工作环境,满足电磁兼容性方面更高原则的规定,各单片机商家在单片机内部电路中采用了某些新的技术措施。如ST公司的由原则8032核和PSD(可编程系统器件)构成的PSD系列单片机片内增长了看门狗定期器,NS公司的COP8单片机内部增长了抗EMI电路,增强了“看门狗”的性能。Motorola推出了

14、低噪声的LN系列单片机。6ISP与IAPISP(In-System Programming)技术的优势是不需要编程器就可以进行单片机的实验和开发,单片机芯片可以直接焊接到电路板上,调试结束即成成品,免除了调试时由于频繁地插入取出芯片对芯片和电路板带来的不便。IAP(In-Application Programming)技术是从构造上将Flash存储器映射为两个存储体,当运营一种存储体上的顾客程序时,可对另一种存储体重新编程,之后将程序从一种存储体转向另一种。ISP的实现一般需要很少的外部电路辅助实现,而IAP的实现更加灵活,一般可运用单片机的串行口接到计算机的RS232口,通过专门设计的固件程

15、序来编程内部存储器,可以通过既有的INTERNET或其他通讯方式很以便地实现远程升级和维护。单片机的应用领域:1)智能化家用电器:多种家用电器普遍采用单片机智能化控制替代老式的电子线路控制,升级换代,提高档次。如洗衣机、空调、电视机、录像机、微波炉、电冰箱、电饭煲以及多种视听设备等。2)办公自动化设备:现代办公室使用的大量通信和办公设备多数嵌入了单片机。如打印机、复印机、传真机、绘图机、考勤机、电话以及通用计算机中的键盘译码、磁盘驱动等。3)商业营销设备:在商业营销系统中已广泛使用的电子称、收款机、条形码阅读器、IC卡刷卡机、出租车计价器以及仓储安全监测系统、商场保安系统、空气调节系统、冷冻保

16、险系统等都采用了单片机控制。4)工业自动化控制:工业自动化控制是最早采用单片机控制的领域之一。如多种测控系统、过程控制、机电一体化、PLC等。在化工、建筑、冶金等多种工业领域都要用到单片机控制。5)智能仪器仪表:采用单片机的智能化仪表大大提高了仪表的档次,强化了功能。如数据解决和存储、故障诊断、联网集控等。6)智能化通信产品:最突出的是手机,固然手机内的芯片属专用型单片机。7)汽车电子产品:现代汽车的集中显示系统、动力监测控制系统、自动驾驶系统、通信系统和运营监视器(黑匣子)等都离不开单片机。8)航空航天系统和国防军事、尖端武器等领域:单片机的应用更是不言而喻。习题22.1 MCS-51单片机

17、内部涉及哪些重要逻辑功能部件?答:微解决器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、特殊功能寄存器(SFR)、并行I/O口、串行通信口、定期器/计数器及中断系统。2.2 阐明程序计数器PC和堆栈指针SP的作用。复位后PC和SP各为什么值?答:程序计数器PC中寄存将要执行的指令地址,PC有自动加1功能,以实现程序的顺序执行。它是SFR中唯一隐含地址的,因此,顾客无法对它进行读写。但在执行转移、调用、返回等指令时能自动变化其内容,以实现变化程序的执行顺序。程序计数器PC中内容的变化决定程序的流程,在执行程序的工作过程中,由PC输出将要执行的指令的程序存储器地址,CPU读取

18、该地址单元中存储的指令并进行指令译码等操作,PC则自动指向下一条将要执行的指令的程序存储器地址。SP是一种8位的SFR,它用来批示堆栈顶部在内部RAM中的位置。系统复位后SP为07H,若不对SP设立初值,则堆栈在08H开始的区域,为了不占用工作寄存器R0R7的地址,一般在编程时应设立SP的初值(最佳在30H7FH区域)。2.3 程序状态字寄存器PSW的作用是什么?其中状态标志有哪几位?它们的含义是什么?答:PSW是保存数据操作的成果标志,其中状态标志有CY(PSW.7):进位标志,AC(PSW.6):辅助进位标志,又称半进位标志,F0、F1(PSW.5、PSW.1):顾客标志;OV(PSW.2

19、):溢出标志;P(PSW.0):奇偶标志。2.4 什么是堆栈? 堆栈有何作用? 为什么要对堆栈指针SP重新赋值? SP的初值应如何设定?答:堆栈是一种数据构造,所谓堆栈就是只容许在其一端进行数据写入和数据读出的线性表。其重要作用有两个:保护断点和保护现场。堆栈区的设立原则上可以在内部RAM的任意区域,但由于MCS-51单片机内部RAM的00H1FH地址单元已被工作寄存器R0R7占用,20H2FH为位寻址区,故堆栈一般设在30H7FH(对于8032系列芯片可为30H0FFH)的区域内。单片机复位后,SP的内容为07H,堆栈事实上由08H单元开始,考虑到08H1FH单元分别属于13组的工作寄存器区

20、,则最佳把SP值改置为1FH或更大的值。2.5 开机复位后,CPU使用的是哪组工作寄存器? 它们的地址如何? CPU如何指定和变化目前工作寄存器组?答:开机复位后使用的是0组工作寄存器,它们的地址是00H07H,对程序状态字PSW中的RS1和RS0两位进行编程设立,可指定和变化目前工作寄存器组。RS1、RS0=00H时,目前工作寄存器被指定为0组;RS1、RS0=01H时,目前工作寄存器被指定为1组;RS1、RS0=10H时,目前工作寄存器被指定为2组;RS1、RS0=11H时,目前工作寄存器被指定为3组。2.6 MCS-51的时钟周期、机器周期、指令周期是如何定义的?当振荡频率为12MHz时

21、,一种机器周期为多少微秒?答: 时钟周期也称为振荡周期,定义为时钟脉冲的倒数,是计算机中最基本的、最小的时间单位。 CPU取出一条指令至该指令执行完所需的时间称为指令周期,因不同的指令执行所需的时间也许不同,故不同的指令也许有不同的指令周期。 机器周期是用来衡量指令或程序执行速度的最小单位。它的拟定原则是以最小指令周期为基准的,即一种最小指令周期为一种机器周期。当振荡频率为12MHz时,一种机器周期1微秒2.7 MCS-51单片机的控制信号、有哪些功能?答:是访问程序存储器控制信号。当端接低电平时,则不管芯片内部与否有程序存储器,CPU只访问外部程序存储器。对8031来说,因其内部无程序存储器

22、,因此该引脚必须接地。当端接高电平时,CPU访问内部程序存储器,但当PC(程序计数器)值超过某一值时,将自动转向片外程序存储器1000H地址继续执行程序。是地址锁存容许信号。当CPU访问外部存储器或I/O接口时,ALE输出脉冲的下降沿用于锁存16位地址的低8位。在不访问外部存储器或I/O接口时,ALE端有周期性正脉冲输出,其频率为振荡频率的1/6。但是,每当访问外部数据存储器或I/O接口时,在第二个机器周期中ALE只浮现一次,即丢失一种ALE脉冲。片外程序存储器读选通信号。在CPU从外部程序存储器读取指令(或常数)期间,每个机器周期两次有效,但在访问外部数据存储器或I/O接口时,信号将不浮现。

23、端可以驱动8个TTL负载。2.8 MCS-51的片外程序存储器和片外数据存储器共处同一地址空间为什么不会发生总线冲突?答:MCS-51的片外程序存储器和片外数据存储器共处同一地址空间,地址范畴都是0000HFFFFH(64 KB),但不会发生总线冲突。因片外程序存储器和片外数据存储器的读写控制信号不同,片外程序存储器的读信号是,而片外数据存储器的读信号为、写信号为,访问片外程序存储器和片外数据存储器的指令也不同,因此它们不会发生总线冲突。2.9 简述MCS-51内部数据存储器的存储空间分派。答:内部数据存储器分为3个区域:工作寄存器区(00H1FH);位寻址区(20H2FH);堆栈和数据缓冲器

24、区(30H7FH或30H0FFH)。2.10 位地址和字节地址有何区别? 位地址20H具体在内存中什么位置?答:MCS-51的位存储器由以内部RAM中20H2FH单元和特殊功能寄存器中地址为8的倍数的特殊功能寄存器两部分构成。其中每个单元的每一位均有一种位地址映像,它们既可以像一般内部RAM单元同样按字节存取,也可以对单元中的任何一位单独存取。字节地址是内部RAM中和特殊功能寄存器中每个存储单元的地址。位地址20H是内部RAM24H中的D0位。2.11 8051的4个IO口作用是什么? 8051的片外三总线是如何分派的?答:MCS-51单片机有4个8位并行I/O端口,分别记作P0、P1、P2、

25、P3口。 在访问片外扩展存储器时, P0口分时传送低8位地址和数据, P2口传送高8位地址。P1口一般作为通用I/O口供顾客使用。P3口具有第二功能,为系统提供某些控制信号。在无片外扩展存储器的系统中,这4个口均可作为通用I/O端口使用。在作为通用I/O端口使用时,这4个口都是准双向口。 在访问片外扩展存储器时,片外三总线的构成:P0口传送低8位地址经锁存器所存构成低8位地址总线,高8位地址总线由P2口构成。P0口作为单片机系统的低8位地址/数据线分时复用,在低8位地址锁存后,P0口作为双向数据总线。由P3口的第二功能输出数据存储器的读、写控制信号与片外程序存储器读选通信号,访问程序存储器控制

26、信号,地址锁存容许信号构成控制总线。习题33.1 汇编语句是由4个部分(字段)构成的,简述各部分的含义。答:汇编语句的4个部分为:标号: 操作码 操作数;注释标号是顾客设定的一种符号,表达寄存指令或数据的存储单元地址。标号由以字母开始的18个字母或数字串构成,以冒号结尾。不能用指令助记符、伪指令或寄存器名来作标号。标号是任选的,并不是每条指令或数据存储单元都要标号,只在需要时才设标号。如转移指令所要访问的存储单元前面一般要设立标号。一旦使用了某标号定义一种地址单元,在程序的其他地方就不能随意修改这个定义,也不能反复定义。操作码是指令或伪指令的助记符,用来表达指令的性质或功能。对于一条汇编语言指

27、令,这个字段是必不可少的。操作数给出参与运算(或其他操作)的数据或数据的地址。操作数可以表达为工作寄存器名、特殊功能寄存器名、标号名、常数、体现式等。这一字段也许有,也也许没有。若有两个或三个操作数,它们之间应以逗号分开。注释字段不是汇编语言的功能部分,只是增长程序的可读性。言简意赅的注释是汇编语言程序编写中的重要构成部分。3.2举例阐明MCS-51单片机的7种寻址方式,各寻址方式的寻址空间。立即寻址立即寻址方式的寻址空间为程序存储器。 例如: MOV A,#3FH ;3FHA直接寻址直接寻址方式中操作数存储的空间有三种: 内部数据存储器的低128个字节单元(00H7FH)例如: MOV A,

28、30H ;(30H)A指令功能是把内部RAM 30H单元中的内容送入累加器A。 位地址空间例如: MOV C,00H ;直接位00H内容进位位 特殊功能寄存器例如: MOV IE,#85H ;立即数85H中断容许寄存器IE。寄存器寻址寄存器寻址方式的寻址空间为工作寄存器和特殊功能寄存器等。 例如: MOV A,R6 ;(R6)A寄存器间接寻址寄存器间接寻址空间为内部RAM 128字节,外部RAM例如: MOV A,R0 ;((R0))A变址寻址变址寻址空间为程序存储器。例如: MOVC A,ADPTR ;(DPTR)()AMOVC A,APC ;(PC)()A相对寻址相对寻址空间为程序存储器。

29、目前PC值是指相对转移指令所在地址(源地址)加转移指令字节数。即:目前PC值 = 源地址 + 转移指令字节数偏移量rel 是有符号的单字节数,以补码表达,相对值在-128+127范畴内,负数表达从目前地址向上转移,正数表达从目前地址向下转移。因此转移的目的地址为:目的地址 = 目前PC值 + rel = 源地址 + 转移指令字节数 + rel例如: JNC 2AH , JZ F8H位寻址位寻址空间为内部RAM 20H2FH的128位和SFR中的83位。例如: MOV C,30H, MOV P1.0, C3.3指出下列指令的寻址方式和操作功能:INC 40H ;直接寻址 (40H)+140HIN

30、C A ;寄存器寻址 (A)+1AINC R2 ;寄存器间接寻址 (R2)+1(R2)MOVC A, A+DPTR ;基址加变址寄存器寻址 (A)+(DPTR) AMOV A, #6EH ;立即寻址 6EHASETB P1.0 ;位寻址 P1.0置13.4 设内部RAM中3AH单元的内容为50H,写出当执行下列程序段后寄存器A、R0和内部RAM 50H,51H单元的内容为什么值?MOV A,3AH ;(A)=50HMOV R0,A ;(R0)=50HMOV A,#00H ;(A)=00HMOV R0,A ;(50H)=00HMOV A,#25H ;(A)=25HMOV 51H,A ;(51H)

31、=25H答:(A)=25H, (3AH)=50H, (R0)=50H, (50H)=00H, (51H)=25H3.5 设堆栈指针SP中的内容为60H,内部RAM 30H和31H单元的内容分别为27H和1AH,执行下列程序段后,61H,62H,30H,31H,DPTR及SP中的内容将有何变化?PUSH 30H ;(SP)+1SP, (30H) 61HPUSH 31H ;(SP)+1SP, (31H) 62HPOP DPL ; (62) DPL, (SP)-1SPPOP DPH ; (61) DPH, (SP)-1SPMOV 30H,#00H ; 00H30HMOV 31H,#0FFH ; FF

32、H31H答:(61H)=27H, (62H)=1AH, (30H)=00H, (31H)=FFH, (DPTR)=271AH, (SP)=60H3.6 设(A)=30H,(R1)=23H,(30H)=05H。执行下列两条指令后,累加器A和R1以及内部RAM 30H单元的内容各为什么值?XCH A,R1XCHD A,R1答:(A)=25H, (R1)=30H, (30H)=03H3.7 设(A)=01010101B,(R5)=10101010B,分别写出执行下列指令后的成果ANL A, R5 ; (A)=0000 0000B, (R5)=10101010BORL A, R5 ; (A)= 101

33、01010B, (R5)=10101010BXRL A, R5 ; (A)=00000000B3.8 设指令SJMP rel=7FH,并假设该指令寄存在2113H和2114H单元中。当该条指令执行后,程序将跳转到何地址?答:程序将跳转到2194H地址3.9 简述转移指令AJMP addr11,SJMP rel, LJMP addr16及JMP A+DPTR的应用场合。答:AJMP addr11这是在目前PC的2K字节范畴内的无条件转移指令,把程序的执行转移到指定的地址。SJMP rel 这是相对跳转指令,其中rel为相对偏移量。转向的目的地址是在目前PC的前128字节到后127字节之间。LJM

34、P addR16 执行这条指令时把指令的第二和第三字节分别装入PC的高位和低位字节中,无条件地转向指定地址。转移的目的地址可以在64KB程序存储器地址空间的任何地方,不影响任何标志。JMP A+DPTR 把累加器A中8位无符号数与数据指针DPTR中的16位数相加,将成果作为转移的目的地址送入PC,不变化累加器A和数据指针DPTR内容,也不影响标志。本指令以DPTR内容作为基址,A的内容作为变址。只要把DPTR的值固定,而给A赋予不同的值,即可实现程序的多分支转移。3.10 查指令表,写出下列两条指令的机器码,并比较一下机器码中操作数排列顺序的特点。MOV 78H,80H ;85 80 78MO

35、V 78H,#80H ;75 78 80答:直接寻址单元传送到直接寻址单元的机器码是第二个操作数在前,而立即数传送到直接地址单元是第一种操作数在前,顺序正好相反。3.11 试编写程序,查找在内部RAM 30H50H单元中1AH这一数据。若找到1AH则将51H单元置为01H;没找到则将51H单元置为00H。答:参照程序如下MOV R1, #2FHLOOP1: INC R1CJNE R1, #1AH, LOOP2SJMP LOOP3LOOP2: CJNE R1, #51, LOOP1MOV 51H, #00HSJMP ENDLOOP3: MOV 51H, #01HEND: RET3.12 若SP=

36、60H,子程序标号MULT所在的地址为3A40H。执行LCALL MULT指令后,堆栈指针SP和堆栈内容发生了什么变化?答:(SP)=62H, (61H)=40H, (62H)=3AH3.13 假设外部存储器215AH单元的内容为3DH,执行下列指令后,累加器A中的内容为什么值?MOV P2,#21HMOV R0,#5AHMOVX A,R0答:(A) = 3DH习题44.1 编程将数据存储器中以2A00H为首地址的100个持续单元清零。CLR AMOV R0, #64HMOV DPTR, #2A00HLOOP: MOVX DPTR,AINC DPTRDJNZ R0, LOOPEND4.2 编程

37、将片内50H70H单元中的内容传送到以5C00H为起始地址的存储区中。MOV DPTR, #5C00HMOV R0, #50HLOOP: MOV A,R0MOVX DPTR,AINC R0INC DPTRCJNE R0,#70H,LOOPEND4.3 片外RAM区从1000H单元开始存有100个单字节无符号数,找出最大值并存入1100H单元中,试编写程序。MOV DPTR, #1000H ;置片外RAM区首地址MOV R0,#00H ;清 R0MOV R1,64H ;置计数初值100LOOP: MOVX A, DPTR ;取片外RAM区的某个数送ACJNZ A,R0,NT1 ;与R0中的数比较

38、NT1: JC NT2 ;(A)(R0)跳转到NT2MOV RO,A ;若(A)(R0),则大数送RONT2: INC DPTR ;修改数据块指针DJNZ R1,LOOP ;未完,循环RET4.4 设有100个单字节有符号数,持续寄存在以2100H为首地址的存储区中,试编程记录其中正数、负数、零的个数。MOV R0, #00H ; 置负数的计数初值MOV R1, #00H ; 置正数的计数初值MOV R2, #00H ; 置0的计数初值MOV R4, #64H ; 置循环计数初值MOV DPTR, #2100H ; 置数据区首地址START:MOVX A, DPTR ; 取某一数据送入AJZ

39、EQUAL ;为0转EQUALJNB ACC.7, POSI ;为正数转POSIINC R0 ; 负数计数值加1INC DPTR ; 修改数据块指针DJNZ R4, START ; 未完,返回POSI: INC R1 ; 正数计数值加1INC DPTR ; 修改数据块指针DJNZ R4, STARTEQUAL:INC R2 ; 0计数值加1INC DPTRDJNZ R4, STARTEND4.5 从2030H单元开始,存有100个有符号数,规定把它传送到从20BOH开始的存储区中,但负数不传送,试编写程序。MOV R1, #64H ;置计数初值MOV R0, #B0H ;目的数据区首地址低8位

40、,高8位为20HMOV DPTR, #2030H ;源数据区首地址START:MOVX A, DPTR ;取源数据区某数据送入AJB ACC.7, D1 ;负数,转D1MOVX R0,A ;正数,送入目的数据区INC DPTR ; 修改源数据块指针INC R0 ; 修改目的数据块指针DJNZ R1, START ;未完,继续RET ;返回D1: INC DPTR ;修改源数据块指针INC R0 ;修改目的数据块指针DJNZ R1, START ;未完,继续RET ;返回4.6 若从30H单元开始有100个数,编一种程序检查这些数,正数保持不变,负数取补后送回。MOV R0, #30H ;数据区

41、首地址MOV R1, #64H ;计数初值START: MOVX A, R0 ;取某个数JNB ACC.7, POSI ;正数,转POSICPL A ;负数,取补ADD A, #01HMOVX R0, A ;送回原地址INC R0 ;修改数据块指针DJNZ R1, START ;未完,继续RETPOSI: INC R0 ;修改数据块指针DJNZ R1, START ;未完,继续RET4.7 试编程把以2040H为首地址的持续10个单元的内容按升序排列,存到本来的存储区中。SORT: MOV DPTR, #2040H;MOV R3, #09H;CLR F0;D1: MOVX A,DPTR ;MO

42、V R2, A ;前一种数送R2INC DPTRMOVX A, DPTR ;MOV R4, A ;后一种数送R4MOV A, R2 ;前一种数送ACLR CSUBB A, R4 ;前一种数减后一种数JC NEXT ;MOV A, R2 ;相邻数互换MOVX DPTR,AMOV R0,DPL ;数据指针低8位减1DEC R0MOV DPL,R0MOV A, R4 ;MOVX DPTR,AINC DPTR;SETB F0NEXT: DJNZ R3, D1;JB F0,SORTRET4.8 设在HH单元中寄存有5个压缩BCD码,编程将它们转换成ASCII码,寄存到以H为首地址的存储区中。MOV DP

43、TR,#H;MOV R0, #05H;MOV R1, #04H;D1: MOVX A, DPTR;ANL A, #0FHCLR C;ADD A,#30H;MOV P2,#20HMOVX R0,AINC DPTR;INC R0DJNZ R1, D1;RET在以H为首地址的存储区中,寄存着20个用ASCII码表达的O9之间的数,试编程,将它们转换成BCD码,并以压缩BCD码的形式寄存在3000H3009H单元中。MOV DPTR, H;MOV R0, #20H;MOV R1, #00H;ASCBIN: MOVX A, DPTR;CLR CSUBB A, #30H;MOV P2, 30H;MOVX

44、R1,A;INC R1;INC DPTR;DJNZ R0, ASCBIN;RET4.10 试编写多字节BCD码数加法、减法子程序。4.11 若晶振为6MHz,试编写延时100ms、1s的子程序。ORG H 周期数MOV R0, #0AH ;毫秒数R0 1DL2: MOV R1, #MT ;1ms延时值R1 1DL1: NOP 1NOP 1DJNZ R1,DL1 ;1ms延时循环 2DJNZ R0,DL2 ;10ms延时循环 2END4.12 试设计一种子程序,其功能为将片内RAM 20H21H中的压缩BCD码转换为二进制数,并存于以30H开始的单元。BCDB: MOV A,20HMOV R2,

45、A ;取千位、百位BCD码ACALL BCDB1 ;调用子程序MOV B,#0AHMUL AB ;乘以10MOV R6,A ;乘积低8位送R6XCH A,B ;互换乘积高、低位MOV R5,A ;乘积高位送R5MOV A,21H ;取十位、个位BCD码MOV R2,A ;送入R2ACALL BCDB1 ;调用子程序ADD A,R6 ;加千位、百位乘积低8位MOV 31H,A ;低8位送入31HMOV A,R5 ;乘积高8位送AADDC A,#00H ;加进位位MOV 30H,A ;成果高8位送入30HHERE: SJMP HERE子程序清单:BCDB1: MOV A,R2 ;取压缩BCD码AN

46、L A,#0F0H ;屏蔽低4位SWAP AMOV B,#0AHMUL AB ;高位BCD码乘以10MOV R3,A ;乘积送R3MOV A,R2 ;取压缩BCD码ANL A,#0FH ;屏蔽高4位ADD A,R3 ;高位BCD码乘以10后加低位BCD码MOV R2,A ;送R2RET习题55.1 什么是中断系统?中断系统的功能是什么?答:当CPU正在解决某件事情(例如,正在执行主程序)的时候,外部或内部发生的某一事件(如某个引脚上电平的变化,一种脉冲沿的发生或计数器的计数溢出等)祈求CPU迅速去解决,于是,CPU临时终结目前的工作,转去解决所发生的事件。中断服务程序解决完该事件后,再回到本来

47、被终结的地方,继续本来的工作,这样的过程称为中断。实现这种功能的部件称为中断系统。中断系统的功能:(1)实现中断及中断返回,(2)实现优先级排队,(3)实现优先级控制。5.2 什么是中断嵌套?答:当CPU响应某一中断源的祈求而进行中断解决时,若有优先级更高的中断源发出中断祈求,则CPU中断正在执行的中断服务程序,保存程序的断点和现场,响应更高一级的中断,即是中断嵌套。5.3 什么是中断源?MCS-51有哪些中断源?各有什么特点?答:向CPU发出中断祈求的来源称为中断源。MC5-51单片机的中断系统有5个中断祈求源:外部中断0祈求,由引脚输入,中断祈求标志为IE0。外部中断l祈求,由引脚输入,中

48、断祈求标志为IEl。定期器/计数器T0溢出中断祈求,中断祈求标志为TF0。定期器/计数器T1 溢出中断祈求,中断祈求标志为TF1。串行口中断祈求,中断祈求标志为TI或RI。外部中断0:它的触发方式选择位为IT0。IT0=0,为电平触发方式,引脚上低电平有效IT0=1,为脉冲触发方式,引脚上的电平从高到低的负跳变有效。IT0位可由软件置“1”或清“0”。外部中断0祈求标志位IE0。当IT0=0,即电平触发方式时,每个机器周期的S5P2采样引脚,若脚为低电平,则置“1” IE0,否则清“0” IE0。当IT0=1,即跳沿触发方式时,在第一种机器周期采样为低电平,则置“1” IE0。IE0=1,表达

49、外部中断0正在向CPU申请中断。当CPU响应中断,转向中断服务程序时,由硬件清“0” IE0。外部中断1中断原是与此相似。定期器/计数器0:被启动计数后,从初值开始加1计数,当定期器/计数器0计数满而产生溢出时,由硬件自动使TF0置 1,并向CPU申请中断。该标志始终保持到CPU响应中断后,才由硬件自动清0。也可用软件查询该标志,并由软件清0。定期器/计数器1中断原理与此相似。串行中断祈求由TI、RI的逻辑“或”得到。即不管是发送标志还是接受标志,都将发生串行中断祈求。5.4 MCS-51单片机响应外部中断的典型时间是多少?在哪些状况下,CPU将推迟对中断祈求的响应?答:38个机器周期。(1)

50、 CPU正在解决相似的或更高优先级的中断。由于当一种中断被响应时,要把相应的中断优先级状态触发器置“1”(该触发器指出CPU所解决的中断优先级别),从而封锁了低档中断和同级中断。(2) 所查询的机器周期不是所执行指令的最后一种机器周期。作这个限制的目的是使目前指令执行完毕后,才干进行中断响应,以保证目前指令完整的执行。(3) 正在执行的指令是RET1或是访问IE或IP的指令。由于按MCS-51中断系统特性的规定,在执行完这些指令后,需要再执行一条指令才干响应新的中断祈求。如果存在上述三种状况之一,CPU将推迟对中断祈求的响应。5.5 中断查询确认后,在下列多种运营状况中,能立即进行响应的是:(

51、1)目前正在进行高优先级中断解决(2)目前正在执行RETI指令(3)目前指令是DIV指令,且正处在取指令的机器周期(4)目前指令是MOV A, R3答:(4)能立即进行响应5.6 试编写出外部中断1为跳沿触发方式的中断初始化程序。答:SETB EASETB EX1SETB IT15.7 在MCS-51中,需要外加电路实现中断撤除的是:(1)定期中断(2)脉冲方式的外部中断(3)串行中断(4)电平方式的外部中断答:(4)需要外加电路5.8 MCS-51有哪几种扩展外部中断源的措施?各有什么特点?答:(1)定期器/计数器作为外部中断源的使用措施当它们选择为计数器工作模式,T0或T1引脚上发生负跳变

52、时,T0或T1计数器加1,运用这个特性,可以把T0、T1引脚作为外部中断祈求输入引脚,而定期器/计数器的溢出中断TF1或TF0作为外部中断祈求标志。(2)中断和查询结合的措施若系统中有多种外部中断祈求源,可以按它们的轻重缓急进行排队,把其中最高档别的中断源IR0直接接到MCS-51的一种外部中断输入端,其他的中断源IR1IR4用“线或”的措施连到另一种外部中断输入端,同步还连到P1口,中断源的中断祈求由外设的硬件电路产生,这种措施原则上可解决任意多种外部中断。查询法扩展外部中断源比较简朴,但是扩展的外部中断源个数较多时,查询时间较长。(3)用优先权编码器扩展外部中断源采用74LS148优先权编

53、码器在硬件上对外部中断源进行排队,可以避免响应优先级最高的中断和响应优先级最低的中断所需的时间也许相差很大这样的问题。该措施的最大特点是构造简朴,价格低廉,但该电路无法实现中断服务子程序的嵌套。5.9 中断服务子程序和一般子程序有什么区别?答: 1,中断服务子程序的入口地址由中断向量表拟定,而一般子程序的入口地址在中断向量表以外的程序存储空间内任意设定。2,中断服务子程序的返回指令是RETI, 而一般子程序的返回指令是RET5.10 试编写一段对中断系统初始化的程序,容许INT0,INT1,T0,串行口中断,且使T0中断为高优先级。答:SETB EASETB EX0SETB EX1SETB E

54、T0SETB ESSETB PT05.11在MCS-51单片机中,外部中断有哪两种触发方式?如何加以区别?答:电平触发方式和跳沿触发方式。IT0=0时, 为电平触发方式,引脚低电平有效。IT0=1时, 为跳沿触发方式,引脚负跳变有效。IT1=0时,为电平触发方式,引脚低电平有效。IT1=1时,为跳沿触发方式,引脚负跳变有效。5.12 单片机在什么条件下可响应INT0中断?简要阐明中断响应的过程。答:1,中断容许寄存器IE中的EA=1,且EX1=1,同步没有其他优先于外部中断0的中断,若IT0=0,引脚上低电平有效;若IT0=1,引脚上的电平从高到低的负跳变有效。2,当CPU正在解决某件事情(例

55、如,正在执行主程序)的时候,外部发生的某一事件(如某个引脚上电平的变化,一种脉冲沿的发生)祈求CPU迅速去解决,于是,CPU临时终结目前的工作,转去解决所发生的事件。中断服务程序解决完该事件后,再回到本来被终结的地方,继续本来的工作,这样的过程称为中断。解决事件祈求的过程,称为CPU的中断响应过程。5.13 当正在执行某一中断源的中断服务程序时,如果有新的中断祈求浮现,问在什么状况下可响应新的中断祈求?在什么状况下不能响应新的中断祈求?答:1,一种中断源的中断祈求被响应,需满足如下条件: 该中断源发出中断祈求。 CPU开中断,即中断总容许位EA=1。 申请中断的中断源的中断容许位=1,即该中断

56、没有被屏蔽。 无同级或更高档中断正在被服务。2,中断响应是有条件的,并不是查询到的所有中断祈求都能被立即响应,当遇到下列三种状况之一时,中断响应被封锁:(1) CPU正在解决相似的或更高优先级的中断。由于当一种中断被响应时,要把相应的中断优先级状态触发器置“1”(该触发器指出CPU所解决的中断优先级别),从而封锁了低档中断和同级中断。(2) 所查询的机器周期不是所执行指令的最后一种机器周期。作这个限制的目的是使目前指令执行完毕后,才干进行中断响应,以保证目前指令完整的执行。(3) 正在执行的指令是RETI或是访问IE或IP的指令。由于按MCS-51中断系统特性的规定,在执行完这些指令后,需要再

57、执行一条指令才干响应新的中断祈求。如果存在上述三种状况之一,CPU将不能进行中断响应。习题 66.1 MCS-51单片机的TO、T1用作定期器时,其定期时间与哪些因素有关?答:定期器/计数器用作定期方式时,其定期时间与时钟周期、工作方式、定期初值等因素有关。6.2 当MCS-51单片机的TO用于工作方式3时,由于TRl位已被TO占用,该如何控制定期器T1的启动和关闭?答:这时T1只能用作串行口波特率发生器或不需要中断的场合。由于TR1已被T0借用,因此T1的控制只有和M1、M0 两个条件,选择定期或计数模式,M1、M0选择工作方式。这时只要把方式控制字送入TMOD寄存器就可启动T1运营,如果让

58、它停止工作,只需送入一种将T1设立为工作方式3的方式控制字就可以了。6.3 设MCS-51单片机的晶振频率为12MHz,试用单片机的内部定期方式产生频率为100kHz的方波信号,由P1.1脚输出。答:根据题意,只要使P1.0引脚每隔5us取反一次即可得到10us的方波,因此定是时间T=5us,可选择定期器/计数器T0,以中断方式工作。设定TMODTMOD的低4位控制T0,设定T0定期模式,即=0;工作在方式0,即 M1M0=00H;软件启动定期器,即GAME=0。TMOD的高4位与T0无关,一般取0,因此TMOD控制字为00H。计算定期初值晶振频率为12MHz,机器周期=1us定期初值 =81

59、92-5=8187=1FFBH=1011B因TL0的高3位未用,对计算出的初值要进行修正,即低5位前插入3个0构成低8位初值,从低6位向前取8位构成高8位初值,即1011B=FF1BHORG 0000HAJMP MAIN ;转主程序ORG 000BH ;T0中断矢量地址AJMP ISER ;转中断服务程序ORG 100HMAIN: MOV SP,#60H ;设堆栈指针MOV TMOD,#00H ;写控制字MOV TL0,#1BH ;置T0 初值MOV TH0,#0FFHSETB ET0 ;容许T0中断SETB EA ;CPU开中断SETB TR0 ;启动T0SJMP $ ;等待中断ISER:

60、MOV TL0,#1BH ;T0中断服务子程序,重置T0 初值MOV TH0,#0FFHCPL P1.0 ;P1.1取反RETIEND6.4 设MCS-51单片机的晶振频率为6MHz,使用定期器T1的定期方式1,在P10输出周期为20ms、占空比为60的矩形脉冲,以查询方式编写程序。答:根据题意,使P1.0引脚输出12ms高电平,8ms低电平,即可得到周期为20ms、占空比为60的矩形脉冲,因此定期时间T1=12ms,T2=8ms,定期器/计数器T1,以查寻方式工作。设定TMODTMOD的高4位控制T1,设定T1定期模式,即=0;工作在方式1,即 M1M0=01H;软件启动定期器,即GAME=

61、0。TMOD的低4位与T0无关,一般取0,因此TMOD控制字为10H。计算定期初值晶振频率为6MHz,机器周期=2us定期初值=65536-6000 =59536=E890H=65536-4000=61536=F060HORG 100HMOV TMOD,#10H ;LOOP0: MOV TL0,#90H ;MOV TH0,#0E8HSETB TR1 ;LOOP1:JNB TF1,LOOP1 ;CLR TF1;SETB P1.0MOV TL0,#60H ;MOV TH0,#0F0HSETB TR1LOOP2:JNB TF1,LOOP2 ;CLR TF1;CLR P1.0;SJMP LOOP0;R

62、ET6.5 设MCS-51单片机的晶振频率为6MHz,以计数器T1进行外部事件计数,每计数100个外部事件输入脉冲后,计数器T1转为定期工作方式,定期5ms后,又转为计数方式。如此周而复始地工作,试编程实现。答:根据题意,设T1工作在计数模式时,工作在方式0, 设T1工作在定期模式时,工作在方式1 。设定TMODTMOD的高4位控制T1,设定T1计数模式,即=1;工作在方式1,即 M1M0=10H;软件启动定期器,即GAME=0。TMOD的低4位与T0无关,一般取0,因此TMOD控制字为40H。设定T1定期模式,即=0;工作在方式1,即 M1M0=01H;软件启动定期器,即GAME=0。TMOD的低4位与T0无关,一般取0,因此TMOD控制字为10H。计算计数初值计数初值=8192-100 =8092=1F9CH=1100B因TL0的高3位未用,对计算出的初值要进行修正,即低5位前插入3个0构成低8位初值,从低6位向前取8位构成高8位初值,则计数初值为FC1CH计算定期初值晶振频率为6MHz,机器周期=2us=65536-2500=63036=F63CHORG 100H;START: MOV

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!