单片机原理及应用 第二版 曹克澄 课后习题答案_第1页
单片机原理及应用 第二版 曹克澄 课后习题答案_第2页
单片机原理及应用 第二版 曹克澄 课后习题答案_第3页
单片机原理及应用 第二版 曹克澄 课后习题答案_第4页
单片机原理及应用 第二版 曹克澄 课后习题答案_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、?单片机原理及应用?习题答案第一章 根底知识1微型计算机主要由哪几局部组成?各局部有何功能?答:一台微型计算机由中央处理单元CPU、存储器、I/O接口及I/O设备等组成,相互之间通过三组总线Bus:即地址总线AB、数据总线DB和控制总线CB来连接。 CPU由运算器和控制器组成,运算器能够完成各种算术运算和逻辑运算操作,控制器用于控制计算机进行各种操作。存储器是计算机系统中的“记忆装置,其功能是存放程序和数据。按其功能可分为RAM和ROM。输入/输出I/O接口是CPU与外部设备进行信息交换的部件。总线是将CPU、存储器和I/O接口等相对独立的功能部件连接起来,并传送信息的公共通道。2. 将以下十

2、进制数分别转换成为二进制数,十六进制数和BCD码数的形式: 100,64,78,80解:1100=1100100B=64H=0001 0000 0000BCD;264=1000000B=40H=0110 0100BCD;378=1001110B=4EH=0111 1000BCD。3. 写出以下十六进制无符号数对应的十进制数和二进制:0D5H,64H,2CH,4FEH2) 64H=100=1100100B;3) 2CH=44=101100B;4. 写出以下十进制数对应的二进制原码、反码和补码:+35,+50,-10,-20解:1 3523H原=23H反=23H补;2 5032H原=32H反=32

3、H补;3 108AH原0F5H反0F6H补;4 2094H原0EBH反0ECH补; 解:10D5H=213=11010101B;5. 根据给定的原码、反码、补码求真值。1 (0CBH)原=(-75)真值;2 8BH)反=(-116)真值;3 9BH)补=(-101)真值;4 6BH)补=(+107)真值;解:1 (0CBH)原=(-75)真值;2 8BH)反=(-116)真值;3 9BH)补=(-101)真值;4 6BH)补=(+107)真值;6. 试分别判断以下各组数据大小?1A=0.011B2A=1001B B=0.011-1-2 C=0.011H -3B=1001 C=1001H 解:1

4、A=0.011B=02+12+12=0.25+0.125=0.375;B=0.011C=0.011H=016-1+116-2+116-3=0.004150390625所以:ABC2A=1001B=9;B=1001;C=1001H=4097所以:ABC7.先将以下各组数据转换为补码表示的带符号数,然后用进行补码运算,再将结果复原成原码,并写出对应的十进制数检验结果是否正确。1 74412 7441解:根据补码定义有:740B6H补,4129H补,410D7H补174+41补74补+41补0B6H29H补0DFH补33真值十进制数运算:74+4133所以:二者运算结果相同。27441补74补+41

5、补0B6H0D7H补8DH补 115真值十进制数运算:7441=115所以:二者运算结果相同。8.何谓单片机?单片机有何特点?答:单片机Single Chip Microcomputer是指把CPU、RAM、ROM、定时器/计数器以及I/O接口电路等主要部件集成在一块半导体芯片上的微型计算机。单片机在控制应用领域中的特点:1体积小、结构简单、可靠性高;2控制功能强;3低电压、低功耗;4优异的性价比。9.单片机内部ROM的配置有几种形式?答:单片机片内ROM的配置状态可分四种:1片内掩膜MaskROM型单片机如8051,适合于定型大批量应用产品的生产;2片内EPROM型单片机如8751,适合于研

6、制产品样机;3片内无ROM型单片机如8031,需外接EPROM,单片机扩展灵活,适用于研制新产品;4EEPROM或Flash ROM型单片机如89C51,内部程序存储器电可擦除,使用更方便。第2章 MCS-51系列单片机的结构和时序18051单片机内包含哪些主要功能部件?各有什么功能?答:8051单片机是一个完整的单片微型计算机。它包括以下功能部件:11个8位CPU;2片内4KB的程序存储器ROM;3片内128B的数据存储器RAM;4可寻址外部程序存储器和数据存储器空间各64KB的控制电路;521个特殊功能存放器SFR;64个8位并行I/O口P0P3,共32根I/O线;71个全双工的串行口;8

7、2个16位定时器/计数器;95个中断源,有2个优先级嵌套中断结构;10片内振荡器及时钟电路。2.8051单片机的EA信号有何功能?8031的EA引脚应如何处理,为什么? 答:(1) EA是访问外部程序存储器ROM的控制信号。 当EA为低电平接地时,CPU只执行外部程序存储器中的程序。 当EA为高电平且PC值小于0FFFH4K时,CPU执行内部程序存储器的程序,但当PC的值超出4K时对8051/8751/8951将自动转去执行片外程序存储器内的程序。8031单片机无片内ROM的,必须外部扩展程序存储器,因此,8031的EA必须接地低电平。3MCS-51单片机的P0P3口各有什么特点?答:MCS-

8、51单片机有P0、P1、P2、P3四个双向的8位并行I/O口,每个端口可以按字节输入或输出,每一条I/O线也可以单独用作输入或输出即按位进行输入或输出。每个端口都是由一个锁存器即特殊功能存放器P0P3,一个输出驱动器和两个P3口为3个输入缓冲器组成。并行I/O口作输出时数据可以锁存,作输入时数据可以缓冲,但它们又各具特点。1P0口和P2口构成MCS-51单片机的16位地址总线,P0口还是8位的数据总线。P3口多用于第二功能输入或输出。通常只有P1口用于一般输入/输出。P3口各位的第二功能 2系统复位后,P0P3口的32个管脚均输出高电平,因此在系统的设计过程中,应保证这些管脚控制的外设不会因为

9、系统复位而发生误动作。3P0P3口输出级的电路结构有所不同。P0口是三态输出,其每个管脚均可以驱动8个LSTTL输入,而P1P3口的输出级均有上拉电阻,每个管脚可驱动4个LSTTL输入。4每个并行口,可定义一局部管脚为输入脚,另一局部管脚为输出脚,没有使用的管脚可以悬空。4.简述8051单片机存储器的组织结构和片内RAM的地址空间分配。答:8051单片机的存储器包括程序存储器和数据存储器,从用户使用的角度可分为三个逻辑地址空间:1片内、片外统一编址的64KB程序存储器地址空间0000H0FFFFH;264KB的外部数据存储器或扩展I/O口地址空间0000H0FFFFH;3 256B的片内数据存

10、储器地址空间00HFFH包括低128B的内部RAM地址00H7FH和高128B的特殊功能存放器地址空间,21个SFR离散地分布在这个区域。内部RAM共有128个单元,根据用途可划分为工作存放器区、位寻址区和通用RAM区,各区域的特性如下:1工作存放器区00H1FH 存放器区32个单元共分4个组,每个组有8个8位的存放器R0R7。在任何时刻,四个组中只能有一组可以成为当前工作存放器组使用,其他三组作为一般的内部RAM使用。当前工作存放器组由程序状态字存放器PSW的RS0和RS1两位的状态来决定。2位寻址区 20H2FH共16个单元,每个单元有8个位,每个位都有一个位地址,编号为00H7FH,位寻

11、址区的16个单元也可以按字节寻址,作为一般的内部RAM使用。3通用RAM区30H7FH 这局部存储空间作为一般的内部RAM区或堆栈区,CPU只能按字节方式寻址。5.8051单片机有哪些特殊功能存放器?答:8051单片机有21个8位的特殊功能存放器SFR,它们的地址离散地分部在内部数据存储器的80HFFH地址空间。在8051单片机结构中,21个SFR在物理上是分散在片内各功能部件中:1CPU的中SFR:Acc、B、PSW、SP和DPTR16位存放器,由DPH和DPL组成;2定时/计数器单元中的存放器:TMOD、TCON、T016位存放器,由TH0和TL0组成和T116位存放器,由TH1和TL1组

12、成;3并行I/O口存放器:P0、P1、P2和P3;4中断系统内的存放器:IE和IP;5串行端口中的存放器:SCON、SBUF和PCON。6程序计数器PC的功能和特点?答:程序计数器PC是一个16位的专用存放器,用来存放即将要执行的指令地址,可对64KB的程序存储器直接寻址。它具有自动加1功能,当CPU要取指令时,PC的内容送地址总线上,从存储器中取出指令后,PC内容那么自动加1,指向下一条指令,从而保证程序按顺序执行。PC虽然也是CPU内部的一个存放器,但它在物理结构上是独立的,没有地址,是不可寻址的,用户无法对它进行直接读写,不属特殊功能存放器。7什么叫堆栈?堆栈指针SP的作用是什么?805

13、1单片机堆栈的最大容量是多少字节?答:堆栈是按照“先进后出,后进先出的原那么来存取数据的一个内部RAM区域,这个存储器区域的一端是固定的栈底,另一端是活动的栈顶,每个存储单元是不能按字节任意访问的。堆栈指针SP始终指向栈顶单元,栈顶随着数据入栈和出栈上下浮动。8051单片机堆栈的最大容量是128字节。88051单片机是如何确定和改变当前工作存放器组?答:在任何时刻,8051单片机的四个工作存放器组中只能有一组可以成为当前工作存放器组使用,其他三组作为一般的内部RAM使用。当前工作存放器组由程序状态字存放器PSW的RS0和RS1两位的状态来决定,如表所示。的工作存放器组。9单片机复位后,CPU使

14、用了哪一组工作存放器?工作存放器R0R7对应的单元地址是什么?答:单片机复位后,RS1和RS0都为0,CPU选中第0组作为当前工作存放器组,工根据需要,用户可以利用传送指令或位操作指令改变RS1和RS0的内容来选择不同作存放器R0R7对应的单元地址是00H07H。10程序状态字存放器PSW的作用是什么?各位的作用是什么?答:PSW是一个8位的特殊功能存放器,由一些标志位组成,用于存放程序运行中的各种状态信息。它可以进行位寻址。各位的作用如下:Cy:进位标志位。在进行加或减法运算时,假设操作结果的最高位D7位有进位或借位时,Cy由硬件置1,否那么Cy清0。在进行位操作时,Cy又是位累加器,指令助

15、记符用C表示。AC:辅助进位标志位。在进行加或减运算时,假设操作结果的低半字节D3位向高半字节产生进位或借位时,AC位将由硬件自动置1,否那么AC位清0。F0:用户标志位。用户根据需要对F0置位或复位,作为软件标志。RS1和RS0:工作存放器组选择控制位。由用户用软件改变RS1和RS0的状态,以选择内RAM中的哪组工作存放器为当前工作存放器组。OV:溢出标志位。当进行补码运算时,运算结果超出128127范围时,产生溢出,那么OV自动置1,否那么OV清0。PSW.1:保存位。8051中未定义。P:奇偶校验标志位。每条指令执行完后,该位始终跟踪累加器A中1的数目的奇偶性。如果A中有奇数个1,那么P

16、1;否那么P0。11什么是时钟周期、机器周期和指令周期?答:1时钟周期又称为振荡周期是指振荡器产生一个振荡脉冲信号所用的时间,是振荡频率的倒数,称为拍节。2机器周期是指CPU完成某一个规定操作所需的时间,8051单片机的一个机器周期包含6个状态,并依次表示为S1S6,每个状态分为2个节拍。因此一个机器周期包含12个时钟周期振荡周期,依次表示为:S1P1、S1P2、S2P1、S6P1、S6P2。3指令周期是指CPU执行一条指令所需要的时间称为指令周期。MCS-51单片机指令周期根据指令的不同,可包含有1或2或4个机器周期。128051单片机复位后存放器PC、A、PSW、SP 、P0P3的状态各是

17、什么?复位后内部RAM中的数据有何影响?答:8051单片机复位后PC为0000H,A和PSW均为00H,SP为07H,P0P3均为FFH。单片机的复位不影响内部RAM的状态包括工作存放器Rn 。1380C51如何进入节电工作方式?答:只有CHMOS型单片机如80C51才有这种工作方式,有两种节电方式,即待机方式和掉电保护方式。由片内SFR中的电源控制存放器PCON的低4位来控制待机和掉电两种方式,其格式如下:1IDL:待机方式位。假设IDL1,进入待机方式;2PD:掉电方式位。假设PD1,进入掉电方式;当PD和IDL同时为1,那么先进入掉电工作方式。复位后,PCON中有定义的位均为0。第3章

18、MCS-51系列单片机指令系统1简述汇编指令格式。答:汇编语言的指令格式一般如下:标号:操作码 第一操作数,第二操作数,第三操作数;注释 其中:带有方括号的局部代表可选项。标号:是表示该指令的符号地位,可以根据需要进行设置。标号以英文字母开始的16个字母或数字组成的字符串表示,并以“:结尾。操作码:是表示指令的操作功能,用助记符表示。每条指令都有操作码,是指令的核心局部。操作数:表示参与传送、运算的数据或数据地址。这里的操作数不一定就是直接参与运算或传送的,而应根据操作数的寻址方式,寻找出真正参与运算或传送的数据。二个或二个以上操作数之间用“,间隔。注释:用来解释该条指令或一段程序的功能,便于

19、对指令或程序的阅读理解。注释以“;为开始,注释局部对程序的执行没有影响。2什么叫寻址方式?在MCS51系列单片机指令系统中,主要有哪几种寻址方式?试分别举例说明。答:寻址就是寻找操作数的地址,寻找操作数地址的方式,称为操作数地址的寻址方式,简称寻址方式。在MCS51系列单片机指令系统中,主要的寻址方式有:1立即寻址方式,指令如:MOV A,67H;2立即寻址方式,指令如:MOV A,66H;3存放器寻址方,指令如:MOV A,R3;4存放器间接寻址方式,指令如:MOV A,R1;5变址寻址方式,指令如:MOVC A,ADPTR;6相对寻址方式,指令如:SJMP 30H;7位寻址方式,指令如:M

20、OV ACC.3,Cy3试说明以下指令中划线局部的寻址方式。MOV A,R0ADD A,36HMOVC A,APCDJNZ R2,relSETB RS1CLR AMOV 45H,ACLR C解:第1条为存放间接寻址方式;第2条指令为立即寻址方式;第3条指令为变址寻址方式;第4条指令为相对寻址方式,第5条指令为位寻址方式,第6条指令为存放器寻址,第6条指令为直接寻址方式,第7条指令为位寻址方式。4设A9BH,R030H,内RAM的30H40H,40H6DH,分别执行以下指令,说明被真正传送的数据是多少?1MOV A,40H2MOV 40H,R03MOV A,30H4MOV A,R05MOV A,

21、R0答:1真正被传送的数据是立即数40H。2真正被传送的数据是R0间址中即30H单元中的数据40H。3真正被 传送的数据是30H单元中的数据40H。4真正被传送的数据是R0间址中即30H单元中的数据40H。5真正被传送的数据是R0中的数据30H。5设A86H,R030H,R140H,内RAM的30H76H,40H6BH,执行下面程序:MOV A,40HMOV R0,AMOV A,R0MOV R1,AMOV R1,AMOV R1,70H后,A ,R0 ,R1 ,30H ,40H解: MOV A,40H ;A=6BHMOV R0,A ;(R0)=(30H)=6BHMOV A,R0 ;A=30HMO

22、V R1,A ;(R1)=(40H)=30HMOV R1,A ;R1=30HMOV R1,70H ;(R1)=(30H)=70H所以:A 30H ,R0 30H ,R1 30H ,30H 70H ,40H 30H6设A65H,R030H,R131H,R232H,内RAM的30H40H,31H50H,32H60H,40H70H,50H80H,执行下面程序:XCHD A,R1MOV 40H,ASWAP AMOV 50H,AXCH A,R2MOV R0,A后,A ,R0 ,R1 ,R2 ,30H ,31H ,32H ,40H ,50H解: XCHD A,R1 ;A=60H,(R1)=(31H)=55

23、HMOV 40H,A ;40H60HSWAP A ;A=06HMOV 50H,A ;(50H)=06HXCH A,R2 ;A=32H,R2=06HMOV R0,A ;(R0)=(30H)=32H所以:A 32H ,R0 30H ,R1 31H ,R2 06H ,30H 32H ,31H 55H ,32H 60H ,40H 60H ,50H 06H7执行下面程序后,试问:A?ORG 1000HMOV DPTR,1020HMOV A,03HMOVC A,ADPTRRETORG 1020HDB 56H,78H,65H,29H,10H解: ORG 1000HMOV DPTR,1020H ;DPTR=1

24、020HMOV A,03H ;A=03HMOVC A,ADPTR ;A=(1023H)=29HRETORG 1020HDB 56H,78H,65H,29H,10H所以:A=29H8试用数据传送指令来实现以下要求的数据传送。1将R2中的内容送到R3中。2将内RAM 30H单元中的内容与外RAM 2040H单元中的内容交换。3将ROM 2040H单元中的数据存放在内RAM 50H单元中。4将外RAM 30H单元中的内容送到R2中。5将R2与R3中的内容进行交换。6将ROM 2100H单元中内容送外RAM 3165H单元中。解:1 MOV A,R2MOV R3,A2) MOV DPTR 2040HM

25、OVX A,DPTRMOV R1,AMOV A,30HMOVX DPTR,AMOV 30H,R13) MOV A,#00HMOV DPTR,#2040HMOVC A,A+DPTRMOV 50H,A4) MOV R0,#30HMOVX A,R0MOV R2,A5) XCH A,R2XCH A,R3XCH A,R26) MOV A,#00HMOV DPTR,#2100HMOVC A,A+DPTRMOV DPTR,#3165HMOVX DPTR,A9设A7EH,R040H,40H9AH,B23H,Cy=1。分别执行以下指令后,试问:A?各标志位为什么状态?1ADD A,R02ADDC A,R03SW

26、AP A4XCH A,R05INC A6SUBB A,56H7SUBB A,R08RLC A9RR A10CPL A11ANL A,R012ORL A,8FH13XRL A,40H14ANL 40H,A15ORL 40H,0F0H16ANL A,0FH17DEC A18MUL AB19DIV AB20RRC A解:1ADD A,R0AAR0A40H7EH9AH18H,Cy1,AC1,OV0,P02ADDC A,R0AAR0Cy7EH40H10BFH,Cy0,AC0,OV1,P13SWAP AA0E7H4XCH A,R0AR040H9AH,R040HA7EH,P05INC AAA17EH17FH

27、,P16SUBB A,56HAA56HCy7EH56H127H,Cy0,AC0,OV0,P07SUBB A,R0AAR0Cy7EH40H13DH,Cy0,AC0,OV0,P18RLC AA11111101B0FDH,Cy0,P19RR AA00111111B3FH,P010CPL AA81H,P011ANL A,R0AAR0A40H7EH9AH1AH,P112ORL A,8FHAA8FH7EH8FH0FFH,P013XRL A,40HAA40H7EH9AH0E4H,P014ANL 40H,A40H40HA9AH7EH1AH,A7EH15ORL 40H,0F0H40H40H0F0H9AH0F0H

28、0FAH,A7EH16ANL A,0FHAA0FH7EH0FH0EH,P117DEC AAA17EH17DH,P018MUL ABAB7EH23H01111110B00100011B0001 0001 0011 1010B113AH B11H,A3AH,OV1,P019DIV ABAB7EH23H0111 1110B0010 0011B0000 0011B余0001 0101B A03H,B15H,OV0,P020RRC AA0BFH,Cy0,P110试编写程序,要求将内RAM 30H4FH中的内容平移送到40H5FH中。 解:参考程序START:MOV R0,#4FHMOV R1,#5FHM

29、OV R2,#20HLOOP:MOV A,R0MOV R1,ADEC R0DEC R1DJNZ R2,LOOPEND11试编写程序,将内RAM的30H4FH中的内容清零。解:参考程序START:MOV R0,#30HCLR AMOV R2,#20HLOOP:MOV R0,AINC R0DJNZ R2,LOOPEND12试编写程序,在内RAM的30H4FH中查找关键字0AH,假设有,那么将内RAM的50H单元置为01H,并将找到的存放第一个关键字的单元地址存放在内RAM的52H单元中。解:参考程序START:MOV R0,#30HMOV R2,#20HMOV 50H,#00HLOOP1:CJNE

30、 R0,#0AH,LOOP2MOV 50H,#01HMOV 52H,R0SJMP LOOP3LOOP2:INC R0DJNZ R2,LOOP1LOOP3:END13在内RAM从30H到3FH单元中存放着符号数,要求统计正数、零、负数的个数,结果分别存放在内RAM的40H、41H、42H三个单元中。解:参考程序START:MOV R0,#30HMOV R2,#10HMOV 40H,#00HMOV 41H,#00HMOV 42H,#00HLOOP1:MOV A,R0JNZ LOOP2 ;判断A是否为非0,非0转移INC 41H ;零的个数统计量加1SJMP LOOP4LOOP2:JB ACC.7,

31、LOOP3 ;判断A是否为负数,是负数那么转移INC 40H ;正数的个数统计量加1SJMP LOOP4LOOP3:INC 42H ;负数的个数统计量加1LOOP4:INC R0DJNZ R2,LOOP1END14分析执行下面各段程序的结果。1 ORG 1000HMOV A,34HADD A,78HDA ARETA ,OV ,P ,Cy ,AC 解: ORG 1000HMOV A,34H ;A34HADD A,78H ;AA78H34H78H0ACH,Cy=0,AC=0,OV=1,P=0 DA A ;AA66H0ACH66H12H,Cy=1,AC=0,OV=0,P=0 RET所以:A 12H

32、,OV 0 ,P 0 ,Cy 1 ,AC 02 MOV SP,5FHMOV A,54HMOV B,78HPUSH APUSH BPOP APOP BRETA ,B ,SP解: MOV SP,5FH ;SP=5FHMOV A,54H ;A=54HMOV B,78H ;B=78HPUSH A ;SP=60H,(SP)=(60H)=54HPUSH B ;SP=61H,(SP)=(61H)=78HPOP A ;A=(SP)=(61H)=78H,SP=60HPOP B ;B=(SP)=(60H)=54H,SP=5FHRET所以:A 78H ,B 54H ,SP 5FH3 MOV A,7DHADD A,6

33、BHMOV R0,34HMOV 34H,0BCHADDC A,R0XRL A,R0ORL A,34HMOV R0,ASWAP AXCH A,R0RETA ,R0 ,34H解: MOV A,7DH ;A=7DHADD A,6BH ;A=7DH6BH=0E8H,Cy=0MOV R0,34H ;R0=34HMOV 34H,0BCH ;(34H)=0BCHADDC A,R0 ;A=A(R0)Cy=A(34H)Cy=0E8H0BCH0=0A4H,Cy=1 XRL A,R0 ;A=AR0=0A4H34H=90HORL A,34H ;A=A(34H)=90H0BCH=0BCHMOV R0,A ;(R0)=(

34、34H)=A=0BCHSWAP A ;A=0CBHXCH A,R0 ;A=34H,R0=0CBHRET所以:A 34H ,R0 0CBH ,34H 0BCH4 CLR CMOV A,55HMOV R0,23HLOOP1:ADDC A,R0JNC LOOP1RETA ,R0解: CLR C ;Cy=0MOV A,55H ;A=55HMOV R0,23H ;R0=23HLOOP1:ADDC A,R0 ;(1)A=A+R0+Cy=78H,(2)A=9BH,(3)A=0BEH,(4)A=0E1H ;(5)A=04H,Cy=1JNC LOOP1RETA 04H ,R0 23H5 ORG 2000HMOV

35、 A,00HMOV R2,09HLOOP1:ADD A,03HDA ADJNZ R2,LOOP1MOV 30H,ARETA ,R2 ,30H解: ORG 2000HMOV A,00H ;A=00HMOV R2,09H ;R2=09HLOOP1:ADD A,03H ;(1)A=03H,(2)A=06H,(3)A=09H,(4)A=0CH,(5)DA A ;(1) A=03H,(2)A=06H,(3)A=09H,(4)A=12H,(5) DJNZ R2,LOOP1;(1) R2=08H,(2)R2=07H,(3)R2=06H,(4)R2=05H,(5)MOV 30H,A ;(30H)=27HRET

36、A 27H ,R2 00H ,30H 27H15对3-141、5题进行手工汇编。 解:116试编制能延时40ms的程序。 解: 设fosc=12MHz,那么机器周期为1us。参考程序START:MOV R0,#84H ;1个机器周期数,R0=132MOV R1,#96H ;1个机器周期数,R1=150LOOP1:DJNZ R1,LOOP1 ;2个机器周期数MOV R1,#64H ;1个机器周期数 DJNZ R0,LOOP1 ;2个机器周期数 RET ;2个机器周期数上述程序执行的机器周期数为:11215012132240000个 所以上述程序执行的时间即为40ms。17试编制程序,实现1231

37、00?解:分析:进行十进制数加法,因此需要进行BCD码调整,其中千位、百位数存放在31H单元,十位、个位数存放在30H单元中。参考程序START:MOV A,#00HMOV R0,#01HMOV 31H,#00HLOOP1:ADD A,R0DA AJNC LOOP2INC 31HLOOP2:PUSH AMOV A,R0ADD A,#01HDA AJC LOOP3MOV R0,APOP ASJMP LOOP1LOOP3:POP AINC 31HMOV 30H,AEND18在内RAM的30H3FH单元中存放着16个字节的无符号数,要求比拟大小,并按从大到小顺序存放在内RAM的30H3FH单元中。解

38、:参考程序START:MOV R0,#30HMOV R2,#0FHLOOP1:MOV A,R0INC AMOV R1,ALOOP2:MOV A,R0CLR CSUBB A,R1JNC LOOP2XCH A,R0XCH A,R1INC R1CJNE R1,#40H,LOOP2INC R0DJNZ R2,LOOP1END19编制程序实现以下逻辑功能:QXYZX解:参考程序START:X BIT P1.0Y BIT P1.1Z BIT P1.2Q BIT P1.3MOV C,YANL C,ZMOV F0,CMOV C,XANL C,/F0MOV F0,CMOV C,YANL C,/XANL C,/Z

39、ORL C,F0MOV Q,CEND20阅读下面程序,分析执行后的结果,并进行手工汇编。ORG 0100HMOV A,67HSETB ACC.7MOV C,ACC.2CPL AMOV ACC.6,CCLR CSETB ACC.0MOV ACC.4,C解:1分析执行结果ORG 0100HMOV A,67H ;A=67H=01100111B YZSETB ACC.7 ;A=11100111B MOV C,ACC.2 ;Cy=1 CPL A ;A=00011000B MOV ACC.6,C ;A=01011000B CLR C ;Cy=0 SETB ACC.0 ;A=01011001B MOV AC

40、C.4,C ;A=01001001B所以结果:A49H,Cy=0 2人工汇编第4章 MCS-51系列单片机中断系统与定时器计数器1计算机与外部设备实现数据传送有哪些方式?答:在计算机系统中,CPU与I/O接口传送数据的控制方式主要有无条件传送方式、条件传送方式、中断方式和存储器直接存取方式DMA方式等四种。2什么叫中断?采用中断方式有些优点?答:中断是计算机的CPU暂停正在执行的程序,转而执行提出中断请求的那个外部设备或事件的效劳程序即中断效劳程序,待效劳程序处理完毕后,再返回原来程序的过程。采用中断方式的优点:计算机引入中断技术,解决了CPU与外设的速度匹配问题,提高了CPU的工作效率,同时

41、使计算机具有分时处理功能、实时处理功能、故障处理功能等。3中断响应的条件有哪些?简叙中断的响应步骤。答:中断响应的条件有:1有中断请求信号;2中断请求没有被屏蔽;3中断是开放的;4CPU在处理完现行指令后响应中断;同时还要具备:1CPU没有处理同级或更高级中断;2正在执行的指令不是RETI、也不是访问IE和IP的指令。中断响应的步骤是:1关中断;2保存断点;3保护现场;4转入相应的中断效劳程序;5恢复现场;6开中断;7中断返回。4在MCS51单片机系统中,有哪些中断源?响应这些中断的效劳程序入口地址分别是多少?如何合理安排中断效劳程序?答:在MCS51单片机系统中,中断源有:1INT0:外部中

42、断0,中断请求信号由P3.2输入;2TF0:内部定时器/计数器0溢出中断;3INT1:外部中断1,中断请求信号同P3.3输入;4TF1:内部定时器/计数器1溢出中断;5TI或RI:串行口中断请求,包括串行口接收中断和串行口发送中断。响应这些中断的效劳程序入口地址安排:1INT0:0003H;2TF0:000BH;3INT1:0013H;4TF1:001BH;5TI或RI:0023H。在安排中断效劳程序地址时,应该考虑中断效劳程序的字节数,如果字节数小于等于8个字节,那么直接存放在从规定的入口地址开始的空间中,如果字节数大于8个字节,那么由于,各中断效劳程序只有8个字节空间,不能占用其它中断效劳

43、程序的空间,因此在入口地址处放一条 LJMP XXXXH指令,真正的中断效劳程序存放在以XXXXH开始的空间中。5在单片机复位后,IP和IE均为何值?这些值说明了什么?如果当前单片机系统只允许开放INT0和T0中断源,且要求INT0、T1为高级中断源,其余为低级中断源,如何设置IP和IE的值?答:在单片机复位后,IP和IE均为00H。IP为00H,说明复位后,各中断的优先级均为低级优先级;IE为00H,说明复位后,禁止所有的中断源中断,CPU也处于禁止响应中断状态。 如果当前单片机系统只允许开放INT0和T0中断源,且要求INT0、T1为高级中断源,其余为低级中断源,那么设置IP和IE的值的指

44、令如下(参考):MOV IP,#09H ;IP只能字节操作MOV IE,#83H ;IE还可能通过位操作指令实现END或MOV IP,#09H ;IP只能字节操作SETB ET0SETB EX0SETB EAEND6外部中断有几种触发方式?如何选择?答:外部中断有两种触发方式,一种是电平触发方式,另一种是下降沿触发方式。 如果设置为电平触发方式,那么将TCON中的IT0或IT1清0,指令为:CLR IT0或CLR IT1;如果设置为下降沿触发方式,那么将TCON中的IT0或IT1置1,指令为: SETB IT0或SETB IT1。7什么叫中断嵌套?答:如果CPU正在处理的是低级的中断请求,那么

45、高级的中断请求可以使CPU暂停处理低级中断请求的中断效劳程序,转而处理高级中断请求的中断效劳程序,待处理完高级中断请求的中断效劳程序后,再返回原低级中断请求的中断效劳程序,这种情况称为中断嵌套。8定时器0和定时器1各有几种工作方式?简述之。答:定时器0的工作方式有方式0、方式1、方式2、方式3;定时器1的工作方式有方式0、方式1、方式2。工作方式0是13位定时计数器工作方式;工作方式1是16定时计数器工作方式;工作方式2是8位自动重装定时计数器工作方式;工作方式3仅限于定时器0,是两个8位定时计数器工作方式。9写出TMOD的结构、各位名称和作用。答:TMOD的结构:DTMOD(89H) 各位的

46、名称及作用如下:GATE:选通门控制位。当GATE=0时,由TRx启动Tx工作;当GATE=1时,由TRx和INTx共同启动Tx工作。C/T:定时器计数器选择位。当C/T=0时,定时器状态;当C/T=1时,计数器状态。 M1、MO:工作方式选择位。当M1 M0=00时,方式0,13位定时计数器;当M1 M0=01时,方式1,16位定时计数器;当M1 M0=10时,方式2,8位自动重装定时计数器; 当M1 M0=11时,方式3,分二个8位定时计数器。10单片机系统时钟频率fosc=6MHz,假设要求定时时间分别为0.1ms、1ms、10ms,定时器0工作在方式0、方式1、方式2情况下,计算定时初

47、值TH0、TL0分别为多少?解:由于fosc=6MHz,所以机器周期为2us。1方式0:定时0.1ms:初值2131002=8192-50=8142=11111110 01110B,所以:TH00FEH,TL00EH定时1ms:初值210002=8192-500=7692=11110000 01100B,所以:TH00F0H,TL00CH定时10ms:初值213100002=8192-5000=3192=01100011 11000B,所以:TH063H,TL018H2方式1:定时0.1ms:初值2161002=65536-50=65486=11111111 11001110BFFCEH,所以

48、:TH00FFH,TL00CEH定时1ms:初值210002=65536-500=65036=11111110 00001100B=FE0CH,所以:TH00FEH,TL00CH定时10ms:初值216100002=65536-5000=60536=11101100 01111000B=EC78H,所以:TH00ECH,TL078H2方式2:定时0.1ms:初值281002=256-50=206=11001110BCEH,所以:TH00CEH,TL00CEH定时1ms:初值210002=256-5000所以:在方式2时超出定时范围,不能定时1ms。定时10ms:初值28100002=256-5

49、0000所以:同理在方式2时不能定时10ms。 8161311要求在P1.7引脚输出周期为20ms的方波。设单片机系统时钟频率fosc=12MHz。试编写定时器初始化程序和中断效劳程序,并指定程序入口地址。解:根据题意,由于fosc=12MHz,所以机器周期为1us;由于要产生周期为20ms的方波,因此定时时间为10ms。设定采用定时器0,工作方式为方式1,TR触发方式,那么:TMOD=00H定时初值216100001=65536-10000=55536=01100011 11000B,TH0F0H,TL0C8H程序如下:ORG 0000HLJMP MAINORG 000BHLJMP IT0O

50、RG 0030HIT0:MOV TH0,#0F0HMOV TL0,#0C8HCPL P1.7RETIORG 0100HMAIN:MOV TMOD,#00HMOV TH0,#0F0HMOV TL0,#0C8HSETB ET0SETB EASETB TR0LOOP:SJMP LOOPEND12要求将定时器T0和T1的外部信号输入端P3.4和P3.5作为新增的二个外部中断请求信号,如何设置计数初值?答:根据题意,就是控制要求外部中断源2个太少,需要增加2个外部中断源,因此将内部的T0和T1的两个中断源改为外部中断源,这两个外部中断源输入口分别为P3.4和P3.5,此时只要将T0和T1设置为计数器工作

51、状态,方式均设置为方式0,那么它们的初值均为11111111 11111B,即TH0TH10FFH,TL0TL11FH,只要P3.4和P3.5有信号输入,即使T0和T1生产中断信号。13要求在P1.0引脚上输出如图4-16所示的波形。试编写定时器初始化程序和中断效劳程序,并指定程序入口地址。图 4-16解:根据题意,只要将定时时间为50us,并设定一个计数存放器,当为0和4时对P1.0取反即可。假定此题采用T0,定时器工作状态,由TR0启动,工作方式为方式2。那么:TMOD00000010B02H,初值2850=256-50=206=11001110BCEH,TH00CEH,TL0=0CEH程

52、序如下:ORG 0000HLJMP MAINORG 000BHLJMP IT0ORG 0030HIT0:CJNE R7,#00H,LOOP1SEBT P1.0LOOP1:CJNE R7,#01H,LOOP2CLR P1.0LOOP2:INC R7CJNE R7,#05H,LOOP3MOV R7,#00HLOOP3:RETIORG 0100HMAIN:MOV R7,#00HMOV TMOD,#02HMOV TH0,#0CEHMOV TL0,#0CEHSETB ET0SETB EASETB TR0LOOP:SJMP LOOPEND另一种方法,采用二个定时器T0和T1,工作方式均为方式2,TR触发方

53、式,其中T0定时时间为50us,T1定时时间为200us,二个定时器交替定时工作。那么:TMOD22HT0定时初值2850=256-50=206=11001110BCEH,TH00CEH,TL0=0CEH T1定时初值28200=256-200=56=00111000B38H,TH038H,TL0=38H 程序如下:ORG 0000HLJMP MAINORG 000BHCLR TR0CLR P1.0SETB TR1RETIORG 001BHCLR TR1SETB P1.0SETB TR0RETIORG 0100HMAIN:MOV TMOD,#22HMOV TH0,#0CEHMOV TL0,#0

54、CEHMOV TH1,#38HMOV TL1,#38HSETB ET0SETB ET1SETB EASETB P1.0SETB TR0LOOP:SJMP LOOPEND14试编写程序,使T1每计满100个外部输入脉冲后,使P0口输出0FFH的数据。 解:根据题意,T1应为计数器工作状态,采用方式2,TR1启开工作。那么:TMOD20H初值28100=256-100=156=10011100B9CH,TH09CH,TL0=9CH程序如下:ORG 0000HLJMP MAINORG 001BHMOV P0,#0FFHRETIORG 0100HMAIN:MOV TMOD,#20HMOV TH1,#9

55、CHMOV TL1,#9CHSETB ET1SETB EASETB TR1LOOP:SJMP LOOPEND第5章 存储器扩展技术1只读存储器有哪几种类型?其各自的特点是什么?答:只读存储器共分为以下五种:1掩膜ROM:掩膜ROM简称为ROM,其编程是由半导体存储器制造厂家完成,即在生产过程中进行编程。掩膜ROM制造完成后,用户不能更改其内容。这种ROM芯片存储结构简单,集成度高,但由于掩膜工艺本钱高,因此只适合于大批量生产。2可编程只读存储器:可编程只读存储器即PROM,这种芯片出厂时并没有任何程序信息,其程序是在开发时由用户写入。但这种ROM芯片只能写一次,其程序一旦写入就不能再进行修改。

56、3紫外线擦除可改写只读存储器:紫外线擦除可改写只读存储器即EPROM,这种芯片的内容也由用户写入,但允许进行屡次擦除和重新写入。4电擦除可改写只读存储器:电擦除可改写只读存储器即EEPROM也写成E2PROM,它是一种用电信号编程也用电信号擦除的ROM芯片,它可以通过读写操作进行逐个存储单元的读出和写入,读写操作与RAM几乎没有什么差异。5闪速存储器:闪速存储器即Flash ROM,是在EPROM和E2PROM的根底上开展起来的一种只读存储器,读写速度均很快,存取时间可达70ns,存储容量可达2KB16KB,近期甚至有1664MB的芯片出现。这种芯片的可改写次数可以从1万次到100万次。闪速存

57、储器(Flash Memory) 又称PEROM,具有掉电后信息保存的特点,又可以在线写入,自动覆盖以前内容,且可以按页连续字节写入。2随机存取存储器有哪几种类型?其各有什么不同?答:随机存取存储器Random Access Memory简称RAM,在单片机系统中用于存放可随时修改的数据。按半导体工艺不同,RAM分为MOS型和双极型两种。MOS型集成度高、功耗低,价格廉价,但速度较慢,双极型的特点那么正好相反。按工作方式不同,RAM又可分为静态RAMStatic Random Access Memory和动态RAMDynamic Random Access Memory两种,简称SRAM和DR

58、AM。 动态RAM的集成度高,功耗小,价格低。38031与8051最小系统有什么不同?答:用8031芯片构成最小应用系统时,由于片内无驻留ROM,所以必须在片外扩展程序存储器,这常常选用EPROM芯片。在扩展程序存储器时,还必须接上地址锁存器。8051/8751 片内驻留4KB的掩膜ROM /EPROM,在构成最小应用系统时,只要加上复位电路、时钟电路、EA引脚接高电平,即可通电工作。4扩展存储器时常用哪些片选方法?答:扩展存储器时常用线选法、译码法两种片选方法。5什么是地址空间重叠现象?答:存储器芯片中的一个单元如0000H单元,就占居多个单元地址空间,如0000H、2000H、6000H、

59、8000H、0A000H、0C000H、0E000H,这就犹如8个单元地址空间重叠在一起,却仅表示一个单元,这种现象称为地址空间重叠现象,造成地址空间的资源浪费。6扩展存储器时,为什么低8位地址要锁存,而高8位地址不要锁存?答:P0口作为低8位地址线/数据线 MCS51单片机的P0口,分时提供低8位地址信号和数据信号,在扩展系统中,要将P0口传送的信号进行别离,以便构成16位地址信号。因此在系统结构中,需要增加一个8位锁存器,先由锁存器将地址总线中的低8位地址信号锁存。以P2口作为高位地址线 P2口在整个机器周期内提供的都是高8位地址信号,随时与低8位地址信号一并构成16位地址信号,使单片机扩

60、展系统寻址范围到达64KB。7扩展存储器时,锁存器如果选择74LS377,应怎样处理?答:根据CPU时序得知,P0口输出有效低8位地址信号时,ALE信号正好处于正脉冲顶部到下降沿时刻。通常选用高电平或下降沿为有效选通信号的锁存器作为地址锁存器,如74LS273、74LS373,锁存器如果选择74LS377那么需经过反相后再作为选通信号。8对8031扩展程序存储器时,EA如何连接,为什么? 答:EA接地,因为8031内部无ROM。9试用两片2732扩展8KB程序存储器,根据以下要求,画出电路图,并确定各自的地址范围:1用P2.7、P2.6片选;2用74LS139译码后片选;3用74LS138译码

温馨提示

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

评论

0/150

提交评论