一、MCS-51单片机的结构及原理
习题:
1. MCS-51系列单片机在片内集成了哪些主要逻辑功能部件?各个逻辑部件的主要功能是什么?
2. MCS-51系列单片机的引脚中有多少根I/O线?它们与单片机对外的地址总线和数据总线之间有什么关系?其地址总线和数据总线各有多少位?对外可寻址的地址空间有多大?
3. 8051单片机的控制总线信号有哪些?各有何作用?
4. 什么是指令?什么是程序?简述程序在计算机中的执行过程。
5. 8051单片机的存储器组织采用何种结构?存储器地址空间如何划分?各地址空间的地址范围和容量如何?使用上有何特点?
6. 何为堆栈指针?堆栈操作有何规定?
7. 8051单片机有多少个特殊功能寄存器?这些特殊功能寄存器能够完成什么功能?特殊功能寄存器中的哪些寄存器可以进行位寻址?
8. MCS-51单片机的I/O口有什么特点?
9. DPTR是什么寄存器?它的作用是什么?
10. 8051单片机的PSW寄存器各位标志的意义如何?
11. 8051片内数据存储器有多少字节?存储空间地址范围为多少?
12. 8051片内RAM低128单元划分为哪三个主要部分?各部分主要功能是什么?
13. 8051单片机的片内,片外存储器如何选择?
14. MCS-51单片机的时钟周期 ,机器周期,指令周期是如何定义的?当主频为12MHz的时候,一个机器周期是多长时间?执行一条最长的指令需要多长时间?
15. 8051单片机复位后 ,各寄存器的初始状态如何?复位方法有几种?
参考答案:
1、解:MCS-51单片机在片内集成了中央处理器(CPU)、程序存储器(ROM)、数据存储器(RAM)、定时器/计数器、并行I/O接口、串行I/O接口和中断系统等几大单元。
CPU是整个单片机的核心部件,由运算器和控制器组成。运算器可以完成算术运算和逻辑运算,其操作顺序在控制器控制下进行。控制器是由程序计数器PC(Program Counter)、指令寄存器IR(Instruction Register)、指令译码器ID(Instruction Decoder)、定时控制逻辑和振荡器OSC等电路组成。CPU根据PC中的地址将欲执行指令的指令码从存储器中取出,存放在IR中,ID对IR中的指令码进行译码,定时控制逻辑在OSC配合下对ID译码后的信号进行分时,以产生执行本条指令所需的全部信号。
程序存储器(ROM)用于存储程序、常数、
格等。
数据存储器(RAM)用于存储数据。
8051内部有两个16位可编程序的定时器/计数器T0和T1,均为二进制加1计数器。可用于定时和对外部输入脉冲的计数。
8051的中断系统主要由中断允许控制器IE和中断优先级控制器IP等电路组成。可实现对5个中断源的管理。8051的中断系统主要由中断允许控制器IE和中断优先级控制器IP等电路组成。其中,IE用于控制5个中断源中哪些中断请求被允许向CPU提出,哪些中断源的中断请求被禁止;IP用于控制5个中断源的中断请求的优先权级别。
I/O接口是MCS-51单片机对外部实现控制和信息交换的必经之路,用于信息传送过程中的速度匹配和增加它的负载能力。可分为串行和并行I/O接口。
2、解:80C51单片机有4个I/O端口,每个端口都是8位双向口,共占32根引脚。每个端口都包括一个锁存器(即专用寄存器P0~P3)、一个输入驱动器和输入缓冲器。通常把4个端口称为P0~P3。在无片外扩展的存储器的系统中,这4个端口的每一位都可以作为双向通用I/O端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。
3、解:控制线一共有6条:
(1)ALE/
:地址锁存允许/编程线,配合P0口引脚的第二功能使用。在访问片外存储器时,8051CPU在P0.7~P0.0引脚上输出片外存储器低8位地址的同时在ALE/
上输出一个高电位脉冲,用于把这个片外存储器低8位地址锁存到外部专用地址锁存器,以便空出P0.7~P0.0引脚线去传送随后而来的片外存储器读写数据。在不访问片外存储器时,8051自动在ALE/
上输出频率为fosc/6的脉冲序列。该脉冲序列可用作外部时钟源或作为定时脉冲源使用。
(2)
/Vpp:允许访问片外存储器/编程电源线,可以控制8051使用片内ROM还是使用片外ROM。若
=0,则允许使用片内ROM;若
=1则允许使用片外ROM。
(3)
:片外ROM选通线,在执行访问片外ROM的指令MOVC时,8051自动在
上产生一个负脉冲,用于为片外ROM芯片的选通。其他情况下
线均为高电平封锁状态。
(4)RST/VPD:复位/备用电源线,可以使8051处于复位工作状态。
4、解:指令:人为输入计算机,由计算机识别并执行一步步操作的命令的形式称为指令。
程序:一系列指令的有序集合称为程序。
程序在计算机中是按序执行的,CPU通过程序计数器PC控制程序的执行顺序,一般情况下程序是按序执行的,当执行转移、调用、返回等指令时,程序转移到相应的目的地址处执行。CPU根据程序计数器PC中的地址将欲执行指令的指令码从存储器中取出,存放在IR中,ID对IR中的指令码进行译码,定时控制逻辑在OSC配合下对ID译码后的信号进行分时,产生执行本条指令所需的全部信号,完成本条指令的执行。
5、解:(1)80C51在结构上的特点
80C51采用将程序存储器和数据存储器截然分开,分别寻址的结构,称为Harvard结构。
(2)在物理和逻辑上的地址空间
存储器上设有4个存储器空间:片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。
在逻辑上有3个存储器地址空间:片内、片外统一的64KB程序存储器地址空间,片内256B数据存储器地址空间,片外64KB的数据存储器地址空间。
(3)访问格式
访问片内RAM采用MOV格式
访问片外RAM采用MOVX格式
6、解:堆栈是一个特殊的存储区。主要功能是暂时存放数据和地址,通常用来保护断点和现场。它的特点是按照“先进后出”的存取数据。堆栈指针SP是一个8位寄存器,是用于指示堆栈的栈顶地址的寄存器,它决定了堆栈在内部RAM中的物理位置。
7、解:8051有21个特殊功能寄存器(PC除外),它们被离散地分布在内部RAM的80H~FFH地址单元中。特殊功能寄存器SFR的分布和功能见教材P24-25。
8、解:8051单片机的4个I/O口在结构上是基本相同的,但又各具特点。这四个端口都是8位双向口,每个端口都包括一个锁存器、一个输出驱动器和输入缓冲器。在无片外扩展存储器的系统中,这四个端口的每一位都可以作为双向通用I/O端口使用。在作为一般的通用I/O输入时,都必须先向锁存器写入“1”,使输出驱动场效应管FET截止,以免误读数据。各自特点如下:
(1)P0口为双向8位三态I/O口,它既可作为通用I/O口,又可作为外部扩展时的数据总线及低8位地址总线的分时复用口。作为通用I/O口时,输出数据可以得到锁存,不需外接专用锁存器;输入数据可以得到缓冲,增加了数据输入的可靠性。每个引脚可驱动8个TTL负载。
(2)P1口为8位准双向I/O口,内部具有上拉电阻,一般作通用I/O口使用,它的每一位都可以分别定义为输入线或输出线,作为输入时,锁存器必须置1。每个引脚可驱动4个TTL负载。
(3)P2口为8位准双向I/O口,内部具有上拉电阻,可直接连接外部I/O设备。它与地址总线高8位复用,可驱动4个TTL负载。一般作为外部扩展时的高8位地址总线使用。
(4)P3口为8位准双向I/O口,内部具有上拉电阻,它是双功能复用口,每个引脚可驱动4个TTL负载。作为通用I/O口时,功能与P1口相同,常用第二功能。作为第二功能使用时,各位的作用见教材P23表1.2.5所示。
9、解:数据指针DPTR是16位的专用寄存器,它由两个8位的寄存器DPH(高8位)和DPL(低8位)组成。专门用来寄存片外RAM及扩展I/O口进行数据存取时的地址。编程时,既可以按16位寄存器来使用,也可以按两个8位寄存器来使用(即高位字节寄存器DPH和低位字节寄存器DPL)。
DPTR主要是用来保存16位地址,当对64KB外部数据存储器寻址时,可作为间址寄存器使用。
10、解:程序状态字PSW是8位寄存器,用于存放程序运行的状态信息,PSW中各位状态通常是在指令执行的过程中自动形成的,但也可以由用户根据需要采用传送指令加以改变。各个标志位的意义如下:
PSW.7(Cy):进位标志位。
PSW.6(AC):辅助进位标志位,又称为半进位标志位。
PSW.5(F0):用户标志位。
PSW.4、PSW.3(RS1和 RS0):寄存器组选择位。
PSW.2(OV):溢出标志位。
PSW.1(空缺位):此位未定义。
PSW.0(P):奇偶校验位
11、解:
8051片内数据存储器有256B寻址空间。存储器空间的地址范围为:00H—-FFH
在这个存储器空间又可分为:
基本的数据存储区:00H—-7FH,可划分为工作寄存器、位寻址区、堆栈与数据缓冲区。
12、解:片内RAM低128单元划分及主要功能如下:
(1)工作寄存器组(00H——1FH)
这是一个用寄存器直接寻址的区域,内部数据RAM区的0—31,共32个单元。它是4个通用工作寄存器组,每个组包含8个8位寄存器,编号为R0——R7。
(2)位寻址区(20H——2FH)
16个字节单元,共包含128位,这16个字节单元既可以进行字节寻址,又可以实现位寻址。主要用于位寻址。
(3)堆栈与数据缓冲区(30H——7FH)
用于设置堆栈、存储数据。
13、解:程序存储器通过
/Vpp引脚选择。若
=0,则允许使用片内ROM;若
=1则允许使用片外ROM。
数据存储器通过指令区分:访问片内RAM采用MOV指令,访问片外RAM采用MOVX指令。
14、解:时钟周期又称为振荡周期,由单片机内部振荡电路OSC产生,定义为OSC时钟频率的倒数。时钟周期又称为节拍(用P表示)。时钟周期是时序中的最小单位。一个状态有两个节拍,
机器周期定义为实现特定功能所需的时间。MCS-51的机器周期由12个时钟周期构成。
执行一条指令所需要的时间称为指令周期,指令周期是时序中的最大单位。由于机器执行不同指令所需的时间不同,因此不同指令所包含的机器周期数也不尽相同。MCS-51的指令可能包括1~4个不等的机器周期。
当MCS-51的主频为12MHz时,一个机器周期为1s。执行一条指令需要的最长时间为4s。
15、解:8051单片机复位后机器的初始状态,即各寄存器的状态:PC之外,复位操作还对其它一些特殊功能寄存器有影响,它们的复位状态如下:
寄存器
复位时内容
寄存器
复位时内容
PC
0000H
TCON
0×000000B
ACC
00H
TL0
00H
B
00H
TH0
00H
PSW
00H
TH1
00H
SP
07H
TH1
00H
DPTR
0000H
SCON
00H
P0—P3
FFH
SBUF
不确定
TMOD
××000000B
PCON
0×××0000B
单片机复位方法有:上电自动复位,按键电平复位和外部脉冲三种方式
二、指令系统及汇编语言
习题:
1. 8051单片机的指令系统有何特点?
2.8051单片机指令系统按功能可分为几类?具有几种寻址方式?它们的寻址范围如何?
3.访问特殊功能寄存器和外部数据存储器应采用哪种寻址方式?
4.片内RAM 20H~2FH单元中的128个位地址与直接地址00H~7FH形式完全相同,如何在指令中区分出位寻址操作和直接寻址操作?
5.设片内RAM中的(40H)=50H,写出执行下列程序段后寄存器A和R0,以及片内RAM中50H和51H单元的内容为何值?
MOV A,40H
MOV R0,A
MOV A,#00
MOV @R0,A
MOV A,#30H
MOV 51H,A
MOV 52H,#70H
6.在8051的片内RAM中,已知(20H)=30H,(30H)=40H,(40H)=50H,(50H)=55H。分析下面各条指令,说明源操作数的寻址方式,分析按顺序执行各条指令后的结果。
指令
MOV A,40H
MOV R0,A
MOV P1,#80H
MOV @R0,20H
MOV DPTR,#2000H
MOV 40H,30H
MOV R0,30H
MOV D0H,R0
MOV 10H,#10H
MOV A,@R0
7.完成以下的数据传送过程。
(1)片外RAM 20H单元的内容送R0。
(2)片外RAM 20H单元的内容送片内RAM 20H
(3)片外RAM 1000H单元的内容送片内RAM 20H
(4)ROM 2000H单元的内容送片内RAM 20H
(5)ROM 2000H单元的内容送片外RAM 20H
8.设有两个4位BCD码,分别存放在片内RAM的23H,22H单元和33H,32H单元中,求它们的和,并送入43H,42H单元中去。(以上均为低位字节,高位在高字节)。
9.编程将片内RAM的40H~60H单元中内容送到片外RAM以3000H开始的单元中。
10.编程计算片内RAM区30H~37H的8个单元中数的算术平均值,结果存在3AH单元中。
11.设有100个有符号数,连续存放在片外RAM以2200H为首地址的存储区中,试编程统计其中正数、负数、零的个数。
参考答案:
1、解:8051的指令系统由111条指令组成。如果按字节数分类,有49条单字节指令46条双字节指令和16条三字节指令,以单字节指令为主;如果按照指令执行时间分类,有64条单周期指令、45条双周期指令和2条四周期指令,以单周期指令为主。
8051的指令系统具有以下特点:
(1)存储效率高、执行速度快,可以进行直接地址到直接地址的数据传送,能把一个并行I/O口中的内容传送到内部RAM单元中而不必经过累加器A或工作寄存器Rn。这样可以大大提高传送速度和缓解累加器A的瓶颈效应。
(2)用变址寻址方式访问程序存储器中的表格,将程序存储器单元中的固定常数或表格字节内容传送到累加器A中。这为编成翻译算法提供了方便。
(3)在算术运算指令中设有乘法和除法指令
(4)指令系统中一些对I/O口进行操作的指令具有“读——修改——写”的功能。这一功能指:在执行读锁存器的指令时,CPU首先完成将锁存器的值通过缓冲器BUF2度入内部,进行修改、改变,然后重新写到锁存器中去。这种类型指令包含所有的逻辑操作和位操作指令。
(5)8051单片机内部有一个布尔处理器,对为地址空间具有丰富的位操作指令。布尔操作类指令有17条,包括布尔传送指令、布尔状态控制指令、布尔逻辑操作指令、布尔条件转移指令。
2.解:MCS-51单片机指令系统按功能可分为5类:
(1)数据传送指令
(2)算术运算指令
(3)逻辑运算和移位指令
(4)控制转移指令
(5)位操作指令
MCS-51单片机的指令系统提供了七种寻址方式,其对应的寻址范围如下表:
寻址方式
使用的变量
寻址范围
立即寻址
程序存储器
直接寻址
内部RAM低128个字节;
特殊功能寄存器SFR
寄存器寻址
R0~R7;A、B、DPTR、C
寄存器间接寻址
@R0、@R1、SP
内部RAM、堆栈指针SP
@R0、@R1、@DPTR
外部RAM
变址寻址
@A+PC、@A+DPTR
程序存储器
相对寻址
PC+偏移量
程序存储器
位寻址
内部RAM低128B位寻址区
可位寻址的特殊功能寄存器位
3.解: 访问特殊功能寄存器,应采用直接寻址、位寻址方式。
访问外部数据存储器,应采用寄存器间接寻址方式。
在0~255B范围内,可用寄存器R0、R1间接寻址:
MOVX A,@R0 或 MOVX A,@R1
MOVX @R0,A 或 MOVX @R1,A
在0~64KB范围内,可用16位寄存器DPTR间接寻址:
MOVX A,@DPTR
MOVX @DPTR,A
4.解: 虽然内部RAM位寻址区的位地址范围00H~7FH与低128个单元的单元地址范围00H~7FH形式完全相同,但是在应用中可以通过指令的类型区分单元地址和位地址。
位寻址的操作只适用于下列位指令,而直接寻址操作对这些指令是无效的。
MOV C,bit
MOV bit,C
CLR bit
SETB bit
CPL bit
ANL C,bit
ANL C,/bit
JB bit,rel
JNB bit,rel
5.解:结果为:(A)=30H (R0)=50H (50H)=00H (51H)=30H
6.解: 指令 源操作数的寻址方式 执行指令后的结果
MOV A,40H 直接寻址 (A)=50H
MOV R0,A 寄存器寻址 (R0)=50H
MOV P1,#80H 立即寻址 (P1)=80H
MOV @R0,20H 直接寻址 (50H)=30H
MOV DPTR,#2000H 立即寻址 (DPTR)=2000H
MOV 40H,30H 直接寻址 (40H)=40H
MOV R0,30H 直接寻址 (R0)=40H
MOV D0H,R0 直接寻址 (D0H)=40H
MOV 10H,#10H 立即寻址 (10H)=10H
MOV A,@R0 寄存器间接寻址 (A)=40H
7.解:
(1)片外RAM 20H单元内容送R0 ;
MOV DPTR, #0020H
MOVX A, @DPTR
MOV R0, A
(2)片外 RAM 20H单元的内容送片内RAM 20H单元;
MOV R0, #20H
MOVX A, @R0
MOV 20H, A
(3)片外RAM 1000H单元的内容送片内 RAM 20H 单元;
MOV DPTR, #1000H
MOVX A, @DPTR
MOV 20H, A
(4)ROM 2000H 单元的内容送片内RAM 20H单元;
MOV A, #00H
MOV DPTR, #2000H
MOVC A, @A+DPTR
MOV 20H, A
(5)ROM 2000H单元的内容送片外RAM 20H单元。
MOV A, #00H
MOV DPTR, #2000H
MOVC A, @A+DPTR
MOV R0, #20H
MOVX @R0, A
8.解:
ORG 0000H
LJMP START
ORG 0030H
START: MOV A,22H
ADD A,32H
DA A
MOV 42H,A
MOV A,23H
ADDC A,33H
DA A
MOV 43H,A
SJMP $
END
9.解:
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: MOV R7,#20H
MOV R1,#40H
MOV DPTR,#3000H
LOOP: MOV A,@R1
MOVX @DPTR,A
INC R1
INC DPTR
DJNZ R7,LOOP
SJMP $
END
10.解:
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: MOV R0,#30H
MOV R1,#00H
MOV R2,#00H
MOV R3,#07H
LP2: MOV A,@R0
ADD A,R2
MOV R2,A
JNC LP1
INC R1
LP1: INC R0
DJNZ R3,LP2
MOV R3,#03H
LP3: CLR C
MOV A,R1
RRC A
MOV R1,A
MOV A,R2
RRC A
MOV R2,A
DJNZ R3,LP3
MOV 3AH,R2
SJMP $
END
11.解:
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: MOV R2,#100
MOV R3,#00H
MOV R4,#00H
MOV R5,#00H
MOV DPTR,#2000H
LOOP: MOVX A,@DPTR
CJNE A,#00H,NET1
INC R3
INC DPTR
DJNZ R2,LOOP
SJMP NET3
NET1: JC NET2
INC R4
INC DPTR
DJNZ R2,LOOP
SJMP NET3
NET2: INC R5
INC DPTR
DJNZ R2,LOOP
NET3: SJMP $
END
四、中断系统、定时器/计数器、串行口
习题:
1.什么是中断和中断系统?其主要功能是什么?
2.什么是是中断优先级?中断优先级处理的原则是什么?
3.8051有哪些中断源?如何对各中断请求进行控制?
4.简述MCS51单片机的中断响应过程。
5.8051怎么管理中断?怎样开放和禁止中断?怎么设置优先级?
6.8051在什么条件下可响应中断?
7.请写出
为低电平触发的中断系统初始化程序。
8.说明MCS-51单片机响应中断后,中断服务的入口地址。
9.8051单片机内部有几个定时器/计数器?它们是由哪些特殊功能寄存器组成?
10.8051单片机定时器/计数器作定时和计数使用时,其计数脉冲分别由谁提供?
11.定时器/计数器的4种工作方式各有何特点 ?如何选择、设定?
12.使用一个定时器,如何通过软硬结合方法实现较长时间的定时?
13. 8051单片机系统的时钟频率为6MHZ,请利用定时器T0和P1.2输出矩形脉冲,其波形如下图所示,试编程实现之。
14.在8051单片机中,已知时钟频率为12MHZ,请编程使P1.0和P1.1分别输出周期为2ms和500us的方波。
15.波特率、比特率和数据传送速率的含义是什么?
16.什么是串行异步通信?它有哪些特征?
17.简述串行接口接收和发送数据的过程?
参考答案:
1.解:
当CPU正在处理某件事情的时候,外部发生的某一事件请求CPU迅速去处理, CPU暂时中止当前的工作,转去处理所发生的事件,处理完该事件以后,再回到原来被中止的地方,继续原来的工作。这种过程为中断,实现这种服务的部件称为中断系统。
功能:①实时处理,能对外界异步发生的事件作出及时的处理。②完全消除了CPU在查询方式中的等待现象,大大提高了CPU的工作效率。③实现实时控制。
2.解:
中断优先级是CPU响应中断的先后顺序。中断优先处理的原则是:
(1)先响应优先级高的中断请求,再响应优先级低的中断请求。
(2)如果一个中断请求己被响应,同级的其他中断请求将被禁止。
(3)如果同级的多个中断请求同时出现,CPU则按单片机内部的自然优先级顺序响应各中断请求。
单片机内部自然优先级顺序(由高到低)为:
外部中断0→定时器0中断→外部中断l→定时器1中断→串行接口中断。
3.解:
(1)80C51有以下5个中断源:
1 外部中断0(
)请求,低电平有效。
2 外部中断1(
)请求,低电平有效。
3 T0:定时器/计数器0溢出中断请求。
4 T1:定时器/计数器1溢出中断请求。
5 TI/RI:串行接口中断请求。
(2)通过对特殊功能寄存器TCON、SCON、IE、IP的各位进行置位或复位等操作,可实现对各种中断的控制功能。
4.解:
单片机一旦响应中断请求, 就由硬件完成以下功能:
(1) 根据响应的中断源的中断优先级, 使相应的优先级状态触发器置1;
(2) 执行硬件中断服务子程序调用, 并把当前程序计数器PC的内容压入堆栈,保护断点,寻找中断源;
(3) 清除相应的中断请求标志位(串行口中断请求标志RI和TI除外);
(4) 把被响应的中断源所对应的中断服务程序的入口地址(中断矢量)送入PC, 从而转入相应的中断服务程序。
(5)中断返回,程序返回断点处继续执行。
5.解:
(1)由中断源提出中断请求,由中断控制允许控制决定是否响应中断,如果允许响应中断,则CPU按设定好的优先级的顺序响应中断。如果是同一优先级的中断,则按单片机内部的自然优先级顺序(外部中断0→定时器0中断→外部中断l→定时器1中断→串行接口中断)响应中断。
CPU响应中断请求后,就立即转入执行中断服务程序。保护断点、寻找中断源、中断处理、中断返回,程序返回断点处继续执行。
(2)由中断允许寄存器IE控制开放和禁止中断。欲开放某一中断,则应先开放总中断允许(EA置1),然后开放相应中断的中断允许(相应位置1);若要要禁止中断,则EA置O即可。
(3)由中断优先级控制寄存器IP控制中断优先级,相应位置1,则设为高级中断,置0则为低级。其中:PS为串行中断优先级,PTl(0)为定时中断1(0)优先级,PXl(0)外部中断1(0)优先级。
6.解:
(1)有中断源发出中断请求。
(2)中断总允许控制位EA=l, CPU开放总中断。
(3)申请中断的中断源的中断允许位为1,即该中断没有被屏蔽。
(4)无同级或更高级中断正在服务。
(5)当前指令周期已经结束。
(6)若现行指令为RETI或访问IE或IP指令时,读指令以及紧接着的另一条指令已执行完毕。
满足以上条件,则CPU响应响应中断元的中断请求。
7.解:
解: ORG 0000H
LJMP MAIN
ORG 0013H
LJMP INT1
ORG 0030H
MIAN: SETB EA
SETB EX1
SETB PX1
CLR IT1
END
8.解:
中断服务程序的入口地址如下表:
中断源
中断矢量
外部中断0(
)
0003H
定时器T0中断
000BH
外部中断1(
)
0013H
定时器T1中断
001BH
串行口中断
0023H
9.解:
80C51单片机片内设有2个定时器/计数器:定时器/计数器T0和定时器/计数器T1,T0由TH0、TL0组成,T1由TH1、TLl组成。T0、T1由特殊功能寄存器TMOD、TCON控制。
10.解:
作定时器时,计数脉冲来自单片机内部,是由单片机晶振经过12分频后获得的脉冲。作为计数器时,计数脉冲来自单片机的外部,即T0与T1两个引脚的输入脉冲。
11.解:
(1) 工作方式O: 13位定时器/计数器工作方式。
工作方式0由TH0的全部8位和TL0的低5位构成13位加1计数器,此时TL0的高3位未用。在计数过程中,当TL0的低5位溢出时,都会向TH0进位,而全部13位计数器溢出时,则计数器溢出标志位TF0置位。
(2) 工作方式l: 16位的定时器/计数器方式。
工作方式1由TH0作为高8位,TL0为低8位,在计数过程中,当全部16位计数器溢出时,则计数器溢出标志位TF0置位。
(3) 工作方式2: 自动重新装入计数初值的8位定时器/计数器工作方式。
工作方式2的16位定时器/计数器被拆成两个8位寄存器TH0和TL0,CPU在对它们初始化时必须装入相同的定时器/计数器初值。定时器/计数器启动后,TL0按8位加1计数器计数,当TL0计数溢出时,置位TF0的同时又从预置寄存器TH0中重新获得计数初值并启动计数。如此反复。适合于需要重复计数的应用场合,也可以当做串行数据通信的波特率发生器使用。
(4) 工作方式3: 两个8位定时器/计数器(仅适用于T0)。
在工作方式3时,定时器/计数器0被拆成两个独立的8位计数器TL0和TH0。其中,TL0既可以作计数器使用,也可以作为定时器使用,定时器/计数器0的各控制位和引脚信号全归它使用。其功能和操作与方式0或方式1完全相同。TH0只能作为简单的定时器使用,只能借用定时器/计数器1的控制位TR1和TF1,也就是以计数溢出去置位TF1,TR1则负责控制TH0定时的启动和停止。
一般情况下,只有在T1以工作方式2运行(当波特率发生器用)时,才允许T0工作于方式3。
TMOD用于控制定时器/计数器T0和T1的工作方式,M1M0为工作方式选择位。
M1M0=00 方式0,13位定时器/计数器;
M1M0=01 方式1,16位定时器/计数器;
M1M0=10 方式2,自动重新装入计数初值的8位定时器/计数器;
M1M0=11 方式3,两个8位定时器/计数器(仅适用于T0)。
为定时方式/计数方式选择位。若设定
=0,则选择定时器工作方式;若设定
=1,则选择计数器工作方式。一个定时器/计数器同一时刻或者作定时用,或者作计数用,不能同时既作定时又作计数用。
GATE:门控位。它的状态决定了定时器/计数器启/停控制取决于TR0还是取决于TR0和
引脚两个条件的组合。若GATE=0,则只由TCON中的启/停控制位TR0控制定时器/计数器的启/停。此时,只要TR0=1,则接通模拟开关,使计数器进行加法计数,定时器/计数器启动工作。而如果TR0=0,则断开模拟开关,定时器/计数器停止工作。若GATE=1,由外部中断请求信号
和TCON中的启/停控制位TR0组合状态控制定时器/计数器的启/停。只有TR0=1,且
引脚也是高电平,才能启动定时器/计数器工作,否则,定时器/计数器停止工作。
定时器/计数器的定时器/计数器范围为:
工作方式0:13位定时器/计数器方式,因此,最多可以计到213,也就是8 192次。
工作方式1:16位定时器/计数器方式,因此,最多可以计到216,也就是65 536次。
工作方式2和工作方式3:都是8位的定时器/计数器方式,因此,最多可以计到28,也说是256次。
12.解:
设定好定时器的定时时间,采用中断方式用软件设置计数次数,进行溢出次数累计,从而得到较长的时间。
15.解:
为了衡量串行通信的速度,应该有一个测量单位,在数据通信中,描述数据传送速度的方式有3种: 波特率定义为每秒传送信号的数量,单位为波特(Baud)。比特率定义为每秒传送二进制数的信号数(或每秒传送二进制码元的个数),单位是bps(bit per second)或写成b/s(位/秒)。数据传送速率(或字符传送速率)定义为每秒传送多少个字符(或单位时间内平均数据传移速率,单位是字符/秒。
在串行通信中,传送的信号可能是二进制、八进制或十进制等。只有在传送的信号是二进制信号时,波特率才与比特率数值上相等。而在采用调制技术进行串行通信时,波特率是描述载波信号每秒钟变化为信号的数量(又称为调制速率)。在这种情况下,波特率与比特率在数值上可能不相等。
16.解:
异步通信中,接收器和发送器有各自的时钟,数据常以字符为单位组成字符帧传送,用一帧来表示一个字符,其字符帧的数据格式为:在一帧格式中,先是一个起始位“0”(低电平),然后是5~8个数据位,规定低位在前,高位在后,接下来是1位奇偶校验位(可以省略),最后是1~2位的停止位“1”(高电平)。
异步通信的优点是不需要传送同步脉冲,可靠性高,所需设备简单;缺点是字符帧中因包含有起始位和停止位而降低了有效数据的传输速率。
17.解:
串行接口的接收和发送是对同一地址(99H)两个物理空间的特殊功能寄存器SBUF进行读或写的。当向SBUF发"写"命令时(执行"MOV SBUF,A"指令),即向发送缓冲器SBUF装载并开始由TXD引脚向外发送一帧数据,发送完使发送中断标志位TI=1。在满足串行接口接收中断标志位RI(SCON.O)=0的条件下,置允许接收位REN(SCON.4)=1,就会接收一帧数据进入移位寄存器,并装载到接收SBUF中,同时使RI=1。当发读SBUF命令时(执行"MOV A,SBUF"指令),便从接收缓冲器SBUF读取信息通过80C5l内部总线送CPU。