单片机应用技术(张文灼)课后习题解答.doc_第1页
单片机应用技术(张文灼)课后习题解答.doc_第2页
单片机应用技术(张文灼)课后习题解答.doc_第3页
单片机应用技术(张文灼)课后习题解答.doc_第4页
单片机应用技术(张文灼)课后习题解答.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

单片机应用技术思考与练习参考答案张文灼 主编机械工业出版社26第1章1. 单片机的含义是什么?其有哪些主要特点?答:(1)单片机是指将CPU、存储器、定时/计数器、I/O接口电路和必要的外设集成在一块芯片上的微型计算机,其构成一个既小巧又很完善的计算机硬件系统,实现微机的基本功能,早期称其为单片微型计算机SCM,简称单片机。(2)体积小巧、可靠性高、控制功能强、易于扩展、低电压、低功耗、性能价格比优异。2. 简述单片机发展的历史和其主要技术发展方向。答:发展历史如下:(1)低性能8位单片机阶段 约19761978年,以Intel公司的MCS-48系列单片机为代表。(2)高性能8位单片机阶段 约19781982年,1978年Motorola公司推出M6800系列单片机,Zilog公司推出Z8系列单片机。1980年Intel公司推出了高性能的MCS-51系列单片机,并成为此时期的代表机型。(3)8位单片机提高及16位单片机推出阶段 约19821990年,8位机以MCS-51系列单片机为代表,同时16位单片机也有很大发展,如Intel公司的MCS-96系列单片机。(4)单片机全面发展阶段 约1990至今,目前单片机正朝着多品种、高速、强运算能力、大寻址范围以及小型廉价方向发展。发展趋势:(1)低功耗CMOS化、(2)低噪声与高可靠性、(3)存储器大容量化、(4)高性能化、(5)外围电路内装化、(6)增强I/O及扩展功能。3. 了解单片机常用的系列、品种,AT89C51系列单片机的主要特征是什么?略。4. 简述单片机程序存储器和数据存储器的区别与类别。答:(1)区别:程序存储器用来存放单片机的应用程序及运行中的常数数据,数据存储器用于暂存运行期间的数据、现场采集的原始数据、中间结果、运算结果、缓冲和标志位等临时数据。(2)程序存储器类别:1)掩膜ROM、2)可编程只读存储器PROM、3)紫外线擦除可编程只读存储器EPROM、4)电擦除可编程E2PROM、5)快闪存储器(3)数据存储器类别:RAM按器件制造工艺不同分为两类,分别为双极型RAM和MOS型RAM。MOS随机存储器按信息存储的方式又分为静态RAM和动态RAM两种5. 简述单片机应用系统开发的基本方法。答:(1)在线仿真开发首先利用仿真机提供给用户的系统软硬件进行设计调试(称仿真),然后试运行,若满足设计要求,则程序设计完成,不满足则继续在仿真机中修改;程序调试好后,取下仿真机,将程序固化到用户系统的单片机程序存储器并将单片机插入用户插座,开发结束。一般的仿真器自带程序固化功能,也可使用单独的编程器固化。(2)离线仿真开发对于接口电路较多的系统,又无实时在线开发设备,可先设计好硬件电路做好印制板或搭接好线路,在PC机的仿真软件中设计好程序,利用一个简易编程器即可将程序固化到单片机芯片,然后将单片机直接插入硬件电路中试运行,如有问题,拔下单片机重新固化修改后的程序,如此反复,直至成功。(3)ISP开发对于可在系统编程的单片机(如AT89S系列),可利用其串口对内部的程序存储器进行编程,不需要编程器。单片机可以直接焊接到电路板上,同PC机连机后,通过ISP程序可将用户事先编好的程序直接写入片内程序存储器中,然后运行调试,有问题然后在PC机上修改程序重新下载,调试结束即为成品。6. 将下列二进制和十六进制数转换为十进制数。(1)11011B (2)0.01B (3)10111011B (4)EBH答:(1)27 (2)0.25 (3)187 (4)2357. 将下列十进制数转换为二进制和十六进制数。(1)255 (2)127 (3)0.90625 (4)5.1875答:(1)11111111B、FFH (2)01111111B、7FH (3)0.11101B、0.E8H (4)101.0011B、5.3H8. 机器数、真值、原码、反码和补码如何表示? 答:(1)在计算机中使用的连同符号位一起数字化的数,称为机器数,机器数所表示的真实值则称为真值。(2)对有符号数,机器数常用的表示方法有原码、反码、补码三种。1)原码最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小;2)反码规定正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。3)正数的补码与其原码相同;负数的补码是在其反码的末位加1。9. 设计器字长为8位,求下列数值的二、十六进制原码、反码和补码。(1)+0 (2)-0 (3)+33 (4)-33 (5)-127答:(1)+0原= +0反=+0补=00000000 B=00H(2)-0原= 00000000 B-0反= 11111111 B-0补= 00000000 B(3)+33原= +33反=+33补=00100001 B=21H(4)-33原= 10100001 B=A1H-33反= 11011110 B=DEH-33补= 11011111 B=DEH(5)-127原= 11111111 B=FFH-127反= 10000000 B=80H-127补= 10000001 B=81H10. 把下列数看成无符号数时,对应的十进制数为多少?若把其看成有符号数的补码,对应的十进制数是多少?(1)10100001 B (2)10000000B答:看做无符号数时:(1)161(2)128;看做有符号数时:(1)-33(2)-127 11. 若要访问片外32KB的存储空间,假设每个存储单元是一个字节,计算需要多少根地址线。答:15根。第2章1. MCS-51型单片机由哪些单元组成?各自的功能是什么?答:(1)8位的CPU CPU是89C51单片机的核心,完成运算和控制功能,一次能处理8位二进制数或代码;(2)256B的内部RAM 内部RAM能作为寄存器供用户使用的只是前128个单元,用于存放可读写的临时数据,其中后128个单元被专用寄存器占用;(3)4KB的内部Flash ROM 简称内部ROM,存放程序、原始数据或表格数据;(4)2个16位的定时/计数器T0/T1 89C51共有2个16位的定时/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制;(5)4个8位并行I/O口 分别为P0、P1、P2、P3,实现数据的并行输入输出;(6)1个全双工的串行口 实现单片机和其他设备之间的串行数据传送;(7)5个中断源 包括2个外部中断,2个定时/计数中断,1个串行口发送/接收中断;(8)片内时钟振荡电路 89C51芯片允许的晶振频率一般为124MHz。2. MCS-51型单片机控制线有几根?每一根控制线的作用是什么?答:控制线有4条,功能如下:(1)ALE/ 地址锁存控制信号。在系统扩展时,ALE输出的信号用于控制把P0口输出的低8位地址锁存器锁存起来,配合P0口引脚的第二功能使用,以实现低位地址和数据的隔离。正常操作时因能按晶振频率1/6的固定频率,从ALE端发出正脉冲信号,所以有时可以加以利用,但应注意,每次访问外部数据存储器时,会少输出一个ALE脉冲。此引脚第二功能是对片内程序存储器固化程序时,作为编程脉冲输入端。(2) 外部程序存储器读选通信号。在读外部程序存储器时有效,发出低电平,可以用作对外部程序存储器的读操作选通信号。(3)/Vpp 访问程序存储控制信号。当信号为低电平时(=0),CPU只执行外部程序存储器指令;而当信号为高电平时(=1),则CPU优先从内部程序存储器执行指令,并可自动延至外部程序存储器单元。对于E2PROM型单片机(89C51)或EPROM型单片机(8751),在E2PROM或EPROM编程期间,第二功能Vpp引脚用于施加一个+12V或+21V电源。(4)RST/Vpd RST是复位信号输入端,当RST端输入的复位信号延续2个机器周期以上高电平,单片机完成复位初始化操作;第二功能Vpd是备用电源引入端,当电源发生故障电压降低到下限值时,备用电源经此端向内部RAM提供电压,以保护内部RAM中的信息不丢失。3. 何为单片机最小应用系统?答:单片机最小应用系统是指能使单片机独立工作运行的尽可能少的电路连接。4. 时钟电路的作用是什么?答:时钟电路用于产生单片机工作所需要的时钟信号,唯一的时钟信号控制下的时序可以保证单片机各部件的同步工作。5. 简述89C51的4个并行I/O端口的功能。答:89C51的并行I/O口为单片机与外部器件或设备进行信息交换提供了多功能的输入/输出通道,是单片机扩展外部功能、构成单片机应用系统的重要物理基础。4个I/O口都具有字节寻址和位寻址功能,每一位均可作为双向的通用I/O功能使用,具体如下:(1)P0口为双功能8位并行I/O口。可作通用数据I/O端口使用;在访问片外扩展的存储器时,又可作地址/数据总线分时传输低8位地址和8位数据。(2)P1口为单一功能的并行I/O口,只用作通用的数据I/O端口。(3)P2口为双功能8位并行I/O口。可作通用数据I/O端口使用,又可在访问片外扩展的存储器时用作高8位地址总线。(4)P3口为双功能8位并行I/O口,第一功能是通用数据I/O端口,还有第二功能。6. P3口的第二功能是什么?答:引脚名称功能注释引脚名称功能注释P3.0RXD串行数据接收P3.4T0定时/计数器0外部输入P3.1TXD串行数据发送P3.5T1定时/计数器1外部输入P3.2外部中断0申请P3.6外部RAM写选通P3.3外部中断1申请P3.7外部RAM读选通7. 对于任务3,编写程序实现监视开关K1,如果开关K1合上,L1灭,开关K1打开,L1亮。答:ORG 0000H START:JB P3.0,L1 SETB P1.0 SJMP START L1:CLR P1.0 SJMP START END8. MCS-51型单片机片内RAM的组成是如何划分的,各有什么功能?略,见课本2.6.2。9. MCS89C51 单片机有多少个特殊功能寄存器?其分布在何地址范围?略,见课本2.6.2。10. DPTR是什么寄存器?其作用是什么?其是由哪几个寄存器组成?答:DPTR主要是用来保存16位地址,编程时,DPTR既可以按16位寄存器使用,也可以按两个8位寄存器(DPH、DPL)分开使用。11. 简述程序状态寄存器PSW各位的含义。单片机如何确定和改变当前的工作寄存器区?略,见课本2.6.2。12. 什么是堆栈?堆栈指示器SP的作用是什么?在堆栈中存取数据时的原则是什么?答:(1)堆栈是一个特殊的存储区,设在内部RAM中,用来暂存数据和地址,按“先进后出”的原则存取数据。堆栈有入栈和出栈两种操作,用SP作为堆栈指针。(2)系统复位后SP的内容为07H,使得堆栈实际上从08H单元开始。如果需要改变,用户可以通过指令在00H-7FH中任意选择。但08H1FH单元分别属于工作寄存器13区,如程序中要用到这些区,则最好把SP值改为1FH或更大的值,堆栈最好在内部RAM的30H7FH单元中开辟。SP的内容一经确定,堆栈的底部位置即确定,由于SP可用指令初始化为不同值,因此堆栈底部位置是不确定的,栈顶最大可为7FH单元。13. MCS-51型单片机ROM空间中,0003H002BH有什么用途?用户应怎样合理安排?答:0003H002AH,共40个单元,这40个单元被均匀地分为五段,作为五个中断源的中断地址区。程序存储器特殊功能存储单元如下表所示。地址功能0000H程序执行起始地址0003H000AH外部中断0中断服务程序地址起止区000BH0012H定时/计数器0中断服务程序地址起止区0013H001AH外部中断1中断服务程序地址起止区001BH0022H定时/计数器1中断服务程序地址起止区0023H002AH串行口发送/接收中断服务程序地址起止区14. P0P3口作为输入口时,有何要求?答:4个端口都称为“准双向口”,不是真正的双向口,必须将位锁存器置“1”后,才可以读入正确信息。15. 画出MCS-51型单片机时钟电路,并指出石英晶体和电容的取值范围。答:一般电容C1和C2取30pF左右,晶体振荡频率范围是1.2MHz24MHz。 a)内部时钟 b)外部时钟16. 什么是机器周期?机器周期和时钟频率有何关系?当时钟频率为6 MHz时,机器周期是多少时间?答:单片机晶振芯片每秒振荡的次数称为时钟频率,振荡一次所需时间称为振荡周期。12个振荡周期是一个机器周期。时钟频率为6 MHz时,机器周期是2s。17. MCS-51型单片机常用的复位方法有几种?画出电路图。答:单片机常见的复位电路包括上电复位电路和按键复位电路。如下图所示。a)上电复位电路 b)按键复位电路第3章1. MCS-51单片机的指令有哪些寻址方式? 答:(1)立即寻址 (2)直接寻址 (3)寄存器寻址 (4)寄存器间接寻址 (5)基址+变址间接寻址 (6)相对寻址(7)位寻址2. 分析下面指令中源操作数的寻址方式。(1)MOV A, #0FH (2)MOV A,00H (3)MOV A,R1 (4)MOV A,R1 (5)MOVC A, A+DPTR (6)JC 80H (7)MOV C,20H (8)MOVX A,R1答:(1)MOV A, #0FH 立即寻址 (2)MOV A, 00H 直接寻址 (3)MOV A,R1 寄存器寻址 (4)MOV A,R1 寄存器间接寻址 (5)MOVC A, A+DPTR 基址+变址间接寻址 (6)JC 80H 相对寻址 (7)MOV C,20H 位寻址 (8)MOVX A,R1 寄存器间接寻址3. MCS-51单片机指令系统按功能分哪为几类?答:(1)数据传送指令(2)数据交换指令(3)算术运算类指令(4)逻辑运算类指令(5)控制转移类指令(6)位操作指令4. 在“MOVC A,A+DPTR”和“MOVC A,A+PC”中,分别使用了DPTR和PC作基址,请问这两个基址代表什么地址?使用中有何不同?答:使用A+DPTR基址变址寻址时,DPTR为常数且是表格的首地址,A为从表格首址到被访问字节地址的偏移量。使用A+PC基址变址寻址时,PC仍是下条指令首地址,而A则是从下条指令首地址到常数表格中的被访问字节的偏移量。5. 用指令实现以下数据传送过程。(1)R1的内容送R0(2)片内RAM20H单元的内容送R1(3)片外RAM20H单元的内容送片内20H单元(4)片外RAM1000H单元的内容送片内RAM20H单元(5)程序存储器2000H单元的内容送R0(6)程序存储器2000H单元的内容送片内RAM20H单元(7)程序存储器2000H单元的内容送片外RAM20H单元答:(1)R1的内容送R0 MOV A,R1MOV R0,A(2)片内RAM20H单元的内容送R1MOV R1,20H(3)片外RAM20H单元的内容送片内20H单元MOV R0,#20HMOV P0,#0HMOVX A,R0MOV 20H,A(4)片外RAM1000H单元的内容送片内RAM20H单元 MOV DPTR,#2000H MOVX A,DPTR MOV 20H,A(5)程序存储器2000H单元的内容送R0。 MOV A,#0H MOV DPTR,#2000H MOVC A,A+DPTRMOV R0,A (6)程序存储器2000H单元的内容送片内RAM20H单元。 MOV A,#0H MOV DPTR,#2000H MOVC A,A+DPTRMOV 20H,A (7)程序存储器2000H单元的内容送片外RAM20H单元。 MOV A,#0H MOV DPTR,#2000H MOVC A,A+DPTR MOV DPTR,#20H MOVX DPTR,A6. 用直接地址寻址方式、寄存器间接寻址方式、字节交换法和堆栈传递法等4种方法将内部RAM30H与31H单元的数据交换。答: 1. MOV A,30H MOV 30H,31H MOV 31H,A 2. MOV R0,#30H MOV A,R0 MOV R1,A MOV R0,#31H MOV A,R0 MOV R0,#30H MOV R0,A MOV R0,#31H MOV A,R1 MOV R0,A3. MOV A,30H XCH A,31H MOV 30H,A4. PUSH 30HPUSH 31HPOP 30HPOP 31H 7. 片内RAM 20H2FH单元中的128个位地址与直接地址00H7FH形式完全相同,如何在指令中区分出位寻址操作和直接寻址操作?答:虽然内部RAM位寻址区的位地址范围00H7FH与低128个单元的单元地址范围00H7FH形式完全相同,但是在应用中可以通过指令的类型区分单元地址和位地址。位寻址的操作只适用于下列位指令,而直接寻址操作对这些指令是无效的。MOV C,bitMOV bit,CCLR bit SETB bit CPL bit ANL C,bit ANL C,/bit JB bit,rel JNB bit,rel8. 编写一段程序,将片内RAM30H单元的内容与片外RAM30H单元的数据交换。答: MOV DPTR,#30H MOVX A,DPTR MOV R1,A MOV A,30H MOVX DPTR,A MOV 30H,R19. 设堆栈指针(SP)=60H,片内RAM中的(30H)=24H,(31H)=10H。执行下列程序段后,61H,62H,30H,31H,DPTR及SP中的内容将有何变化?PUSH 30HPUSH 31HPOP DPLPOP DPHMOV 30H, #00HMOV 31H, #0FFH答:结果为:(61H)=24H (62H)=10H (30H)=00H (31H)=0FFH (DPTR)=2410H(SP)=60H10. 说明无条件转移指令AJMP、SJMP、LJMP和JMP的功能和应用场合。答: AJMP为2KB地址范围内的的转移指令; SJMP为相对转移指令,本指令首地址加上偏移量加上2为跳转到的位置; LJMP为64KB程序存储空间的全范围转移指令,转移的地址可为16位地址中的任意值; JMP 间接转移指令。11. 设内部RAM(30H)=#5AH,(5AH)=#40H,(40H)=#00H,(P1)=#7FH,问连续执行下列指令后,各有关存储单元(即R0,R1,A,B,P1,30H,40H及5AH单元)的内容如何? MOV R0,#30H MOV A,R0 MOV R1,A MOV B,R1 MOV R1,P1 MOV A,P1 MOV 40H,#20H MOV 30H,40H 答: MOV R0,#30H ;R0=30H MOV A,R0 ;A=5AH MOV R1,A ;R1=5AH MOV B,R1 ;B=5AH MOV R1,P1 ;(5AH)=7FH MOV A,P1 ;A=7FH MOV 40H,#20H ;(40H)=20H MOV 30H,40H ;(30H)=20H12. 编制一程序,查找内部RAM202FH单元中是否有数据0AAH。若有,则将30H单元置为01H,否则将30H单元清0。答: ORG 0000H START: MOV R0,#20H MOV R2,#10H MOV 30H,#00H AGN: MOV A,R0 SUBB A,#0AAH JZ K DJNZ R2,AGN JMP K1 K: MOV 30H,#01H K1: JMP $ END13. 片内RAM40H开始的单元内有10个二进制数,编程找出其中最大值并存于50H单元中答:START:MOV R0,#40H ;数据块首地址送R0 MOV R7,#09H ;比较次数送 MOV A,R0 ;取数送LOOP:INC R0 MOV 30H,R0 ;取数送H CJNE A,30H,NEHT ;(A)与(30H)相比NEXT:JNC BIE1 (A)(30H)转BIR1 MOV A,30H ;(A)(30H),大数送ABIE1:DJNZ R7,LOOP ;比较次数减1,不为0,继续比较MOV 50H,A ;比较结束,大数送50HRET14. 编制一个循环闪烁灯的程序,画出电路图。在P0口接有8个发光二极管,要求每次其中某个灯闪烁点亮10次后,转到下一个闪烁10次,循环不止。答: P1.0 89C51 P1.7 5VD0 Q074LS240D7 Q7 本程序的硬件连接如图所示。当P1.0输出高电平时,LED灯亮,否则不亮。其程序如下: MOV A,#01H ;灯亮初值SHIFT:LCAIL FLASH ;调闪亮10次子程序 RR A ;右移一位 SJMP SHIFT ;循环FLASH:MOV R2,#0AH ;闪烁10次计数 FLASH1:MOV P1,A ;点亮 LCALL DELAY ;延时 MOV P1,#00H ;熄灭 LCALL DELAY ;延时 DJNZ R2,FLASH1 ;循环RET 15. 编程实现如下操作,不得改变未涉及到的位的内容。(1)使累加器A的最高位置“1” (2)对累加器A高4位取反(3)清除A.3、A.4、A.5(4)使A.4、A.5、A.2置“1”答:(1)SETB ACC.7 (2)XRL A, #0F0H(3)ANL A, 11000111B (4)ORL A, 00110100B16. 单项选择题,从四个备选项中选择正确的选择。(1)89C51汇编语言指令格式中,唯一不可缺少的部分是 。A标号 B操作码 C操作数 D注释(2)89C51的立即寻址方式中,立即数前面 。A应加前缀“/:”号 B不加前缀号 C应加前缀“”号 D应加前缀“#”号(3)下列完成89C51单片机内部数据传送的指令是 。AMOVX A,DPTR BMOVC A, A+PCCMOV A,#data DMOV dir,dir(4)89C51的立即寻址的指令中,立即数就是 。A放在寄存器R0中的内容 B放在程序中的常数 C放在A中的内容 D放在B中的内容(5)单片机中PUSH和POP指令常用来 。A保护断点 B保护现场 C保护现场,恢复现场 D保护断点,恢复断点 (6)89C51寻址方式中,操作数Ri加前缀“”号的寻址方式是 。A寄存器间接寻址 B寄存器寻址 C基址加变址寻址 D立即寻址(7)执行指令MOVX A,DPTR时,、脚的电平为 。A高电平,高电平 B低电平,高电平C高电平,低电平 D低电平,低电平(8)下列指令判断若P1口最低位为高电平就转LP,否则就执行下一句的是 。AJNB P1.0,LP BJB P1.0,LP CJC P1.0,LP DJNZ P1.0,LP(9)下列指令中比较转移指令是指 。ADJNZ Rn,rel BCJNE Rn,#data,rel CDJNZ dir,rel DJBC bit,rel (10)指令MOV R0, 20H执行前(R0)=30H,(20H)=38H,执行后(R0)= 。A20H B30H C50H D38H(11)执行如下三条指令后,30H单元的内容是 。MOV R1,#30H MOV 40H,#0EHMOV R1,40HA40H B0EH C30H DFFH(12)89C51单片机在执行MOVX A,DPTR或MOVC A,A+DPTR指令时,其寻址单元的地址是由 。AP0口送高8位,P1口送高8位 BP0口送低8位,P2口送高8位CP0口送低8位,P1口送低8位 DP0口送高8位,P1口送低8位(13)在89C51指令中,下列指令中 是无条件转移指令。ALCALL addr16 BDJNZ dir,rel CSJMP rel DACALL addr11(14)设A=AFH (20H)=81H,指令:ADDC A, 20H执行后的结果是 。AA=81H BA=30H CA=AFH DA=20H(15)将内部数据存储单元的内容传送到累加器A中的指令是 。AMOVX A,R0 BMOV A, #data CMOV A,R0 DMOVX A, DPTR(16)下列指令执行时,修改PC中内容的指令是 。ASJMP BLJMP CMOVC A, A+PC DLCALL(17)已知:A=D2H,(40H)=77H,执行指令:ORL A,40H后,其结果是: 。AA=77H BA=F7H CA=D2H D以上都不对(18)指令MUL AB 执行前(A)=18H ,(B)=05H,执行后,A、B的内容是 。A90H,05H B90H,00H C78H,05H D78H,00H(19)89C51指令系统中,清0指令是 。ACPL A BRLC A CCLR A DRRC A(20)89C51指令系统中,指令ADDC A,R0 执行前(A)=38H,(R0)=30H,(30H)=FOH,(C)=1 执行后,其结果为 。A(A)=28H (C)=1 B(A)=29H (C)=1 C(A)=68H (C)=0 D(A)=29H (C)=0(21)下列指令能能使累加器A低4位不变,高4位置F的是 。AANL A,#OFH BANL A,#OFOH CORL A,#OFH DORL A,#OF0H(22)下列指令判断若P1口的最低位为低电平就转LP,否则就执行下一句的是 。AJNB P1.0,LP BJB P1.0,LP CJC P1.0,LP DJNZ P1.0,LP (23)89C51指令系统中,指令DA A应跟在 。A加法指令后 BBCD码的加法指令后 C减法指令后 DBCD码的减法指令后(24)执行下列程序后,累加器A的内容为 。ODG 0000HMOV A,#00HADD A,#02HMOV DPDR,#0050HMOVC A,A+DPDRMOV R0,ASJMP $ORG 0050HBAO:DB 00H,08H,0BH,06H,09H,0CHENDA00H B0BH C06H D0CH(25)指令MOV R0,#20H执行前(R0)=30H,(20H)=38H,执行后(R0)= 。A00H B20H C30H D38H答:12345678910111213141516171819202122232425BDCBCACBBBDABCBCCBDCAABBB第4章1. 何为伪指令?其作用是什么?答:伪指令不属于指令集之中的指令,但具有和指令类似的形式,其作用是对汇编过程进行某种控制或提供某些汇编信息,不产生可执行的目标代码。2. 89C51常用的汇编语言伪指令有哪些? 各自的作用是什么?答:见课本4.1.2。3. 程序设计的几种基本结构是什么?答:任何汇编语言源程序都可由顺序结构、分支结构、循环结构及子程序结构组成。4. 汇编语言程序设计分哪几个步骤?每个步骤的主要任务是什么?答:(1)题意分析 熟悉并了解汇编语言指令的基本格式和主要特点,明确被控对象对软件的要求,设计出算法等。(2)画出程序流程图 程序流程图也称为程序框图,是根据控制流程设计的,其可以使程序清晰,结构合理,按照基本结构编写程序,便于调试。编写较复杂的程序,画出程序流程图是十分必要的。(3)分配内存工作区及有关端口地址 分配内存工作区,根据程序区、数据区、暂存区、堆栈区等预计所占空间大小,对片内外存储区进行合理分配并确定每个区域的首地址,便于编程使用。(4)编制汇编源程序。(5)仿真调试程序并不断修正。5. 编写汇编语言程序实现功能:利用89C51的P1口,监测某一按键开关,使每按键一次,输出一个正脉冲(脉宽随意)。答: ORG 0100H ABC:SETB P1.0SETB P1.7JB PI.7,$JNB P1.7,$CLR P1.0MOV R2,#0 DAY: NOPNOPDJNZ R2,DAYSJMP ABC6. 设有两个4位BCD码,分别存放在片内RAM的23H,22H单元和33H,32H单元中,求它们的和,并送入43H,42H单元中去。(以上均为低位字节,高位在高字节)。 答:ORG 0000HLJMP STARTORG 0030HSTART:MOV A,22HADD A,32HDA AMOV 42H,AMOV A,23HADDC A,33HDA AMOV 43H,ASJMP $END7. 编程计算片内RAM区30H37H的8个单元中数的算术平均值,结果存在3AH单元中。答:ORG 0000HLJMPMAINORG 0030HMAIN:MOV R0,#30HMOV R1,#00HMOV R2,#00HMOV R3,#07HLP2:MOV A,R0ADD A,R2MOV R2,AJNC LP1INC R1LP1:INC R0DJNZ R3,LP2MOV R3,#03HLP3:CLR CMOV A,R1RRC AMOV R1,AMOV A,R2RRC AMOV R2,ADJNZ R3,LP3MOV 3AH,R2SJMP $END8. 试编写程序实现:利用89C51的P1口控制8个发光LED,相邻的4个LED为一组,使2组每隔0.5s交替发亮一次,周尔复始。答: ORG 0100H MOV A,#0FHABC: MOV P1,A ACALL D05 SWAP A SJMP ABCD05:MOV R6,250DY: MOV R7,250DAY:NOP NOP DJNZ R6,DAY DJNZ R7,DAY RET END 9. 编写子程序START,实现将片内RAM 30H单元开始的15个的数据传送到片外RAM3000H开始的单元中去。解:STRAT:MOV R0,#30H MOV R7,#0FH MOV DPTR,#3000HLOOP: MOV A,R0 MOVX DPTR,A INC R0 INC DPTR DJNZ R7,LOOP RET第5章1. 什么是中断?单片机采用中断有什么好处?答:在单片机中,当CPU在执行程序时,由单片机内部或外部的原因引起的随机事件要求CPU暂时停止正在执行的程序,而转向执行一个用于处理该随机事件的程序,处理完后又返回被中止的程序断点处继续执行,这一过程称为中断。单片机在某一时刻只能处理一个任务,当多个任务同时要求单片机处理时,由于资源有限,因此就可能出现资源竞争的局面,即几项任务来争夺一个CPU。而中断技术就是解决资源竞争的有效方法,采用中断技术可以使多项任务共享一个资源。2. T0用做定时器,以方式0工作,定时10ms,单片机晶振频率为6MHZ,请计算定时初值。答:根据公式 T=12(213-a)/fosc得a=213- foscT/12=213-5000=31923. 单项选择题,从四个备选项中选择正确的选择。(1)89C51单片机的定时器T1用作定时方式时是 。A由内部时钟频率定时,一个时钟周期加1B由内部时钟频率定时,一个机器周期加 1C由外部时钟频率定时,一个时钟周期加1D由外部时钟频率定时,一个机器周期加1(2)89C51单片机的定时器T0用作计数方式时是 。 A由内部时钟频率定时,一个时钟周期加1B由内部时钟频率定时,一个机器周期加1C由外部计数脉冲计数,下降沿加1D由外部计数脉冲计数,一个机器周期加1(3)89C51单片机的定时器T1用作计数方式时计数脉冲是 。A外部计数脉冲由T1(P3.5)输入 B外部计数脉冲由内部时钟频率提供C外部计数脉冲由T0(P3.4)输入 D由外部计数脉冲计数(4)89C51单片机的机器周期为2s,则其晶振频率fosc为 MHz.A1 B 2 C6 D12(5)用89C51的定时器T1作定时方式,用模式1,则初始化编程为 。AMOV TOMD,#01H BMOV TOMD,#50H CMOV TOMD,#10H DMOV TCON,#02H (6)用89C51的定时器,若用软启动,应使TOMD中的 。AGATE位置1 BC/T位置 1 CGATE位置0 DC/T位置0(7)启动定时器1开始定时的指令是 。ACLR TR0 BCLR TR 1 CSETB TR0 DSETB TR1(8)使89C51的定时器T0停止计数的指令是 。ACLR TR0 BCLR TR 1 CSETB TR0 DSETB TR1(9)下列指令判断若定时器T0计满数就转LP的是 。AJB T0,LP BJNB TF0,LP CJNB TR0, LP DJB TF0,LP (10)下列指令判断若定时器T0未计满数就原地等待的是 。AJB T0,$ BJNB TF0,$ CJNB TR0,$ DJB TF0,$ (11)当CPU响应定时器T1的中断请求后,程序计数器PC的内容是 。A0003H B000BH C00013H D001BH(12)当CPU响应外部中断0的中断请求后,程序计数器PC的内容是 。A0003H B000BH C00013H D001BH(13)89C51单片机在同一级别里除串行口外,级别最低的中断源是 。A外部中断1 B定时器T 0 C定时器T1 D串行口(14)当外部中断0发出中断请求后,中断响应的条件是 。ASETB ET0 BSETB EX 0 CMOV IE,#81H DMOV IE,#61H (15)当定时器T0发出中断请求后,中断响应的条件是 。ASETB ET0 BSETB EX 0 CMOV IE,#82H DMOV IE,#61H (16)用定时器T1方式1计数,要求每计满10次产生溢出标志,则TH1、TL1的初始值是 。AFFH、F6H BF6H、F6H CF0H 、F0H DFFH、F0H(17)89C51单片机的TMOD用于控制T1和T0的操作模式及工作方式,其中表示的是 。A门控位

温馨提示

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

评论

0/150

提交评论