单片机原理及应用 第二 曹克澄 课后习题答案_第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解:1)100=1100100B=64H=0001 0000 0000BCD;2)64=1000000B=40H=0110 0100BCD;3)78=1001110B=4EH=0111 1000BCD。3. 写出下列十六进制无符号数对应的十进制数和二进制:0D5H,64H,2CH,4FEH2) 64H=100=1100100B;3) 2CH=44=101100B;4. 写出下列十进制数对应的二进制原码、反码和补码:+35,+50,-10,-20解:1) 35(23H)原=(23H)反=(23H)补;2

3、) 50(32H)原=(32H)反=(32H)补;3) 10(8AH)原(0F5H)反(0F6H)补;4) 20(94H)原(0EBH)反(0ECH)补; 解:1)0D5H=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. 试分别判断下列各组数据大小?1)A=0.01

4、1B2)A=1001B B=0.011-1-2 C=0.011H -3B=1001 C=1001H 解:1)A=0.011B=0×2+1×2+1×2=0.25+0.125=0.375;B=0.011C=0.011H=0×16-1+1×16-2+1×16-3=0.004150390625所以:A>B>C2)A=1001B=9;B=1001;C=1001H=4097所以:A<B<C7.先将下列各组数据转换为补码表示的带符号数,然后用进行补码运算,再将结果还原成原码,并写出对应的十进制数检验结果是否正确。1) (74

5、)412) (74)41解:根据补码定义有:74(0B6H)补,41(29H)补,41(0D7H)补1)(74)+41补(74)补+(41)补(0B6H29H)补(0DFH)补(33)真值十进制数运算:(74)+4133所以:二者运算结果相同。2)(74)41补(74)补+(41)补(0B6H0D7H)补(8DH)补 (115)真值十进制数运算:(74)41=115所以:二者运算结果相同。8.何谓单片机?单片机有何特点?答:单片机(Single Chip Microcomputer)是指把CPU、RAM、ROM、定时器/计数器以及I/O接口电路等主要部件集成在一块半导体芯片上的微型计算机。单片

6、机在控制应用领域中的特点:(1)体积小、结构简单、可靠性高;(2)控制功能强;(3)低电压、低功耗;(4)优异的性价比。9.单片机内部ROM的配置有几种形式?答:单片机片内ROM的配置状态可分四种:(1)片内掩膜(Mask)ROM型单片机(如8051),适合于定型大批量应用产品的生产;(2)片内EPROM型单片机(如8751),适合于研制产品样机;(3)片内无ROM型单片机(如8031),需外接EPROM,单片机扩展灵活,适用于研制新产品;(4)EEPROM(或Flash ROM)型单片机(如89C51),内部程序存储器电可擦除,使用更方便。第2章 MCS-51系列单片机的结构和时序18051

7、单片机内包含哪些主要功能部件?各有什么功能?答:8051单片机是一个完整的单片微型计算机。它包括以下功能部件:(1)1个8位CPU;(2)片内4KB的程序存储器ROM;(3)片内128B的数据存储器RAM;(4)可寻址外部程序存储器和数据存储器空间各64KB的控制电路;(5)21个特殊功能寄存器SFR;(6)4个8位并行I/O口P0P3,共32根I/O线;(7)1个全双工的串行口;(8)2个16位定时器/计数器;(9)5个中断源,有2个优先级嵌套中断结构;(10)片内振荡器及时钟电路。2.8051单片机的EA信号有何功能?8031的EA引脚应如何处理,为什么? 答:(1) EA是访问外部程序存

8、储器ROM的控制信号。 当EA为低电平(接地)时,CPU只执行外部程序存储器中的程序。 当EA为高电平且PC值小于0FFFH(4K)时,CPU执行内部程序存储器的程序,但当PC的值超出4K时(对8051/8751/8951)将自动转去执行片外程序存储器内的程序。8031单片机无片内ROM的,必须外部扩展程序存储器,因此,8031的EA必须接地(低电平)。3MCS-51单片机的P0P3口各有什么特点?答:MCS-51单片机有P0、P1、P2、P3四个双向的8位并行I/O口,每个端口可以按字节输入或输出,每一条I/O线也可以单独用作输入或输出(即按位进行输入或输出)。每个端口都是由一个锁存器(即特

9、殊功能寄存器P0P3),一个输出驱动器和两个(P3口为3个)输入缓冲器组成。并行I/O口作输出时数据可以锁存,作输入时数据可以缓冲,但它们又各具特点。(1)P0口和P2口构成MCS-51单片机的16位地址总线,P0口还是8位的数据总线。P3口多用于第二功能输入或输出。通常只有P1口用于一般输入/输出。P3口各位的第二功能 (2)系统复位后,P0P3口的32个管脚均输出高电平,因此在系统的设计过程中,应保证这些管脚控制的外设不会因为系统复位而发生误动作。(3)P0P3口输出级的电路结构有所不同。P0口是三态输出,其每个管脚均可以驱动8个LSTTL输入,而P1P3口的输出级均有上拉电阻,每个管脚可

10、驱动4个LSTTL输入。(4)每个并行口,可定义一部分管脚为输入脚,另一部分管脚为输出脚,没有使用的管脚可以悬空。4.简述8051单片机存储器的组织结构和片内RAM的地址空间分配。答:8051单片机的存储器包括程序存储器和数据存储器,从用户使用的角度可分为三个逻辑地址空间:(1)片内、片外统一编址的64KB程序存储器地址空间0000H0FFFFH;(2)64KB的外部数据存储器或扩展I/O口地址空间0000H0FFFFH;(3) 256B的片内数据存储器地址空间00HFFH(包括低128B的内部RAM地址00H7FH和高128B的特殊功能寄存器地址空间,21个SFR离散地分布在这个区域)。内部

11、RAM共有128个单元,根据用途可划分为工作寄存器区、位寻址区和通用RAM区,各区域的特性如下:(1)工作寄存器区(00H1FH) 寄存器区32个单元共分4个组,每个组有8个8位的寄存器R0R7。在任何时刻,四个组中只能有一组可以成为当前工作寄存器组使用,其他三组作为一般的内部RAM使用。当前工作寄存器组由程序状态字寄存器PSW的RS0和RS1两位的状态来决定。(2)位寻址区( 20H2FH)共16个单元,每个单元有8个位,每个位都有一个位地址,编号为00H7FH,位寻址区的16个单元也可以按字节寻址,作为一般的内部RAM使用。(3)通用RAM区(30H7FH) 这部分存储空间作为一般的内部R

12、AM区或堆栈区,CPU只能按字节方式寻址。5.8051单片机有哪些特殊功能寄存器?答:8051单片机有21个8位的特殊功能寄存器(SFR),它们的地址离散地分部在内部数据存储器的80HFFH地址空间。在8051单片机结构中,21个SFR在物理上是分散在片内各功能部件中:(1)CPU的中SFR:Acc、B、PSW、SP和DPTR(16位寄存器,由DPH和DPL组成);(2)定时/计数器单元中的寄存器:TMOD、TCON、T0(16位寄存器,由TH0和TL0组成)和T1(16位寄存器,由TH1和TL1组成);(3)并行I/O口寄存器:P0、P1、P2和P3;(4)中断系统内的寄存器:IE和IP;(

13、5)串行端口中的寄存器:SCON、SBUF和PCON。6程序计数器PC的功能和特点?答:程序计数器PC是一个16位的专用寄存器,用来存放即将要执行的指令地址,可对64KB的程序存储器直接寻址。它具有自动加1功能,当CPU要取指令时,PC的内容送地址总线上,从存储器中取出指令后,PC内容则自动加1,指向下一条指令,从而保证程序按顺序执行。PC虽然也是CPU内部的一个寄存器,但它在物理结构上是独立的,没有地址,是不可寻址的,用户无法对它进行直接读写,不属特殊功能寄存器。7什么叫堆栈?堆栈指针SP的作用是什么?8051单片机堆栈的最大容量是多少字节?答:堆栈是按照“先进后出,后进先出”的原则来存取数

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

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

16、果的低半字节(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,则P1;否则P0。11什么是时钟周期、机器周期和指令周期?答:(1)时

17、钟周期(又称为振荡周期)是指振荡器产生一个振荡脉冲信号所用的时间,是振荡频率的倒数,称为拍节。(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的状态各是什么?复位后内部RAM中的数据有何影响?答:80

18、51单片机复位后PC为0000H,A和PSW均为00H,SP为07H,P0P3均为FFH。单片机的复位不影响内部RAM的状态(包括工作寄存器Rn )。1380C51如何进入节电工作方式?答:只有CHMOS型单片机(如80C51)才有这种工作方式,有两种节电方式,即待机方式和掉电保护方式。由片内SFR中的电源控制寄存器PCON的低4位来控制待机和掉电两种方式,其格式如下:(1)IDL:待机方式位。若IDL1,进入待机方式;(2)PD:掉电方式位。若PD1,进入掉电方式;当PD和IDL同时为1,则先进入掉电工作方式。复位后,PCON中有定义的位均为0。第3章 MCS-51系列单片机指令系统1简述汇

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

20、”为开始,注释部分对程序的执行没有影响。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)位寻址方式,指令如:MOV

21、 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的(30H)40H,(40H)6DH,分别执行下列指令,说明被真正传送的数据是多少?1)MOV A,40H2)MOV 40H,R03)MOV A,30H4)MOV A,R05

22、)MOV A,R0答:1)真正被传送的数据是立即数40H。2)真正被传送的数据是R0间址中(即30H单元中)的数据40H。3)真正被 传送的数据是30H单元中的数据40H。4)真正被传送的数据是R0间址中(即30H单元中)的数据40H。5)真正被传送的数据是R0中的数据30H。5设A86H,R030H,R140H,内RAM的(30H)76H,(40H)6BH,执行下面程序: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)=(3

23、0H)=6BHMOV A,R0 ;A=30HMOV 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的(30H)40H,(31H)50H,(32H)60H,(40H)70H,(50H)80H,执行下面程序:XCHD A,R1MOV 40H,ASWAP AMOV 50H,AXCH A,R2MOV R0,A后,A ,R0 ,R1 ,R2 ,(30H) ,(31H) ,(32H

24、) ,(40H) ,(50H)解: XCHD A,R1 ;A=60H,(R1)=(31H)=55HMOV 40H,A ;(40H)60HSWAP 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 1

25、020HDB 56H,78H,65H,29H,10H解: ORG 1000HMOV DPTR,1020H ;DPTR=1020HMOV 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)将R

26、OM 2100H单元中内容送外RAM 3165H单元中。解:1) MOV A,R2MOV R3,A2) MOV DPTR 2040HMOVX 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,R04

27、0H,(40H)9AH,B23H,Cy=1。分别执行下列指令后,试问:A?各标志位为什么状态?1)ADD A,R02)ADDC A,R03)SWAP A4)XCH A,R05)INC A6)SUBB A,56H7)SUBB A,R08)RLC A9)RR A10)CPL A11)ANL A,R012)ORL A,8FH13)XRL A,40H14)ANL 40H,A15)ORL 40H,0F0H16)ANL A,0FH17)DEC A18)MUL AB19)DIV AB20)RRC A解:1)ADD A,R0AA(R0)A(40H)7EH9AH18H,Cy1,AC1,OV0,P02)ADDC

28、A,R0AAR0Cy7EH40H10BFH,Cy0,AC0,OV1,P13)SWAP AA0E7H4)XCH A,R0A(R0)(40H)9AH,(R0)(40H)A7EH,P05)INC AAA17EH17FH,P16)SUBB A,56HAA56HCy7EH56H127H,Cy0,AC0,OV0,P07)SUBB A,R0AAR0Cy7EH40H13DH,Cy0,AC0,OV0,P18)RLC AA11111101B0FDH,Cy0,P19)RR AA00111111B3FH,P010)CPL AA81H,P011)ANL A,R0AA(R0)A(40H)7EH9AH1AH,P112)OR

29、L A,8FHAA8FH7EH8FH0FFH,P013)XRL A,40HAA(40H)7EH9AH0E4H,P014)ANL 40H,A(40H)(40H)A9AH7EH1AH,A7EH15)ORL 40H,0F0H(40H)(40H)0F0H9AH0F0H0FAH,A7EH16)ANL A,0FHAA0FH7EH0FH0EH,P117)DEC AAA17EH17DH,P018)MUL ABA×B7EH×23H01111110B×00100011B0001 0001 0011 1010B113AH B11H,A3AH,OV1,P019)DIV ABA÷

30、B7EH÷23H0111 1110B÷0010 0011B0000 0011B余0001 0101B A03H,B15H,OV0,P020)RRC AA0BFH,Cy0,P110试编写程序,要求将内RAM 30H4FH中的内容平移送到40H5FH中。 解:(参考程序)START:MOV R0,#4FHMOV R1,#5FHMOV R2,#20HLOOP:MOV A,R0MOV R1,ADEC R0DEC R1DJNZ R2,LOOPEND11试编写程序,将内RAM的30H4FH中的内容清零。解:(参考程序)START:MOV R0,#30HCLR AMOV R2,#20HL

31、OOP:MOV R0,AINC R0DJNZ R2,LOOPEND12试编写程序,在内RAM的30H4FH中查找关键字0AH,若有,则将内RAM的50H单元置为01H,并将找到的存放第一个关键字的单元地址存放在内RAM的52H单元中。解:(参考程序)START:MOV R0,#30HMOV R2,#20HMOV 50H,#00HLOOP1:CJNE R0,#0AH,LOOP2MOV 50H,#01HMOV 52H,R0SJMP LOOP3LOOP2:INC R0DJNZ R2,LOOP1LOOP3:END13在内RAM从30H到3FH单元中存放着符号数,要求统计正数、零、负数的个数,结果分别存

32、放在内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,LOOP3 ;判断A是否为负数,是负数则转移INC 40H ;正数的个数统计量加1SJMP LOOP4LOOP3:INC 42H ;负数的个数统计量加1LOOP4:INC R0DJNZ R2,LOOP1END14分析执行下面各段程序的结果。(1)

33、 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 ,OV 0 ,P 0 ,Cy 1 ,AC 0(2) MOV SP,5FHMOV A,54HMOV B,78HPUSH APUSH BPOP APOP BRETA ,B ,SP解: MOV SP,5FH ;SP=5FHMOV A,54H ;A=5

34、4HMOV 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 5FH(3) MOV A,7DHADD A,6BHMOV 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

35、=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)=(34H)=A=0BCHSWAP A ;A=0CBHXCH A,R0 ;A=34H,R0=0CBHRET所以:A 34H ,R0 0CBH ,(34H) 0BCH(4) CLR CMOV A,55HMOV R0,23HLOOP1:AD

36、DC 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 23H(5) ORG 2000HMOV A,00HMOV R2,09HLOOP1:ADD A,03HDA ADJNZ R2,LOOP1MOV 30H,ARETA ,R2 ,(30H)解: ORG 2000HMOV A,00H ;A=00HMOV R2,09H

37、 ;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)=27HRETA 27H ,R2 00H ,(30H) 27H15对3-14(1)、(5)题进行手工汇编。 解:(1)16试编制能延时40ms的程序。 解: 设fosc=12MHz,则机器周期为1us。参考程序START:MOV

38、R0,#84H ;1个机器周期数,R0=132MOV R1,#96H ;1个机器周期数,R1=150LOOP1:DJNZ R1,LOOP1 ;2个机器周期数MOV R1,#64H ;1个机器周期数 DJNZ R0,LOOP1 ;2个机器周期数 RET ;2个机器周期数上述程序执行的机器周期数为:11(2×15012)×132240000(个) 所以上述程序执行的时间即为40ms。17试编制程序,实现123100?解:分析:进行十进制数加法,因此需要进行BCD码调整,其中千位、百位数存放在31H单元,十位、个位数存放在30H单元中。参考程序START:MOV A,#00HMO

39、V 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单元中。解:参考程序START:MOV R0,#30HMOV R2,#0FHLOOP1:MOV A,R0INC AMOV R1,ALOOP2:MOV A,R0CLR CSUBB A

40、,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,/ZORL C,F0MOV Q,CEND20阅读下面程序,分析执行后的结果,并进行手工汇编。ORG 0100HMOV A,67HSETB ACC.7MOV C,ACC.2CP

41、L 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 ACC.4,C ;A=01001001B所以结果:A49H,Cy=0 (2)人工汇编第4章 MCS-51系列单片机中断系统与定时器计数器1计算机与外部设备实现数据传送有哪

42、些方式?答:在计算机系统中,CPU与I/O接口传送数据的控制方式主要有无条件传送方式、条件传送方式、中断方式和存储器直接存取方式(DMA方式)等四种。2什么叫中断?采用中断方式有些优点?答:中断是计算机的CPU暂停正在执行的程序,转而执行提出中断请求的那个外部设备或事件的服务程序(即中断服务程序),待服务程序处理完毕后,再返回原来程序的过程。采用中断方式的优点:计算机引入中断技术,解决了CPU与外设的速度匹配问题,提高了CPU的工作效率,同时使计算机具有分时处理功能、实时处理功能、故障处理功能等。3中断响应的条件有哪些?简叙中断的响应步骤。答:中断响应的条件有:(1)有中断请求信号;(2)中断

43、请求没有被屏蔽;(3)中断是开放的;(4)CPU在处理完现行指令后响应中断;同时还要具备:(1)CPU没有处理同级或更高级中断;(2)正在执行的指令不是RETI、也不是访问IE和IP的指令。中断响应的步骤是:(1)关中断;(2)保存断点;(3)保护现场;(4)转入相应的中断服务程序;(5)恢复现场;(6)开中断;(7)中断返回。4在MCS51单片机系统中,有哪些中断源?响应这些中断的服务程序入口地址分别是多少?如何合理安排中断服务程序?答:在MCS51单片机系统中,中断源有:(1)INT0:外部中断0,中断请求信号由P3.2输入;(2)TF0:内部定时器/计数器0溢出中断;(3)INT1:外部

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

45、的中断服务程序存放在以XXXXH开始的空间中。5在单片机复位后,IP和IE均为何值?这些值说明了什么?如果当前单片机系统只允许开放INT0和T0中断源,且要求INT0、T1为高级中断源,其余为低级中断源,如何设置IP和IE的值?答:在单片机复位后,IP和IE均为00H。IP为00H,说明复位后,各中断的优先级均为低级优先级;IE为00H,说明复位后,禁止所有的中断源中断,CPU也处于禁止响应中断状态。 如果当前单片机系统只允许开放INT0和T0中断源,且要求INT0、T1为高级中断源,其余为低级中断源,则设置IP和IE的值的指令如下(参考):MOV IP,#09H ;IP只能字节操作MOV I

46、E,#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正在处理的是低级的中断请求,那么高级的中断请求可以使CPU暂停处理低级中断请求的中断服务程序,转而处理高

47、级中断请求的中断服务程序,待处理完高级中断请求的中断服务程序后,再返回原低级中断请求的中断服务程序,这种情况称为中断嵌套。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) 各位的名称及作用如下:GATE:选通门控制位。当GATE=0时,由TRx启动T

48、x工作;当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情况下,计算定时初值TH0、TL0分别为多少?解:由于fosc=6MHz,所以机器周期为

49、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,TL018H(2)方式1:定时0.1ms:初值2161002=65536-50=65486=11111111 11001110BFFCEH,所以:TH00FFH,TL00CEH定时1ms:初值210002=

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

51、s。 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 IT0ORG 0030HIT0:MOV TH0,#0

52、F0HMOV 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设置为计数器工作状态,方式均设置为方式0,则它们的初值均为1

53、1111111 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程序如下:ORG 0000HLJMP MAINOR

54、G 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触发方式,其中T0定时时间为50us,T1定时时间为200us,二个定时器交替定时工作。则:TMOD22HT0定时初值28

温馨提示

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

评论

0/150

提交评论