1、单片微机原理与接口技术答案宋跃版汇总第1章 思考题及习题参考答案1.1写出下列二进制数的原码、反码和补码(设字长为8位)。(1)001011 (2)100110(3)-001011 (4)-111111答:(1)原码:00001011 反码:00001011 补码:00001011(2)原码:00100110 反码:00100110 补码:00100110(3)原码:10001011 反码:11110100 补码:11110101(4)原码:10111111 反码:11000000 补码:110000011.2已知X和Y,试计算下列各题的X+Y补和X-Y补(设字长为8位)。(1) X=1011
2、 Y=0011(2) X=1011 Y=0111 (3) X=1000 Y=1100 答:(1)X补码=00001011 Y补码=00000011 Y补码=11111101X+Y补=00001110 X-Y补=00001000(2)X补码=00001011 Y补码=00000111 Y补码=11111001X+Y补=00010010 X-Y补=00000100(3)X补码=00001000 Y补码=00001100 Y补码=11110100X+Y补=00010100 X-Y补=111111001.3 微型计算机由那几部分构成?答:微型计算机由微处理器、存储器和I/O接口电路构成。各部分通过地址
3、总线(AB)、数据总线(DB)和控制总线(CB)相连。1.4 8086的寻址范围有多大?其物理地址是如何形成?答:8086有20根地址总线,它可以直接寻址的存储器单元数为1M字节,其地址区域为00000HFFFFFH。物理地址是由段地址与偏移地址共同决定的,物理地址=段地址16+偏移地址其中段地址通常来自于段寄存器CS ,物理地址来自于IP。1.5 什么叫单片机?它有何特点? 答:单片机就是在一块硅片上集成了CPU、RAM、ROM、定时器/计数器和多种I/O口(如并行、串行及A/D变换器等)的一个完整的数字处理系统。单片机主要特点有:品种多样,型号繁多;存储容量大;频率高,速度快;控制功能强,
4、集成度高;功耗低;配套应用软件多。第2章 思考题及习题参考答案:2.1.说明ROM、EPROM、EEPROM和FLASH之间的主要区别解:ROM为只读存储器,在一般情况下只能读出所存信息,而不能重新写入。信息的写入是通过工厂的制造环节或采用特殊的编程方法进行的,一旦写入,就能长期保存。EPROM芯片一般允许用户多次编程和擦除。擦除时,通过向芯片窗口照射紫外光的方法来进行。 EEPROM,也称E2PROM。该类芯片允许用户多次编程和擦除。擦除时,可采用加电方法在线进行。FLASH是一种新型的大容量、速度快、电可擦除可编程只读存储器。2.2.EPROM、PROM、动态RAM、静态RAM等存储器中,
5、哪几类是可以随时读写的?解:动态RAM、静态RAM这几类是可以随时读写的。2.3 某ROM芯片中有12根地址输入端和8个数据输出端,该芯片的存储容量是多少位?解:芯片的存储容量是4K*8位。2.4.说明动态RAM和静态RAM的主要区别,使用时应如何选用?解:静态(static)RAM,即SRAM。它以触发器为基本存储单元,所以只要不掉电,其所存信息就不会丢失。该类芯片的集成度不如动态RAM,功耗也比动态RAM高,但它的速度比动态RAM快,也不需要刷新电路。在构成小容量的存储系统时一般选用SRAM。在微型计算机中普遍用SRAM构成高速缓冲存储器。 动态(Dynamic)RAM,即DRAM。一般用
6、MOS型半导体存储器件构成,最简单的存储形式以单个M0S管为基本单元,以极间的分布电容是否持有电荷作为信息的存储手段,其结构简单,集成度高。但是,如果不及时进行刷新,极间电容中的电荷会在很短时间内自然泄漏,致使信息丢失。所以,必须为它配备专门的刷新电路。动态RAM芯片的集成度高、价格低廉,所以多用在存储容量较大的系统中。目前,微型计算机中的主存几乎都是使用动态RAM。 2.5.说明NOR FLASH与NAND FLASH的主要区别,使用时应如何选用?解:NOR Flash具有以下特点:(1) 程序和数据可存放在同一芯片上,拥有独立的数据总线和地址总线,能快速随机读取,允许系统直接从Flash中
7、读取代码执行,而无需先将代码下载至RAM中再执行;(2) 可以单字节或单字编程,但不能单字节擦除,必须以块为单位或对整片执行擦除操作,在对存储器进行重新编程之前需要对块或整片进行预编程和擦除操作。但是NOR Flash的擦除和编程速度较慢,块尺寸又较大,因此擦除和编程操作所花费的时间很长,在纯数据存储和文件存储的应用中,NOR技术显得力不从心。NAND Flash具有以下特点:(1) 以页为单位进行读和编程操作,1页为256或512B(字节);以块为单位进行擦除操作,1块为4K、8K或16KB。具有快编程和快擦除的功能,其块擦除时间是2ms;而NOR技术的块擦除时间达到几百ms。(2) 数据、
8、地址采用同一总线,实现串行读取。随机读取速度慢且不能按字节随机编程。(3) 芯片尺寸小,引脚少,是位成本(bit cost)最低的固态存储器,将很快突破每兆字节1美元的价格限制。(4) 芯片包含有失效块,其数目最大可达到335块(取决于存储器密度)。失效块不会影响有效块的性能,但设计者需要将失效块在地址映射表中屏蔽起来。NOR Flash具有可靠性高、随机读取速度快的优势,在擦除和编程操作较少而直接执行代码的场合,尤其是纯代码存储的应用中广泛使用,如PC的BIOS固件、移动电话、硬盘驱动器的控制存储器等。 NAND Flash结构的闪速存储器适合于纯数据存储和文件存储,主要作为SmartMed
9、ia卡、CompactFlash卡、PCMCIA ATA卡、固态盘的存储介质,并正成为闪速磁盘技术的核心。 2.6.现有2K8位的RAM芯片若干片,若用线选法组成存储器,有效的寻址范围最大是多少KB?若用3-8译码器来产生片选信号,则有效的寻址范围最大又是多少?若要将寻址范围扩展到64KB,应选用什么样的译码器来产生片选信号?解:以8086为例,8086有20条地址线,用11条地址线寻址一片2K8位的RAM,余下的9条地址线做线选法的线,故可以并联9个芯片,故寻址最大范围是20KB,若用3-8译码器来产生片选信号,9条地址线可以控制3个3-8译码器这样就可以控制24个芯片最大范围是50KB.
10、若要将寻址范围扩展到64KB可选用4-16地址译码器来产生片选信号。2.7.什么是地址重叠区?它对存储器扩展有什么影响?解:基本地址和前面全译码连接的地址范围是相同的,但两者还是有区别的。区别在于全译码连接时各芯片的地址是唯一的,而部分译码连接时各芯片地址不是唯一的,也就是可以由若干个地址都选中同一芯片的同一单元,既所谓的地址重叠区。由于存在的地址重叠,影响了地址区的有效使用,也限制了存储器的扩展。因此,在选用部分译码时,也要尽可能多选一些高位地址线来作为译码器的输入。2.8如图2-22若用1K8位片子来扩展3K8位RAM,试核算各片的地址范围为多少?解:A15 A14 A13 A12 A11
11、 A10 A9 A8 A7A6A5A4 A3A2A1A0 地址G1 A B C 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 片1:A000H1 0 1 0 0 0 11 1 1 1 1 1 1 1 1 片1:A3FFHA15 A14 A13 A12 A11 A10 A9 A8 A7A6A5A4 A3A2A1A0 地址G1 A B C 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 片2:B000H1 0 1 1 0 0 11 1 1 1 1 1 1 1 1 片2:B3FFHA15 A14 A13 A12 A11 A10 A9 A8 A7A6A5A4 A3A2
12、A1A0 地址G1 A B C 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 片3:B400H1 0 1 1 0 1 11 1 1 1 1 1 1 1 1 片3:B7FFH所以各片地址范围为:片1:A000H-A3FFH, 片2:B000H-B3FFH, 片3:B400H-B7FFH2.9. 现有8K8位RAM多片,1片3-8译码器,要构成容量为16K8位的存储器,请用线译码、部分译码、全译码3种方式分别设计,画出连接图,并指出寻址范围。解:线译码法: 寻址范围:2000H5FFFH部分译码寻址范围:0000H3FFFH全译码:寻址范围:0000HFFFFH2.10.如何检查
13、扩展的RAM工作是否正常?试编一个简单的RAM检查程序,要求此程序能记录有多少个RAM单元工作有错?且能记录出错的单元地址。解:TEST_CONST EQU 5AHTEST_RAM EQU 03H ORG 0000HLJMP INITIAL ORG 0050HINITIAL: MOV R0,#253 MOV R1,#3HTEST_ALL_RAM: MOV R2,#0FFHTEST_ONE_RAM: MOV A, R2 MOV R1,A CLR A MOV A,R1 CJNE A,2H, ERROR_DISPLAY DJNZ R2, TEST_ONE_RAM INC R1 DJNZ R0, TE
14、ST_ALL_RAMOK_DISPLAY: MOV P1, #11111110B WAIT1: SJMP WAIT1ERROR_DISPLAY: MOV A, R1 MOV P1,AWAIT2: SJMP WAIT2END第3章 思考题及习题参考答案3.1. 80C51单片机的P0P3口在通用I/O口时操作要注意哪些?P0P3口不做通用I/O口时是什么功能?在使用上有何特点? P0P3驱动能力如何?答:(1)作为通用I/O口时,P0P3都是准双向口,输入引脚信息时都必须先向其锁存器写“1”,作为输出口时P0口需结上拉电阻。(2)P0可以作为地址/数据总线;P2口可以作为地址线的高8位;P3口是
15、双功能口,每条口线还具有不同的第二功能。(3)P0口的驱动能力为8个TTL负载,而其它口仅可驱动4个TTL负载。3.2、MCS-51单片机运行出错或程序进入死循环,如何摆脱困境?答:通过复位电路复位3.3、单片机的复位(RST)操作有几种方法,复位功能的主要作用是什么?答:单片机的复位操作方式有:1、上电复位;2、手动复位。复位功能的主要作用是:复位时,PC初始化为0000H,使MCS-51单片机从0000H开始执行程3.4、简述程序状态寄存器PSW寄存器中各位的含义。答:程序状态字寄存器PSW,8位。其各位的意义为:CY:进位、借位标志。有进位、借位时CY=1,否则CY=0;AC:辅助进位、
16、借位标志(高半字节与低半字节间的进位或借位);F0:用户标志位,由用户自己定义;RS1、RS0:当前工作寄存器组选择位,共有四组:00、01、10、11;OV:溢出标志位。有溢出时OV=1,否则OV=0;P:奇偶标志位。存于累加器ACC中的运算结果有奇数个1时P=1,否则P=0.3.5、80C51单片机的当前工作寄存器组如何选择?答:由特殊功能寄存器中的程序状态寄存器PSW的RS1、RS0来决定,当RS1、RS0为00时,选择0组;为01时,选择1组;为10时选择2组,为11时选择3组。3.6. 80C51单片机的控制总线信号有哪些?各信号的作用如何?答:80C51单片机的控制总线信号有以下4
17、个,各信号的作用为:RST/VPD: 复位信号输入引脚/备用电源输入引脚;ALE/PROG: 地址锁存允许信号输出引脚/编程脉冲输入引脚;EA/Vpp : 内外存储器选择引脚/片内EPROM(或FlashROM)编程电压输入引脚;PSEN:外部程序存储器选通信号输出引脚。3.7、8051单片机中EA引脚的作用是什么?答:访问内部或外部程序存储器的选择端当EA接高电平的时候程序从内部ROM开始执行,当EA为低电平的时候,从外部ROM开始执行3.8、 程序计数器PC的作用是什么?答:程序计数器PC是一个16位的计数器,他总是存放着下一个要取的指令的16位存储单元地址。用来存放下一条指令的地址用来存
18、放下一条指令的地址的。当执行一条指令时,首先需要根据PC中存放的指令地址,将指令由内存取到指令寄存器中,此过程称为“取指令”。与此同时,PC中的地址或自动加1或由转移指针给出下一条指今的地址。此后经过分析指令,执行指令。完成第一条指令的执行,而后根据PC取出第二条指令的地址,如此循环,执行每一条指令3.9、堆栈有哪些功能?堆栈指示器( SP)的作用是什么?在程序设计时,为什么要对 SP重新赋值?答:堆栈在中端过程中用来保护现场数据,复位后SP=7H,而堆栈一般设置在通用ROM区(30H-7FH),在系统初始化时候要从新设置。3.10、内部 RAM低 128单元划分为哪 3个主要部分?说明各部分
19、的使用特点。 答:80C51内部128B的数据RAM区,包括有工作寄存器组区、可直接位寻址区和数据缓冲区。各区域的特性如下:(1) 00H1FH为工作寄存器组区,共分4组,每组占用8个RAM字节单元,每个单元作为一个工作寄存器,每组的8个单元分别定义为8个工作寄存器R0R7。当前工作寄存器组的选择是由程序状态字PSW的RS1、RS0两位来确定。如果实际应用中并不需要使用工作寄存器或不需要使用4组工作寄存器,不使用的工作寄存器组的区域仍然可作为一般数据缓冲区使用,用直接寻址或用Ri的寄存器间接寻址来访问。(2) 20H2FH为可位寻址区域,这16个字节的每一位都有一个地址,编址为00H7FH。当
20、然,位寻址区也可以用作字节寻址的一般数据缓冲区使用。(3)30H7FH为堆栈、数据缓冲区。3.11、简述MCS-51单片机存储区的划分。答:MCS-51单片机的存储器从物理结构上分为:片内和片外数据存储器,片内和片外程序存储器。2)从逻辑上分别可划分为:片内统一寻址的64K程序存储器空间(0000H-FFFFH);64KB的片外数据存储器空间(0000H-FFFFH);256B的片内数据存储器空间(00H-FFH)。12、MCS-51基本型单片机的中断入口地址各为多少。答:外部中断0 中断入口地址 0003H定时/计数器0 中断入口地址 000BH外部中断1 中断入口地址 0013H定时/计数
21、器1 中断入口地址 001BH串行接口 中断入口地址 0023H3.13、什么是指令周期、机器周期和时钟周期?答:指令周期:指令的执行时间;机器周期:CPU完成一个最简单的指令所需要的时间;时钟周期:晶振信号周期就是时钟周期。3.14、已知一MCS51单片机系统使用6MHZ的外部晶体振荡器,计算:该单片机系统的状态周期与机器周期各为多少?解:由于晶振为6MHz,所以机器周期为2us,因为一个机器周期由6个状态周期组成,所以状态周期1/3us3.15、8031单片机需要外接程序存储器,实际上它还有多少条I/O线可以用?当使用外部存储器时,还剩下多少条I/O线可用?答:8031系统必须外接程序促成
22、器,原则上说,P0和P2口要用作数据和地址总线,所以只有P1和P3口可用作I/O口,共16条I/O线。在使用外部存储器时,除了占用P0和P2口外,还需要用P3口RD(P3.7)和WR(P3.6)两条控制线,所以这种情况下就只剩下14条I/O线可用了。第4章 思考题及习题参考答案4.1. 寻址方式是什么?答:寻址方式是寻找操作数或操作数地址的方式。2. 89C51指令系统有哪几种寻址方式?答:89C51的寻址方式有七种。即:寄存器寻址、直接寻址、寄存器间接寻址、立即寻址、基址寄存器加变址寄存器变址寻址、相对寻址和位寻址。3、访问特殊功能寄存器SFR可以采用哪些寻址方式?答:直接寻址和位寻址方式。
23、4、访问RAM单元可以采用哪些寻址方式?访问外部RAM单元有哪些指令?答:直接寻址、寄存器间接寻址和位寻址方式。访问外部RAM单元的指令有4条:MOVX A,DPTR MOVX A,Ri MOVX DPTR,A MOVX Ri,A 5、访问外部程序存储器可以采用哪些寻址方式?访问外部程序存储器有哪些指令?答:立即寻址、变址寻址和相对寻址方式。访问外部程序存储器的指令有2条MOVC A,A+DPTR MOVC A,A+PC 6、试写出完成以下每种操作的指令序列。 (1)将R0的内容传送到片内RAM 20H;(2)将R1的内容传送到R0; (3)内部RAM单元10H的内容传送到外部RAM单元100
24、0H; (4)外部RAM单元1000H的内容传送到R5; (5)外部ROM单元1000H的内容传送到R5; (6)外部RAM单元2000H的内容传送到外部RAM单元2001H。答:(1)MOV 20H,R0(2) MOV A,R1MOV R0,A(3)MOV A,10HMOV DPTR,#1000HMOVX DPTR,A(4)MOV DPTR,#1000HMOVX A,A+DPTRMOV R5,A(5) MOV DPTR,#1000HMOV A,#00HMOVC A,A+DPTRMOV R5,A(6) MOV DPTR,#2000HMOVX A,DPTRINC DPTRMOVX DPTR,A7
25、. 设内部RAM (30H)=60H, (60H)=10H, (10H)=20H, (R1)=22H,(P1)=0AH, 分析以下程序执行后(30H)=?, (60H)= ?, (10H)= ?,(A)= ?,(B)= ?,(P2)= ?每条指令的机器码为多少? MOV R0, 30H MOV A, R0 MOV R1, A MOV B, R1 MOV R1, P1 MOV P2, P1 MOV 10H, 90H 答: MOV R0, 30H ; (R0)= 30H , 78 30 MOV A, R0 ; (A) =60H , E6 MOV R1, A ; (R1) =60H , F9 MOV
26、 B, R1 ; (B) = 10H , 87 F0 MOV R1, P1 ; (60H) =0AH , A7 90 MOV P2, P1 ; (P2) =0AH , 85 90 A0 MOV 10H, 90H ; (10H) =90H , 75 10 90 (30H)= 60H, (60H)= 0A H, (10H)= 90H,(A)= 60H,(B)= 10H,(P2)= 0AH8. 设外部RAM (2030H)=0FH, 分析以下指令执行后(DPTR)=?, (30H)=?, (2030H)=?(A)=?每条指令的机器码为多少? MOV DPTR, 2030H MOVX A, DPTR
27、MOV 30H, A MOV A, 3FH MOVXDPTR, A 答:MOV DPTR, 2030H ; (DPTR) = 2030H , 90 20 30 MOVX A, DPTR ; (A) =0FH , E0 MOV 30H, A ; (30H) =0FH , F5 30 MOV A, 3FH ; (A) =3FH , 74 3F MOVXDPTR, A ; (2030H)=3FH , F0 执行结果为: (DPTR)=2030H, (30H)=0FH, (2030H)=3FH ,(A)=3FH。 9、编写指令实现下列位操作。 (1)使累加器的最高2位清零; (2)屏蔽(清零)20H的
28、高4位; (3)将E0H的低4位取反,高4位不变;(4)将P0的低2位置1。(5)将10H的内容取补后存放到20H答:(1)CLR ACC.7 CLR ACC.6(2) ANL 20H,#0FH(3) XRL E0H,#0FH(4)ORL P0,#03H(5) XRL 10H,#0FFHINC 10HMOV 20H,10H10. 在外部程序存储器中, 从1020H单元开始依次存放09的平方值: 0、 1、 4、 9、 、81, 要求依据累加器A中的值(09)来查找所对应的平方值, 试设计程序实现。 答:MOV DPTR, 1020H MOVC A, A+DPTR 11. 设(R0)=20H,
29、(20H)=40H, (A)=58H, 则: 执行 XCH A, R0 后 (A)=?, (20H)=? 若执行 XCHD A, R0 后 (A) =?, (20H) =?答:执行 XCH A, R0 后 (A)=40H, (20H)=58H若执行 XCHD A, R0 后 (A) =50H, (20H) =48H12、试编写程序序列,完成两个16位数的减法:(30H)(31H)(10H)(11H) (30H)(31H)。答:CLR CMOV A,31HSUBB A,11HMOV 31H,AMOV A,30HSUBB A,10HMOV 30H,A13、试编写程序,将R0中的低4位数与R1中的高
30、4位数合并成一个8位数,并将其存放在R0中。答:MOV A,R0ANL A,#0FHMOV B,AMOV A,R1ANL A,#0F0HORL A,BMOV R0,A14. 设计双字节无符号数加法程序实现(R0 R1)+(R2 R3) (R4 R5), R0、 R2、 R4存放16位数的高字节, R1、 R3、 R5存放低字节,假设其和不超过16位。答:MOV A, R1 ADD A, R3 MOV R5, A MOV A, R0 ADDC A, R2 MOV R4, A 15. 设计双字节无符号数相减程序实现(R0 R1)(R2 R3) (R4 R5)。R0、 R2、 R4存放16位数的高字节, R1、 R3、 R5存放低字节, 答: MOV A, R1 CLR C SUBB A, R3 MOV R5, A MOV A, R0 SUBB A, R2 MOV R4, A 17. 设2个BCD码数存在外部RAM的2000H和内部RAM的20H。设计程序实现2个BCD码相加,其结果的十位和个位送到外部 RAM的2000H单元, 结果的百位值送F0位。答: MOV DPTR,#2000H MOVX A,DPTR ADD A, 20H
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1