《单片机原理及接口技术》
1-1解答:
单片微型计算机简称单片机。一个完整的单片机芯片至少有中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、定时/计数器及I/O接口等部件。
1-2解答:
优异的性价比;集成度高、体积小、有很高的可靠性;控制功能强大;低功耗、低电压,便于生产便携式产品;外部总线增加了I^2C及SPI等串行总线方式,进一步缩小了体积,简化了结构。
1-3解答:
8052子系列片内ROM和RAM的容量比8051子系列各增加一倍,另外,增加了一个定时/计数器和一个中断源。
2-1解答:
MCS-51单片机由8个部件组成:中央处理器(CPU),片内数据存储器(RAM),片内程序存储器(ROM/EPROM),输入/输出接口(I/O口,分为P0口、P1口、P2口和P3口),可编程串行口,定时/计数器,中断系统及特殊功能寄存器(SFR)。
中央处理器(CPU):单片机的核心部分,它的作用是读入和分析每条指令,根据每条指令的功能要求,控制各个部件执行相应的操作。
片内数据存储器(RAM):存放各项操作的临时数据。 片内程序存储器(ROM/EPROM):存放单片机运行所需的程序。 输入/输出接口(I/O口):单片机与外设相互沟通的桥梁。
可编程串行口:可以实现与其它单片机或PC机之间的数据传送。
定时/计数器:具有可编程功能,可以完成对外部事件的计数,也可以完成定时功能。 中断系统:可以实现分时操作、实时处理、故障处理等功能。 特殊功能寄存器(SFR):反映单片机的运行状态,包含了单片机在运行中的各种状态字和控制字,以及各种初始值。
2-2解答:
EA引脚是片内外程序存储器的选择信号。当EA端保持高电平时,访问内部程序存储器,但在PC(程序计数器)值超过0FFFH(对于8051/8751/80C51)或1FFFH(对于8052)时,将自动转向访问外部程序存储器。当EA端保持低电平时,不管是否有内部程序存储器,则只访问外部程序存储器。
由于8031片内没有程序存储器,所以在使用8031时,EA引脚必须接低电平。 2-3解答:
在MCS-51单片机中,除P3口具有第二功能外,还有3条控制线具有第二功能。 P3口的第二功能:
P3.0—RXD:串行数据接收端 P3.1—TXD:串行数据发送端
P3.2—INT0:外部中断0申请输入端 P3.3—INT1:外部中断1申请输入端 P3.4—T0:定时器0计数输入端 P3.5—T1:定时器1计数输入端 P3.6—WR:外部RAM写选通
3条控制线的第二功能:
ALE—PROG:片内EPROM编程脉冲。片内具有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
RESET—VPD:备用电源。VCC掉电期间,此引脚可接备用电源,以保持内部RAM数据不丢失。 EA—VPP:片内EPROM编程电源。在对片内具有EPROM的芯片进行编程时,此引脚用于施加21V编程电源。
2-4解答:
MCS-51单片机的内部存储空间分为数据存储器和程序存储器。
内部数据存储器:共256字节单元,包括低128个单元和高128个单元。低128字节又分成3个区域:工作寄存器区(00H~1FH),位寻址区(20H~2FH)和用户RAM区(30H~7FH)。高128字节是供给特殊功能寄存器使用的,因此称之为特殊功能寄存器区。
内部程序存储器:在8031片内无程序存储器,8051片内具有4KB掩模ROM,8751片内具有4KBEPROM。
2-6解答:
内部RAM低128个单元按用途分成3个区域:工作寄存器区(00H~1FH),位寻址区(20H~2FH)和用户RAM区(30H~7FH)。
2-7解答:
DPTR是数据指针寄存器,是一个16位寄存器,用来存放16位存储器的地址,以便对外部数据存储器RAM中的数据进行操作。DPTR由高位字节DPH和低位字节DPL组成。
2-8解答:
所谓堆栈,顾名思义就是一种以“堆”的方式工作的“栈”。堆栈是在内存中专门开辟出来的按照“先进后出,后进先出”的原则进行存取的RAM区域。堆栈的用途是保护现场和断点地址。在8051单片机复位后,堆栈指针SP总是初始化到内部RAM地址07H。从08H开始就是8051的堆栈区,这个位置与工作寄存器组1的位置相同。因此,在实际应用中,通常要根据需要在程序初始化时对SP重新赋值,以改变堆栈的位置。
2-9解答:
程序状态字寄存器PSW是8位寄存器,用于存放程序运行的状态信息。 CY(PSW.7):进位标志位。 AC(PSW.6):辅助进位标志位。 F0(PSW.5)、F1(PSW.1):用户标志位。 RS1(PSW.4)、RS0(PSW.3):工作寄存器组选择位。 OV(PSW.2):溢出标志位。 P(PSW.0):奇偶标志位。 2-10解答:
P0口由一个所存器、两个三态输入缓冲器、场效应管、控制与门、反相器和转换开关组成;作为输出口时,必须外接上拉电阻才能有高电平输出,作为输入口时,必须先向锁存器写“1”;作为普通I/O口使用或低8位地址/数据总线使用。
P1口内没有转换开关,但有上拉电阻;只用作普通I/O口使用。
P2口比P1口多了一个转换控制开关;作为普通I/O口使用或高8位地址线使用。 P3口比P1口增加了与非门和缓冲器;具有准双向I/O功能和第二功能。 上述4个端口在作为输入口使用时,应注意必须先向端口写“1”。
在时钟电路工作后,只要在单片机的RESET引脚上出现24个时钟震荡脉冲(两个机器周期)以上的高电平,单片机就能实现复位。
复位后,CPU和系统都处于一个确定的初始状态,在这种状态下,所有的专用寄存器都被赋予默认值,除SP=07H,P0~P3口为FFH外,其余寄存器均为0。
3-2解答:
[标号:] [操作数] [;注释] 3-3解答:
MCS-51系列单片机提供了7种寻址方式:
(1)立即寻址:操作数在指令中直接给出,立即数前面有“#”。
(2)直接寻址:在指令中直接给出操作数地址。对应片内低128个字节单元和特殊功能寄存器。 (3)寄存器寻址:以寄存器的内容作为操作数。对应的寄存器有:R0~R7、A、AB寄存器和数据指针DPTR。
(4)寄存器间接寻址:以寄存器的内容作为RAM地址,该地址中的内容才是操作数。对应片内RAM的低128个单元采用R0、R1作为间址寄存器,片外RAM低256个单元可用R0、R1作为间址寄存器,整个64KB空间可用DPTR作为间址寄存器。
(5)变址寻址:以DPTR或PC作为基址寄存器,以累加器A作为变址寄存器,并以两者内容相加形成的16位地址作为操作数地址。对应片内、片外的ROM空间。
(6)相对寻址:只在相对转移指令中使用。对应片内、片外的ROM空间。
(7)位寻址:对可寻址的位单独进行操作。对应位寻址区20H~2FH单元的128位和字节地址能被8整除的特殊功能寄存器的相应位。
3-4解答:
直接寻址方式。 3-5解答:
寄存器间接寻址方式。 3-6解答:
立即寻址方式,直接寻址方式,寄存器寻址方式,寄存器间接寻址方式,位寻址方式。 3-7解答: 变址寻址方式 3-8解答:
对于8052单片机内部RAM的高128B,必须采用寄存器间接寻址方式进行访问。 3-10解答: R0←30H,(R0)=30H A←((R0)),(A)=40H R1←(A),(R1)=40H B←((R1)),(B)=10H (R1)←(P1),((R1))=(40H)=EFH P2←(P1),(P2)=EFH 10H←20H,(10H)=20H 30H←(10H),(30H)=20H 结果:(R0)=30H,(A)=40H,(R1)=40H,(B)=10H,(40H)=EFH,(P2)=EFH,(10H)=20H,(30H)=20H
A←(A)∧23H,(A)=03H 42H←(42H)∨(A),(42H)=37H A←(A)((R0)),(A)=34H A←(A),(A)=CBH 结果:(A)=CBH 3-19解答:
DA A指令的作用是对A中刚进行的两个BCD码的加法结果进行修正,即继续使BCD码加法运算的结果保持为BCD码。使用时,DA A指令只能使用在加法指令后,即ADD指令和ADDC指令。
3-24解答: (1)正确。
(2)错误。原因:清零指令只能用于累加器ACC和位操作,而本题中E0H只能是字节地址(位地址的范围是00H~7FH),所以该条指令错误。
(3)错误。原因:ACC是直接字节地址,不能用于清零指令。 (4)正确。ACC.0是一个位,可以应用到清零指令中。 (5)正确。
(6)错误。原因:取反指令只能用于累加器ACC和位操作,而本题中E0H只能是字节地址(位地址的范围是00H~7FH),所以该条指令错误。
(7)错误。原因:ACC是直接字节地址,不能用于取反指令。 (8)正确。ACC.0是一个位,可以应用到取反指令中。 3-26解答:
指令LJMP addr16是长转移指令,指令中提供了16位目的地址,寻址范围是64KB。
指令AJMP addr11是绝对转移指令,指令中11位目的地址,其中a7~a0在第二字节,a10~a8则占据第一字节的高3位,寻址范围是与PC当前值(本指令所在地址+本条指令所占用的字节数2)在同一个2K的区域内。
3-27解答: (1) MOV P1,#0CAH ;P1←CAH,P1=CAH=11001010B MOV A,#56H ;A←56H,A=56H=01010110B JB P1.2,L1 ;若P1.2=1,则转移至L1 JNB ACC.3,L2 ;若ACC.3=0,则转移至L2 … L1: … L2: …
执行完本段程序后将转移至L2,因为P1.2=0,ACC.3=0,所以转至L2。 (2) MOV A,#43H ;A←43H,A=43H=01000011B JB ACC.2,L1 ;若ACC.2=1,则转移至L1 JBC ACC.6,L2 ;若ACC.6=1,则转移至L2,同时将ACC.6清零 … L1: … L2: …
执行完本段程序后将转移至L2,因为ACC.2=0,ACC.6=1,所以转至L2,并且将ACC.6清零。
4-1解答:
MOV ADD MOV MOV ADDC MOV RET 4-2解答: ORG MOV MOV MUL MOV MOV MOV MOV MUL ADD MOV MOV ADDC MOV
RET 4-3解答:
A,21H A,23H 25H,A A,20H A,22H 24H,A
0200H A,51H B,#20 AB
53H,A 52H,B A,50H B,#3 AB
A,53H 53H,A A,B A,52H 52H,A
题图4-1 习题4-3流程图
LOP1: LOP2: LOP3: LOP4: LOP5: ORG MOV CJNE JC CJNE JC MOV LJMP MOV LJMP MOV MUL MOV RET
0300H A,DATA
A,#20,LOP1 LOP3
A,#50,LOP2 LOP4 B,#1 LOP5 B,#2 LOP5 B,#5 AB
FUNC,A
5-1解答:
51系列单片机的内部设有两个定时/计数器。分别有两种工作方式:定时器方式和计数器方式。由TMOD(定时器模式控制寄存器)中的控制位C/T进行选择。定时器方式的脉冲来自于内部时钟脉冲,每个机器周期是计数器的值增1;计数器方式的脉冲来自于外部输入引脚T0(P3.4)或T1(P3.5)。
5-3解答:
5-8解答:
(TMOD)=27H=00100111B
此时,T1工作于模式2,定时方式(即波特率发生器方式)。T1工作于模式3,TL0和TH0同为计数方式。
6.4解答:
波特率表示每秒传输的二进制数据位数。
Fb=11×250=2750 其波特率应为2750bps。 6.5解答:
MCS-51单片机串行口有4种工作模式,由串行控制寄存器SCON 中的SM0、SM1 两位组合来确定。
模式0是同步位移寄存器方式,用于I/O口的串、并转换。
模式1是8位异步通信方式,桢格式10位,波特率可变,用于双机通信。 模式2是9位异步通信方式,桢格式11位,波特率固定,用于多机通信。
模式3是9位异步通信方式,桢格式11位,波特率可变,用于多机远距离通信。 模式1、2、3的区别主要表现在桢格式和波特率两个方面。 6.6解答:
模式0的波特率固定:fosc/12
模式2的波特率固定:fosc/n(n=64或32)
模式1、3的波特率可变:T1溢出率/n(n=32或16) 6.7解答:
定时器T1模式2是自动装载初值模式,波特率精度高。若已知系统晶振频率、通信选用的波特率,
其初值 x256fosc(smod1)
384*波特率
7.1解答:
①MCS-51系统有INT0 、T0、INT1 、T1和串行口共五个中断源;
②INT0和INT1的中断标志是IE0和IE1,在电平方式下,当外部中断输入信号是低电平时,由硬件置1;在边沿方式下,当外部中断输入信号是下降沿时,由硬件置1;定时计数器溢出中断T0和T1的中断标志位是TF0和TF1,当定时/计数器产生溢出时,该位由硬件置1;串行口中断标志是TI或RI,当单片机接收到或发送完一帧数据后,由硬件置1。
③外部中断INT0和INT1的电平方式,无法清除,需采取硬件和软件相结合的方法来清除;边沿方
口中断(包括串行接收中断RI和串行发送中断TI),由软件清零。
④INT0 、T0、INT1 、T1和串行口中断5个中断源分别对应的中断入口地址是:
0003H、000BH、0013H、001BH、0023H。 7.2 解答:
MCS-51的中断系统有两个中断优先级:高优先级和低优先级。 中断优先级的控制方式是:
①高优先级中断可以中断正在响应的低优先级中断,反之则不能。
②优先级中断不能互相中断。即某个中断(不论是高优先级或低优先级)一旦得到响应,与其同级的中断就不能再中断它。
③同一中断优先级中优先权由高到低的次序是INT0 、T0、INT1 、T1和串行口中断,若有多个中断源同时请求中断,CPU将先响应优先权高的中断,后响应优先权低的中断。
通过中断优先级控制寄存器IP可以选择5个中断源的优先级别 7.3解答:
①MCS-51有IE0、TF0、IE1、TF1、TI和RI 共6个中断标志位。
②相同之处是这些中断标志位都是由硬件自动产生的,不同之处是外部中断和计数/定时器中断标志的清零是由硬件自动完成的,而串行口中断标志(TI、RI)不会自动清除,必须由用户在串行中断服务程序中用指令对TI或RI清0。 7.4 解答:
MOV IE,
MOV IP,
#10010110B #00010100B
;T0、INT1、串行口允许中断 ;INT1和串行口中断为高优先级 ;INT1电平触发方式
CLR IT1
8.1解答:
程序存储器和数据存储器虽然共用16位地址线和8位数据线,但数据存储器的读和写由RD和WR信号控制,程序存储器由读选通信号PSEN控制,两者虽然共处同一地址空间,但由于控制信号不同,故不会发生总线冲突。 8.2解答:
MCS-51单片机的寻址范围是64KB,既0000H~FFFFH;
8031单片机可以配置的存储器最大容量:程序存储器64KB;片外数据存储器64KB; 用户可以使用的最大容量是:64KB ROM、64KBRAM、128B片内RAM及SFR。 8.5解答:
8031单片机与两片2732A EPROM芯片连接如图8-2
8.9解答:
8155工作方式控制字的作用是使可编程的A口、B口、C口工作在需要的方式下以及控制定时器的启动和停止。各位的功能定义如图8-5所示。
图8-5 8155控制字
键盘的操作,无论是按键或键盘都是利用机械触点的合、断作用。通过机械触点的闭合、断开过程产生一个电压信号。由于机械触点的弹性作用,在闭合及断开瞬间均有抖动过程,抖动时间的长短,与开关的机械特性有关,一般为5~10 ms。这样会出现一系列脉冲。为了保证CPU对键的一次闭合,仅作一次键输入处理,必须去除抖动影响。 9.4 解答:
无论是LCD还是LED,其显示方式都有静态显示和动态显示两种显示方式。
所谓静态显示,就是当显示器显示某一字符时,相应段的发光二极管恒定地导通或截止,并且显示器的各位可同时显示。静态显示时,较小的驱动电流就能得到较高的显示亮度。
所谓动态显示就是一位一位地轮流点亮显示器的各个位(扫描),对于显示器的每一位而言,每隔一段时间点亮一次。显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。 9.7 解答:
在确定A/D转换器时,应遵循下述原则:
①根据前向通道的总误差,选择A/D转换器的精度和分辨率。
②根据信号的变化率及转换精度要求,确定A/D转换速度,以保证系统的实时性要求 。为减少孔径误差,若对变化速度非常快的信号进行A/D转换,可考虑加入采样/保持电路。
③根据环境条件来选择A/D转换器的些环境参数要求,如工作温度、功耗、可靠性等级等性能。 ④根据计算机接口特征,考虑选择A/D转换器的输出形式。例如,A/D转换器是并行输出还是串行输出,是二进制码还是BCD码;是用外部时钟、内部时钟还是不用时钟;有无转换结束状态标志;与TTL、CMOS及ECL电路的兼容性等等。
⑤还要考虑到芯片的成本、货源、是否是主流芯片等诸因素。
《单片机原理及接口技术》
1-1解答:
单片微型计算机简称单片机。一个完整的单片机芯片至少有中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、定时/计数器及I/O接口等部件。
1-2解答:
优异的性价比;集成度高、体积小、有很高的可靠性;控制功能强大;低功耗、低电压,便于生产便携式产品;外部总线增加了I^2C及SPI等串行总线方式,进一步缩小了体积,简化了结构。
1-3解答:
8052子系列片内ROM和RAM的容量比8051子系列各增加一倍,另外,增加了一个定时/计数器和一个中断源。
2-1解答:
MCS-51单片机由8个部件组成:中央处理器(CPU),片内数据存储器(RAM),片内程序存储器(ROM/EPROM),输入/输出接口(I/O口,分为P0口、P1口、P2口和P3口),可编程串行口,定时/计数器,中断系统及特殊功能寄存器(SFR)。
中央处理器(CPU):单片机的核心部分,它的作用是读入和分析每条指令,根据每条指令的功能要求,控制各个部件执行相应的操作。
片内数据存储器(RAM):存放各项操作的临时数据。 片内程序存储器(ROM/EPROM):存放单片机运行所需的程序。 输入/输出接口(I/O口):单片机与外设相互沟通的桥梁。
可编程串行口:可以实现与其它单片机或PC机之间的数据传送。
定时/计数器:具有可编程功能,可以完成对外部事件的计数,也可以完成定时功能。 中断系统:可以实现分时操作、实时处理、故障处理等功能。 特殊功能寄存器(SFR):反映单片机的运行状态,包含了单片机在运行中的各种状态字和控制字,以及各种初始值。
2-2解答:
EA引脚是片内外程序存储器的选择信号。当EA端保持高电平时,访问内部程序存储器,但在PC(程序计数器)值超过0FFFH(对于8051/8751/80C51)或1FFFH(对于8052)时,将自动转向访问外部程序存储器。当EA端保持低电平时,不管是否有内部程序存储器,则只访问外部程序存储器。
由于8031片内没有程序存储器,所以在使用8031时,EA引脚必须接低电平。 2-3解答:
在MCS-51单片机中,除P3口具有第二功能外,还有3条控制线具有第二功能。 P3口的第二功能:
P3.0—RXD:串行数据接收端 P3.1—TXD:串行数据发送端
P3.2—INT0:外部中断0申请输入端 P3.3—INT1:外部中断1申请输入端 P3.4—T0:定时器0计数输入端 P3.5—T1:定时器1计数输入端 P3.6—WR:外部RAM写选通
3条控制线的第二功能:
ALE—PROG:片内EPROM编程脉冲。片内具有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
RESET—VPD:备用电源。VCC掉电期间,此引脚可接备用电源,以保持内部RAM数据不丢失。 EA—VPP:片内EPROM编程电源。在对片内具有EPROM的芯片进行编程时,此引脚用于施加21V编程电源。
2-4解答:
MCS-51单片机的内部存储空间分为数据存储器和程序存储器。
内部数据存储器:共256字节单元,包括低128个单元和高128个单元。低128字节又分成3个区域:工作寄存器区(00H~1FH),位寻址区(20H~2FH)和用户RAM区(30H~7FH)。高128字节是供给特殊功能寄存器使用的,因此称之为特殊功能寄存器区。
内部程序存储器:在8031片内无程序存储器,8051片内具有4KB掩模ROM,8751片内具有4KBEPROM。
2-6解答:
内部RAM低128个单元按用途分成3个区域:工作寄存器区(00H~1FH),位寻址区(20H~2FH)和用户RAM区(30H~7FH)。
2-7解答:
DPTR是数据指针寄存器,是一个16位寄存器,用来存放16位存储器的地址,以便对外部数据存储器RAM中的数据进行操作。DPTR由高位字节DPH和低位字节DPL组成。
2-8解答:
所谓堆栈,顾名思义就是一种以“堆”的方式工作的“栈”。堆栈是在内存中专门开辟出来的按照“先进后出,后进先出”的原则进行存取的RAM区域。堆栈的用途是保护现场和断点地址。在8051单片机复位后,堆栈指针SP总是初始化到内部RAM地址07H。从08H开始就是8051的堆栈区,这个位置与工作寄存器组1的位置相同。因此,在实际应用中,通常要根据需要在程序初始化时对SP重新赋值,以改变堆栈的位置。
2-9解答:
程序状态字寄存器PSW是8位寄存器,用于存放程序运行的状态信息。 CY(PSW.7):进位标志位。 AC(PSW.6):辅助进位标志位。 F0(PSW.5)、F1(PSW.1):用户标志位。 RS1(PSW.4)、RS0(PSW.3):工作寄存器组选择位。 OV(PSW.2):溢出标志位。 P(PSW.0):奇偶标志位。 2-10解答:
P0口由一个所存器、两个三态输入缓冲器、场效应管、控制与门、反相器和转换开关组成;作为输出口时,必须外接上拉电阻才能有高电平输出,作为输入口时,必须先向锁存器写“1”;作为普通I/O口使用或低8位地址/数据总线使用。
P1口内没有转换开关,但有上拉电阻;只用作普通I/O口使用。
P2口比P1口多了一个转换控制开关;作为普通I/O口使用或高8位地址线使用。 P3口比P1口增加了与非门和缓冲器;具有准双向I/O功能和第二功能。 上述4个端口在作为输入口使用时,应注意必须先向端口写“1”。
在时钟电路工作后,只要在单片机的RESET引脚上出现24个时钟震荡脉冲(两个机器周期)以上的高电平,单片机就能实现复位。
复位后,CPU和系统都处于一个确定的初始状态,在这种状态下,所有的专用寄存器都被赋予默认值,除SP=07H,P0~P3口为FFH外,其余寄存器均为0。
3-2解答:
[标号:] [操作数] [;注释] 3-3解答:
MCS-51系列单片机提供了7种寻址方式:
(1)立即寻址:操作数在指令中直接给出,立即数前面有“#”。
(2)直接寻址:在指令中直接给出操作数地址。对应片内低128个字节单元和特殊功能寄存器。 (3)寄存器寻址:以寄存器的内容作为操作数。对应的寄存器有:R0~R7、A、AB寄存器和数据指针DPTR。
(4)寄存器间接寻址:以寄存器的内容作为RAM地址,该地址中的内容才是操作数。对应片内RAM的低128个单元采用R0、R1作为间址寄存器,片外RAM低256个单元可用R0、R1作为间址寄存器,整个64KB空间可用DPTR作为间址寄存器。
(5)变址寻址:以DPTR或PC作为基址寄存器,以累加器A作为变址寄存器,并以两者内容相加形成的16位地址作为操作数地址。对应片内、片外的ROM空间。
(6)相对寻址:只在相对转移指令中使用。对应片内、片外的ROM空间。
(7)位寻址:对可寻址的位单独进行操作。对应位寻址区20H~2FH单元的128位和字节地址能被8整除的特殊功能寄存器的相应位。
3-4解答:
直接寻址方式。 3-5解答:
寄存器间接寻址方式。 3-6解答:
立即寻址方式,直接寻址方式,寄存器寻址方式,寄存器间接寻址方式,位寻址方式。 3-7解答: 变址寻址方式 3-8解答:
对于8052单片机内部RAM的高128B,必须采用寄存器间接寻址方式进行访问。 3-10解答: R0←30H,(R0)=30H A←((R0)),(A)=40H R1←(A),(R1)=40H B←((R1)),(B)=10H (R1)←(P1),((R1))=(40H)=EFH P2←(P1),(P2)=EFH 10H←20H,(10H)=20H 30H←(10H),(30H)=20H 结果:(R0)=30H,(A)=40H,(R1)=40H,(B)=10H,(40H)=EFH,(P2)=EFH,(10H)=20H,(30H)=20H
A←(A)∧23H,(A)=03H 42H←(42H)∨(A),(42H)=37H A←(A)((R0)),(A)=34H A←(A),(A)=CBH 结果:(A)=CBH 3-19解答:
DA A指令的作用是对A中刚进行的两个BCD码的加法结果进行修正,即继续使BCD码加法运算的结果保持为BCD码。使用时,DA A指令只能使用在加法指令后,即ADD指令和ADDC指令。
3-24解答: (1)正确。
(2)错误。原因:清零指令只能用于累加器ACC和位操作,而本题中E0H只能是字节地址(位地址的范围是00H~7FH),所以该条指令错误。
(3)错误。原因:ACC是直接字节地址,不能用于清零指令。 (4)正确。ACC.0是一个位,可以应用到清零指令中。 (5)正确。
(6)错误。原因:取反指令只能用于累加器ACC和位操作,而本题中E0H只能是字节地址(位地址的范围是00H~7FH),所以该条指令错误。
(7)错误。原因:ACC是直接字节地址,不能用于取反指令。 (8)正确。ACC.0是一个位,可以应用到取反指令中。 3-26解答:
指令LJMP addr16是长转移指令,指令中提供了16位目的地址,寻址范围是64KB。
指令AJMP addr11是绝对转移指令,指令中11位目的地址,其中a7~a0在第二字节,a10~a8则占据第一字节的高3位,寻址范围是与PC当前值(本指令所在地址+本条指令所占用的字节数2)在同一个2K的区域内。
3-27解答: (1) MOV P1,#0CAH ;P1←CAH,P1=CAH=11001010B MOV A,#56H ;A←56H,A=56H=01010110B JB P1.2,L1 ;若P1.2=1,则转移至L1 JNB ACC.3,L2 ;若ACC.3=0,则转移至L2 … L1: … L2: …
执行完本段程序后将转移至L2,因为P1.2=0,ACC.3=0,所以转至L2。 (2) MOV A,#43H ;A←43H,A=43H=01000011B JB ACC.2,L1 ;若ACC.2=1,则转移至L1 JBC ACC.6,L2 ;若ACC.6=1,则转移至L2,同时将ACC.6清零 … L1: … L2: …
执行完本段程序后将转移至L2,因为ACC.2=0,ACC.6=1,所以转至L2,并且将ACC.6清零。
4-1解答:
MOV ADD MOV MOV ADDC MOV RET 4-2解答: ORG MOV MOV MUL MOV MOV MOV MOV MUL ADD MOV MOV ADDC MOV
RET 4-3解答:
A,21H A,23H 25H,A A,20H A,22H 24H,A
0200H A,51H B,#20 AB
53H,A 52H,B A,50H B,#3 AB
A,53H 53H,A A,B A,52H 52H,A
题图4-1 习题4-3流程图
LOP1: LOP2: LOP3: LOP4: LOP5: ORG MOV CJNE JC CJNE JC MOV LJMP MOV LJMP MOV MUL MOV RET
0300H A,DATA
A,#20,LOP1 LOP3
A,#50,LOP2 LOP4 B,#1 LOP5 B,#2 LOP5 B,#5 AB
FUNC,A
5-1解答:
51系列单片机的内部设有两个定时/计数器。分别有两种工作方式:定时器方式和计数器方式。由TMOD(定时器模式控制寄存器)中的控制位C/T进行选择。定时器方式的脉冲来自于内部时钟脉冲,每个机器周期是计数器的值增1;计数器方式的脉冲来自于外部输入引脚T0(P3.4)或T1(P3.5)。
5-3解答:
5-8解答:
(TMOD)=27H=00100111B
此时,T1工作于模式2,定时方式(即波特率发生器方式)。T1工作于模式3,TL0和TH0同为计数方式。
6.4解答:
波特率表示每秒传输的二进制数据位数。
Fb=11×250=2750 其波特率应为2750bps。 6.5解答:
MCS-51单片机串行口有4种工作模式,由串行控制寄存器SCON 中的SM0、SM1 两位组合来确定。
模式0是同步位移寄存器方式,用于I/O口的串、并转换。
模式1是8位异步通信方式,桢格式10位,波特率可变,用于双机通信。 模式2是9位异步通信方式,桢格式11位,波特率固定,用于多机通信。
模式3是9位异步通信方式,桢格式11位,波特率可变,用于多机远距离通信。 模式1、2、3的区别主要表现在桢格式和波特率两个方面。 6.6解答:
模式0的波特率固定:fosc/12
模式2的波特率固定:fosc/n(n=64或32)
模式1、3的波特率可变:T1溢出率/n(n=32或16) 6.7解答:
定时器T1模式2是自动装载初值模式,波特率精度高。若已知系统晶振频率、通信选用的波特率,
其初值 x256fosc(smod1)
384*波特率
7.1解答:
①MCS-51系统有INT0 、T0、INT1 、T1和串行口共五个中断源;
②INT0和INT1的中断标志是IE0和IE1,在电平方式下,当外部中断输入信号是低电平时,由硬件置1;在边沿方式下,当外部中断输入信号是下降沿时,由硬件置1;定时计数器溢出中断T0和T1的中断标志位是TF0和TF1,当定时/计数器产生溢出时,该位由硬件置1;串行口中断标志是TI或RI,当单片机接收到或发送完一帧数据后,由硬件置1。
③外部中断INT0和INT1的电平方式,无法清除,需采取硬件和软件相结合的方法来清除;边沿方
口中断(包括串行接收中断RI和串行发送中断TI),由软件清零。
④INT0 、T0、INT1 、T1和串行口中断5个中断源分别对应的中断入口地址是:
0003H、000BH、0013H、001BH、0023H。 7.2 解答:
MCS-51的中断系统有两个中断优先级:高优先级和低优先级。 中断优先级的控制方式是:
①高优先级中断可以中断正在响应的低优先级中断,反之则不能。
②优先级中断不能互相中断。即某个中断(不论是高优先级或低优先级)一旦得到响应,与其同级的中断就不能再中断它。
③同一中断优先级中优先权由高到低的次序是INT0 、T0、INT1 、T1和串行口中断,若有多个中断源同时请求中断,CPU将先响应优先权高的中断,后响应优先权低的中断。
通过中断优先级控制寄存器IP可以选择5个中断源的优先级别 7.3解答:
①MCS-51有IE0、TF0、IE1、TF1、TI和RI 共6个中断标志位。
②相同之处是这些中断标志位都是由硬件自动产生的,不同之处是外部中断和计数/定时器中断标志的清零是由硬件自动完成的,而串行口中断标志(TI、RI)不会自动清除,必须由用户在串行中断服务程序中用指令对TI或RI清0。 7.4 解答:
MOV IE,
MOV IP,
#10010110B #00010100B
;T0、INT1、串行口允许中断 ;INT1和串行口中断为高优先级 ;INT1电平触发方式
CLR IT1
8.1解答:
程序存储器和数据存储器虽然共用16位地址线和8位数据线,但数据存储器的读和写由RD和WR信号控制,程序存储器由读选通信号PSEN控制,两者虽然共处同一地址空间,但由于控制信号不同,故不会发生总线冲突。 8.2解答:
MCS-51单片机的寻址范围是64KB,既0000H~FFFFH;
8031单片机可以配置的存储器最大容量:程序存储器64KB;片外数据存储器64KB; 用户可以使用的最大容量是:64KB ROM、64KBRAM、128B片内RAM及SFR。 8.5解答:
8031单片机与两片2732A EPROM芯片连接如图8-2
8.9解答:
8155工作方式控制字的作用是使可编程的A口、B口、C口工作在需要的方式下以及控制定时器的启动和停止。各位的功能定义如图8-5所示。
图8-5 8155控制字
键盘的操作,无论是按键或键盘都是利用机械触点的合、断作用。通过机械触点的闭合、断开过程产生一个电压信号。由于机械触点的弹性作用,在闭合及断开瞬间均有抖动过程,抖动时间的长短,与开关的机械特性有关,一般为5~10 ms。这样会出现一系列脉冲。为了保证CPU对键的一次闭合,仅作一次键输入处理,必须去除抖动影响。 9.4 解答:
无论是LCD还是LED,其显示方式都有静态显示和动态显示两种显示方式。
所谓静态显示,就是当显示器显示某一字符时,相应段的发光二极管恒定地导通或截止,并且显示器的各位可同时显示。静态显示时,较小的驱动电流就能得到较高的显示亮度。
所谓动态显示就是一位一位地轮流点亮显示器的各个位(扫描),对于显示器的每一位而言,每隔一段时间点亮一次。显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。 9.7 解答:
在确定A/D转换器时,应遵循下述原则:
①根据前向通道的总误差,选择A/D转换器的精度和分辨率。
②根据信号的变化率及转换精度要求,确定A/D转换速度,以保证系统的实时性要求 。为减少孔径误差,若对变化速度非常快的信号进行A/D转换,可考虑加入采样/保持电路。
③根据环境条件来选择A/D转换器的些环境参数要求,如工作温度、功耗、可靠性等级等性能。 ④根据计算机接口特征,考虑选择A/D转换器的输出形式。例如,A/D转换器是并行输出还是串行输出,是二进制码还是BCD码;是用外部时钟、内部时钟还是不用时钟;有无转换结束状态标志;与TTL、CMOS及ECL电路的兼容性等等。
⑤还要考虑到芯片的成本、货源、是否是主流芯片等诸因素。