




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
...wd......wd......wd...《单片微型计算机原理及应用》习题参考答案姜志海刘连鑫王蕾编著电子工业出版社目录第1章微型计算机根基2第2章半导体存储器及I/O接口根基4第3章MCS51系列单片机硬件构造11第4章MCS51系列单片机指令系统16第5章MCS51系列单片机汇编语言程序设计20第6章MCS51系列单片机中断系统与定时器/计数器26第7章MCS51系列单片机的串行口32第8章MCS51系列单片机系统扩展技术34第9章MCS51系列单片机键盘/显示器接口技术36第10章MCS51系列单片机模拟量接口技术40第11章单片机应用系统设计44第1章微型计算机根基1.简述微型计算机的构造及各局部的作用微型计算机在硬件上由运算器、控制器、存储器、输入设备及输出设备五大局部组成。运算器是计算机处理信息的主要局部;控制器控制计算机各部件自动地、协调一致地工作;存储器是存放数据与程序的部件;输入设备用来输入数据与程序;输出设备将计算机的处理结果用数字、图形等形式表示出来。通常把运算器、控制器、存储器这三局部称为计算机的主机,而输入、输出设备则称为计算机的外部设备〔简称外设〕。由于运算器、控制器是计算机处理信息的关键部件,所以常将它们合称为中央处理单元CPU〔CentralProcessUnit〕。2.微处理器、微型计算机、微型计算机系统有什么联系与区别微处理器是利用微电子技术将计算机的核心部件〔运算器和控制器〕集中做在一块集成电路上的一个独立芯片。它具有解释指令、执行指令和与外界交换数据的能力。其内部包括三局部:运算器、控制器、内部存放器阵列〔工作存放器组〕。微型计算机由CPU、存储器、输入/输出〔I/O〕接口电路构成,各局部芯片之间通过总线〔Bus〕连接。以微型计算机为主体,配上外部输入/输出设备、电源、系统软件一起构成应用系统,称为微型计算机系统。3.微型计算机是以CPU为核心,配上存储器、输入/输出接口和系统总线组成的计算机。4.在计算机内部,一切信息的存取、处理和传递的形式是〔C〕。A.ASCII码 B.BCD码 C.二进制 D.十六进制5.0~9的ASCII码是〔C〕。A.0~9 B.30~39 C.30H~39H D.40H~49H6.在微型计算机中,一般具有哪三类总线试说出各自的特征〔包括传输的信息类型、单向传输还是双向传输〕。所谓总线,就是在微型计算机各芯片之间或芯片内部各部件之间传输信息的一组公共通信线。计算机元件级总线包括地址总线AB〔AddressBus〕、数据总线DB〔DataBus〕、控制总线CB〔ControlBus〕三种。〔1〕地址总线:地址总线是CPU用来向存储器或I/O接口传送地址信息的,是三态单向总线。地址总线的宽度决定了CPU可直接寻址的内存容量。通过地址总线确定要操作的存储单元或I/O接口的地址。〔2〕数据总线:数据总线是CPU与存储器及外设交换数据的通路,是三态双向总线。〔3〕控制总线:控制总线是用来传输控制信号的,传送方向依据具体控制信号而定,如CPU向存储器或I/O接口电路输出读信号、写信号、地址有效信号,而I/O接口部件向CPU输入复位信号、中断请求信号等。7.将以下二进制数转换为十进制数。111101.101B 100101.11B 1100110.011B111101.101B=29.625100101.11B=37.751100110.011B=102.3758.将以下十进制数转换为二进制数、BCD码数。126.635 317.125 87.0735126.635=1111110.101B=(000100100110.011000110101)BCD317.125=100111101.001B=(001100010111.000100100101)BCD87.0735=1010111.0001B=(10000111.0000011100110101)BCD9.设机器数为8位,写出以下用真值表示的二进制数的原码、补码和反码。+0010101B –0010101B +1000000B –1000000B+0010101B–0010101B+1000000B–1000000B原码00010101B10010101B01000000B11000000B反码00010101B11101010B01000000B10111111B补码00010101B11101011B01000000B11000000B10.将以下BCD码表示成十进制数和二进制数。01111001 01010111 10000011 10011001(01111001)BCD=79=1001111B(01010111)BCD=57=111001B(10000011)BCD=83=1010011B(10011001)BCD=99=1100011B11.设以下数据为8位补码表示的十六进制数,计算a+b和a–b,并且判断有无溢出。aba+b是否溢出a–b是否溢出37H97H0CEHN0A0HY0B7H0D7H8EHY0E0HY0F7H0D7H0CEHY20HN037H0C7H0FEHN70HY12.计算机某字节存储单元的内容为10000111,假设解释为无符号数,则真值为〔135〕;假设解释为有符号数,则真值为〔-121〕;假设解释为BCD码,则真值为〔87〕;假设用十六进制数表示,则为〔87〕H。第2章半导体存储器及I/O接口根基1.半导体存储器分两大类:易失性存储器RAM和非易失性存储器ROM。闪速存储器属于非易失性存储器ROM。2.SRAM6264芯片的地址线为A12~A0,其存储容量为8K地址空间。3.可用紫外线擦除后改写的存储器EPROM经擦除后,各单元的内容应为0FFH。4.88KB的SRAM存储器芯片需要13根地址线和8根数据线。5.半导体存储器有哪几种类型各自有什么特点半导体存储器的两个重要指标是什么半导体存储器通常分为随机存取存储器〔RAM,RandomAccessMemory〕和只读存储器〔ROM,ReadOnlyMemory〕两类。〔1〕RAM:RAM又称读写存储器,它的数据读取、存入时间都很短,因此计算机运行时,既可以从RAM中读数据,又可以将数据写入RAM。但掉电后RAM中存放的信息将丧失。RAM适宜存放输入数据、中间结果及最后的运算结果,因此又被称为数据存储器。随机存储器有静态RAM和动态RAM两种。静态RAM用触发器存储信息,只要不断电,信息就不会丧失。动态RAM依靠电容存储信息,充电后为“1〞,放电后为“0〞。为了保存信息,每隔1~2ms必须对高电平的电容重新充电,这称为动态RAM的定时刷新。动态RAM的集成度高;静态RAM的集成度低、功耗大,优点是省去了刷新电路。在设计专用的微型计算机系统时,一般只用静态RAM就可以满足要求。〔2〕ROM:ROM称为只读存储器。读出一个数据的时间为数百纳秒,有时也可改写,但写入一个数据的时间长达数十毫秒。因此在计算机运行时只能执行“读〞操作。掉电后ROM中存放的数据不会丧失。ROM适宜存放程序、常数、表格等,因此又称为程序存储器。只读存储器有以下五类:掩模ROM:在半导体工厂生产时,已经用掩模技术将程序做入芯片,用户只能读出内容而不能改写。掩模ROM只能应用于有固定程序且批量很大的产品中。一次可编程只读存储器〔PROM,ProgrammableROM〕:用户可将程序写入PROM,但程序一经写入就不能改写。紫外线擦除可编程只读存储器〔EPROM,ErasablePROM〕:用户可将程序写入EPROM芯片。如果要改写程序,先用EPROM擦除器,擦去原先的程序,然后写入新程序。与PROM芯片一样,写入的速度很慢,且要用到高压,所以必须用特定的EPROM编程器写入信息。在计算机运行时只能执行读操作。电擦除可编程只读存储器〔EEPROM,ElectricallyErasablePROM〕:由于采用电擦除方式,而且擦除、写入、读出的电源都用+5V,故能在应用系统中在线改写。但目前写入时间较长,约需10ms,读出时间约为几百纳秒。闪烁存储器〔FlashMemory〕:快速擦写存储器〔FlashMemory,简称Flash〕是20世纪80年代中期推出的新型器件。它可以在联机条件下,在计算机内进展擦除、改写,因而称为快擦写型存储器或闪烁存储器。它具有芯片整体或分区电擦除和可再编程功能,从而使它成为性价比和可靠性最高的可读写、非易失性存储器。主要性能特点如下:高速芯片整体电擦除:芯片整体擦除时间约1s,而一般的EPROM需要15min以上。高速编程:采用快速脉冲编程方法,编程时间短。最少1万次擦除/编程周期,通常可到达10万次擦除/编程周期。早期的Flash采用12V编程电压,改进后在Flash内部集成了1个DC/DC变换器,可以采用单一的5V电压供电。高速度的存储器访问:最大读出时间不超过200μs。高速Flash的读出时间到达60μs。低功耗:最大工作电流为30mA,备用状态下的最大电流为100μA。密度大,价格低,性价比高。衡量半导体存储器性能的主要指标有存储容量、存取速度、存储器周期、功耗、可靠性、价格、电源种类等,其中主要的技术指标是存储容量和存取速度。存储容量是存储器的一个重要指标。存储器芯片的存储容量用“存储单元个数×每个单元的存储位数〞来表示。如存储器有256个单元,每个单元存放8位二进制数,那么该存储器的容量为256×8位。存储器容量1K=1024=210。对于以字节编址的微型计算机,可以以字节表示容量,如某微型计算机的容量为64KB。在表示存储器的容量时,一般是以某一空间范围来表示的,而空间范围是由地址线来决定的,即存储器的容量和存储器的地址线的宽度〔数量〕有关。地址的二进制位数N与容量的关系是Q=2N。如某存储器芯片有13条地址线A12~A0,则存储器容量为8KB,空间表示范围为0000H~1FFFH。存取速度:该项指标一般用以下两个参数中的一个来描述。①存取时间〔AccessTime,TA〕:是指从CPU给出有效的存储地址启动一次存储器读/写操作,到操作完成所经历的时间。具体地说,对一次读操作的存取时间就是读出时间,即从地址有效到数据输出有效之间的时间;对于一次写操作,存取时间就是写入时间。②存取周期〔AccessCycle,TAC〕:是指连续两次存储器读/写操作之间所需要的最小时间间隔。对于读操作,就是读周期时间;对于写操作,就是写周期时间。因为在一次数据访问后,芯片不可能无间歇地进入下一次访问,所以存取周期TAC要略大于存取时间TA。表示上,该参数常表示为读周期TRC或写周期TWC,存取时间TAC是其统称。6.型号是1K×4位的静态RAM,应有多少条地址线多少条数据线10条地址线、4条数据线7.说明EPROM、PROM、ROM和Flash存储器之间的主要区别。参考第5题。8.什么是“闪存〞它有哪些特点用于哪些场合参考第5题。9.简述堆栈的作用与操作。所谓堆栈,是指在存储器中开辟的一个区域,用来存放需要暂时保存的数据。〔1〕堆栈的作用用来存放断点地址或保存临时数据。在调用子程序和执行中断服务程序的过程中,要保存断点地址,有时还要保护现场。只有保存了断点地址,才能在子程序或中断服务程序执行后保证返回到主程序的断点处,继续执行主程序。断点地址与现场信息是送入堆栈保存的。在返回主程序前,要把保存在堆栈中的现场信息送回对应的存放器,这称为恢复现场。〔2〕堆栈操作堆栈有两种操作方式。将数据送入堆栈称为推入操作,又称为压入操作,如压入指令PUSH A把堆栈中内容取出来的操作称为弹出操作,如弹出指令POP A执行把栈顶内容送回A的操作。10.简述I/O接口的功能。接口电路是专门为解决CPU与外设之间的不匹配、不能协调工作而设置的,它处在总线和外设之间,一般应具有以下根本功能。〔1〕对输入/输出数据进展缓冲、隔离和锁存〔2〕对信号的形式和数据格式进展交换与匹配〔3〕提供信息相互交换的应答联络信号〔4〕根据寻址信息选择相应的外设由此可见,I/O电路是外设和计算机之间传送信息的交换器件,也有人称它为界面,它使两者之间能很好地协调工作,每一个外设都要通过接口电路才能和计算机相连。11.CPU处理I/O操作有几种方式各自有什么特点和应用范围CPU和外设之间的数据传输有4种方式,即无条件方式、查询方式、中断方式、直接存储器存取方式〔DMA方式〕。〔1〕无条件传输方式所谓无条件传输方式,是指CPU对外设接口的读写随时都可以进展,不需要等待某种条件的满足。无条件传送方式也称同步传送方式,主要用于对简单外设进展操作,或者外设的定时是固定的或的场合。对于这类外设,在任何时刻均以准备好数据或处于接收数据状态,或者在某些固定时刻,它们处在数据就绪或准备接收状态,因此程序可以不必检查外设的状态,而在需要进展输入或输出操作时,直接执行输入/输出指令。当输入/输出指令执行后,数据传送便立即进展。这是一种最简单的输入/输出传送方式,所需要的硬件和软件都非常小,一般用于控制CPU与低速I/O接口之间的数据交换。无条件传输方式的软、硬件简单,但一般的外设难以满足上述条件,所以这种输出方式用得较少,只用于一些简单外设,如开关、数码管显示等。〔2〕程序查询传输方式程序查询传输方式是指CPU在向外设传递数据前,首先查询外设的状态〔即条件〕,假设外设准备好则传送,假设未准备好,CPU就等待。可见,接口电路除了有传送数据的端口外,还有传送状态的端口。对于输入过程,当外设将数据准备好时,则使接口的状态端口中的“准备好〞标志置1;对于输出过程,外设取走一个数据后,接口便将状态端口中的对应标志置1,表示当前输出存放器已经处于“空〞状态,可以接收下一个数据。因此,对应条件传送,一个数据传送过程由3个环节组成:①CPU从接口中读出状态字。②CPU检测状态字的对应位是否满足“就绪〞条件,如果不满足,则回到前一步读出状态字。③如果状态字说明外设已处于“就绪〞状态,则传送数据。程序查询传输方式接口电路中除了数据端口外,还必须有传送状态的端口,同时CPU要不断查询外设状态,占用大量CPU的时间,硬件比无条件传输方式复杂,并使用较多的端口地址。用查询方式输入数据时,在接口电路与外设间要交换数据、状态和控制3种信息。查询方式的缺点是CPU的利用受到影响,陷于等待和反复查询,不能再做它用;而且,这种方法不能处理掉电、设备故障等突发事件。〔3〕中断传输方式在中断传送方式下,外设具有申请CPU服务的主动权,当输入设备将数据准备好或者输出设备可以接收数据时,便可以向CPU发中断请求,使CPU暂时停下目前的工作而和外设进展一次数据传输,等输入操作或者输出操作完毕以后,CPU继续进展原来的工作。即中断传送方式就是外设中断CPU的工作,使CPU停顿执行当前程序,而去执行一个输入/输出程序,此程序称为中断处理子程序或中断服务子程序。中断服务子程序执行完后,CPU又回来执行原来的程序。采用中断方式后,CPU平时可以执行主程序,只有当输入设备将数据准备好了,或者输出端口的数据缓冲器已空时,才向CPU发出中断请求。CPU响应中断后,暂停执行当前的程序,转去执行管理外设的中断服务程序。在中断服务程序中,用输入或输出指令在CPU和外设之间进展一次数据交换。等输入或输出操作完成后,CPU又回去执行原来的程序。〔4〕DMA传输方式DMA方式要利用系统的数据总线、地址总线和控制总线来传送数据。原先这些总线是由CPU管理的,但当外设需要利用DMA方式进展数据传送时,接口电路可以向CPU提出请求,要求CPU让出对总线的控制权,用一种称为DMA控制器的专用硬件接口电路来取代CPU临时接收总线,控制外设和存储器之间直接进展高速的数据传送,而不要CPU进展干预。这种控制器能给出访问内存所需要的地址信息,并能自动修改地址指针,也能设定和修改传送的字节数,还能向存储器和外设发出相应的读/写控制信号。在DMA传送完毕后,它能释放总线,把对总线的控制权交还给CPU。可见用DMA方式传送数据时,不需要进展保护和恢复断点及现场之类的额外操作,一旦进入DMA操作,就可直接在硬件的控制下快速完成一批数据的交换任务,数据传送的速度根本取决于外设和存储器的存取速度。12.什么是中断什么是可屏蔽中断什么是非屏蔽中断CPU在什么条件下可以响应中断所谓中断,是指CPU正常运行程序时,由于微处理器内部事件或外设请求,引起CPU中止正在运行的程序,转去执行请求中断的外设〔或内部事件〕的中断服务程序,中断服务程序执行完毕,再返回被中止的程序。利用中断可以防止不断检测外设状态,提高CPU的效率。可屏蔽中断有时也称为直接中断。屏蔽是指CPU可以不处理的中断请求。这种屏蔽实际上是CPU的一种工作方式,可以通过软件〔指令〕来设置,也就是可以通过指令,使CPU或者允许承受中断请求,或者不承受中断请求。具体的指令由CPU的指令系统来决定。可屏蔽中断是最常见的一种中断方式,所有的微处理器都有这种中断方式。对非屏蔽中断来说,如果该中断源申请了中断,CPU是一定要处理的。CPU不可以也不能用软件将该中断屏蔽掉。一般一些紧急的情况,如掉电中断申请,就可以安排为这种中断方式,以保证紧急情况一定能得到处理。但并不是所有的微处理器的中断系统都有这种中断方式,MCS-51单片机的中断系统就没有非屏蔽中断。一个完整的中断处理的根本过程应包括:中断请求、中断优先权判别、中断响应、中断处理及中断返回。如果提出中断请求的中断源优先权高,而且接口电路与CPU都中断开放,CPU将响应中断,自动执行以下工作:①保存断点:中止正在执行的程序,并对断点进展保护,即将断点地址的值压入堆栈保存,以便中断服务程序执行完后能返回断点处继续执行程序。②转入中断服务程序:将中断服务程序的人口地址送入PC,以转到中断服务程序。各中断源要求服务的内容不同,所以要编制不同的中断服务程序,它们有不同的入口地址。CPU首先要确定是哪一个中断源在申请中断,然后将对应的入口地址送入PC。13.DMA传送的根本过程是什么为什么DMA方式可以加快数据在外设和存储器之间的传送参看第11题。14.什么是接口什么是端口一个接口电路是否可以有多个端口所谓接口,是指在两台计算机之间、计算机与外设之间、计算机内部各部件之间起连接作用的逻辑电路,是CPU与外界进展信息交换的中转站。所谓端口,是指I/O接口〔包括芯片和控制卡〕中供CPU直接存取访问的那些存放器或某些硬件特定电路。一个I/O接口总要包括假设干端口,除常见的数据端口、命令端口和状态端口外,还有特殊用途的端口,如方式控制端口、操作结果端口和地址索引端口等。端口的多少及相应的功能完全取决于与I/O接口所关联的I/O设备。15.CPU和外设之间传输的信息有哪几类各有何特点计算机与外设间的这种交换数据、状态和控制命令的过程统称为通信〔Communication〕。通信过程就是数据传输的过程,在这个过程中要传输的信息有数据信息、状态信息、控制信息。〔1〕数据信息CPU和外设交换的根本信息就是数据,数据通常为8位或16位。数据信息可分为以下三种类型。具体可分为数字量、模拟量、开关量。〔2〕状态信息状态信息反映了当前外设所处的工作状态,是外设通过接口往CPU传送的。对于输入设备来说,通常用准备好〔READY〕信号来说明输入的数据是否准备就绪;对于输出设备来说,通常用忙〔BUSY〕信号表示输出设备是否处于空闲,如为空闲,则可接收CPU送来的信息,否则CPU应等待。〔3〕控制信息控制信息是CPU通过接口传送给外设的,CPU通过发送控制信息控制外设的工作,如外设的启动、停顿就是常见的控制信息。16.串行传送的特点是什么数据传送按位顺序进展,最少只需一根传输线即可完成,本钱低但速度慢。计算机与外界的数据传送大多数是串行的,其传送的距离可以从几米到几千千米。17.串行通信和并行通信的主要区别是什么各有什么优缺点计算机与外设之间或计算机之间的信息交换或数据传输称为通信〔Communication〕。根本的通信方式有两种,一种是并行通信,另一种是串行通信。〔1〕并行通信并行通信是指数据的各位同时进展传送。在并行通信中,有多少位数据,就需要多少条传输线,因此传送速度较快,即在一样传输率的情况下,并行通信能够提供高速、高信息率的传输。由于并行通信所需的传输线较多,如果传输距离增加,传输线的开销会成为一个突出的问题,因而并行通信一般用于数据传输率要求较高、传输距离又比照短的场合。〔2〕串行通信串行通信是指数据一位一位地按顺序传送。串行通信时,要传送的数据或信息必须按一定的格式编码,然后在单根线上,按一位接一位的先后顺序进展传送,发送完一个字符,再发送第二个。接收数据时,每次从单根线上一位接一位地接收信息,再把它们拼成一个字符,送给CPU做进一步处理。采用串行通信方式的另一个出发点是,有些外设如调制解调器〔Modem〕、鼠标等,本身需要用串行通信方式,因为这些设备是以串行方式存取数据的。第3章MCS51系列单片机硬件构造1.MCS51系列单片机内部有哪些主要的逻辑部件MCS51单片机是在一块芯片上集成了CPU、RAM、ROM、定时器/计数器和多种I/O功能部件,具有了一台微型计算机的根本构造,主要包括以下部件:一个8位的CPU、一个布尔处理机、一个片内振荡器、128B的片内数据存储器、4KB的片内程序存储器〔8031无〕、外部数据存储器和程序存储器的寻址范围为64KB、21个字节的专用存放器、4个8位并行I/O接口、一个全双工的串行口、2个16位的定时器/计数器、5个中断源、2个中断优先级、111条指令、片内采用单总线构造。2.MCS51单片机设有4个8位并行端口,实际应用中8位数据信息由哪个端口传送16位地址线假设何形成P3口有何功能8位数据信息由P0口传送。P2口形成地址大高8位,P0口结果锁存器形成地址的低8位。P3口除具有一般的输入/输出功能,还具有第2功能:P3.0RXD串行口输入端P3.1TXD串行口输出端P3.2外部中断0请求输入端,低电平有效P3.3外部中断1请求输入端,低电平有效P3.4T0定时器/计数器0计数脉冲输入端P3.5T1定时器/计数器1计数脉冲输入端P3.6外部数据存储器及I/O接口写选通信号输出端,低电平有效P3.7外部数据存储器及I/O接口读选通信号输出端,低电平有效3.MCS51单片机内部RAM区的功能构造假设何分配4组工作存放器使用时假设何选择位寻址区域的字节范围是多少MCS51单片机片内RAM共有128B,字节范围为00H~7FH,可分为工作存放器区、位寻址区、数据缓冲区共3个区域。〔1〕工作存放器区00H~1FH单元为工作存放器区。工作存放器也称通用存放器,用于临时存放8位信息。工作存放器分成4组,每组都是8个存放器,用R0~R7来表示。程序中每次只用一组,其余各组不工作。使用哪一组存放器工作,由程序状态字PSW中的PSW.3〔RS0〕和PSW.4〔RS1〕两位来选择,其对应关系如表所示。工作存放器组的选择表工作存放器组的选择表PSW.4(RS1)PSW.3(RS0)当前使用的工作存放器组
R0~R7000组〔00H~07H〕011组〔08H~0FH〕102组〔10H~17H〕113组〔18H~1FH〕该区域当不被用做工作存放器时,可以作为一般的RAM区使用。〔2〕位寻址区20H~2FH单元是位寻址区。这16个单元〔共计16×8=128位〕的每一位都赋予了一个位地址,位地址范围为00H~7FH。位地址区的每一位都可当做软件触发器,由程序直接进展位处理。通常可以把各种程序状态标志、位控制变量存入位寻址区内。00H…07H08H…0FH10H…17H18H…1FH0组工作存放器区1组2组3组20H21H22H23H24H25H26H27H28H29H2AH2BH2CH2DH2EH2FH0706050403020100位寻址区0F0E0D0C0B0A090817161514131211101F1E1D1C1B1A191827262524232221202F2E2D2C2B2A292837363534333231303F3E3D3C3B3A393847464544434241404F4E4D4C4B4A494857565554535251505F5E5D5C5B5A595867666564636261606F6E6D6C6B6A696877767574737271707F7E7D7C7B7A797830H…7FH数据缓冲区该区域当不被用做位寻址区时,可以作为一般的RAM区使用。〔3〕数据缓冲区30H~7FH是数据缓冲区,即用户RAM,共80个单元。由于工作存放器区、位寻址区、数据缓冲区统一编址,使用同样的指令访问,这三个区的单元既有自己独特的功能,又可统一调度使用。因此,前两个区未使用的单元也可作为用户RAM单元使用,使容量较小的片内RAM得以充分利用。4.特殊功能存放器中哪些存放器可以位寻址它们的字节地址是什么参看表3-6.5.简述程序状态字PSW中各位的含义。程序状态字PSW是一个8位存放器,它保存指令执行结果的特征信息,为下一条指令或以后的指令的执行提供状态条件。PSW中的各位一般是在指令执行过程中形成的,但也可以根据需要采用传送指令加以改变。其各位定义如以以下列图。①进位标志C〔PSW.7〕在执行某些算术运算类、逻辑运算类指令时,可被硬件或软件置位或清零。它表示运算结果是否有进位或借位。如果在最高位有进位〔加法时〕或借位〔减法时〕,则C=1,否则C=0。②辅助进位〔或称半进位〕标志位AC〔PSW.6〕它表示两个8位数运算,低4位有无进〔借〕位的状况。当低4位相加〔或相减〕时,假设D3位向D4位有进位〔或借位〕,则AC=1,否则AC=0。在BCD码运算的十进制调整中要用到该标志。③用户自定义标志位F0〔PSW.5〕用户可根据自己的需要为F0赋予一定的含义,通过软件置位或清零,并根据F0=1或0来决定程序的执行方式,或系统某一种工作状态。④工作存放器组选择位RS1、RS0〔PSW.4、PSW.3〕可用软件置位或清零,用于选定当前使用的4个工作存放器组中的某一组。⑤溢出标志位OV〔PSW.2〕做加法或减法时由硬件置位或清零,以指示运算结果是否溢出。在带符号数加减运算中,OV=1表示加减运算超出了累加器所能表示的数值范围〔–128~+127〕,即产生了溢出,因此运算结果是错误的。OV=0表示运算正确,即无溢出产生。执行乘法指令MULAB也会影响OV标志,当积大于255时,OV=1,否则OV=0;执行除法指令DIVAB也会影响OV标志,如B中所存放的除数为0,则OV=1,否则0V=0。⑥奇偶标志位P〔PSW.0〕在执行指令后,单片机根据累加器A中1的个数的奇偶自动将该标志置位或清零。假设A中1的个数为奇数,则P=1,否则P=0。该标志对串行通信的数据传输非常有用,通过奇偶校验可检验传输的可靠性。6.简述MCS51单片机程序存储器的几个特殊入口地址的含义。0000H:程序入口地址0003H:外部中断0中断服务程序入口地址000BH:定时器/计数器0溢出中断服务程序入口地址0013H:外部中断1中断服务程序入口地址001BH:定时器/计数器1溢出中断服务程序入口地址0023H:串行口发送/接收中断服务程序入口地址7.位地址7FH与字节地址7FH有何区别位地址7FH具体在内存中的什么位置二者存储的数据位数不一样。位地址7FH存放一位二进制数,字节地址7FH存放8为二进制数。位地址7FH具体在内存中字节地址为20H的最高位上。8.复位的作用是什么复位后单片机的状态假设何计算机在启动运行时都需要复位,这就使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状态开场工作。单片机的复位都靠外部电路实现。MCS51单片机有一个复位引脚RST,高电平有效。它是施密特触发输入〔对于CMOS单片机,RST引脚的内部有一个拉低电阻〕,当振荡器起振后,该引脚上出现两个机器周期〔即24个时钟周期〕以上的高电平,使器件复位,只要RST保持高电平,MCS51便保持复位状态。此时ALE、PSEN、P0、P1、P2、P3口都输出高电平。RST变为低电平,退出复位状态,CPU从初始状态开场工作。复位操作不影响片内RAM的内容,复位以后内部存放器的初始状态如表3-7所示。9.试分别说明程序计数器PC和堆栈指针SP的作用。复位后PC和SP各为何值程序计数器PC是一个16位专用存放器,其内容表示下一条要执行的指令的地址。复位后为0000H。MCS51单片机的堆栈是在片内RAM中开辟的一个专用区。堆栈指针SP是一个8位专用存放器,用来存放栈顶的地址。进栈时,SP自动加1,将数据压入SP所指定的地址单元;出栈时,将SP所指示的地址单元中的数据弹出,然后SP自动减1。因此SP总是指向栈顶。复位后为07H。10.MCS51单片机设置4组工作存放器,开机复位后,CPU使用的是哪组存放器它们的地址假设何CPU假设何改变当前工作存放器组第0组。字节地址为00H~07H。通过PSW的RS1、RS0来改变。工作存放器组的选择表工作存放器组的选择表PSW.4(RS1)PSW.3(RS0)当前使用的工作存放器组
R0~R7000组〔00H~07H〕011组〔08H~0FH〕102组〔10H~17H〕113组〔18H~1FH〕11.什么是时钟周期、机器周期和指令周期当外部的振荡频率是8MHz时,8051单片机的机器周期为多少MCS51单片机的时序由下面4种周期构成。〔1〕振荡周期振荡周期是指为单片机提供定时信号的振荡源的周期。〔2〕状态周期〔时钟周期〕两个振荡周期为一个状态周期,用S表示。两个振荡周期作为两个节拍分别称为节拍P1和节拍P2。在状态周期的前半周期P1有效时,通常完成算术逻辑运算;在后半周期P2有效时,一般进展内部存放器之间的传输。〔3〕机器周期CPU执行一条指令的过程可以划分为假设干阶段,每一阶段完成某一项根本操作,如取指令、存储器读/写等。通常把完成一个根本操作所需要的时间称为机器周期。〔4〕指令周期指令周期是指执行一条指令所占用的全部时间,它以机器周期为单位。MCS51系列单片机除乘法、除法指令是4机器周期指令外,其余都是单周期指令和双周期指令。假设用12MHz晶体振荡器〔晶振〕,则单周期指令和双周期指令的指令周期时间分别是1μs和2μs,乘法和除法指令为4μs。通过上面的分析,我们可以看出,外部晶振的二分频是MCS51单片机的内部时钟周期,6个时钟周期构成了单片机的机器周期。如果单片机的外部晶振是8MHz,则其内部的机器周期是1.5μs。12.PSW=10H,则工作存放器R0的地址是10H,R4的地址是14H。13.MCS51单片机复位后,程序计数器PC=0000H,堆栈指针SP=07H。14.MCS51单片机内部RAM的存放器区共有32个单元,分为4组存放器,每组8单元。15.MCS51单片机的4个I/O接口的作用是什么三总线是假设何分配的为什么说能作为I/O使用的一般只有P1口P0口形成数据总线;P2口形成地址的高8位,P0口经过锁存器形成地址的低8位;P3口形成控制总线。在具有外部扩展的时间,需要用到数据总线、地址总线和控制总线,而三总线占用了P0、P2、P3口,可以单独使用的只有P1口。第4章MCS51系列单片机指令系统1.访问外部数据存储器和程序存储器可以用哪些指令来实现举例说明。访问外部数据存储器:MOVX A,@DPTRMOVX @DPTR,AMOVX A,@RiMOVX @Ri,A访问程序存储器:MOVC A,@A+DPTRMOVC A,@A+PC2.设堆栈指针SP中的内容为60H,内部RAM中30H和31H单元的内容分别为24H和10H,执行以下程序段后,61H、62H、30H、31H、DPTR及SP的内容将有何变化PUSH 30HPUSH 31HPOP DPLPOP DPHMOV 0H,#00HMOV 31H,#0FFH(61H)=24H(62H)=10H(30H)=00H(31H)=0FFH(DPTR)=2410H(SP)=60H3.设(A)=40H,(R1)=23H,(40H)=05H。执行以下两条指令后,累加器A和R1以及内部RAM中40H单元的内容各为何值XCH A,R1XCHD A,@R1(A)=25H(R1)=40H(40H)=03H4.设(A)=01010101B,(R5)=10101010B,分别写出执行ANLA,R5;ORLA,R5;XRLA,R5指令后的结果。00000000B11111111B11111111B5.简述转移指令AJMPaddr11,SJMPrel,LJMPaddr16及JMP@A+DPTR的应用。AJMPaddr11:2K范围内的转移;SJMPrel:256字节复位内的转移;LJMPaddr16:64K范围内的转移;JMP@A+DPTR:在某一地址开场的256字节范围内的转移。6.试用以下4种方式编程,将立即数0EFH送入内部RAM的40H单元中。〔1〕用立即寻址;〔2〕用直接寻址;〔3〕用存放器寻址;〔4〕用存放器间接寻址(1)MOV40H,#0EFH目的操作数立即寻址(2)MOV40H,#0EFH源操作数直接寻址(3)MOVR0,#0EFHMOV40H,,R0源操作数存放器寻址(4)MOVR0,#40HMOV@R0,#0EFH目的操作数存放器间接寻址7.写出实现以下要求的指令或程序片段。〔1〕将内部RAM20H单元内容与累加器A内容相加,结果存放在20H单元中。〔2〕将内部RAM30H单元内容与内部RAM31H单元内容相加,结果存放到内部RAM31H单元中。〔3〕将内部RAM20H单元内容传送到外部RAM2000H单元中。〔4〕使内部RAM20H单元的D7和D3位清零,其他位保持不变。〔5〕使内部RAM20H单元的D7和D3位置1,D5位清零,其他位保持不变。〔6〕使内部RAM20H单元的D7和D3位置1,D5位取反,其他位保持不变。(1)ADD A,#20HMOV 20H,A(2) MOV A,30HADD A,31HMOV 31H,A(3) MOV A,20HMOV DPTR,#2000HMOVX @DPTR,A(4) CLR 03H CLR 07H 或: ANL 20H,#01110111B(5) SETB 03HSETB 07HCLR 05H或:ORL 20H,#10001000BANL 20H,#11011111B(6) SETB 03HSETB 07HCPL 05H或:ORL 20H,#10001000BXRL 20H,#00100000B8.试用三种方法实现累加器A和存放器B的内容交换。(1) MOV R0,AMOV A,BMOV B,R0(2) PUSH APUSH BPOP APOP B(3) MOV R0,BXCH A,R0MOV B,R09.试分析以下程序段执行后,(A)=,(30H)=MOV 30H,#0A4HMOV A,#0D6HMOV R0,#30HMOV R2,#5EHANL A,R2ORL A,@R0SWAP ACPL AXRL A,#0FEHORL 30H,A(A)=6EH(30H)=0EFH10.下述程序执行后,(SP)=,(A)=,(B)=ORG 2000HMOV SP,#40HMOV A,#30HLCALL SUBRADD A,#10HMOV B,AL1: SJMP L1SUBR: MOV DPTR,#200AHPUSH DPLPUSH DPHRET(SP)=42H(A)=30H(B)=00H11.设(R0)=20H,(R1)=25H,(20H)=80H,(21H)=90H,(22H)=0A0H,(25H)=0A0H,(26H)=6FH,(27H)=76H。以下程序执行后,结果假设何CLR CMOV R2,#3LOOP: MOV A,@R0ADDC A,@R1MOV @R0,AINC R0INC R1DJNZ R2,LOOPJNC NEXTMOV @R0,#01HSJMP $NEXT: DEC R0SJMP $(R0)=22H,(R1)=24H,(20H)=10H,(21H)=31H,(22H)=0A1H,(25H)=0A0H,(26H)=6FH,(27H)=76H。12.设片内RAM(30H)=0EH,执行下面的程序后,(A)=,指出该程序完成的功能。MOV R0,#30HMOV A,@R0RL AMOV B,ARL ARL AADD A,B=8CH功能:将30H中的内容*10操作,结果在累加器A中。第5章MCS51系列单片机汇编语言程序设计1.编程将片内RAM30H~39H单元中的内容送到以3000H为首的存储区中。MOV R0,#30HMOV DPTR,#3000HMOV R7,#10L1: MOV A,@R0MOVX @DPTR,AINC R0INC DPTRDJNZ R7,L1RET2.片内RAM60H开场存放20个数据,试统计正数、负数及为零的数据个数,并将结果分别存在50H、51H、52H单元中。MOV 50H,#0 MOV 51H,#0 MOV 52H,#0 MOVR7,#20MOV R0,#60HL3: MOV A,@R0 JZ L1 JB ACC.7,L2 INC 50H SJMP LEND L2: INC 51H SJMP LEND L1: INC 52H LEND: INC R0 DJNZ R7,L3RET3.设10次采样值依次放在片内RAM50H~59H的连续单元中,试编程去掉一个最大值、去掉一个最小值,求其余8个数的平均值,结果存放在60H中。 MOV R0,#50H ;最大值 MOV A,@R0 MOV R7,#9 INC R0 L1: CLR C MOV B,A SUBB A,@R0 MOV A,B JNC L2 XCH A,@R0 L2: INC R0 DJNZ R7,L1 MOV R0,#51H ;最小值 MOV A,@R0 MOV R7,#8 INC R0 L1: CLR C MOV B,A SUBB A,@R0 MOV A,B JN L4 XCH A,@R0 L4: INC R0 DJNZ R7,L3MOV R3,#0 ; 求和 MOV R4,#0 MOV R7,#8 MOV R0,#52H L5: MOV A,R4 ADD A,@R0 MOV R4,A MOV A,R3 ADDC A,#0 MOV R3,A INC R0 DJNZ R7,L5 MOV A,R4 ;平均值 SWAP A RL A MOV B,A MOV A,R3 RR A RR A RR A ANL A,#00011111B ORL A,B MOV 60H,A RET4.编写程序将R4R5R6中的3个字节数据对半分解成6个字节,存入显示缓冲区〔DISMEM0~DISMEM5〕。 MOV A,R6 LCALL CLMOV DISMEM0,R0 MOV DISMEM1,R1 MOV A,R5 LCALL CL MOV DISMEM2,R0 MOV DISMEM3,R1 MOV A,R4 LCALL CL MOV DISMEM4,R0 MOV DISMEM5,R1 RET CL: MOV B,A ANL A,#0FH MOV R0,A MOV A,B ANL A,#0F0H SWAP A MOV R1,A RET5.试编程把以2000H为首地址的连续10个单元的内容按升序排列,存放到以3000H为首地址的存储区中。 MOV DPTR,#2000H ;读到片内30H开场的单元 MOV R0,#30H MOV R7,#10 L1: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 DJNZ R7,L1 START: CLR 00H ;排序 CLR C MOV R7,#9 MOV R0,#30H MOV A,@R0 L3: INC R0 MOV R2,A SUBB A,@R0 MOV A,R2 JC NEXT SETB 00H XCH A,@R0 DEC R0 MOV @R0,A INC R0 NEXT: MOV A,@R0 DJNZ R7,L3 JB 00H,START MOV DPTR,#3000H ;送到片外3000H开场的单元 MOV R0,#20H MOV R7,#10 L2: MOV A,@R0 MOVX @DPTR,A INC DPTR INC R0 DJNZ R7,L2 RET6.设片内30H单元开场,连续存放2个字节二进制数,试分别将其转换为BCD码,并以压缩BCD码格式连续存放在以60H为首地址的存储区中,低位字节存放在低地址单元中。DBCD: MOV R0,30H MOV A,R0 MOV R6,A MOV R1,60H MOV A,R1 MOV R7,A MOV R2,#2 INC R2 CLR A BB0: MOV @R1,A INC R1 DJNZ R2,BB0 MOV R3,#16 BB3: MOV A,R6 MOV R0,A MOV R2,#2 CLR C BB1: MOV A,@R0 RLC A MOV @R0,A INC R0 DJNZ R2,BB1 MOV R2,#2 INC R2 MOV A,R7 MOV R1,ABB2: MOV A,@R1 ADDC A,@R1 DA A MOV @R1,A INC R1 DJNZ R2,BB2 DJNZ R3,BB3 RET 7.设片内RAM中从20H开场的单元,连续存放10个非压缩BCD码,试将其转换为ASCII码,存放到片内50H开场的单元中。 MOV R0,#20H MOV R1,#50H MOV R7,#10 L1: MOV A,@R0 ADD A,#30H MOV @R1,A INC R0 INC R1 DJNZ R7,L1 RET8.从20H单元开场有一无符号数据块,其长度在20H单元。求出数据块中的最小值,并存入21H单元。参看第3题。9.片外RAM从2000H单元开场存有10个单字节无符号数,找出最大值存入片外RAM3000H单元,试编写程序。参看第3题。10.从片外RAM2000H单元开场存有20个有符号数,要求把它们传送到片外RAM3000H开场的单元,但负数不传送,试编写程序。 MOV DPTR,#2000H MOV R0,#20H MOV R7,#20 L1: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 DJNZ R7,L1 MOV DPTR,#3000H MOVR0,#20H MOV R7,#20 L2: MOV A,@R0 JB ACC.7,L3 MOVX @DPTR,A L3: INC DPTR INC R0 DJNZ R7,L2 RET11.设在片外RAM2000H~2004H单元存有5个压缩的BCD数,试编程将它们转变为ASCII码,存放到以2005H为首地址的存储区中。 MOV DPTR,#2000H MOV R0,#20H MOV R7,#5 L1: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 DJNZ R7,L1 MOV A,20H LCALL CLMOV 30H,R0 MOV 31H,R1 MOV A,21H LCALL CL MOV 32H,R0 MOV 33H,R1 MOV A,22H LCALL CL MOV 34H,R0 MOV 35H,R1 MOV A,23H LCALL CL MOV 36H,R0 MOV 37H,R1 MOV A,24H LCALL CL MOV 38H,R0 MOV 39H,R1 MOV R0,#30H MOV DPTR,#2005H MOV R7,#10 L2: MOV A,@R0 MOVX @DPTR,A INC R0 INC DPTR DJNZ R7,L2 RET12.在片外RAM2000H、2001H和3000H、3001H中分别存放两个字数据〔高8位在偶地址〕,试比照两个数的大小,把大数存放在4000H、4001H单元中。 MOV DPTR,#2000H MOVX A,@DPTR MOV 20H,A INC DPTR MOVX A,@DPTR MOV 21H,A MOV DPTR,#3000H MOVX A,@DPTR MOV 30H,A INC DPTR MOVX A,@DPTR MOV 31H,A CLR C MOV A,21H SUBB A,31H MOV A,20H SUBB A,30H JNC L1 MOV A,20H MOV B,21H SJMP L2 L1: MOV A,30H MOV B,31HL2: MOV DPTR,#4000HMOVX @DPTR,A INC DPTR
MOV A,B MOVX @DPTR,A RET第6章MCS51系列单片机中断系统与定时器/计数器1.什么是中断源MCS51单片机有哪些中断源各有什么特点能引起中断的原因称为中断源。MCS51单片机的5个中断源分为两种类型:一类是外部中断源,包括和;另一类是内部中断源,包括两个定时器/计数器〔T0和T1〕的溢出中断和串行口的发送/接收中断。〔1〕外部中断MCS51单片机提供了两个外部中断请求和,它们的中断请求信号有效方式分为电平触发和脉冲触发两种。电平方式是低电平有效,脉冲方式为负跳变触发有效。CPU在每个机器周期的S5P2检测和上的信号。对于电平方式,只要检测到低电平信号即为有效申请;对于脉冲方式,则需要比照两次检测到的信号,才能确定中断请求信号是否有效。中断请求信号上下电平的状态都应至少维持一个机器周期,以确保电平变化能被单片机检测到。〔2〕内部中断MCS51单片机内部有TF0、TF1、TI、RI,分别为定时器/计数器溢出中断和串行口的发送/接收中断的中断源。当中断源有中断请求时,相应的中断源的中断请求标志置位。外部中断0、外部中断1、定时器/计数器0溢出中断、定时器/计数器1溢出中断和串行口的发送/接收中断的中断请求标志分别为IE0、IE1、TF0、TF1、TI或RI。IE0、IE1、TF0、TF1在特殊功能存放器TCON中,TI或RI在特殊功能存放器SCON中。2.试编写外部中断1为跳沿触发方式的中断初始化程序。 SETB IT1 SETB EA SETB EX13.试编写一段对中断系统初始化的程序,允许外部中断0、外部中断1、定时器/计数器T0溢出中断、串行口中断,且使定时器/计数器T0溢出中断为高优先级中断。 SETB EASETB EX0 SETB EX1 SETB ET0 SETB ES SETB PT04.在MCS51单片机中,外部中断有哪两种触发方式假设何加以区分MCS51单片机提供了两个外部中断请求和,它们的中断请求信号有效方式分为电平触发和脉冲触发两种。电平方式是低电平有效,脉冲方式为负跳变触发有效。CPU在每个机器周期的S5P2检测和上的信号。对于电平方式,只要检测到低电平信号即为有效申请;对于脉冲方式,则需要比照两次检测到的信号,才能确定中断请求信号是否有效。中断请求信号上下电平的状态都应至少维持一个机器周期,以确保电平变化能被单片机检测到。5.MCS51单片机能提供几个中断优先级各个中断源优先级假设何确定在同一优先级中各个中断源的优先级假设何确定两个中断优先级。通过IP存放器进展确定。在同一优先级中,各个中断源的优先级:外部中断0、定时器/计数器T0、外部中断1、定时器/计数器T1、串行口。6.中断允许存放器IE各位的定义是什么IE是中断允许控制存放器,CPU对中断系统的所有中断及某个中断源的“允许〞与“制止〞都是由它来控制的。IE中断允许存放器格式如下:存放器中用于控制中断的共有6位,实现中断管理,其作用如下:EA为中断允许总控制位。EA=1时,CPU开放中断;EA=0时,CPU屏蔽所有中断请求。ES、ET1、EX1、ET0、EX0为对应的串行口中断、定时器/计数器1中断、外部中断1中断、定时器/计数器0中断、外部中断0中断的中断允许位。对应位为1时,允许其中断,对应位为0时,制止其中断。7.为何要在程序的首地址安排一条跳转到主程序的指令在响应中断过程中为什么要保护现场应假设何保护因为主程序的入口地址是0000H单元,而0003H单元式外部中断0的中断服务程序入口地址,主程序需要躲开该地址。为了使在中断服务程序响应完毕后能正确地返回中断的地方。在响应中断的时间,CPU自动地将要返回的地址压入堆栈保护。8.MCS51单片机假设要把外部中断源扩大为6个,可采用哪些方法假设何确定它们的优先级可以由两种方法:参看例题6-4和例题6-5.对于第一种方法,在查询时先查询那个中断源,那个中断源的优先级最高。对于第二种方法,先判断哪个中断源,哪个中断源的中断优先级高。9.子程序和中断服务程序有何异同子程序返回指令RET和中断返回指令RETI能相互替代吗子程序是有固定的调用位置的,而中断服务程序没有固定的调用位置。不能用RET指令代替RETI指令,因为用RET指令虽然也能控制PC返回原来中断的地方,但RET指令没有清零中断优先级状态触发器的功能,中断控制系统也会认为中断仍在进展,其后果是同级的中断请求将不被响应。所以,中断服务程序完毕时必须使用RETI指令。10.MCS51单片机各中断标志是假设何产生的又假设何去除在中断请求被响应前,中断源发出的中断请求是由CPU锁存在特殊功能存放器TCON和SCON的相应中断标志位中的。一旦某个中断请求得到响应,CPU必须把它的相应标志位复位成0状态,否则MCS51单片机就会因中断未能得到及时撤除而重复响应同一中断请求,这是绝对不允许的。MCS51单片机的51子系列有5个中断源,但实际上只分属于三种中断类型。这三种类型是:外部中断、定时器/计数器溢出中断和串行口中断。对于这三种中断类型的中断请求,其撤除方法是不同的。〔1〕定时器/计数器溢出中断请求的撤除TF0和TF1是定时器/计数器溢出中断标志位,它们因定时器/计数器溢出中断请求的输入而置位,因定时器/计数器溢出中断得到响应而自动复位成0状态。因此定时器/计数器溢出中断源的中断请求是自动撤除的,用户根本不必专门为它们撤除。〔2〕串行口中断请求的撤除TI和RI是串行口中断的标志位,中断系统不能自动将它们撤除,这是因为MCS51进入串行口中断服务程序后常需要对它们进展检测,以测定串行口发生了接收中断还是发送中断。为了防止CPU再次响应这类中断,用户应在中断服务程序的适当位置处通过指令将它们撤除:CLR TI ;撤除发送中断CLR RI ;撤除接收中断〔3〕外部中断的撤除外部中断请求有两种触发方式:电平触发和脉冲触发。对于这两种不同的中断触发方式,MCS51单片机撤除它们的中断请求的方法是不一样的。在脉冲触发方式下,外部中断标志IE0和IE1是依靠CPU两次检测和上的触发电平状态而设置的。因此,芯片设计者使CPU在响应中断时自动复位IE0或IE1,就可撤除或上的中断请求,因为外部中断源在中断服务程序时是不可能再在或上产生负边沿而使相应的中断标志IE0或IE1置位的。在电平触发方式下,外部中断标志IE0和IE1是依靠CPU检测和上的低电平而置位的。尽管CPU响应中断时相应中断标志IE0或IE1,能自动复位成“0〞状态,但假设外部中断源不能及时撤除它在或上的低电平,就会再次使已经变“0〞的中断标志IE0或IE1置位,这是绝对不允许的。因此电平触发型外部中断请求的撤除必须使或上的低电平随着其中断被CPU响应而变为高电平。一种可供采用的电平型外部中断的撤除电路如以以下列图。=由图可见,当外部中断源产生中断请求时,D触发器复位成“0〞状态,Q端的低电平被送到,该低电平被8051检测后就使中断标志IE0置1。8051响应上的中断请求可转入中断服务程序执行,故可以在中断服务程序开头安排如下程序来使上的电平变高:=INSVR:SETB P1.0 CLR P1.0 CLR IE0 ··· END8051执行上述程序就可在P1.0上产生一个宽度为两个机器周期的负脉冲。在该负脉冲作用下,D触发器被置位成1状态,上的电平也因此而变高,从而撤除了其上的中断请求。11.设MCS51单片机时钟为12MHz,利用定时器T0编程令P1.0引脚输出2ms的矩形波程序,要求占空系数为1:2〔高电平时间短〕。 ORG 0000H LJMP MAIN ORG 000BH LJMP T0INT ORG 0030H MAIN: MOV SP,#60H MOV R7,#0 MOV TMOD,#01H ;初始化 MOV TH0,#0FDH ;定时666微妙 MOV TL0,#66H SETB EA SETB ET0 SETB TR0 L1: SJMP L1;中断服务程序 T0INT:MOV TH0,#0FDH ;重载初始值 MOV TL0,#66H INC R7 CJNE R7,#1,LL1 CLR P1.0 SJMP LLEND LL1: CJNE R7,#3,LLEND SETB P1.0 MOV R7,#00H LLEND:RETI12.如果MCS51单片机系统的晶振频率为12MHz,分别指出定时器/计数器方式1和方式2的最长定时时间。方式1:65536微妙;方式2:256微妙13.MCS51单片机P1端口上,经驱动接有8支发光二极管,假设外部晶振频率为6MHz,试编写程序,使这8支发光管每隔2s循环发光〔要求用T1定时〕。 ORG 0000H LJMP MAIN ORG 001BH LJMP T1INT ORG 0030HMAIN: MOV SP,#70H MOV TMOD,#10H ;T1方式1 MOV TH1,#3CH ;定时100ms MOVTL1,#0B0H MOV A,#11111110B MOV R7,#20 ;100ms*20=2S SETB EA SETB ET1 SETB TR1 SJMP $ T1INT: MOV TH1,#3CH MOV TL1,#0B0H DJNZ R7,L1 MOV R7,#20 MOV P1,A RL A L1: RETI14.设MCS51单片机的晶振频率为12MHz,要求在P1.0输出周期是200ms的方波,试编写程序。 ORG 0000H LJMP MAIN ORG 001BH LJMP T1INT ORG 0030HMAIN: MOV SP,#70H MOV TMOD,#10H ;T1方式1 MOV TH1,#3CH ;定时50ms MOV TL1,#0B0H MOV R7,#2 ;50ms*2=100ms SETB EA SETB ET1 SETB TR1 SJMP $ T1INT: MOV TH1,#3CH MOV TL1,#0B0H DJNZ R7,L1 MOV R7,#2 CPL P1.0 L1: RETI15.每隔1s读一次P1.0,如果所读的状态为“1〞,则将片内RAM10H单元的内容加1;如果所读的状态为“0〞,则将片内RAM11H单元的内容加1。设单片机的晶振频率为12MHz,试编写程序。 ORG 0000H LJMP MAIN ORG 001BH LJMP T1INT ORG 0030HMAIN: MOV SP,#70H MOV TMOD,#10H ;T1方式1 MOV TH1,#3CH ;定时50ms MOV TL1,#0B0H MOV R7,#20 ;50ms*20=1s MOV 10H,#0 MOV 11H,#0 SETB EA SETB ET1 SETB TR1 SJMP $ T1INT: MOV TH1,#3CH MOV TL1,#0B0H DJNZ R7,L1 MOV R7,#20 SETB P1.0 MOV C,P1.0 JNC L2 INC 10H SJMP L1 L2: INC 11H L1: RETI END第7章MCS51系列单片机的串行口1.假设异步通信,每个字符由11位组成,串行口每秒传送250个字符,问波特率是多少2750位/秒=2750波特2.设串行异步通信的传送速率为2400波特,传送的是带奇偶校验的ASCII码字符,每个字符包含10位〔1个起始位,7个数据位,1个奇偶校验位,1个停顿位〕,试编程初始化程序。设定串行口位方式1. MOV SCON,#40H MOV PCON,#80H MOV TMOD,#20H MOV TH1,#0F4H MOV TL1,#0F4H SETB TR13.MCS51单片机的串行口控制存放器SCON的SM2、TB8、RB8有何作用(1)SM2是多机通信控制位因多机通信是在方式2和方式3下进展的,所以SM2位主要用于方式2和方式3。当串行口以方式2或方式3接收数据时,如SM2=1,则只有当接收到的第9位数据〔RB8〕为“1〞时,才将接收到的前8位数据送入SBUF,并置位RI产生中断请求;否则,将接收到的前8位数据丢弃。而当SM2=0时,不管接收到的第9位数据是“0〞还是“1〞,都将前8位数据装入SBUF中,并产生中断请求。在方式1时,假设SM2=1,则只有接收到有效停顿位时,RI才置1,以便接收下一帧数据。在方式0时,SM2必须为0。(2)TB8是发送数据的第9位在方式2、3时,其值由用户通过软件设置。在双机通信时,TB8一般作为奇偶校验位使用;在多机通信中,常以TB8位的状态表示主机发送的是地址帧还是数据帧,且一般约定:TB8=0为数据帧,TB8=1为地址帧。(3)RB8是接收数据的第9位在方式2、3时,RB8存放接收到的第9位数据,它代表接收到的数据的特征:可能是奇偶校验位,也可能是地址/数据的标志位。4.设外部晶振频率为6MHz,试编写一段对串行口的初始化程序,使之工作在方式1,波特率为1200b/s;并用查询串行口状态的方式,读出接收缓冲器的数据并回送到发送缓冲器。MOV SCON,#50H MOV PCON,#80H MOV TMOD,#20H MOV TH1,#0E5H MOV TL1,#0E5H CLR ES SETB TR1 JBN RI,$ MOV A,SBUF CLR RI5.设外部晶频率振为11.0592MHz,串行口工作在方式1,波特率为4800b/s。编写用T1作为波特率发生器的方式字并计算T1的计数初值。TMOD:20HTH1=TL1=0FAH6.设计一个单片机的双机通信系统,串行口工作在方式1,编写通信程序将甲机内部RAM30H~3FH存储区的数据块通过串行口传送到乙机内部RAM40H~4FH存储区中。甲机发送〔采用查询方式〕: MOV SCON,#80H ;设置工作方式2 MOV PCON,#00H ;置SMOD=0,波特率不加倍 MOV R0,#30H ;数据区地址指针 MOV R2,#10H ;数据长度LOOP: MOV A,@R0 ;取发送数据 MOV C,P ;奇偶位送TB8 MOV TB8,C MOV SBUF,A ;送串行口并开场发送数据WAIT: JBC TI,NEXT ;检测是否发送完毕并清TI SJMP WAIT NEXT: INC R0 ;修改发送数据地址指针 DJNZ R2,LOOP RET乙机接收〔采用查询方式〕: MOV SCON,#90H ;工作方式2,并允许接收 MOV PCON,#00H ;置SMOD=0 MOV R0,#40H ;置数据区地址指针 MOV R2,#10H ;等待接收数据长度LOOP: JBC RI,READ ;等待接收数据并清RI SJMP LOOPREAD: MOV A,SBUF ;读一帧数据 MOV C,P JNC LP0 ;C不为1转LP0 JNB RB8,ERR ;RB8=0,即RB8不为P转ERR AJMP LP1LP0: JB RB8,ERR ;RB8=1,即RB8不为P转ERRLP1: MOV @R0,A ;RB8=P,接收一帧数据 INC R0 DJNZ R2,LOOP RETERR: … ;出错处理程序第8章MCS51系列单片机系统扩展技术1.MCS51单片机扩展系统中,程序存储器和数据存储器共用16位地址线和8位数据线,为什么两个存储空间不会发生冲突因为是使用不同的控制信号。程序存储器的读控制使用/PSEN信号;数据存储器的读、写控制室使用/RD、/WR。2.试用Intel2764,6264为MCS51单片机设计一个存储器系统,它具有8KBEPROM〔地址由0000H~1FFFH〕和16KB的数据存储器〔地址为2000H~5FFFH〕。要求绘出该存储器系统的硬件连接图,并指出每片芯片的地址空间。使用一片Intel2764,两片RAM6264.参看图8-22,采用译码器译码。2764可以不用译码,其片选信号直接接地,其地址为0000H~1FFFH,读控制接/PSEN;RAM6264的片选分别接74LS138的/Y1、/Y2,其地址分别为:2000H~3FFFH、4000H~5FFFH,其读。写控制分别接/RD、/WR。3.在一个8031应用系统中扩展一片2764、一片8255A和一片6264。试画出系统框图,并指出所扩展的各个芯片的地址范围。参看图8-20、8-23、8-29.将图8-23中的/CE1接74LS138译码器的/Y0端。2764的地址空间范围:0000H~1FFFH6464的地址空间范围:0000H~1FFFH82552A的口地址:PA口0FFFCH、PB口0FFFDH、PC口0FFFEH、控制口0FFF
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 风机设备租赁与日常检修维护合同
- 外籍教师教学评估与质量监控服务合同
- 国际货运代理与货物保险理赔承包合同
- 跨国保健品品牌进口商品质量检测与风险控制协议
- 欧洲留学生一站式接机与长期住宿保障合同
- 抖音中亚能源合作开发与市场推广协议
- 婚姻关系终止出轨赔偿及财产分配协议
- 数字货币交易平台反洗钱风控与合规性协议
- 网红效应烧烤加盟店品牌推广与运营合作协议
- 公司文员年度工作总结模版
- 2025遵义职业技术学院教师招聘考试试题及答案
- 2025中美关税战时政述评-初中《道法》25年时政述评课件
- (三模)南宁市2025届高三第三次适应性测试英语试卷(含答案详解)
- 2025北京九年级(上)期末语文汇编:记叙文阅读
- 集成电路封装与测试 课件 封装 1.1导论
- 2025年北京市通州区九年级初三一模英语试卷(含答案)
- 8.3.1 印度 课件 粤教粤人版七年级地理下册
- JJF 2216-2025电磁流量计在线校准规范
- 2025年工程测量员(初级)职业技能鉴定参考试题(附答案)
- 宏观经济学知到智慧树章节测试课后答案2024年秋浙江大学
- 《建筑构造与识图》课程标准
评论
0/150
提交评论