1、单片机原理及应用习题答案 第三版13、清洁的自来水被用来洗脸、刷牙、洗衣、拖地后就成了污水。答:水分和氧气是使铁容易生锈的原因。答:硫酸铜溶液的颜色逐渐变浅,取出铁钉后,发现浸入硫酸铜溶液中的那部分变红了。答:当地球运行到月球和太阳的中间,如果地球挡住了太阳射向月球的光,便发生月食。7、对于生活中的一些废弃物,我们可以从垃圾中回收它们并重新加工利用。这样做不但能够减少垃圾的数量,而且能够节省大量的自然资源。20、对生活垃圾进行分类、分装,这是我们每个公民的义务。只要我们人人参与,养成良好的习惯,我们周围的环境一定会变得更加清洁和美丽。2、物质变化有快有慢,有些变化只改变了物质的形态、形状、大小
2、,没有产生新的不同于原来的物质,我们把这类变化称为物理变化;有些变化产生了新的物质,我们把有新物质生成的变化称为化学变化。19、夏季是观察星座的好季节,天空中有许多亮星,其中人们称之为“夏季大三角”的是天津四、织女星和牛郎星。它们分别属于天鹅座、天琴座、天鹰座。答:月相从新月开始,然后是峨眉月、上弦月、满月、下弦月、峨眉月。1、月球是地球的卫星,月球围绕着地球运动,运动的方向是逆时针方向。第一章习题参考答案1-1:何谓单片机?与通用微机相比,两者在结构上有何异同? 答:将构成计算机的基本单元电路如微处理器(CPU)、存储器、I/O接口电路和相应实时控制器件等电路集成在一块芯片上,称其为单片微型
3、计算机,简称单片机。 单片机与通用微机相比在结构上的异同: (1)两者都有CPU,但通用微机的CPU主要面向数据处理,其发展主要围绕数据处理功能、计算速度和精度的进一步提高。例如,现今微机的CPU都支持浮点运算,采用流水线作业,并行处理、多级高速缓冲(Cache)技术等。CPU的主频达到数百兆赫兹(MHz),字长普遍达到32位。单片机主要面向控制,控制中的数据类型及数据处理相对简单,所以单片机的数据处理功能比通用微机相对要弱一些,计算速度和精度也相对要低一些。例如,现在的单片机产品的CPU大多不支持浮点运算,CPU还采用串行工作方式,其振荡频率大多在百兆赫兹范围内;在一些简单应用系统中采用4位
4、字长的CPU,在中、小规模应用场合广泛采用8位字长单片机,在一些复杂的中、大规模的应用系统中才采用16位字长单片机,32位单片机产品目前应用得还不多。 (2) 两者都有存储器,但通用微机中存储器组织结构主要针对增大存储容量和CPU对数据的存取速度。现今微机的内存容量达到了数百兆字节(MB),存储体系采用多体、并读技术和段、页等多种管理模式。单片机中存储器的组织结构比较简单,存储器芯片直接挂接在单片机的总线上,CPU对存储器的读写按直接物理地址来寻址存储器单元,存储器的寻址空间一般都为64 KB。 (3) 两者都有I/O接口,但通用微机中I/O接口主要考虑标准外设(如CRT、标准键盘、鼠标、打印
5、机、硬盘、光盘等)。用户通过标准总线连接外设,能达到即插即用。单片机应用系统的外设都是非标准的,且千差万别,种类很多。单片机的I/O接口实际上是向用户提供的与外设连接的物理界面。用户对外设的连接要设计具体的接口电路,需有熟练的接口电路设计技术。 另外,单片机的微处理器(CPU)、存储器、I/O接口电路集成在一块芯片上,而通用微机的微处理器(CPU)、存储器、I/O接口电路一般都是独立的芯片1-4 IAP、ISP的含义是什么? ISP:In System Programable,即在系统编程。用户可以通过下载线以特定的硬件时序在线编程(到单片机内部集成的FLASH上),但用户程序自身不可以对内部
6、存储器做修改。IAP:In Application Programable,即在应用编程。用户可以通过下载线对单片机进行在线编程,用户程序也可以自己对内部存储器重新修改。 1-6 51单片机与通用微机相比,结构上有哪些主要特点?(1)单片机的程序存储器和数据存储器是严格区分的,前者为ROM,后者为RAM; (2)采用面向控制的指令系统,位处理能力强;(3)I/O引脚通常是多功能的; (4) 产品系列齐全,功能扩展性强; (5) 功能是通用的,像一般微处理机那样可广泛地应用在各个方面。1-7 51单片机有哪些主要系列产品?(1) Intel公司的MCS-51系列单片机:功能比较强、价格比较低、较
7、早应用的单片机。此系列三种基本产品是:8031/8051/8751;(2) ATMEL公司的89系列单片机:内含Flash存储器,开发过程中可以容易地进行程序修改。有8位Flash子系列、ISP_Flash子系列、I2C_Flash子系列;(3) SST公司的SST89系列单片机:具有独特的超级Flash技术和小扇区结构设计,采用IAP和ISP技术;(4) PHILIPS公司的增强型80C51系列单片机:其产品类型较完整,包括通用型、Flash型、OTP型和低成本型,主要产品系列包括P80、P87、P89、LPC76、LPC900等。第二章习题参考答案2-1 51单片机内部包含哪些主要逻辑功能
8、部件?(1)一个8位微处理器CPU。(2)256B数据存储器RAM和特殊功能寄存器SFR。(3)4K程序存储器ROM。(4)两个定时/计数器,用以对外部事件进行计数,也可用作定时器。(5)四个8位可编程的I/O(输入/输出)并行端口,每个端口既可做输入,也可做输出。(6)一个串行端口,用于数据的串行通信(7)1个可管理5个中断源、2级优先嵌套的中断管理系统;。(8)片内振荡器及时钟发生器。2-2 MCS-51引脚中有多少I/O总线?它们和单片机对外的地址总线和数据总线有什么关系?地址总线和数据总线各是几位?32条I/O口线,分为4组,每组8条,称为P0P3口,P0口有8位数据总线和地址总线的低
9、8位,P2口有地址总线的高8位,因此单片机的地址总线位是16位,寻址空间为64KB,数据总线位宽为8位。同时在P3口还R/W控制信号线。I/O口线的总数与地址总线和数据总线没有多大联系,只是说地址总线和数据总线需要占用一定的端口。像AT89C2051单片机,只有15条I/O口线(P3.6没有引出,作为内部使用),分为P1口(8位)和P3口(7位),没有所谓的地址总线和数据总线,并且P1口并不完整,因为P1.0和P1.1被电压比较器占用了。2-3 51单片机的 EA, ALE,PSEN信号各自功能是什么? EA:为片外程序存储器选用端,该引脚有效(低电平)时,只选用片外程序存储器,否则单片机上电
10、或复位后选用片内程序存储器。ALE:地址锁存有效信号输出在访问片外程序存储器期间,ALE以每机器周期两次进行信号输出,其下降沿用于控制锁存P0输出的低8位地址;在不访问片外程序存储器期间,ALE端仍以上述频率(振荡频率fosc的1/6)出现,可作为对外输出的时钟脉冲或用于定时目的.PSEN:片外程序存储器读选通信号输出端,低电平有效。2-4 51系列单片机有哪些信号需要芯片引脚的第二功能方式提供?P3.0 :RxD 串行口输入端 P3.1 :TxD串行口输出端 P3.2 :INT0 外部中断0请求输入端,低电平有效 P3.3 :INT1 外部中断1请求输入端,低电平有效 P3.4 :T0 定时
11、/计数器 0技术脉冲输入端 P3.5 :T1 定时/计数器 1技术脉冲输入端 P3.6 :WR 外部数据存数器写选通信信号输出端,低电平有效 P3.7 :RD 外部数据存数器读选通信信号输出端,低电平有效2-5 51系列单片机的程序状态字PSW中存放什么信息?其中的OV标志位在什么情况下被置位?置位是表示什么意思?PSW是一个8位标志寄存器,它保存指令执行结果的特征信息,以供程序查询和判别。1)做加法时,最高位,次高位之一有进位则OV被置位 2)做减法时,最高位,次高位之一借位则OV被置位 3)执行乘法指令MUL AB,积大于255,OV=1 4)执行除法指令DIV AB,如果B中所放除数为0
12、 ,OV=10V=1,置位反映运算结果超出了累加器的数值范围2-9 片内RAM低128单元划分为哪几个区域?应用中怎么样合理有效的使用?工作寄存器区,位寻址区,数据缓冲区工作寄存器区用于临时寄存8位信息,分成4组,每组有8个寄存器,每次只用1组, 其他各组不工作位寻址区(20H2FH),这16个单元的每一位都赋予了一个位地址,位地址范围为00H7FH,位寻址区的每一位都可能当作软件触发器,由程序直接进行位处理。由于工作寄存器区,位寻址区,数据缓冲区统一编址,使用同样的指令访问,因此这三个 区既有自己独特的功能,又可统一调度使用,前两个已未使用的单元也可作为一般的用户RAM单元。2-10 51系
13、列单片机的堆栈与通用微机中的堆栈有何异同?在程序设计时,为什么要对堆栈指针SP重新赋值?堆栈是按先进后出或后进先出的远侧进行读/写的特殊RAM区域 51单片机的堆栈区时不固定的,可设置在内部RAM的任意区域内当数据压入堆栈时,SP的内容自动加1,作为本次进栈的指针,然后再存取数据SP的值随着数据的存入而增加,当数据从堆栈弹出之后,SP的值随之减少,复位时,SP的初值为07H,堆栈实际上从08H开始堆放信息,即堆栈初始位置位于工作寄存器区域内,所以要重新赋值2-13 什么是时钟周期,机器周期和指令周期?当振荡频率为6MHZ时,一条双周期指令的执行时间是多少?时钟周期:2个CPU振荡脉冲信号的周期
14、 机器周期:一个机器周期包含6个状态周期 指令周期:执行一条指令所占用的全部时间 12MHZ时,一条双周期指令周期时间为2us 6MHZ时,一条双周期指令周期时间为4us2-14 定时器/计数器定时与计数的内部工作有何异同?定时工作模式和技术工作模式的工作原理相同,只是计数脉冲来源有所不同:处于计数器工作模式时,加法计数器对芯片端子T0(P3.4)或T1(P3.5)上的输入脉冲计数;处于定时器工作模式时,加法计数器对内部机器周期脉冲计数。 2-15 定时器/计数器有四种工作方式,它们的定时与计数范围各是多少?使用中怎样选择工作方式?工作方式0:定时范围:18192us;计数值范围:18192
15、工作方式1:定时范围:165536us;计数值范围:165536 工作方式2:定时范围:1256us;计数值范围:1256 工作方式3:定时范围:1256us;计数值范围:1256通过TMOD来选择,低4位用于定时器/计数器0,高4位用于定时器/计数器1M1,M0:定时器计数器工作方式选择位2-16 定时器/计数器的门控方式与非门控方式有何不同?使用中怎么样选择哪种工作方式?初值应设置为多少(十六进制)?GATE:门控位,用于控制定时器/计数器的启动是否受外部中断请求信号的影响。GATE=1,则定时器/计数器0的启动受芯片引脚INT0(P3.2)控制,定时器/计数器1的启动受芯片引脚INT1(
16、P3.3)控制GATE=0,则定时器/计数器的启动与引脚INT0、INT1无关,一般情况下GATE=02-18 51单片机的五个中断源中哪几个中断源在CPU响应中断后可自动撤除中断请求,哪几个不能撤除中断请求?CPU不能撤除中断请求的中断源时,用户应采取什么措施?可自动撤除:计数器T0T1的溢出中断不可自动撤除:电平触发的外部中断;发送接收中断1)电平触发的外部中断:由于CPU对INTx引脚没有控制作用,也没有相应的中断请求标志位,因此需要外接电路来撤除中断请求信号。 2)串行口的发送/接收中断:当串行口发送完或接收完一帧信息时,SCON的TI,RI向CPU申请中断,响应中断后,接口电路不能自
17、动将TI或RT清0,用户需采用软件方法将TI或RT清0,来撤除中断请求信号2-21 使单片机复位有几种方式?复位后单片机的初始状态如何?上电复位,按钮复位(PC)=0000H:程序的初始入口地址为0000H (PSW) =00H:由于RS1(PSW.4)=0,RS0(PSW.3)=0,复位后单片机选择工作寄存器0组 (SP)=07H:复位后堆栈早起片内RAM的08H单元处建立 TH1、TL0、TH0、TL0:他们的内容为00H,定时器/计数器的初值为0 (TMOD)=00H:复位后定时器/计数器T0、T1定时器方式0,非门控方式 (TCON)=00H:复位后定时器/计数器T0、T1停止工作,外
18、部中断0、1为电平触发方式 (T2CON) =00H:复位后定时器/计数器T2停止工作 (SCON)=00H:复位后串行口工作在移位寄存器方式,且禁止串行口接收 (IE)=00H:复位后屏蔽所有中断 (IP)=00H:复位后所有中断源都直指为低优先级 P0P3:锁存器都是全1状态,说明复位后4个并行接口设置为输入口2-23 51单片机串行口有几种工作方式?这几种工作方式有何不同?各用于什么场合?有4种工作方式:方式0、方式1、方式2、方式3工作方式:方式0移位寄存器方式;方式1、方式2、方式3都是异步通信方式场合:方式0不用于通信,而是通过外接移位寄存器芯片实现扩展I/O口的功能;方式1用于双
19、机通信;方式2、3主要用于多机通信,也可用于双机通信第三章参考答案 3-1 何谓寻址方式?51单片机有哪几种寻址方式?这几种方式是如何寻址的?所谓寻址方式,就是CPU执行那个一条指令时怎样找到该指令所要求的操作数的方式。1)立即寻址:操作数直接出现在指令中,紧跟在操作码的后面,作为指令的一部分与操作码一起存放在程序存储器中,可以立即得到并执行,例如:MOVA,#30H指令中30H就是立即数。这一条指令的功能是执行将立即数30H传送到累加器A中的操作。2)寄存器寻址:操作数放在寄存器中,在指令中直接以寄存器的名字来表示操作数的地址。例如MOV A,R0,即将R0寄存器的内容送到累加器A中。3)寄
20、存器间接寻址方式:由指令指出某一寄存器的内容作为操作数地址的寻址方法,例如:MOV A,R1,将以工作寄存器R1中的内容为地址的片内RAM单元的数据传送到A中去。4)直接寻址: 指令中直接给出操作数所在的存储器地址,以供取数或存数的寻址方式称为 直接寻址。例如:MOV A,40H指令中的源操作数就是直接寻址,40H为操作数的地址。该指令的功能是把片内RAM地址为40H单元的内容送到A中5)变址寻址:基地址寄存器加变址寄存器间接寻址6)相对寻址:相对寻址是以当前程序计数器PC值加上指令中给出的偏移量rel,而构成实际操作数地址的寻址方法。它用于访问程序存储器,常出现在相对转移指令中。7)位寻址:
21、位寻址是在位操作指令中直接给出位操作数的地址,可以对片内RAM中的128 位和特殊功能寄存器SFR中的93位进行寻址。3-2 访问片内、片外程序存储器有哪几种寻址方式?采用基址寄存器加变址寄存器间接寻址方式MOVC A,A+DPTR MOVC A,A+PC3-3 访问片内RAM单元和特殊功能寄存器各有哪几种寻址方式?访问片内RAM有:立即寻址,寄存器寻址,寄存器间接寻址,直接寻址 特殊功能有:直接寻址3-4若要完成以下的数据传送,应如何用51的指令来完成。(1)R0的内容送到R1中。MOV A, R1 MOV R0,A(2)外部RAM的20H单元内容送R0,送内部RAM的20H单元。MOV D
22、PTR,#0020H MOVX A,DPTR MOV R0,A 3-5 试比较下列每组两条指令的区别1)MOV A,#24与MOV A,24H2)MOV A,R0与MOV A,R03)MOV A,R0与MOVX A,R04)MOV A,R1与MOVX A,DPTR1)前者为立即寻址,将立即数24H单元的内容送到A中;后者为直接寻址,将24H单元的片内RAM内容送到A中。 2)前者为直接寻址,将R0单元的内容送到A中,后者为寄存器间接寻址,将R0中的内容为地址的片内RAM单元的数据送到A中。 3)前者为寄存器间接寻址,将R0中的内容为地址的片内RAM单元的数据送到A;后者为寄存器间接寻址,将R0
23、中的内容为地址的片外RAM单元的数据送到A中。4)用R1做地址指针可寻址片内RAM的256个单元,但能访问SFR块,也可8位地址访问片外RAM的低256个地址单元(00ffH);用DPTR做地址指针,用于访问片外RAM的64KB范围(0000ffffH)(16位)。3-6已知(A)= 7AH,( B)= 02H,( R0)= 30H,( 30H)= A5H,( PSW)=80H,写出以下各条指令执行后A和PSW的内容。(1)XCH A, R0 (A)=30H,(PSW)=00H, (R0)= 7AH,(2)XCH A, 30H (A)=A5H,(PSW)=00H(3)XCH A, R0 (A)
24、=A5H,(PSW)=00H(4)XCHD A, R0 (A)=75H,(PSW)=01H(5)SWAP A (A)=A7H,(PSW)=01H(6)ADD A, R0 (A)=AAH,(PSW)=00H(7)ADD A, 30H (A)=1FH,(PSW)=81H(8)ADD A, #30H (A)=AAH,(PSW)=00H(9)ADDC A, 30H (A)=20H,(PSW)=01H (10)SUBB A, 30H (A)=D5H,(PSW)=85H(11)SUBB A, #30H (A)=4AH,(PSW)=01H(12)INC R0 (A)=7AH,(PSW)=80H;(13)MU
25、L AB (14)DIV AB 3-7 已知(A)=02H,(R1)=7FH,(DPTR)=2FFCH,(SP)=30H,片内RAM(7FH)=70H,片外RAM(2FFEH)=11H,ROM(2FFEH)=64H,试分别写出以下指令执行后目标单元的结果。1)MOVX DPTR,A2)MOVX A,R13)MOVC A,A+DPTR4)PUSH ACC1)(2FFEH)=02H 2)(A)=70H 3)(A)=(02H+2FFCH)=(2FFEH)=64H 4)(31H)=02H 3-9 DA A指令有什么作用?怎样使用? 这条指令是进行BCD码运算时,跟在ADD或ADDC指令之后,将相加后存
26、放在累加器中的结果进行修正。修正的条件和方法为:若(A03)9或(AC)=1,则(A03)+06H(A03);若(A47)9或(CY)=1,则(A47)+06H(A47)。若以上二条同时发生,或高4位虽等于9 ,但低4位修正后有进位,则应加66H修正。3-9 设(A)=83H,(R0)=17H,(17H)=34H,分析当执行下面的每条指令后目标单元的内容,及4条指令组成的程序段执行后A的内容是什么?ANL A,#17H ;与 ORL 17H,A ;或 XRL A,R0 ;异或 CPL A ;取反ANL A,#17H 10000011与00010111 = 0000 0011 ORL 17H,A
27、 00110100或00000011 = 0011 0111XRL A,R0 00110111异或 0000 0011 = 0011 0100CPL A A 1100 1000 CBH3-10 请写出达到下列要求的逻辑操作的指令,要求不得改变未涉及位的内容1)使累加器A的低位置12)清累加器A的高4位3)使A.2和A.3置14)清除A.3、A.4、A.5、A.6 SETB ACC.1;ANL A,#0FH;ORL A,#00001100BANL A,#10000111B3-11 指令LJIMP addr16与AJMP addr11的区别是什么? LJIMP addr16是长转移, LCALL的
28、作用就是将addr16直接赋给PC AJMP addr11,在当前PC的2KB范围跳转(因为addr11就是2KB), 即PC高五位不变,低十一位等于addr11。 3-12试说明指令CJNE R1, #7AH, 10H的作用。若本条指令地址为2500H,其转移地址是多少?当前地址 2500H。执行该指令后PC为2503H,加上10H后,目标地址是2513H。3-13下面执行后(SP)=42H, (A) = 40H, (B) =40H ,并解释每条指令的作用。 ORG 2000H ;起始地址为2000H MOV SP,#40H ;(SP)=40H MOV A,#30H ;(A)=30H LCA
29、LL 2500H ;调用2500H子程序 ADD A,#10H ;(A)(A)+10,(A)=40H MOV B,A ;(B)=40HHERE:SJMP HERE ORG 2500H ;起始地址为2500H MOV DPTR,#2009H ;(DPTR)=2009H PUSH DPL ;(SP)=40H+1=41H PUSH DPH ; (SP)=41H+1=42HRET ;返回3-14已知P1.7= 1, A.0= 0, C= 1, FIRST=1000H, SECOND=1020H,试写出下列指令的执行结果。(1)MOV 26H, C 1(2)CPL A.0 1(3)CLR P1.7 0(
30、4)ORL C, /P1.7 1(5)FIRST: JC SECOND (6)FIRST: JNB A.0, SECOND (7)SECOND: JBC P1.7, FIRST 3-15经汇编后,下列各条语句标号将是什么值?ORG 2000H TABLE: DS 5 WORD: DB 15, 20, 25, 30 (2005H)=15,FANG: EQU 1000H FANG=1000HBEGIN: MOV A, R0 3-16 设fosc=12MHZ,定时器/计数器0的初始化程序和中断服务程序如下:MOV TH0,#0DHMOV TL0,#0D0HMOV TMOD,#01HSETB TR0
31、: ;中断服务程序ORG 000BHMOV TH0,#0DHMOV TL0,#0D0H :RETI问:1)该定时器/计数器工作于什么方式? 2)相应的定时时间或计数值是多少? 3)为什么在中断服务程序中药重置定时器/计数器的初值?1)方式1 2)定时时间为:fosc=12MHZ Tcy=1us T=N*Tcy =(65536-x)*Tcy 定时范围:165536计数值为:N=216 -x=65536-x 计数范围为:1655363)定时器T0的溢出对外无脉冲信号,重置定时器/计数器的初值可以再形成计数脉冲3-18设有100个有符号数,连续存放在以2000H为首地址的存储区中,试编程统计其中正数、负数、零的个数。ZERO EQU 20H ;零的统计 NEGETIVE EQU 21H ;负数的统计 POSITIVE EQU 22H ;正数的统计 C
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2