版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2.1将下列各二进制数转换为十进制数。2.2将第2.1题中各二进制数转换为十六进制数。2.3将下列各数转换为十六进制数。2.4什么叫原码、反码及补码?正数的符号位用0表示,负数的符号位用1表示。这种表示法称为原码。反码可由原码得到:如果是正数,则其反码和原码相同;如果是负数,则其反码除符号为1外,其他各数位凡是1转换为0,凡是0转换为1。这种表示法称为反码。补码可由反码得到:如果是正数,则其补码和反码相同;如果是负数,则其补码为反码加1。这种表示法称为补码。2.5已知原码如下,写出其补码和反码(其最高位为符号位)。①[X]=01011001③[X]原=11011011②[X]原=00111110④[X]原=11111100答:①[X]反=01011001③[X]反=10100100②[X]反=00111110④[X]反=10000011②[X]补=00111110④[X]+=100001002.6当微机把下列数看成无符号数时,它们相应的十进制数为多少?若把它们看成是补码,最高位为符号位,那么它们相应的十进制数是多少?①10001110②10110000③00010001④答:把①~④的数看成无符号数时,它们相应的十进制数如下:第二章计算机基础知识3①10001110=142②10110000=176③00010001=17④01110101=117①10001110=-114②10110000=~80③00010001=17④01110101=1172.7触发器、寄存器及存储器之间有什么关系?答:触发器是计算机记忆装置的基本单元。一个触发器能储存一位二触发器组成的。一个触发器就是一个一位寄存器,多个触发器就可以组成一个多位寄存器。存储器是由大量寄存器组成的,其中每一个寄存器就称为一个存储单2.8三态门有何作用?其符号如何画?高阻状态),即此时好像它们的输出被开关断开,对总换。题图2-1为单向三态门和双向三态门的符号图。2.9简述74244、74373、74245的基本功能及使用方法。答:(1)74244的基本功能及使用方法三态缓冲输出。74244使用时可分为两组,每组4条输入线(A₁~A₄)和4条输出线(Y₁~Y₄)。1G和应用是将74244作为8线并行输入/输出接口器件,始终处于门通状态,如题图2-2所示。如果74244在系统中并不始终处于门通状态,二8题图2-2而是在需要读或写数据时才打开缓冲门,则须采用地址编码线配合进行读或写操作,其原理如题图2-3所示。图中AD即为地址编码线。(2)74373的基本功能及使用方法图中OE为使能控制端。当OE为低电平时,8路全导通;当OE图中OE为使能控制端。当OE为低电平时,8路全导通;当OE为1时,为高阻态。G(有些书中写为LE)为锁存控制信号。74373有3种工作状态:①当OE为低电平、G为高电平时,输出端状态和输入端状态相同,即输出跟随输人。云②当OE为低电平,G由高电平降为低电平(下降沿)时,输入端数据锁入内部寄存器中,内部寄存器的数据与输出端相同;当G保持为低电平时,即使输入端数据变化,也不会影响输出端状态,从而实现了锁存功能。③当OE为高电平时,锁存器缓冲三态门封闭,即三态门输出为高阻态,74373的输人端D₀~D₂与输出端Q~Q₇隔离,则不能输出。当74373用做单片机低8位地址/数据线地址锁存器时,将OE置成低电平,锁存允许信号G受控于单片机地址有效锁存信号ALE。这样,当外部地址锁存有效信号ALE使G变为高电平时,74373内部寄存器便处于直通状态;当G下降为低电平时,立即将锁存器的输入Do~D,即总线上的低8位地址锁入内部寄存器中。题表2-174373工作方式内部寄存器GDLHLLLHHHHLLHH并禁止输出HL高阻HLH高阻(3)74245的基本功能及使用方法74244不同的是可以双向输人/输出,通常称为8总线接收/发送器。74245的引脚信号及逻辑符号如题图2-5所示。题图2-6为常用连接方法,当E有效时,74245的输入/输题表2-274245的工作方式数据传输方向ELLLHH×高阻EE8BE或低),则74245变为单向缓冲器,但这种方式极少采用。一般都是使用它的双向传输功能。为此,DIR必须可控,使其根据需要变为高电平或低电平,并与E相结合控制数据传输方向。在单片机系统中,可采用读信号或写信号实现控制,如题图2-6所示。当WR有效时,数据通过74245的B端(B,~B)输入,由A端(A。~A₂)输出;当RD有效时,数据由A双向缓冲和驱动作用,很适合作单片机数据总线的收发器。2.10存储器分几类?各有何特点和用途?答:存储器的分类方法较多。例如,从其组成材料和单元电路类型上可分为磁芯存储器、半导体存储器(从制造工艺上又可分为MOS型存储器、双极型存储器)、电荷耦合存储器等;从其与微处理器的关系来划分,又可分为内存和外存。通常把直接同微处理器进行信息交换的存储器称为内存。其特点是存取速度快,但容量有限。而把通过内存间接与CPU进行信息交换的存储器称为外存,如磁带、磁盘、光盘等。其特点是容量大、速度较慢。外存的内容根据需要可随时调入内存。通常人们习惯于按存储信息的功能分类,在单片机中所使用的半导体存储器在功能上的分类方法和各自特点、用途如下:只读存储器在使用时,只能读出而不能写人,断电后ROM中的信息不会丢失。因此一般用来存放一些固定程序,如监控程序、子程序、字库及数据表等。ROM按存储信息的方法又可分为四种。(1)掩膜ROM掩膜ROM也称固定ROM。它是由厂家编好程序写人ROM(称固化)供用户使用,用户不能更改它。其价格最便宜。(2)可编程序的只读存储器PROM(ProgrammableReadOnlyMemory)它的内容可由用户根据自己所编程序一次性写人,一旦写人,只能读出,而不能再进行更改。这类存储器现在也称为OTP(OnlyTimeProgrammable)。(3)可改写的只读存储器EPROM(ErasableProgrammableReadOnlyMemory)前两种ROM只能进行一次性写入,因而用户较少使用。目前较为流行的RM芯片为EPROM。因为它的内容可以通过紫外线照射而彻底擦除,擦除后又可重新写入新的程序。E²PROM可用电的方法写人和清除其内容,其编程电压和清除电压均与微机CPU的5V工作电压相同,不需另加电压。它既有与RAM一样读写操作简便,又有数据不会因掉电而丢失的优点,因而使用极为方便。现在这种存储器的使用最广泛。2.随机存储器RAM(RandomAccessMenory)这种存储器又叫读写存储器。它不仅能读取存放在存储单元中的数据,还能随时写人新的数据,写入后原来的数据就丢失了。断电后RAM中的信息全部丢失。因此,RAM常用于存放经常要改变的程序或中间计算结果等。RAM按照存储信息的方式,又可分为静态和动态两种。(1)静态SRAM(StaticRAM)其特点为只要有电源加于存储器,数据就能长期保留。(2)动态DRAM(DynamicRAM)写人的信息只能保持若干ms(毫秒)时间,因此,每隔一定时间必须重新写入一次,原来的信息不变。3.可现场改写的非易失存储器时改写信息,作用又相当于RAM。所以,ROM、RAM的定义和划分已逐渐失去意义。下面对这类存储器中的两种予以简介:(1)快擦写存储器FLASH这种存储器是在EPROM和E²PROM的制造基础上产生的一种非易失存储器。其集成度高,制造成本低于DRAM,既具有SRAM读写的灵活性和较快的访问速度,又具有ROM在断电后可不丢失信息的特点,所以发展迅速。(2)铁电存储器FRAM它是利用铁电材料极化方向来存储数据的。它的特点是集成度高,读写速度快,成本低,读写周期短。2.11假定一个存储器有4096个存储单元,其首地址为0,则末地址2.12除地线公用外,6根地址线和11根地址线各可选多少个地址?答:除地线公用外,6根地址线可选2⁶=64第三章单片机的结构及原理3.180C51单片机内部包含哪些主要逻辑功能部件?各有什么主要部分通过内部总线相连。各部分主要功能如下:(1)中央处理器(CPU)中央处理器是单片机最核心的部分,是单片机的大脑和心脏,主要完成运算和控制功能。行的。(2}内部数据存储器(内部RAM)80C51中共有256个RAM单元,但其中能作为寄存器供用户使用的仅有前面128个,后面128个被专用寄存器占用。其可存储程序在运行时的变量和数据。(3)内部程序存储器(内部ROM)80C51共有4KB掩膜ROM,用于存放程序、原始数据等。(4)定时器/计数器80C51共有2个16位的定时器/计数器,可以实现定时和计数功能。(5)并行I/O口(6)串行口80C51有1个全双工的可编程串行口,以实现单片机和其他设备之间的串行数据传送。(7)时钟电路80C51单片机内部的时钟电路为单片机产生时钟脉冲序列,使计算机在时钟信号的驱动下按照严格的节拍顺序执行各种操作。3.2什么是指令?什么是程序?简述程序在计算机中的执行过程。答:指令是控制计算机进行某种操作的命令。CPU就是根据指令来指挥和控制计算机各部分协调地动作,完成规定的操作。指令是由二进制代码表示的。通常指令分为操作码和操作数两部分;操作码规定操作的类型,操作数给出参加操作的数据或存放数据的地址。为完成某项规定任务,把计算机指令按一定次序进行编排组合所形成的指令集称为程序。程序在计算机中的执行过程实质就是执行入们所编制程序的过程,即逐条执行指令的过程。计算机每执行一条指令都可分为三个阶段进行,即取指令,分析指令和执行指令。●取指令阶段的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。●分析指令阶段的任务是:将指令寄存器中的指令操作码取出后进行译码,分析其指令性质。如指令要求操作数,则寻找操作数地址。●执行指令阶段的任务是:取出操作数,然后按照操作码的性质对操作数进行操作,即执行指令。计算机执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令或循环等待指令。3.3如何认识80C51存储器空间在物理结构上可划分为四个空间,而在逻辑上又可划分为三个空间?答:80C51存储器是采用将程序存储器和数据存储器分开寻址的结构,其存储器空间在物理存储器。逻辑上又可划分为如下三个空间:片内256B数据存储器地址空间,片外64KB的数据存储器地址空间和64KB程序存储器。因为片内、片外的程序存储器地址编排是连续统一的,因而在逻辑上把它作为一个空间。在访问三个不同的逻辑空间时,应采用不同形式的指令,以产生不同存储空间的选通信号。3.4开机复位后,CPU使用的是哪组工作寄存器?它们的地址是什么?CPU如何确定和改变当前工作寄存器组?答:开机复位后,CPU使用的是第0组工作寄存器。它们的地址是00~07。CPU通过对程序状态字PSW中RS1、RSO的设置来确定和改变当前工作寄存器组。3.5什么是堆栈?堆栈有何作用?在程序设计时,有时为什么要对堆栈指针SP重新赋值?如果CPU在操作中要使用两组工作寄存答:堆栈是个特殊的存储区。其主要功能是暂时存放数据和地址,通常用来保护断点和现场。统复位后,SP初始化为07H,使得堆栈事实上由08H开始。因为08H~1FH单元为工作寄存器区1~3,20H~2FH为位寻址区。在程序设计中很可能要用到这些区,所以用户在编程时要对堆栈指针SP重新赋值,最好把SP初值设为2FH或更大值,当然同时还要顾及其允许的深度。在使用堆栈时要注意,由于堆栈的占用,会减少内部RAM的可利用单元,如设置不如果CPU在操作中要使用两组工作寄存器,SP的初值应大于10H。3.680C51的时钟周期、机器周期、指令周期是如何分配的?当振荡答:80C51的时钟周期是最小的定时单位,也称为振荡周期或节拍。一个机器周期包含12个3.7在80C51扩展系统中,片外程序存储器和片外数据存储器共处同一地址空间为什么不会发生总线冲突?CPP:奇偶标志。该位始终跟踪累加器A内容的奇偶性。如果有奇数个“I”,则置P为1,否则置0。在80C51的指令系统中,凡是改变累加器A中内容的指令均影响奇偶标志位P。RSO和RS1的组合,以切换当前选用的工作寄存器组,其组合关系如题表3-1所列。寄存器组片内RAM地址0001101111单片机在复位后,RSO=RS1=0,CPU自然选中第0组为当前工作寄存器组。根据需要,用户可利用传送指令或位操作指令来改变其状态,这样的设置为AC;半进位标志。当进行加法或减法运算时,如果低半字节(位3)向高半字节有进位或借位,AC置1,否则清0。AC亦可用于BCCY:进位标志。在进行加法(或减法)运算时,如果操作结果最高位(位7)有进位或借CY置1,否则清0。在进行位操作时,CY又作为位操作累加器C。3.9位地址7CH与字节地址7CH有何区别?位地址7CH具体在内存中什么位置?答:位地址7CH表示7CH这一二进制位的地址,字节地址7CH表示地址为7CH的单元地址。位地址7CH在内存中2FH单元的第4位。3.1080C51四个I/O端口的作用是什么?80C51的片外三总线是如何分配的?答:80CS1单片机有4个1/0端口,每个端口都是8位双向口,共占32根引脚。每个端口都包括一个锁存器(即专用寄存器P0~P3)、一个输出驱动器和输入缓冲器。通常把4个端口称为P0~P3。在无片外扩展存储器的系统中,这4个端口的每一位都可以作为双向通用I/O端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址3.1180C51的四个I/O端口在结构上有何异同?使用时有何注意事项?答;80C51单片机的4个I/O端口在结构上是基本相同的,但又各具特点。这4个1/O端口入缓冲器。在无片外扩展存储器的系统中,这4个端口的每一位都可以作为双向通用1/O端①PO口的每一位可驱动8个LSTT₁负载。P0既可作I/O端口使用,也可作地址/数据②P1~P3口输出级接有内部上拉负载电阻,每位可驱动4个LSTTL负载,能向外提供P2口的位结构比P1多了一个转换控制部分。当P2口作通用1/O口时,多路开关MUX在系统扩展片外程序存储器时,由P2口输出高8位地址(低8位地址由P0口输出)。此“与非”门送至FET输出到引脚端。这是作通用I/O口输出使用情况。输人时,仍通过三态缓冲器读引脚信号。当端口用于第二功能情况下输出时,锁存器输出Q为1,打开“与非”门,第二输出功能端二功能信号通过缓冲器送到第二输人功能端。在使用P0~P3口时的主要注意事项是:作输人时,必须先在相应端口锁存器上写“1”,使3.12复位的作用是什么?有几种复位方法?复位后草片机的状态如何?答:复位是单片机的初始化操作,单片机在启动运行时,都需要先复位。它的作用是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。单片机的外部复位电路有上电自动复位和按键手动复位两种。●上电自动复位利用电容器充电来实现,上电瞬间,RC电路充电,RST引脚端出现正脉冲,只要RST引脚端保持2个机器周期以上高电平,就能使单片机复位。为了可靠地复位,一般应保持10ms以上高电平。●按键手动复位又分为:按键电平复位和按键脉冲复位。按键电平复位,相当于按复位键后复位端通过电阻与Vcc电源接通;按键脉冲复位,利用RC微分电路产生正脉冲。除此,还有同步复位和外部脉冲复位等方法。复位后片内各专用寄存器的状态如题表3-2所列,表中×为不定数。寄存器寄存器B3.1380C51有几种低功耗方式?如何实现?答:80C51单片机除具有一般的程序执行方式外,还具有两种低功耗方式:即待机(或称空闲)方式和掉电(或称停机)方式。待机(或称空闲)方式和掉电(或称停机)方式都是由专用寄存器PCON(电源控制寄存器)中的有关位来控制。其各位作用如下:一①SMOD:波特率倍增位。在串行口工作方式1、2或3下,SMOD=1使波特率加倍。③PD:掉电方式位。若PD=1,进人掉电工作方式。④IDL:待机方式位。若IDL=1,进人待机工作方式。如果PD和IDL同时为1,则进入掉电工作方式。复位时PCON中所有定义位均为0。下(1)待机方式②通过中断方法:若在待机期间,任何一个允许的中断被触发,(2)掉电方式PCON寄存器的PD位控制单片机进入掉电方式。当CPU执行一条置PCON.1位(PD)退出掉电方式的惟一方法是硬件复位。硬件复位10m第四章80C51的指令系统——思考与练习答:指令是规定计算机进行某种操作的命令。一条指令只能完成有限的功能,为使计算机完成一定的或复杂的功能就需要一系列指令。计算机能够执行的各种指令的集合就称为指令系统。为完成某项规定任务,把计算机指令按一定次序进行编排组合所形成的指令集称为程序。为了人们记忆和使用方便,制造厂家对指令系统的每一条指令都给出了助记符。助记符是根据机器指令不同的功能和操作对象来描述指令的符号,由于助记符是用英文缩写来描述指令的特征,因此它不但便于记忆,也便于理解和分类。这种用助记符形式来表示的机器指令称为汇编语言指令。4.280C51单片机有哪几种寻址方式?这几种寻址方式是如何寻址的?答:80C51共有7种寻址方式,分别为立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址(基址寄存器+变址寄存器间接寻址)、相对寻址、位寻址。●在立即寻址方式中,操作数直接参与操作,此操作数又称立即数。立即数就是存放在程序存储器中的常数。●在直接寻址方式中,操作数项给出的是参加运算的操作数的地址。●寄存器寻址是对选定的工作寄存器R0~R7、累加器A、通用寄存器B、地址寄存器DPTR和进位CY中的数进行操作。工作寄存器组的选择是由状态标志寄存器PSW中的RS1、RS0来确定。●在寄存器间接寻址方式中,操作数所指定的寄存器中存放的不是操作数本身,而是操作数的地址。这种寻址方式用于访问片内数据存储器或片外数据存储器。●在变址寻址方式中,DPTR或PC为基址寄存器,累加器A为变址寄存器。变址寻址●相对寻址是将程序计数器PC中的当前内容与指令第二字节所给出的数相加,其结果作为跳转指令的转移地址,转移地址也称为转移目的地址。PC中的当前内容称为基地址(它实际是本指令之后的字节地址),指令第二字节给出的数据称为偏移量。偏移量为带符号的数,其表示的范围为+127~-128。目的地址是相对于PC的基地址而言。●位寻址是指对片内RAM的位寻址区和某些可位寻址的特殊功能寄存器中的任一二进制位进行位操作时的寻址方式。在进行位操作时,借助于进位位C作为操作累加器。操作数直接给出该位的地址,然后根据操作码的性质对其进行位操作。4.3访问特殊功能寄存器和片外数据存储器,应采用哪些寻址方式?答:访问特殊功能寄存器用直接寻址方式。访问片外数据存储器用间接寻址方式。4.480C51单片机的指令系统可分为哪几类?试说明各类指令的功能。答:80C51单片机的指令系统可分为数据传送类指令、算术运算类指令、逻辑运算类指令、控制转移类指令、位操作类指令。●数据传送类指令一般是把源操作数传送到目的操作数,指令执行后,源操作数不变,目的操作数修改为源操作数。数据传送类指令一般不影响标志位。●算术运算类指令主要是对8位无符号数据进行算术操作。其中包括:加法、减法、加1、减1以及乘法和除法运算指令;借助溢出标志.可对有符号数进行补码运算;借助进位标志,可进行多精度加、减运算;也可以对压缩BCD数进行运算。●逻辑运算类指令主要是用于对两个操作数按位进行逻辑操作,操作结果送到A累加器反、清除等。这些指令执行时一般不影响程序状态字寄存器PSW,仅当目的操作数为ACC时对奇偶标志位有影响。●控制转移类指令的功能主要是控制程序从原顺序执行地址转移到其他指令地址上。这类指令主要有无条件转移和条件转移、绝对转移和相对转移、长转移和短转移,还有调用和返回指令等。这类指令多数不影响程序状态标志寄存器处理功能。●位操作类指令是一套处理位变量的指令集,包括:位变量传送、逻辑运算、控制程序转移等指令。4.5外部数据传送指令有哪几条?试比较下面每一组中两条指令的①MOVXA.@R0;MO答:外部数据传送指令有如下4条:MOVXA,@DPTR;(DPTR)→A①MOVXA,@RO:以RO为地址指针的片外数据存储器中的内容传送到累加器A中。MOVXA,@DPTR:以DPTR为地址指针的片外数据存储器中的内容传送到累加②MOVx@R0,A:累加器A中的内容传送到以RO为地址指针的片外数据存储器中。MOVX@DPTR,A:累加器A中的内容传送到以DPTR为地址指针的片外数据存储器中。MOVX@R0,A:累加器A中的内容传送到以RO为地址指针的片外数据存储器中。4.6在80C51片内RAM中,已知(30H)=38H,(38H)=40H,(40H)答:下面列出程序中各指令相应的机器码、源操作数的寻址方式及顺序执行每条指令后的结果。源程序MOVP1,#0FOH寻址方式直接寻址寄存器寻址立即寻址寄存器间接寻址直接寻址直接寻址直接寻址立即寻址寄存器间接寻址寄存器寻址执行每条指令后的结果A,#02H第四章80C51的指令系统17把立即数72H送人R0把72H送人A72H加4BH等于BDH送人AADD把立即数2H送人A把立即数#0AH送入A7420MOVA,#20H把立即数20H送人AF5F0MOVB,A把20H送人B25F0ADDA,BA与B中值相加等于40H,送人A9410SUBBA,#10HA中值40H减10H等于30H,送人A在计算机中,遇到十进制调整指令时,中间结果的修正是由ALU硬件中的十进制修正电路自动进行的。用户不必考虑何时该加“6”,使用时只需在上述加法指令后面紧跟一条注意,在80C51机中,“DAA”指令不适用于减法指令。4.9试编程将片外数据存储器60H中的内容传送到片内RAM54H答:按题意编程如下:4.10试编程将寄存器R7内容传送到R1中去。答:按题意编程如下:4.11已知当前PC值为2010H,请用两种方法将程序存储器20FOH中的常数送入累加器A中。2010HMOVA.#0E0HMOVCA,@AiPC2010HMOVDPTR.=20FOH4.12试说明下段程序中每条指令的作用,并分析当指令执行完后,RO中的内容是什么?答:设A中内容为0。A;交换R0与A中内容,则RO中变为7AH,A中为0由上述执行情况可见A中初值对结果无影响。4.13请用两种方法实现累加器A与寄存器B的内容交换。答:方法1:4.14试编程将片外RAM40H单元的内容与R1的内容交换。执行指令“ADDCA,B”结果如何?执行指令“SUBBA,B”结果如何?4.16试编程将片外RAM中30H和31H单元中内容相乘,结果存放在32H和33H单元中,高位存放在33H单元中。答:编程如下:4.17试用三种方法将累加器A中无符号数乘2。4.18请分析依次执行下面指令的结果:A,R2AA答:依次执行下面指令的结果如下:;0D6H送人A;030H送人R0;047H送人R2AA②当A=5BH时,执行“ANLA,#7AH”③当A=5BH时,执行“XRLA,#7FH”④当A=5BH,CY=1时,执行“SUBBA,#0E8H”22单片机习题集4.20指令“LJMPaddrl6”和“AJMPaddr11”的区别是什么?答:第一条指令称长转移指令。指令中包含16位地址,转移的目标地址范围是程序存储0000H~FFFFH。指令执行结果是将16位地址addr16送程序计数器PC。AAA,A,A,A,A,A.题图4-1第二条指令称绝对(也称短)转移指令。下一条指令地址开始的同一个2KB存储区范围内。它把PC的高5位与操作码的第7~5位及操作数的8位并在一起,构成16位的转移地址,如题图4-1所示。囚为地址高5位保持不变,仅低11位发2后的2KB区域内。4.21试说明指令“CJNE@R1,#7AH,10H”的作用。若本指令地址为50H,其转移地址是多少?4.22试说明压栈指令和弹栈指令的作用及执行过程。答:压栈(或称入栈或进栈)指令的作用是将数据存人堆栈中。其执行过程是先将的内容加1,然后将直接寻址单元中的数传送(或称压入)到SP所指示的单元中。若数据已推弹栈(也称出栈)指令的作用是将数据从堆栈中取出。其执行过程是先将栈指针SP所指SP,#40HA,#30H2500HA,#10H答:机器码、源程序等如下:→(41H),42H→SP,20H→(42H上述程序执行后,SP=42H,A=30H,B=30H。4.24用80C51单片机的P1端口作翰出,经驱动电路接8只发光二极管,如题图4-2所示。当榆出位是“1”时,发光二极管点亮;榆出位是“0”时为暗。试分析下述程序执行过程及发光二极管点亮的工作规律。LP:MOVP1子程序;24单片机习题集DJNZR2,L1个灯亮;延时一段时间后,重复上述过程。4.25在第4.24题中,若系统的晶振频率为6MHz,求子程序DE-LAY的延时时间。若想加长或缩短延时时间,应怎样修改?DELAY:MOVR2,#0FAH24μsL1:MOVR3,#0FAHL2:DJNZR3,L24.26根据题图4-2所示的线路,试编制灯亮移位程序,即8个发光LCALLDELAY;DELAY同第4.25题中的延时程序4.27试编一程序将外部数据存储器2100H单元中的高4位置“1”,答:根据题意编制程序如下;4.28试编程将内部数据存储器40H单元的第0位和第7位置“1”,其余位变反。答:根据题意编制程序如下:AACC.7①P1.7=ACC.0×(B.0+P2.1)+P3.2逻辑方程的编程方法如下:②PSW.5=P1.3×ACC.2+B.5×P1.1逻辑方程的编程方法如下:③P2.3=P1.5×B.4+ACC.7×P1.0逻辑方程的编程方法如下:第五章汇编语言程序设计 一恩考与练习5.1编程将片内40H~60H单元中内容送到以3000H为首的存储答:按题目要求编程如下:答:按题目要求编程如下:第五章汇编语言程序设计275.3编程计算片内RAM区50H~57H八个单元中数的算术平均值,结果存放在5AH中。答:在本题计算中要求8个单元的和小子255。按题目要求编程如下:5.4编写计算下式的程序,设乘积和平方结果均小于255。a、b值分别存在3001H和3002H单元中,结果存于片外3000H单元中。答:按题目要求编程如下:;取a值u值暂存储在30H28C5.5设有两个长度均为15的数组,分别存放在以2000H和2100H为首的存储区中,试编程求其对应项之和,结果存放到以2200H为首的存储区中。答:在本题中假设两数之和不超过255。按题目要求编程如下:第五章汇编语言程序设计29$5.6设有100个有符号数,连续存放在以2000H为首地址的存储区答:在本题中设正数、负数、零分别存放在30H、31H、32H单元中。按题目要求编程如下:$5.7请将片外数据存储器地址为1000H~1030H的数据块,全部撇迁到片内RAM30H~60H中,并将原数据块区域全部清0。答:按题日要求编程如下:30续单元中的高4位二进制数,合并为一个字节装入累加器A中。已知R1指向低地址,并要求该单元高4位放在A的低4位中。答:按题目要求编程如下:;保留高4位A;交换到低4位;保留高4位;返回5.9试编程把以2040H为首地址的连续50个单元中的无符号数按降序排列,存放到以3000H为首地址的存储答:该程序采用冒泡(下沉)法,也可用别的方法;排列前首先将数据搬到目的存储单元。按题目要求编程如下:NO_CHAGECA,#01HA,30HNO_CHAGE:DJNZR3,CMP_L;重复次数;起始地址;比较次数;相邻两个数比较;准备交换;50个数重复一遍?;排序结束?找出ASCII码A,将其地址送到20A0H和20A1H单元中。答:按题目要求编程如下:;数据块首地址;查找长度;取一个数32单片机习题集5.11设在2000H~2004H单元中,存放有5个压缩BCD码,编程将它们转换成ASCII码,存放到以2005H单元为首地址的存储答:按题目要求编程如下:;源地址送R3,R4;目的地址送R5,R6;取源地址;读一个数;修改源地址;保存源地址;数据暂存A;取目的地址;将高位BCD码保存到目的单元;修改目的地址;将暂存数据取出;将低位转成BCD码;将低位BCD码保存到目的单元;修改目的地址;保存目的地址第五章汇编语言程序设计335.12在以2000H为首地址的存储区中,存放着20个用ASCII码表示的0~9之间的数,试编程将它们转换成BCD码,并以压缩BCD码(即一个单元存放二位BCD码)的形式存放在3000H~3009H单元中。答:按题目要求编程如下:;源地址送R3,R4MOVDPH,R3ANLA,=0FH;屏蔽高4位,保留低4位SWAPA;将低4位暂存ANIA,#0FH;屏蔽高4位,保留低4位INCDPTR;5.13试编程实现下列逻辑表达式的功能。设P1.7~P1.0为8个变量的输入端,而其中P1.7又作为变量输出端。答:按题目要求编程如下:34表达式①表达式②CCCC5.14试编写一多字节无符号数加法子程序。答:按题目要求编程如下:CNO_ADDC:NO_ADDC答:按题目要求编程如下;C@R0.A36NO_SUBBC:5.16试编写延时1s、1min、1h的子程序。答:按题目要求编程如下:;单片机晶振采用6MHz,计算为近似值;延时1h;延时1min;延时1sNOPR4,#125NOP5.17如何实现将内存单元2400H~2450H的数逐个对应传到2500H~2550H单元中?答:按题目要求编程如下:;传送长度;源地址;目的地址;取源地址;读一数据;修改源地址;保存源地址;取目的地址;保存一数据;修改目的地址;保存目的地址$由于此题目源地址与目的地址的低8位相同,所以低8位地址可不保存。这样程序可适当简化,试编写简化后程序。5.18在2030H和2031H单元各有一个小于10的数,编程求这两个数的平方和,用调用子程序方法实现,结果存在2040H单元。答:依题意编写主程序和子程序如下:主程序;设堆栈指针;取第一个数;求第一个数的平方;平方值暂存R1;取第二个数;求第二个数的平方;求平方和38单片机习题集$;存人2040H子程序5.19本题内容同第4.18题,要求用查表方法实现。答:本题只需要修改子程序如下:5.20根据题图5-1的线路设计灯亮移位程序,要求8只发光二极管每次亮一个,点亮时间为40ms。顺次一个一个地循环右移P1.0-P1.7-Q答:依题意编写程序如下:NOPA题图5-1;初始化为最高位的灯先亮;循环右移一次则其右边的下一个灯亮;1ms延时的预定值7DH→R1第五章汇编语言程序设计39;1ms延时循环5.21根据题图5-1的线路设计灯亮程序,要求8只发光二极管间隔光,反复循环不止,变换时间为100ms,已知时钟频率为答:按题目要求编程如下:NOPA;1ms延时的预定值7DH→R1 思考与练习6.180C51单片机内部有几个定时器/计数器?它们是由哪些专用寄存器组成?答:80C51单片机内部设有两个16位的可编程定时器/计数器,简称为定时器0(TO)和定时器1(T1)。在定时器/计数器中的两个16位的计数器是由两个8位专用寄存器THO、TL0,6.280C51单片机的定时器/计数器有哪几种工作方式?各有什么特点?答:80C51单片机的定时器/计数器有4种工作方式。下面介绍4种工作方式的特点。方式0是一个13位的定时器/计数器。当TL0的低5位溢出时向TH0进位,而THO溢出时向中断标志TF0进位(称硬件置位TF0),并申请中断。定时器0计数溢出与否,可通过查询TF0是否置位或产生定时器0中断。是以全16位二进制数参与操作。方式2是能重置初值的8位定时器/计数器。其具有自动恢复初值(初值自动再装人)功方式3只适用于定时器T0。定时器T0在方式3下被拆成两个独立的8位计数器TL0完全相同,可定时亦可计数。此时TH0只可用做简单的内部定时功能。它占用原定时器T1的控制位TR1和TF1,同时占用T1的中断源,其启动和关闭仅受TR1置1和清0控制。6.3定时器/计数器用做定时方式时,其定时时间与哪些因素有关?作计数时,对外界计数频率有何限制?的1/24。6.4当定时器TO用做方式3时,由于TR1位已被T0占用,如何控制定时器T1的开启和关闭?答:定时器TO用做方式3时,由于TR1位已被T0占用,此时通过控制位C/T切换其定时器或计数器工作方式。当设置好工作方式时,定时器1自动开始运行;若要停止操作,只需送人一个设置定时器1为方式3的方式字。6.5已知80C51单片机系统时钟频率为6MHz,请利用定时器T0和答:设置T0为方式2定时,定时50μs,初值X为:X=2⁸—(6×10⁶×50×10-5)÷12=231源程序如下:6.6在80C51单片机中,已知时钟频率为12MHz,请编程使P1.0和P1.1分别输出周期为2ms和500μs的方波。答:方法1:选用定时器0定时,工作方式设为3,用TL0作为8位定时器,产生250μs的定时,定时初值X为:X=2⁸一(12×10⁶×250×10-⁶)÷12=6源程序如下:TLO,#6H;设置T0为方式3定时42方法2:选用定时器1定时250μs,工作方式设为2,用TL1作为8位定时器,产生250μs的定时,定时初值X为:X=2⁸—(12×10⁶×250×106);设定时器1为方式26.7设系统时钟频率为6MHz,试用定时器T0作外部计数器,编程实现每计到1000个脉冲,使T1开始2ms定时,定时时间到后,答:按题目要求编程如下:;设定时器1为定时方式1;定时器0为外部计数方式1;定时器0赋1000的计数初值;启动定时器0;关定时器0;定时器1赋2ms初值;启动定时器1第六章定时器/计数器43;关定时器16.8利用80C51单片机定时器/计数器测量某正脉冲宽度,已知此脉冲宽度小于10ms,主机频率为12MHz。编程测量脉冲宽度,并把结果转换为BCD码顺序存放在以片内50H单元为首地址的内存单元中(50H单元存个位)。答:按题目要求编程如下:$;设定时器0为带门控位方式1;等待INT0(P3.2)变高;启动定时器0;除以1000,并保存千位;除以100,并保存百位;出口:商送人@RO,余数高字节送A,余数低字节送BC44答:串行通信即所传送数据的各位按顺序一位一位地发送或接收。串在异步通信中数据或字符是一帧(frame)一帧地传送的。帧定义为一个字符的完整的通过软件对80C51串行口编程可约定4种工作方式。其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率控制。定时器T1用做串行口波用工作方式2.在方式2中,TL1作计数用,而自动重装载的值放在TH1内。如果已知系统时钟频率、时器1就会产生一次溢出。溢出周期为:则定时器T1在方式2时的初值为:答:最高波特率:波特率高=2/32×6000000/(12×(256—255))b/s=31250b/s最低波特率:波特率最低1/32×6000000/(12×(256—0))b/s=61b/s答:设波特率为9600b/s。当晶体频率为f=11.0592MHz和SMOD=1时,定时器T1按方式2工作,TH1=0FAH,TL1=0FAH。甲机发送程序;设定时器T1工作在方式2JZEX5_SENIK)K乙机接收程序MOVTL1,#0FAHDJNZR6,EX5_RCV2+累加和清048单片机习题集;出错送0FFH;正确送00H7.6利用80C51串行口控制8位发光二极管工作,要求发光二极管答:画出电路,见题图7-1。图中74HC164的CK等引脚分别由单片机的P3.1等引脚控制。;置串行工作方式0;调延时1s子程序(省略)A第八章中断系统 —思考与练习8.1什么是中断?在单片机中中断能实现哪些功能?答:中断是通过硬件来改变CPU程序运行方向。计算机在执行程序的过程中,由于CPU以回来继续执行被中止了的原程序。这种程序在执行过程中由于外界的原因而被中间打断的情在单片机中中断能实现如下功能:(1)能实现中断及返回当某一个中断源发出中断申请时,CPU能决定是否响应这个中断请求(当CPU在执行更急更重要的工作时,可以暂不响应中断)。若允许响应这个中断请求,CPU必须在现行的指令执行完后,把断点处的PC值(即下一条应执行的指令地址)推人堆栈保留下来—称为保护断点。这一步是硬件自动执行的。(2)能实现优先权排队计算机能按中断源级别高低逐次响应的过程称为优先权排队。这个过程可以通过硬件电路来实现,也可以通过程序查询来实现。(3)能实现中断嵌套当CPU响应某一中断的请求,在进行中断处理时,若有优先权级别更高的中断源发出中断申请,则CPU能中断正在进行的中断服务程序,并保留这个程序的断点(类似于子程序嵌套),响应高级中断;在高级中断处理完以后,再继续进行被中断的中断服务程序。这个过程称为中断嵌套。8.2什么是中断优先级?中断优先级处理的原则是什么?答:通常,在系统中有多个中断源,有时会出现两个或更多个中断源同时提出中断请求的情况。这就要求计算机既能区分各个中断源的请求,又能确定首先为哪一个中断源服务。为了解决这一问题,通常给各中断源规定了优先级别,称为优先权或中断优先级。中断优先级处理的原则是:当两个或者两个以上的中断源同时提出中断请求时,计算机首先为优先权最高的中断源服务,服务结束后,再响应级别较低的中断源。8.380C51有几个中断源?各中断标志是如何产生的,又如何清“0”答:80C51单片机有5个中断源,分别为:2个外部输入中断源INTO(P3.2)个片内定时器T0和T1的溢出中断源TFO(TCON,5)和TF1(TCON.7);1个片内串行口发送和接收中断源TI(SCON.1)和RI(SCON.0)。(1)外部中断类INT0——外部中断0请求信号,由P3.2脚输入。通过ITO(TCON.0)来决定中断请求信号是低电平有效还是下跳变有效。一旦输入信号有效,则向CPU申请中断,并且使IE0=INT1——外部中断1请求信号,功能与用法类似外部中断0。(2)定时中断类定时中断是为满足定时或计数溢出处理的需要而设置的。当定时器/计数器中的计数结去置位一个溢出标志位。这种中断请求是在单片机芯片内部TF1——定时器T1溢出中断请求。功能与用法类似定时器T0。(3)串行口中断类RI或TI——串行中断请求。当接收或发送完一串行帧数据时,使内部串行口中断请求标志RI或TI=1,并请求中断。响应中断后必须软件复位。中断源外部中断0外部中断1定时器T1中断8.4中断响应时间是否确定不变的?为什么?将是一条硬件长调用指令“LCALL”,使程序转入中断矢量入口。调用本身要用2个机器周断服务正在进行,则附加的等待时间取决于正在进行的中断服务程序:如果正在执行的一条指令还没有进行到最后一个机器周期,附加的等待时间为1~3个机器周期;如果正在执行的是RETI指令或者访问IE或IP的指令,则附加的等待时间在5个机器周期之内。若系统中只有一个中断源,则响应时间为3~8个机器周期。8.5请用中断方式按第六章习题6.6要求设计程序,并分析采用中断后的优点。答:第六章习题6.6要求编程使P1.0和P1.1分别输出周期为2ms和500μs的方波。在此可采用定时器0定时,工作方式设为3,用TL0作为8位定时器,产生250μs的定时,则定时初值X为:X=2⁸—(12×10⁶×250×10-)源程序$采用中断后计算机不必专门等待定时时间到,可利用这个时间做其他事情。8.6中断响应过程中,为什么通常要保护现场?如何保护?答:因为一般主程序和中断服务程序都可能会用到累加器、PSW寄存器及其他一些寄存器。CPU在进入中断服务程序后,用到上述寄存器时,就会破坏它原来存在寄存器中的内容;一旦中断返回,将会造成主程序的混乱。因而在进人中断服务程序后,一般要先保护现场,然后再执行中断处理程序,在返回主程序以前再恢复现场。保护方法一般是把累加器、PSW寄存器及其他一些与主程序有关的寄存器压人堆栈。在保护现场和恢复现场时,为了不使现场数据受到破坏或者造成混乱,一般规定此时CPU不响应新的中断请求。这就要求在编写中断服务程序时,注意在保护现场之前要关中断,在恢复现场之后开中断。如果在中断处理时允许有更高级的中断打断它,则在保护现场之后再开中断,恢复现场之前关中断。答:利用定时器T0定时,P1.0口作为秒脉冲发生器的输出端,P1.1口作为分脉冲发生器的输出端,设晶振频率为12MHz。采用中断的方法实现这一要求,片内50H、51H单元分别用于进行秒、分的计数。要求T0定时50ms;此时TO的初始值X为:X=65536—50000=15536=3TO的中断服务程序人口地址为000BH。源程序:TO的中断服务程序##NOPNOP;未到1s继续循环;设定时器0为方式18.880C51单片机的中断系统中有几个优先级,如何设定?若扩充8答:80C51单片机的中断系统具有两个中断优先级。中断优先级的设定:由专用寄存器IP统一管理,由软件设置每个中断源为高优先级中断或低优先级中断,可实现两级中断嵌套。专用寄存器IP为中断优先级寄存器,锁存各中断源优先级的控制位,用户可由软件设定。其格式如下:一一一①IP.4PS——串行口中断优先级控制位。PS=1,设定串行口为高优先级中断;PS=0,为低优先级中断。②IP.3PT1-——定时器T1中断优先级控制位。PT1=1.设定定时器T1为高优先级③IP.2PX1——外部中断1中断优先级控制位。PX1=1,设定外部中断1为高优先④IP.1PT0—定时器T0中断优先级控制位。PT0=1,设定定时器TO为高优先级中⑤IP.0PXo——外部中断0中断优先级控制位。PX0=1,设定外部中断0为高优先级当系统复位后,IP低5位全部清0,将所有中断源设置为低优先级中断。如果几个同一优先级的中断源同时向CPU申请中断,CPU通过内部硬件查询逻辑按自然优先级顺序确定该响应哪个中断请求。其自然优先级由硬件形成,排列如下:中断源外部中断0外部中断1串行口中断自然优先级最高级断断最低级这种排列顺序在实际应用中很方便,且合理。如果重新设置了优先级,则顺序查询逻辑电路将会相应改变排队顺序。54若扩充8个中断源,可以采用中断和查询结合扩充外中断源的方法确定优先级。例如,可以用8个OC门电路组成“线或”电路,当8个扩充中断源中有一个或几个出现高电平,OC门输出为0,使INT0、INTI为低电平触发中断,所以这些扩充的外中断源都是电平触发方中,由软件按人为设定的顺序(优先级)查询外中断源哪位是高电平,然后进人该中断处理。8.9试用中断技术设计一个秒闪电路,其功能是发光二极管LED每次闪亮400ms。主机频率为6MHz。定时器0定时,定时时间TIMERu=100ms,用P1.0作输出,设P1.0为高时灯灭。编程如下:;定时器0跳转$;定时器0方式1;定时器0初值(100ms);允许定时器0中断;时间计数器清0;启动定时器0;启动定时器0第八章中断系统558.10试设计一个80C51单片机的双机通信系统,并编写程序将A机片内RAM40H~5FH的数据块通过串行口传送到B机的片内RAM60H~7FH中去。要求传送时进行奇偶校验;若出错,则答:设晶振频率为11.0592MHz,波特率为9.6kb/s。;设串口工作方式3;定时器1工作在方式2$;B机接受程序;定时器1工作在方式256$8.11试将《单片机初级教程>5.6节的例8、例9改为用中断方法实现延时。答:本题分为如下两部分实现:①将5.6节的例8改为用中断方法实现延时。分别用定时器0、1进行定时。设工作频TH1,#0FFH$;定时器0溢出跳转;定时器1溢出跳转;置50ms定时初值;暂存定时器1初值;置位变调标志;启动定时器0;启动定时器1;等待;关闭定时器0;未循环20次,转;根据音调给定时器1赋不同的值;置250pμs定时初值;启动定时器0;保护现场;关闭定时器158TL1,R4;启动定时器1:中断返回50ms,工作频率为f=12MHz。LINEQU10H:点亮熄灭标志位LJMPTIMER0;定时器0溢出跳转MOVTMOD,#01H;设置定时器0为工作方式1MOVR3,#14H;闪10次,共20个动作SETBTR0;启动定时器0SETBET0;允许定时器0中断PUSHPSWMOVTH0,#3CH;启动定时器0 9.1在80C51扩展系统中,程序存储器和数据存储器共用16位地址线和8位数据线,为什么两个存储空间不会发生冲突?答:程序存储器和数据存储器虽然共用16位地址线和8位数据线,但由于数据存储器的读和写由RD(P3.7)和WR(P3.6)信号控制,而程序存储器由读选通信号PSEN控制,因此,两者虽然共处同一地址空间,但出于控制信号不同,所以不会发生总线冲突。9.2为什么当P2作为扩展存储器的高8位地址后,不再适宜作通用答:P2口用做扩展存储器的高8位地址总线后,即使没有全部占用,空余的几根也不宜作通用I/()线,否则会给软件编写及其使用带来不必要的麻烦。9.3根据题图9-1线路设计程序,其功能是按下K,~K₃按键后,对应LED₄~LED,发光;按下K₄~K,时,对应LED₀~LED₃发光。答:按要求编程序如下:;延时20msA9.4请利用译码器74HC138设计一个译码电路,分别选中4片2764,且列出各芯片所占的地址空间范围。答:利用译码器74HC138设计的一个译码电路见题图9.2。4片2764芯片的地址分配如下:9.58255有哪几种工作方式?怎样选择其工作方式?答:8255有3种工作方式,即方式0、方式1和方式2。●方式0(基本输人/输出方式):这种方式不需要任何选通信号。A口、B口及C口的高4位和低4位都可以被设定为输入或输出。作为输出口时,输出的数据被锁存;B口和C口作为输人口时,其输入的数据不锁存。来作为输入/输出操作的控制和同步信号;B组包括B口和C口的低4位,B口可由编程设定为输入口或输出口,C口的低4位则用来作为输入/输出操作的控制和同步信号。A口和B口的输出数据都被锁存。●方式2(双向数据传送方式):在这种方式下,A口为8位双向数据口,C口的PC₃~PC₇用来作为输人/输出的控制同步信号。8255的工作方式选择是通过对控制口输人控制字(或称命令字)的方式实现的。方式选择控制字的格式与定义如题图9-3所示。例如,当将83H(10000011B)写人控制寄存器后,8255被编程为A口按方式0输出,B口按方式0输人,PC,~PC.为输出,PC₃~PC₀为输人。2A址容8容8220f6:A侣四侣四m二二mhh
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大班科学活动:玩转有趣的光斑
- 设计学就业前景分析
- 就业指导课教学设计与实施
- 安全管理手册核心内容
- 2025年吉林省初二学业水平地生会考真题试卷+解析及答案
- 2025年广东中山市初二地生会考试题题库(答案+解析)
- 2025年广东阳江市初二地生会考试题题库(答案+解析)
- 2025年西藏自治区山南市初二学业水平地理生物会考考试真题及答案
- 大气污染控制工程课程设计
- 2026年软文发稿平台TOP10权威测评:如何选择高效可靠的媒体发稿渠道
- 2026年商丘职业技术学院单招职业技能考试题库附答案解析
- 2025年黔西南州辅警协警招聘考试真题含答案详解(培优)
- 物业服务标准化培训课件
- 婴儿生理心理观察与评估
- 2025年锡矿山闪星锑业有限责任公司校园招聘模拟试题附带答案详解及一套
- DB3301∕T 0213-2018 城市道路防沉降检查井盖和雨水口技术管理规范
- 大学摄影教程第2版陈勤 教学课件全套
- 混凝土结构后张法预应力施工规范及张拉控制
- 2025年五类人员考试真题及答案
- 内部资金融通管理办法
- 水产养殖产业链分析-洞察阐释
评论
0/150
提交评论