MOVX @DPTR,A
7. 设内部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 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)= 0AH
8. 设外部RAM (2030H)=0FH, 分析以下指令执行后(DPTR)=?, (30H)=?, (2030H)=?(A)=?每条指令的机器码为多少?
MOV DPTR, #2030H MOVX A, @DPTR MOV 30H, A MOV A, #3FH MOVX@DPTR, 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 MOVX@DPTR, A ; (2030H)=3FH , F0
执行结果为: (DPTR)=2030H, (30H)=0FH, (2030H)=3FH ,(A)=3FH。
9、编写指令实现下列位操作。 (1)使累加器的最高2位清零; (2)屏蔽(清零)20H的高4位;
(3)将E0H的低4位取反,高4位不变; (4)将P0的低2位置1。
第 页 共 46 页
11
(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,#0FFH INC 10H MOV 20H,10H
10. 在外部程序存储器中, 从1020H单元开始依次存放0~9的平方值: 0、 1、 4、 9、 ?、81, 要求依据累加器A中的值(0~9)来查找所对应的平方值, 试设计程序实现。 答:MOV DPTR, #1020H MOVC A, @A+DPTR
11. 设(R0)=20H, (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) =48H 12、试编写程序序列,完成两个16位数的减法:(30H)(31H)-(10H)(11H) →(30H)(31H)。 答:CLR C
MOV A,31H SUBB A,11H MOV 31H,A MOV A,30H SUBB A,10H MOV 30H,A
13、试编写程序,将R0中的低4位数与R1中的高4位数合并成一个8位数,并将其存放在R0中。
答:MOV A,R0
ANL A,#0FH MOV B,A MOV A,R1 ANL A,#0F0H ORL A,B MOV R0,A
14. 设计双字节无符号数加法程序实现(R0 R1)+(R2 R3) → (R4 R5), R0、 R2、 R4存放16位数的高字节, R1、 R3、 R5存放低字节,假设其和不超过16位。
答:MOV A, R1
第 页 共 46 页
12
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 DA A MOVX @DPTR, A MOV F0H,CY
18. 设变量X存放在片内10H单元中, 函数Y存放在片内20H单元。 编写程序实现如下函数功能。
80H X>0 Y= 50 X=0 FFH X<0
答: MOV A, 10H ; 取出X送A
JZ COM ; 若X=0 则转移到COM JNB ACC.7, POSI ; 若X>0则转移到POSI MOV A, #0FFH ; 若X<0 则A=FFH SJMP COMP ; 转分支结构出口
COM: MOV A,# 50 ; X=0时的赋值
SJMP COMP ; ; 转分支结构出口 POSI: MOV A, #80H ; X>0 时A=80H
COMP: MOV 20H, A ; 存函数Y值
SJMP $ ; 结束
19. 利用位逻辑指令, 模拟下图硬件逻辑电路功能。试编写程序实现。
第 页 共 46 页
13
答:MOV CY,P1.0
ANL CY,P1.1 CPL CY MOV F0,CY MOV CY,P1.1 ORL CY,P1.2 ANL CY,F0 CPL CY MOV F0,CY
20.若(CY)=0,(P1)=10110111B,试指出执行下列程序段后,CY、P1口内容的变化情况。 MOV P1.2,C MOV C, P1.4 JBC P1.7 ,SS ORL C, P1.6
SS:CPL P1.3 ANL C, /P1.3 MOV P1.0,C 答:(CY)=0,(P1)=0011 1010B
第5章 思考题及习题参考答案
1、80C51单片机汇编语言有何特点?
答:优点;源程序结构紧凑、灵活,汇编成的目标程序效率高,具有占存储空间少、运行速度快、实时性强等优点。
缺点:由于它的是面向机器的语言,所以它缺乏通用性,编程复杂繁琐,但应用相当广泛。
2、利用80C51单片机汇编语言进行程序设计的步骤如何? 答:(1).需要对单片机应用系统预先完成的任务进入深入的分析,明确系统的设计任务、功能要求、技术指标。
(2).要对系统的硬件资源和人工作环境进行分析和熟悉.
(3).利用数学方法或数学模型来对其进行描述,从而把一个实际问题转化成由计算机进行处理的问题。
(4).对各种算法进行分析比较,并进行合理的优化。
第 页 共 46 页
14
3、常用的程序结构有哪几种?特点如何? 答:常用的程序结构有以下几种:
(1)顺序程序结构:顺序结构是按照逻辑操作顺序,从某一条指令开始逐条顺序进行,直到某一条指令为止;比如数据传送与交换、查表程序和查表程序的设计等;在顺序结构中没有分支,也没有子程序,但它是组成复杂程序的基础和主干;
(2)分支程序结构:它的主要特点是程序执行流程中必然包含有条件判断指令,符合条件要求的和不符条件合要求的有不同的处理程序;
(3)循环程序结构 :它在本质上只是分支程序中的一个特殊形式,它由循环初始化、循环体、循环控制和结束部分构成;在循环次数已知情况下,采用计数循环程序,其特点是必须在初始部分设定计数的初始值,循环控制部分依据计数器的值决定循环次数;根据控制循环结束的条件,决定是否继续循环程序的执行。
(4)子程序:它的主要特点是,在执行过程中需要由其它的程序来调用,执行完后又需要把执行流程返回到调用该子程序的主程序。
4、子程序调用时,参数的传递方法有哪几种?
答:在80C51单片机中,子程序调用时,参数的传递方法由三种: (1)、利用累加器A或寄存器; (2)、利用存储器; (3)、利用堆栈。
5、什么是伪指令?常用的伪指令功能如何?
答:伪指令是汇编程序能够识别并对汇编过程进行某种控制的汇编命令。常用的伪指令有: (1)起始地址设定伪指令ORG,该指令的功能是向汇编程序说明下面紧接的程序段或数据段存放的起始地址;
(2)汇编结束伪指令END,该指令的功能是汇编程序遇到END伪指令后立即结束汇编; (3)字节数据定义伪指令DB,该指令的功能是从标号指定的地址单元开始,在程序存储器中定义字节数据;
(4)字数据定义伪指令DW,该指令的功能是从标号指定的地址单元开始,在程序存储器中定义字数据;
(5)空间定义伪指令DS,该指令的功能是从标号指定的地址单元开始,在程序存储器中保留由表达式所指定的个数存储单元作为备用空间,并都填以零值;
(6)赋值伪指令EQU,该指令的功能是将表达式的值或特定的某个汇编符号定义为一个指定的符号名;
(7)位地址符号定义伪指令BIT,该指令的功能是将位地址赋给指定的符号名。
6:把外部RAM的2000-20FFH RAM空间置零 程序如下:
ORG 000H MOV R0,#00H
MOV DPTR,#2000H ;空间首地址送DPTR LOOP: MOV A,#00H
MOVX @DPTR,A ;清零 INC DPTR ;DPTR加1
第 页 共 46 页
15
第1章 思考题及习题参考答案
1.1写出下列二进制数的原码、反码和补码(设字长为8位)。 (1)001011 (3)-001011 答:
(1)原码:00001011 反码:00001011 补码:00001011 (2)原码:00100110 反码:00100110 补码:00100110 (3)原码:10001011 反码:11110100 补码:11110101 (4)原码:10111111 反码:11000000 补码:11000001
1.2已知X和Y,试计算下列各题的[X+Y]补和[X-Y]补(设字长为8位)。 (1) X=1011 (2) X=1011 (3) X=1000 答:
(1)X补码=00001011 Y补码=00000011 [–Y]补码=11111101 [X+Y]补=00001110 [X-Y]补=00001000
(2)X补码=00001011 Y补码=00000111 [–Y]补码=11111001 [X+Y]补=00010010 [X-Y]补=00000100
(3)X补码=00001000 Y补码=00001100 [–Y]补码=11110100 [X+Y]补=00010100 [X-Y]补=11111100
1.3 微型计算机由那几部分构成?
答:微型计算机由微处理器、存储器和I/O接口电路构成。各部分通过地址总线(AB)、数据总线(DB)和控制总线(CB)相连。
1
(2)100110
(4)-111111
Y=0011 Y=0111 Y=1100
第 页 共 46 页
1.4 8086的寻址范围有多大?其物理地址是如何形成?
答:8086有20根地址总线,它可以直接寻址的存储器单元数为1M字节,其地址区域为00000H—FFFFFH。
物理地址是由段地址与偏移地址共同决定的,物理地址=段地址×16+偏移地址其中段地址通常来自于段寄存器CS ,物理地址来自于IP。
1.5 什么叫单片机?它有何特点?
答:单片机就是在一块硅片上集成了CPU、RAM、ROM、定时器/计数器和多种I/O口(如并行、串行及A/D变换器等)的一个完整的数字处理系统。单片机主要特点有:品种多样,型号繁多;存储容量大;频率高,速度快;控制功能强,集成度高;功耗低;配套应用软件多。
第2章 思考题及习题参考答案:
2.1.说明ROM、EPROM、EEPROM和FLASH之间的主要区别
解:ROM为只读存储器,在一般情况下只能读出所存信息,而不能重新写入。信息的写入是通过工厂的制造环节或采用特殊的编程方法进行的,一旦写入,就能长期保存。EPROM芯片一般允许用户多次编程和擦除。擦除时,通过向芯片窗口照射紫外光的方法来进行。 EEPROM,也称E2PROM。该类芯片允许用户多次编程和擦除。擦除时,可采用加电方法在线进行。FLASH是一种新型的大容量、速度快、电可擦除可编程只读存储器。
2.2.EPROM、PROM、动态RAM、静态RAM等存储器中,哪几类是可以随时读写的?
解:动态RAM、静态RAM这几类是可以随时读写的。
2.3 某ROM芯片中有12根地址输入端和8个数据输出端,该芯片的存储容量是多少位?
解:芯片的存储容量是4K*8位。
第 页 共 46 页
2
2.4.说明动态RAM和静态RAM的主要区别,使用时应如何选用?
解:静态(static)RAM,即SRAM。它以触发器为基本存储单元,所以只要不掉电,其所存信息就不会丢失。该类芯片的集成度不如动态RAM,功耗也比动态RAM高,但它的速度比动态RAM快,也不需要刷新电路。在构成小容量的存储系统时一般选用SRAM。在微型计算机中普遍用SRAM构成高速缓冲存储器。
动态(Dynamic)RAM,即DRAM。一般用MOS型半导体存储器件构成,最简单的存储形式以单个M0S管为基本单元,以极间的分布电容是否持有电荷作为信息的存储手段,其结构简单,集成度高。但是,如果不及时进行刷新,极间电容中的电荷会在很短时间内自然泄漏,致使信息丢失。所以,必须为它配备专门的刷新电路。动态RAM芯片的集成度高、价格低廉,所以多用在存储容量较大的系统中。目前,微型计算机中的主存几乎都是使用动态RAM。
2.5.说明NOR FLASH与NAND FLASH的主要区别,使用时应如何选用?
解:NOR Flash具有以下特点:
(1) 程序和数据可存放在同一芯片上,拥有独立的数据总线和地址总线,能快速随机读取,允许系统直接从Flash中读取代码执行,而无需先将代码下载至RAM中再执行;
(2) 可以单字节或单字编程,但不能单字节擦除,必须以块为单位或对整片执行擦除操作,在对存储器进行重新编程之前需要对块或整片进行预编程和擦除操作。
但是NOR Flash的擦除和编程速度较慢,块尺寸又较大,因此擦除和编程操作所花费的时间很长,在纯数据存储和文件存储的应用中,NOR技术显得力不从心。
NAND Flash具有以下特点:
(1) 以页为单位进行读和编程操作,1页为256或512B(字节);以块为单位进行擦除操作,1块为4K、8K或16KB。具有快编程和快擦除的功能,其块擦除时间是2ms;而NOR技术的块擦除时间达到几百ms。(2) 数据、地址采用同一总线,实现串行读取。随机读取速度慢且不能按字节随机编程。(3) 芯片尺寸小,引脚少,是位成本(bit cost)最低的固态存储器,将很快突破每兆字节1美元的价格限制。(4) 芯片包含有失效块,其数目最大可达到3~35块(取决于存储器密度)。失效块不会影响有效块的性能,但设计者需要将失效块在地址映射表中屏蔽起来。
NOR Flash具有可靠性高、随机读取速度快的优势,在擦除和编程操作较少而直接执行代码的场合,尤其是纯代码存储的应用中广泛使用,如PC的BIOS固件、移动电话、硬盘驱动器的控制存储器等。
NAND Flash结构的闪速存储器适合于纯数据存储和文件存储,主要作为SmartMedia卡、CompactFlash卡、PCMCIA ATA卡、固态盘的存储介质,并正成为闪速磁盘技术的核心。
第 页 共 46 页
3
2.6.现有2K×8位的RAM芯片若干片,若用线选法组成存储器,有效的寻址范围最大是多少KB?若用3-8译码器来产生片选信号,则有效的寻址范围最大又是多少?若要将寻址范围扩展到64KB,应选用什么样的译码器来产生片选信号?
解:以8086为例,8086有20条地址线,用11条地址线寻址一片2K×8位的RAM,余下的9条地址线做线选法的线,故可以并联9个芯片,故寻址最大范围是20KB,若用3-8译码器来产生片选信号,9条地址线可以控制3个3-8译码器这样就可以控制24个芯片最大范围是50KB. 若要将寻址范围扩展到64KB可选用4-16地址译码器来产生片选信号。
2.7.什么是地址重叠区?它对存储器扩展有什么影响?
解:基本地址和前面全译码连接的地址范围是相同的,但两者还是有区别的。区别在于全译码连接时各芯片的地址是唯一的,而部分译码连接时各芯片地址不是唯一的,也就是可以由若干个地址都选中同一芯片的同一单元,既所谓的地址重叠区。由于存在的地址重叠,影响了地址区的有效使用,也限制了存储器的扩展。因此,在选用部分译码时,也要尽可能多选一些高位地址线来作为译码器的输入。
图2-22 1K×8扩展的3 K×8的存储系统
第 页 共 46 页
4
2.8如图2-22若用1K×8位片子来扩展3K×8位RAM,试核算各片的地址范围为多少?
解:A15 A14 A13 A12 A11 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:
A000H · · ·
1 0 1 0 0 0 11 1 1 1 1 1 1 1 1 片1:A3FFH
A15 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:B000H · · ·
1 0 1 1 0 0 11 1 1 1 1 1 1 1 1 片2:B3FFH
A15 A14 A13 A12 A11 A10 A9 A8 A7A6A5A4 A3A2A1A0 地址
G1 A B C
1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 片
3:B400H · · ·
1 0 1 1 0 1 11 1 1 1 1 1 1 1 1 片3:
B7FFH
所以各片地址范围为: 片1:A000H-A3FFH, 片2:B000H-B3FFH, 片3:B400H-B7FFH
2.9. 现有8K×8位RAM多片,1片3-8译码器,要构成容量为16K×8位的存储器,请用线译码、部分译码、全译码3种方式分别设计,画出连接图,并指出寻址范围。 解:
线译码法: 寻址范围:2000H~5FFFH
第 页 共 46 页
5
部分译码寻址范围:0000H~3FFFH
全译码:寻址范围:0000H~FFFFH
第 页 共 46 页
6
2.10.如何检查扩展的RAM工作是否正常?试编一个简单的RAM检查程序,要求此程序能记录有多少个RAM单元工作有错?且能记录出错的单元地址。 解:
TEST_CONST EQU 5AH TEST_RAM EQU 03H ORG 0000H
LJMP INITIAL ORG 0050H
INITIAL: MOV R0,#253 MOV R1,#3H
TEST_ALL_RAM: MOV R2,#0FFH TEST_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, TEST_ALL_RAM OK_DISPLAY:
MOV P1, #11111110B WAIT1: SJMP WAIT1 ERROR_DISPLAY: MOV A, R1 MOV P1,A WAIT2: SJMP WAIT2 END
第3章 思考题及习题参考答案
3.1. 80C51单片机的P0~P3口在通用I/O口时操作要注意哪些?P0~P3口不做通用I/O口时是什么功能?在使用上有何特点? P0~P3驱动能力如何?
答:(1)作为通用I/O口时,P0~P3都是准双向口,输入引脚信息时都必须先向其锁存器写“1”,作为输出口时P0口需结上拉电阻。
(2)P0可以作为地址/数据总线;P2口可以作为地址线的高8位;P3口是双功能口,每条口线还具有不同的第二功能。
(3)P0口的驱动能力为8个TTL负载,而其它口仅可驱动4个TTL负载。 3.2、MCS-51单片机运行出错或程序进入死循环,如何摆脱困境? 答:通过复位电路复位
第 页 共 46 页
7
3.3、单片机的复位(RST)操作有几种方法,复位功能的主要作用是什么?
答:单片机的复位操作方式有:1、上电复位;2、手动复位。
复位功能的主要作用是:复位时,PC初始化为0000H,使MCS-51单片机从0000H开始执行程
3.4、简述程序状态寄存器PSW寄存器中各位的含义。 答:程序状态字寄存器PSW,8位。其各位的意义为:
CY:进位、借位标志。有进位、借位时CY=1,否则CY=0;
AC:辅助进位、借位标志(高半字节与低半字节间的进位或借位); 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个,各信号的作用为:
RST/VPD: 复位信号输入引脚/备用电源输入引脚;
ALE/PROG: 地址锁存允许信号输出引脚/编程脉冲输入引脚;
EA/Vpp : 内外存储器选择引脚/片内EPROM(或FlashROM)编程电压输入引脚; PSEN:外部程序存储器选通信号输出引脚。 3.7、8051单片机中EA引脚的作用是什么?
答:访问内部或外部程序存储器的选择端当EA接高电平的时候程序从内部ROM开始执行,当EA为低电平的时候,从外部ROM开始执行 3.8、 程序计数器PC的作用是什么?
答:程序计数器PC是一个16位的计数器,他总是存放着下一个要取的指令的16位存储单元地址。用来存放下一条指令的地址用来存放下一条指令的地址的。当执行一条指令时,首先需要根据PC中存放的指令地址,将指令由内存取到指令寄存器中,此过程称为“取指令”。与此同时,PC中的地址或自动加1或由转移指针给出下一条指今的地址。此后经过分析指令,执行指令。完成第一条指令的执行,而后根据PC取出第二条指令的地址,如此循环,执行每一条指令
3.9、堆栈有哪些功能?堆栈指示器( SP)的作用是什么?在程序设计时,为什么要对 SP重新赋值?
答:堆栈在中端过程中用来保护现场数据,复位后SP=7H,而堆栈一般设置在通用ROM区(30H-7FH),在系统初始化时候要从新设置。
第 页 共 46 页 8
3.10、内部 RAM低 128单元划分为哪 3个主要部分?说明各部分的使用特点。
答:80C51内部128B的数据RAM区,包括有工作寄存器组区、可直接位寻址区和数据缓冲区。各区域的特性如下:
(1) 00H~1FH为工作寄存器组区,共分4组,每组占用8个RAM字节单元,每个单元
作为一个工作寄存器,每组的8个单元分别定义为8个工作寄存器R0~R7。当前工作寄存器组的选择是由程序状态字PSW的RS1、RS0两位来确定。如果实际应用中并不需要使用工作寄存器或不需要使用4组工作寄存器,不使用的工作寄存器组的区域仍然可作为一般数据缓冲区使用,用直接寻址或用Ri的寄存器间接寻址来访问。
(2) 20H~2FH为可位寻址区域,这16个字节的每一位都有一个地址,编址为00H~7FH。
当然,位寻址区也可以用作字节寻址的一般数据缓冲区使用。
(3)30H~7FH为堆栈、数据缓冲区。 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 定时/计数器1 中断入口地址 001BH 串行接口 中断入口地址 0023H
3.13、什么是指令周期、机器周期和时钟周期?
答:指令周期:指令的执行时间;机器周期:CPU完成一个最简单的指令所需要的时间;时钟周期:晶振信号周期就是时钟周期。
3.14、已知一MCS51单片机系统使用6MHZ的外部晶体振荡器,计算:该单片机系统的状态周期与机器周期各为多少?
解:由于晶振为6MHz,所以机器周期为2us,因为一个机器周期由6个状态周期组成,所以状态周期1/3us
3.15、8031单片机需要外接程序存储器,实际上它还有多少条I/O线可以用?当使用外部存储器时,还剩下多少条I/O线可用?
答:8031系统必须外接程序促成器,原则上说,P0和P2口要用作数据和地址总线,所以只有P1和P3口可用作I/O口,共16条I/O线。在使用外部存储器时,除了占用P0和P2口外,还需要用P3口RD(P3.7)和WR(P3.6)两条控制线,所以这种情况下就只剩下14条I/O线可用了。
第4章 思考题及习题参考答案
4.1. 寻址方式是什么?
答:寻址方式是寻找操作数或操作数地址的方式。
第 页 共 46 页
9
2. 89C51指令系统有哪几种寻址方式?
答:89C51的寻址方式有七种。即:寄存器寻址、直接寻址、寄存器间接寻址、立即寻址、基址寄存器加变址寄存器变址寻址、相对寻址和位寻址。
3、访问特殊功能寄存器SFR可以采用哪些寻址方式?
答:直接寻址和位寻址方式。
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单元1000H; (4)外部RAM单元1000H的内容传送到R5; (5)外部ROM单元1000H的内容传送到R5;
(6)外部RAM单元2000H的内容传送到外部RAM单元2001H。 答:(1)MOV 20H,R0
(2) MOV A,R1 MOV R0,A (3)MOV A,10H MOV DPTR,#1000H MOVX @DPTR,A
(4)MOV DPTR,#1000H MOVX A,@A+DPTR MOV R5,A
(5) MOV DPTR,#1000H MOV A,#00H MOVC A,@A+DPTR MOV R5,A
(6) MOV DPTR,#2000H MOVX A,@DPTR INC DPTR
第 页 共 46 页
10
INC R0 ;字节数加1
CJNE R0,#00H,LOOP ;连续清256个字节 LOOP1: SJMP LOOP1 END
7、录入并调试一个排序子程序,其功能为用冒泡法将内部RAM中从50H开始的十个单字节无符号正整数,按从小到大的次序重新排列。 程序如下:
用冒泡法进行数据排序 ORG 0000H MOV R3,#50H LOOP0: MOV A,R3
MOV R0,A ;指针送R0 MOV R7,#0AH ;长度送R7
CLR 00H ;标志位为0 MOV A,@R0 LOOP1: INC R0 MOV R2,A CLR C
MOV 22H,@R0
CJNE A,22H,LOOP2 ;相等吗? SETB C
LOOP2: MOV A,R2
JC LOOP3 ;小于或等于不交换 SETB 00H XCH A,@R0 DEC R0 XCH A,@R0
INC R0 ;大于交换位置 LOOP3:MOV A,@R0 DJNZ R7,LOOP1
第 页 共 46 页
16
JB 00H,LOOP0 LOOP: SJMP LOOP END
;一次循环中有交换继续 ;无交换退出
8、设被加数存放在内部RAM的20H、21H单元,加数存放在22H、23H单元,若要求和存放在24H、25H中,试编写出16位数相加的程序。 答: ORG 1000H MOV R1,#21H
MOV R2,#23H
MOV R3,#25H CLR C
LP;MOV A,@R2
ADDC A,@R1 MOV @R3,A DEC R1 DEC R2 DEC R3
DJNE R1,#1FH,LP SJMP $
第 页 共 46 页
17
9、编写一段程序,把外部RAM中1000H~1030H单元的内容传送到内部RAM的30H~60H单元中。
答: ORG 0030H MOV R1,#49 MOV R0,#30H MOV DPTR,#1000H LOOP: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0
DJNZ R1,LOOP SJMP $ END
10、编写程序,实现双字节无符号数加法运算,要求(R1R0)+(R7R6)→(61H60H)。 答:
MOV A,R0 ADD A,R6 MOV 60H,A MOV A,R1 ADDC A,R7 MOV 61H,A SJMP $
11、用R0和R1作数据指针,R0指向第一个加数,并兼作“和”的指针,R1指向另一个加
数,字节存放到R2中作计数初值。 答:
主程序:
JAFA: MOV R0,#20H ;指向加数最低字节 MOV R1,#29H ;指向另一加数最低字节 MOV R2,#04H ;字节数作计数值 ACALL JASUB ;调用加法子程序 AJMP $ RTE
多字节加法子程序:
第 页 共 46 页 18
JASUB: CLR C
JASUB1: MOV A,@R0 ;取出加数的一个字节(4B无符号数加数) ADDC A,@R1 ;加上另一数的一个字节 MOV @R0,A ;保存和数 INC R0 ;指向加数的高位 INC R1 ;指向另一加数的高位 DJNZ R2,JASUB1 ;全部加完了吗? RET
12、在内部RAM的21H单元开始存有一组单字节不带符号数,数据长度为30H,要求找出最大数存入BIG单元。 答:
START: MOV R7,30H DEC R7
MOV R0,#21H
MOV A,@R0
LOOP:INC R0 CLR C
SUBB A,@R0 JNC NEXT MOV A,@R0 NEXT:DJNZ R7,LOOP MOV BIG, A SJMP $ END
13、求双字节补码程序
设双字节数放在内部RAM的30H和31H单元(高字节在低地址),将其取补后存入40H(存放高字节)和41H(存放低字节)单元 答:
START:MOV A,31H CPL A
ADD A,#01H MOV 41H,A MOV A,30H CPL A JNC DONE ADD A,#01H
DONE:MOV 30H,A SJMP $
14、编程统计累加器A中“1”的个数。
第 页 共 46 页
19
答:
MOV R1,#0 PUSH ACC LOOP1:JZ DONE CLR C RLC A JNC LOOP1 INC R1 SJMP LOOP1 DONE:POP ACC SJMP $ END
15、编程序实现1+2+3+??+100=? 答:
汇编代码如下:
H_Byte EQU R4 ;保存结果,高8位L_Byte EQU R5 ;保存结果,低8位Max_Adder EQU 100 ;最大的加数
ORG 0000H LJMP MAIN ORG 0030H
MAIN:
MOV R2,#1 ;加数 MOV R4,#0 MOV R5,#0
START:
MOV A,#Max_Adder CLR CY SUBB A,R2 JC RESULT MOV A,R2 ADD A,L_Byte
MOV L_Byte,A ;保存低位 MOV A,H_Byte ADDC A,#0
MOV H_Byte,A ;保存高位 INC R2 JMP START
RESULT:
SJMP $ ;只用于调试 END
C语言代码如下:
第 页 共 46 页
20
#include \由于这里只是计算结果,所以这行代码可以去掉 void main(void) {
unsigned char i=1; unsigned int result=0; for(i=1;i<=100;i++) result+=i;
while(1); //这里用于调试 }
第6章思考题及习题参考答案 1. 什么是中断、中断源、中断服务程序、中断程序入口地址?
答: 当有中断源申请中断,并允许响应时,处理暂停当前执行的程序转去执行中断服务子程序的过程叫中断。导致中断产生的事件和原因统称为中断源。处理暂停主程序后转去执行的,用来处理中断事件的程序成为中断服务子程序。中断程序入口地址是指的中断服务子程序的第一条指令所在的地址。
2. 中断优先权有什么作用,中断嵌套是什么?
答:中断优先权可以用来解决多个中断源同时申请中断时,处理器响应中断的优先顺序。中断嵌套是指处理器正在执行中断服务子程序时,被新的中断打断,转去执行新的中断而出现的一个中断嵌套到另一个中断中的现象。
3. 保护断点是保护什么,怎么保护的,中断返回后的下一步到到哪里去?
答:保护断点是保护主程序暂停时的下一条将要执行的指令的地址。保护方法是将下一条
第 页 共 46 页
21
指令的地址值入栈。中断返回后,断点地址从堆栈中弹出到程序计数器或指令指针寄存器,继续执行主程序。
4.保护现场有什么作用,需要保护哪些内容,怎么保护的? 5. 80C51单片机有___个中断源,分别是_____、 _______、 _______、 ______和________。 答: 5,INT0 ,INT1 ,T0,T1,串口
6. 80C51单片机中断有_____个优先权等级,最多可以实现____级嵌套。 答:2,2
7. 80C51中断嵌套的原则是什么?
答: 80C51中断嵌套的原则是:高级中断可以打断低级中断,低级中断不能打断高级中断,同级中断不可以打断同级中断。
8. 80C51响应中断的条件有哪些? 答: 80C51响应中断的条件有:
中断申请的对应中断使能控制位有效; 全局中断使能控制位有效;
中断申请时没有更高级别的中断服务程序正在执行;
9. 80C51的各个中断源是如何撤销中断申请的? 答: 80C51各中断源的中断申请撤销方法是:
定时/计数器中断:在中断被响应后,由硬件自动清零中断申请标志位; 串口中断:由软件清零中断申请标志位;
边沿触发时的外部中断:中断被响应后,由硬件自动清零中断申请标志位;
电平触发的外部中断:需要设计专门的电路,通过软件编程通知外部中断源,由外部中断源撤销申请。
10. 80C51单片机中有 个定时/计数器,定时/计数0有 种工作方式,定时/计数1有 种工作方式。 答: 2,4,3
11. 80C51单片机中有与定时/计数器相关的特殊功能寄存器有哪些,各自有什么作用? 答:有TMOD和TCON的高4位。
TMOD用来设置定时/计数的工作方式,选择计数时钟的来源。具体格式如下: 定时/计数器1 定时/计数器0
D7 D6 D5 D4 D3 D2 D1 D0
名称
GATE C/T M1 M0 GATE C/T M1 M0 TCON的高4位用来控制定时/计数器的启动和停止,并设置中断标志位,向处理器
申请中断。具体格式如下:
8FH 8EH 8DH 8CH 8BH 8AH 89H 88H 位地址 位名称
第 页 共 46 页
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 22
12. 80C51单片机中的定时/计数器用作定时器和计数器时,有什么区别?
答:用作定时器时,通常选择内部时钟,也可使用外部时钟,应用中,通常需要根据定时要求设定计数初值。并查询等待定时时间结束,或者在定时时间结束后向处理器申请中断; 用作计数器时,只能选择外部时钟,通常设置计数初值为零,而且需要读取计数结果。
13. 80C51单片机中的定时/计数器的门控设置位GATE有什么作用?
答:GATE用来设置外部中断输入引脚INT0 或INT1 是否影响定时/计数器的启动和停止。当GATE有效时,只有INT0 或INT1 为高时,相应计数器才可能启动;当GATE无效时,INT0 或INT1 不影响计数器的启停。
14. 80C51单片机中的定时/计数器的方式0和方式1有什么共同点和不同点?
答:方式1和方式0都是不能自动重装的定时/计数器方式,基本结构相同。不同的是,方式1是16位定时/计数器;而方式0是13位定时/计数器,其中计数寄存器低字节的高3位不使用。
15. 当定时/计数器T0工作在方式3时,T1可以工作在哪些方式,与T0不工作在方式3时,T1的工作方式有什么差异?
答: T0工作在方式3时,T1可以工作在方式0,方式1,方式2。相对于T0不工作在方式3时,T1没有了启动控制位TR1,没有了中断申请标志位TF1,只有设置成方式3才能停止计数,设置在其它方式都会不停计数。
16. 要求设置单片机的定时器1工作在中断模式,方式1,计数器模式,软件启动,定时器0未使用,使用外部中断0,下降沿触发中断,外部中断1闲置,串口关闭。要求设置定时器1的中断优先级最高。
那么IE= 、 IP=_________、TMOD=__________、IT0=___。
答: 89H或10001001B,08H或00001000B, 50H或01010000B, 1
17. 执行以下代码的作用是 。
ANL TMOD, #0F0H ORL TMOD, #02H
答:设置定时/计数器0工作在方式2,定时器模式,仅由软件启动。
18. 若某单片机系统的晶振为12MHz,使用定时/计数器0,进行700us定时,可以使用哪些工作方式,要求只要软件就可以启动,且通过查询方式实现。写各种方式下的初始化程序。 答:晶振频率为12MHz,则计数器时钟周期为1us,定时时间为700us,则需要计数700,方式0的最大计数为8192,方式1为65536,方式2和方式3为256。因此可以选择方式0和方式1。
一:选择方式0
方式0为13位计数器,计数初值为:
fosc?t12?106?700?10?6T0初值?2??8192??7492?1110101000100B
121213 TH0= 11101010B=0EAH ,TL0= 00100B=04H
23
第 页 共 46 页
定时/计数器0工作在方式0,定时器模式,软件启动,则TMOD=00000000B=00H。查询方式下,不需要打开中断使能控制位,复位后IE=0,所以不需要初始化IE。
初始化程序为:
MOV TMOD, MOV TL1, SETB TR0
#00H #04H
MOV TH1, #0EAH
二:选择方式1
方式1为16位计数器,计数初值为:
fosc?t12?106?700?10?6T0初值?2??65536??64836?FD44H
121216 TH0= 0FDH ,TL0= 44H
定时/计数器0工作在方式1,定时器模式,软件启动,则TMOD=00000001B=01H。查询方式下,不需要打开中断使能控制位,复位后IE=0,所以不需要初始化IE。
初始化程序为:
MOV TMOD, MOV TL1, SETB TR0
#01H #43H
MOV TH1, #0FDH
19. 某单片机系统的晶振为12MHz,编程使用定时/计数器0工作在方式3,从P1.0输出周期为200us占空比50%方波,从P1.1输出周期为100us占空比50%;使用定时/计数器1,工作在方式2,从P1.2输出周期80us,占空比50%的方波。(提示,定时/计数器1没有了中断申请标志位,需要读取计数数据,进行判断)。 答:参考程序如下:
ORG 0000H
AJMP AJMP AJMP
MAIN_START INT_TL0_HANDLE
;定时/计数器1中断入口,但作为了T0的TH0定时中断入口 INT_TH0_HANDLE
ORG 000BH ;定时/计数器0中断入口 ORG 001BH ORG 0030H INT_TL0_HANDLE:
MOV CPL RETI MOV CPL RETI
TL0, #9CH ;TL0产生200us方波 P1.0
;
;TH0产生100us方波
INT_TH0_HANDLE:
TH0, #0CFH P1.1
;
ORG 0100H MAIN_START:
MOV
TMOD,
#23H ;T0方式3,T1方式2
第 页 共 46 页 24
SETB SETB MOV MOV MOV MOV MOV SETB SETB SETB
ET0 ET1
;开T0中断
;开T1中断,注:TH0使用。
; ; ;
TL0, #9CH ;赋初值 TH0, #0CFH TH1, #0D8H TL1, #0D8H EA TR0 TR1 C
P1, #00H ;输出清零
;开全局中断 ;TL0开始计数
;TH0开始计数,T1计数从方式确定就开始了 ;产生80us方波 ;
;计数小于初值+7,则让输出翻转。由于读取TL1的计数值 ;范围,只要发生了初值重转,则计数已经溢出。 ;大于则继续读数。直到计数溢出。
READ_T1: END
MOV CLR SUBB JNC CPL AJMP
A, TL1 ;读T1的计数值 A, #0DFH
;
;并不是每个计数值都能读到,所以判断时需要给一个大的
READ_T1 P1.2 READ_T1
说明:此程序可以直接运行,但是实际测试结果,只能近似输出题目要求波形。定时/
计数器0是由于软件初值重转的问题,计时器1则是由于每次读数时,由于中断的执行,导致错过读数,所以输出波形的频率是不稳定的。
第7章习题与思考题参考答案
7-1简述MCS-51单片机串行口的四种工作方式的接收和发送数据的过程。 答:(略)
7-2 串行口有几种工作方式?各工作方式的波特率如何确定? 答:
它有四种工作方式:方式0、1、2、3。帧格式有10位、11位。方式0和方式2的波特率是固定的,方式1和方式3的波特率是可变的,由定时器的溢出率决定。
7-3 若晶体的振荡频率为11.0592MHz,串行口工作于方式1,波特率为4800bit/s,计算用T1作为波特率发生器的方式控制字和计数初值。
解:方式1和方式3的波特率由定时器的溢出率控制,是可变的,表示为:
波特率=(2SMOD /32)×定时器T1的溢出率
定时器T1的溢出率= T1计数率/产生溢出所需的时间
第 页 共 46 页
25
=(fOSC/12)/(2N?TC)
其中:N为定时器T1的位数,TC为定时器T1的预置初值。
2
7-4 简述IC总线的数据传输方式。 答: (略)
2
7-5 编写程序将AT89C51单片机片内40H~47H单元中的八个8位数据通过IC总线接口传送到存储器AT24C01的50H~57H单元中。 答:
ICW: ICWLP1: ICWLP2: ICWLP3: LCALL START MOV A,#0A0H LCALL WOBYT LCALL TACK JB 30H,ICWLP1 MOV A,#50H LCALL WOBYT LCALL TACK JB 30H,ICWLP1 MOV R5,#8 MOV R0,#40H MOV A,@ R0 LCALL WOBYT LCALL TACK JB 30H,ICWLP1 INC R0 DJNZ R5,WLP2 LCALL STOP LCALL DELAY RET ;发送起始信号 ;#10100000B器件地址码, ;发送器件地址 ;检查应答位 ;无应答位,重发 ;50H为待写存储单元首地址 ;发送待写存储单元地址 ;检查应答位 ;无应答位,重发 ;待发送数据块的长度 ;40H为第一个数据的首地址 ;读一个字节数据 ;发送 ;检查应答位 ;无应答位,重发 ;指向下一个要发送的数据 ;要发送数据未发完,再发送 ;全部数据发完,停止 ;延时,等待AT24C01内部写操作 ;返回
7-6简述SPI总线的数据传输方式。 答:(略)
7-7编写程序将AT89C51单片机片内30H、31H单元中的16位数据通过SPI总线接口传送到数字/模拟转换器TLC5615。. 答:
DIN SCLK CS5615 DataH BIT P1.1 BIT P1.2 BIT P1.3 EQU 30H ;定义I/O口 第 页 共 46 页 26
DataL TLC5615: LPH: LPL: EQU 31H CLR SCLK ;准备操作TLC5615 CLR CS5615 ;选中TLC5615 MOV R7,#08H MOV A, DataH ;装入高8位数据 LCALL DELAY ;延时 RLC A ;最高位移向TLC5615 MOV DIN,C SETB SCLK ;产生上升沿,移入1位数据 LCALL DELAY CLR SCLK DJNZ R7,LPH MOV R7,#08H MOV A,DataL ;装入低8位数据 LCALL DELAY ;延时 RLC A ;最高位移向TLC5615 MOV DIN, C SETB SCLK ; 产生上升沿,移入1位数据 LCALL DELAY CLR SCLK DJNZ R7,LPL SETB CS5615 ;结束TLC5615的操作,同时将转换数据代码存入10位DA寄存器,启动新一轮的DA转换 DELAY: RET …(略) RET 7-8简要说明CAN总线、USB总线、1-Wire总线的特点。
答:
CAN的特点:
(1) 较低的成本与极高的总线利用率;
(2) 数据传输距离可长达10km,传输速率可高达1Mbps;
(3) 可靠的错误处理和检错机制,发送的信息遭到破坏后可自动重发; (4) 节点在错误严重的情况下具有自动退出总线的功能;
(5) 报文不包含源地址或目标地址,仅用标志符来指示功能信息和优先级信息; (6) 多主机依据优先权进行总线访问,无破坏性的基于竞争的仲裁; (7) 借助接收滤波的多地址帧传送。 USB:
具有传输速度快(USB1.1是12Mbps,USB2.0是480Mbps, USB3.0是5 Gbps),使用方便,支持热插拔,连接灵活,独立供电等优点。
1-Wire:
它采用单根信号线,既传输时钟,又传输数据,而且数据传输是双向的。它具有节
第 页 共 46 页
27
省I/O口线资源、结构简单、成本低廉、便于总线扩展和维护等诸多优点。
7-9画出CAN总线控制器SIA1000与单片机的连接电路原理图。 答:
7-10写出PDIUSBD12固件各模块程序的分工。 答:
PDIUSBD12固件各模块程序的分工如下:
硬件提取层:对单片机的I/O口、数据总线等硬件接口进行操作。
PDIUSBD12命令接口:对PDIUSBD12器件进行操作的模块子程序集。
中断服务程序:当PDIUSBD12向单片机发出中断请求时,读取PDIUSBD12的中断传输来的数据,并设定事件标志“EPPFLAGS”和Setup包数据缓冲区“CONROL_XFER”传输给主循环程序。
标准请求处理程序:对USB的标准设备请求进行处理。 厂商请求处理程序:对用户添加的厂商请求进行处理。
主循环程序:发送USB请求、处理USB总线事件和用户功能处理等。
7-11单总线有哪些ROM命令? 答:
ROM命令 搜索ROM(F0H) 读ROM(33H)(仅适合单节点) 匹配ROM(55H) 跳跃ROM(CCH)(仅适合单节点) 报警搜索ROM(Ech)(仅少数器件支持)
第 页 共 46 页
28
ROM命令 识别单总线上所有的1-wire器件的ROM编码 直接读1-wire器件的序列号 寻找与指定序列号相匹配的1-wire器件 使用该命令可直接访问总线上的从机设备 搜索有报警的从机设备
第8章 思考题及习题参考答案
1.在一般情况下实现片选的方法有两种,分别是 线选法 和 译码法 。 2.起止范围是0000H~3FFFH的存储器的容量是 16 KB。
3.11根地址线可选 2048(或2KB)个存储单元,16KB存储单元需要 14 根地址线。 4.MCS-51机中扩展I/O口占用片外__数据__存储器地址空间。
5.MCS-51单片机访问片外存储器时利用通信 ALE_信号锁存来自_P0__口的低八位地址信号。 6.半导体存储器的最重要的两个指标是 存储容量 和 存取速度 。(较易,一般)
第 页 共 46 页 29
7.32KB ROM的首地址若为2000H,则末地址是 9FFFH 。
8.三态缓冲寄存器的“三态”是指 低电平 态、 高电平 态和 高阻 态。
9.74LS138是具有3个输入的译码器芯片,其输出作为片选信号时,最多可以选中_8_块芯片。 10.74LS273通常用来作为简单 输出 接口扩展;而74LS244则常用来作简单 输入 接口扩展。 11.计算机对输入/输出设备的控制方式主要有三种。其中, A 方式硬件设计最简单,但要占用不少CPU的运行时间; B方式的硬件线路最复杂,但可大大提高数据传送效率;而 C 则介于上述两者之间。
①先进先出 ②后进先出 ③直接存储器访问 ④程序查询 ⑤高速缓存 ⑥系统总线 ⑦程序中断 ⑧逐行扫描 请选择并填写答案:A=__④__,B= ③ ,C=_ ⑦_
12.LED显示器的显示控制方式有 静态 显示和 动态 显示两大类。 13.LED显示器根据二极管的连接方式可以分为 共阴极 和共阳极两大类。 14.I/O口数据传送有哪些传送方式,分别在哪些场合下应用?
单片机和外设之间进行数据和信息的交换时,由于外设的工作速度存在差异,数据的传送就需要采用不同的方式,CPU可以采用无条件传送、查询传送、中断传送和直接存储器存取四种传送。
无条件传送适合数据信号变化缓慢的外部设备及工作速度足以和CPU同步工作的外部设备。 直接存储器存取适合于外设和存储器之间有大量的数据需要传送;外设的工作速度很快。 15.为什么要消除按键的机械抖动?消除按键的机械抖动的方法有哪几种?原理是什么? 解:在按键的闭合和断开过程中,由于开关的机械特性,导致了按键抖动的产生。如果不消除按键的机械抖动,按键的状态读取将有可能出现错误。消除按键抖动一般是采用软件或硬件去抖。软件去抖的原理:在第一次检测到有键按下时,该键所对应的航线是为低电平,执行一端延时10ms的子程序后,确认该行线电平是否仍然为低电平,如果仍为低电平,则确认为该行确实有键按下。
16.LED的静态显示方式于动态显示方式有何区别?各有什么优缺点?
解:静态显示时,数据是分开送到每一位LED上的。而动态显示则是数据是送到每一个LED上,再根据位选线来确定是哪一位LED被显示。静态显示亮度很高,但口线占用较多。动态显示则好一点,适合用在显示位数较多的场合。 17. 说明矩阵式键盘按键按下的识别原理。
解:按键设置在行、列线交点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻
第 页 共 46 页
30
答:地址线13条,数据线8条。
12-8 8086有几种中断类型,在IBM PC/XT 中的非屏蔽中断源有几种?
答:8086的中断分为外部中断和内部中断两大类,外部中断是由 CPU 的外部中断请求引脚NMI 和INTR 引起的中断过程,可分为非屏蔽中断和可屏蔽中断两种。内部中断功能是由CPU 内部硬件产生的,或者由软件的中断指令INT n 引起的。在IBM PC/XT 中的非屏蔽中断源有3 种。
12-9单片8259A 能够管理多少级可屏蔽中断源?最多能管理多少级可屏蔽中断源?
答:8259A是专为8086/8088 CPU配套的可编程中断控制器。它可以管理8 级具有优先权的中断源并且可以以级联的方式扩展到64 级优先级。 12-10 对8259A 初始化有什么规定和要求?
答:8259A 初始化工作包括:8259A初始化设定工作方式:边沿触发、缓冲方式、非自动结束EOI、中断全嵌套优先权管理方式。
12-11什么叫DMA?为什么要引入DMA 方式?DMA 一般在哪些场合使用?
答:直接存储器存取DMA 是一种外设与存储器之间直接传输数据的方法,适用于需要高速大量传输数据的场合。DMA 数据传输是利用DMA 控制器进行控制的,不需要CPU直接参与。
12-12 DMA 控制器8237 如何实现优先级控制,并进行数据传送的?
答:在可编程DMA 控制器芯片8237 中,优先编码部分对同时提出DMA 请求的多个通道进行优先级排队判优,
当可编程DMA 控制器芯片8237 收到一个从外设发来的DREQ请求DMA 传送时,该DMAC经过判优和屏蔽处理后,向总线控制器送出总线请求HRQ信号要求使用总线。
DMAC接管总线控制权后,由被动状态进入主动状态,成为系统主控者,并向I /O设备发出DMA 应答信号DACK ,向存储器发出地址信号和读/写信号,开始DMA 传送,成为系统的主宰者。
12-13 ISA总线的主要特征是什么?
答:8 位的ISA总线由62根信号线组成,通常称为PC总线或者XT总线。扩展槽使用62 芯双面插槽,引脚分别为A1~A31和B1~B31,A 面是元件面,B 面是焊接面。
16位ISA总线是在PC/AT上推出的,在PC总线的基础上增加了36根信号线,通常称AT总线,对应36芯双面插槽,其中C面是元件面,对应排列为C1~C18,D 面是焊接面,对应排列为D1~D18。
12-14 PCI总线的主要特点是什么?
答:PCI总线最大允许64 位并行数据传输,采用地址/数据总线复用方式,最高总线时钟66MHz。PCI总线包括数据线、地址线、接口控制线、仲裁及系统线等。PCI接口对单个设备至少需要47 根信号线,对主控设备至少需要49 个信号线。 12-15 USB作为通用串行总线的优点有哪些?有几种传输方式?
答:USB作为通用串行总线,具有传输速度高、可扩展性强和即插即用的优点。 有同步传输方式、 中断传输方式、 控制传输方式和4) 批传输方式4种传输方式。
第 页 共 46 页 46
百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库单片微机原理与接口技术答案(宋跃版)在线全文阅读。
相关推荐: