当前位置:文档之家› (完整版)单片机课后习题答案解析

(完整版)单片机课后习题答案解析

一)填空题1.十进制数14对应的二进制数表示为(1110B),十六进制数表示为(0EH。

十进制数-100的补码为(9CH,+100的补码为(64H)。

2. 在一个非零的无符号二进制整数的末尾加两个0后,形成一个新的无符号二进制整数,则新数是原数的(4)倍。

3. 8位无符号二进制数能表示的最大十进制数是(255)。

带符号二进制数11001101转换成十进制数是(-51 )。

4. 可以将各种不同类型数据转换为计算机能处理的形式并输送到计算机中去的设备统称为(输入设备)。

5. 已知字符D的ASCII码是十六进制数44,则字符T的ASCII码是十进制数(84)。

6. 若某存储器容量为640KB则表示该存储器共有(655360)个存储单元。

7. 在计算机中,二进制数的单位从小到大依次为(位)、(字节)和(字),对应的英文名称分别是(bit )、(Byte )和(Word。

8. 设二进制数A=10101101 B=01110110 则逻辑运算A V B= (11111111),A A B= (00100100),A® B= (11011011)。

9. 机器数01101110的真值是(+110),机器数01011001的真值是(+89),机器数10011101 的真值是(+157或-115),机器数10001101的真值是(+206或-50)。

(二)单项选择题1. 用8位二进制补码数所能表示的十进制数范围是(D)(A)-127 ~ +127 (B)-128 ~ +128(C)-127 ~ +128 (D)-128 ~ +1272. 下列等式中,正确的是(B)(A) 1 KB = 1024 X 1024 B (B)1 MB = 1024 X 1024 B(C) 1 KB = 1024M B (D) 1 MB = 1024 B3. 程序与软件的区别是(C)(A)程序小而软件大(B)程序便宜而软件昂贵(C)软件包括程序(D)程序包括软件4. 存储器中,每个存储单元都被赋予惟一的编号,这个编号称为(A)(A)地址(B)字节(C)列号(D)容量5. 8位二进制数所能表示的最大无符号数是(B)(A)255 (B)256 (C)128 (D)1276. 下列4个无符号数中,最小的数是(B)(A)11011001 (二进制)(B)37 (八进制)(C)75 (十进制)(D)24 (十六进制)7. 下列字符中,ASCII码最小的是(B)(A)a (B) A (C)x (D)X8. 下列字符中,ASCII码最大的是(C)(A)a (B) A (C)x (D)X9. 有一个数152,它与十六进制数6A相等,那么该数是(B)(A)二进制数(B)八进制数(C)十进制数(D)十六进制数第2章80C5单片机的硬件结构(一)填空题1. 通过堆栈实现子程序调用,首先要把(PC的内容入栈,以进行断点保护。

调用返回时再进行出栈操作,把保护的断点送回(PC。

2. 80C51单片机的时钟电路包括两部分内容,即芯片内的(高增益反相放大器反相器)和芯片外跨接的(石英晶体振荡器晶振)与(两个微调电容)。

若调高单片机的晶振频率,则单片机的机器周期会变(短)。

3. 通常单片机有两种复位操作,即(上电复位)和(手动复位)。

复位后,PC 值为(0000H),SP fi%(07H),通用寄存器的当前寄存器组为(第0)组,该组寄存器的地址范围是从(00H到(07H)。

4. 80C51单片机中,一个机器周期包含(6)个状态周期,一个状态周期又可划分为(2)个拍节,一个拍节为(1)个振荡脉冲周期。

因此,一个机器周期应包含(12)个振荡脉冲周期。

5. 80C51中惟一一个可供用户使用的16位寄存器是(DPTR,它可拆分为两个8 位寄存器使用,名称分别为(DPH和(DPL 。

6. 单片机程序存储器的寻址范围由PC勺位数决定。

80C51的PC为16位,因此程序存储器地址空间是(64 KB)0(二)单项选择题1. 下列概念叙述正确的是(D)(A)80C5仲共有5个中断源,因此在芯片上相应地有5个中断请求输入引脚(B)特殊的存取规则使得堆栈已不是数据存储区的一部分(C)可以把PC看成是数据存储空间的地址指针(D)CPU中反映程序运行状态和运算结果特征的寄存器是PSW2. 取指操作后,PC勺值是(C)(A)当前指令前一条指令的地址(B)当前正在执行指令的地址(C)下一条指令的地址(D)控制寄存器中指令寄存器的地址3. 80C51单片机中,设置堆栈指针SP为37H后就发生子程序调用,这时SP的值变为(C)(A)37H (B)38H (C)39H (D)3AH4. 设置堆栈指针SP= 30H后,进行一系列的堆栈操作。

当进栈数据全部弹出后,SP应指向(A)(A)30H单元(B)07H单元(C)31H单元(D)2FH单元5. 下列关于堆栈的描述中,错误的是(C)(A)80C51的堆栈在内部RAM中开辟,所以SP只需8位就够了(B)堆栈指针SP的内容是堆栈栈顶单元的地址(C)在80C51中,堆栈操作过程与一般RA单元的读/写操作没有区别(D)在中断响应时,断点地址自动进栈6. 在单片机芯片内设置通用寄存器的好处不应该包括(A)(A)提高程序运行的可靠性(B)提高程序运行速度(C)为程序设计提供方便(D)减小程序长度7. 下列叙述中正确的是(D)(A)SP内装的是堆栈栈顶单元的内容(B)在中断服务程序中没有PUSH和POP指令,说明此次中断操作与堆栈无关(C)在单片机中配合实现“程序存储自动执行”的寄存器是累加器(D) 两数相加后,若A 中数据为66H,则PSW 中最低位的状态为0第3章80C51单片机指令系统(一)填空题1•假定累加器A 中的内容为30H,执行指令“ 1000H MOVC A, @A+PC 后,会把程序存储器(1031H)单元的内容送累加器Ao2. 假定(A ) =85H, ( R0) =20H, (20H) =0AFH 执行指令“ ADD A, @R0后,累加器A 的内容为(34H) , CY 的内容为(1) , AC 的内容为(1) , OV 的内容为(1)o3. 执行如下指令序列后,所实现的逻辑运算式为(P3.0 P1.0 P1.1 P1.2) MOV C, P1.0 ANL C, P1.1 ANL C, /P1.2 MOV P3.0, C4. 假定addr1仁00100000000B 标号qaz 的地址为1030H,执行指令“ qaz: AJMP addr11 ”后,程序转移到地址(1100H )去执行。

5. 累加器A 中存放着一个其值小于或等于127的8位无符号数,CY 清0后执 行“ RLC A'指令,则A 中的数变为原来的(2)倍。

6. 已知A=7AH R0=30H ( 30H) =A5H , PSW=80H 请按要求填写各条指令 的执行结果(每条指令均按已给定的原始数据进行操作)。

XCH A, R0 A= (30H ), R0= (7AH XCH A, 30H A= (0A5H XCH A, @R0 A=( 0A5H XCHD A, @R0 A=(75H) SWAP A A=( 0A7HADD A, R0 A= (0AAH , CY=(0), OV=( 1) ADD A, 30H A= ( 1FH ) , CY=( 1), OV=(0) ADD A, #30H A= (0AAH , CY=( 0), OV=( 1) ADDC A, 30H A= ( 20H ), CY=( 1), OV=(0) SUBB A, 30H A= (0D4H , CY=( 1), OV=( 1) SUBB A, #30H A= ( 49H ), CY= (0), OV=(0)F 列指令或指令序列中,不能实现PSV 内容送A 的是(C ) (B) MOV A, 0D0H (D ) PUSH PSW POP ACC“相对”两字是指相对于(C )(B) 当前指令的首地址(C)下一条指令的首地址 (D ) DPT 值(二)单项选择题1.(A ) MOV A, PSW (C ) MOV R0, 0D0HMOV A,@R0 2.在相对寻址方式中, (A )地址偏移量rel3. 下列指令或指令序列中,能将外部数据存储器3355H单元内容传送给A的是(B)(A)MOVX A, 3355H(B)MOV DPTR, #3355H MOVX A, @ DPTR(C)MOV PO, #33H (D)MOV P2, #33HMOV RO, #55H MOV R2, #55HMOVX A, @ RO MOVX A, @ R24. 对程序存储器的读操作,只能使用(D)(A)MOV指令(B)PUSH指令(C)MOV 指令(D)MOV指令5. 执行返回指令后,返回的断点是(C)(A)调用指令的首地址(B)调用指令的末地址(C)调用指令的下一条指令的首地址(D)返回指令的末地址6. 以下各项中不能用来对内部数据存储器进行访问的是(A)(A)数据指针DPTR(B)按存储单元地址或名称(C)堆栈指针SP (D)由R0或R1作间址寄存器(三)其他类型题1.判断下列指令的合法性(合法打“V”,非法打“X”)MOV A, @R2 (X)MOV R0, R1(X)INC DPTR (V)MOV PC, #2222H(X) DEC DPTR(X)RLC R0(X)MOV 0E0H, @R0(V) CPL R5 (X)CLR R0(X)CPL F0H (X)PUSH DPTR(X)POP 30H(V)MOVX A, @R1 (V)MOV A, 1FH(V)MOV C, 1FH (V)MOV F0, ACC.3 (X) MOV F0, C(V)MOV P1, R3 (VMOV DPTR, #0FCH X) CPL 30H(V)PUSH R0(X)MOV C, #0FFH (X) MOV A, #0D0H (V)2. 利用位操作指令序列实现下列逻辑运算。

(1)D=(10H P1.0) (11H CY)MOV C, P1.0ORL C, /10HMOV F0, CORL C, 11HANL C, F0MOV D, C(2)E=ACC.2 P2.7 ACC.1 P2.0MOV C, ACC.2ANL C, P2.7ORL C, ACC.1ANL C, P2.0MOV E, C3. 编写程序将内部RAM 20H ~ 23H单元的高4位写1, 分析:就是把内部ORG 0000HMOV R0, #20H 低4位写0。

用一个DJNZ勺循环。

RAM 20H ~ 23H这4个单元写入0F0H指向20H单元;R0MOV R1, #04H ; 4 个单元LOOP: MOV @R0, #0F0H ;写入INC R0DJNZ R1, LOOP ; 循环4 次END4. 在m ffi m+单元中存有两个BC数,将他们合并到m单元中,编写程序完成ORG 0030HMOV R0, #mMOV A, @R0 ; 将m单元中的BCD数送入累加器AANL A, #0FH ; 把m单元的高4位清0SWAP A ; 将m单元中的BCD数移入高4位MOV @R0, A ; m 单元高4位为BCD数,低4位为0INC R0 ; 指向m+单元MOV A, @R0 ; 将m+单元中的BCD数送入累加器AANL A, #0FH ; 把m+单元的高4位清0DEC R0 ; 指向m单元ORL A, @R0 ; 将和m+单元和m单元内容合并MOV @R0, A ; 合并后结果送m单元END5. 将内部RAI中从data单元开始的10个无符号数相加,其和送sum单元。

相关主题