MCS - 51 单片机的硬件结构
存储器
I/O 接口
CPU
中断系统
定时 / 计数器
硬件结构
暂存器暂存器11
暂存器暂存器22
ACCACC
PSWPSW
BB
ALUALU 控制信号
Ⅰ CPU
指令寄存
指令寄存
器器时序电路
时序电路
指令译码
指令译码
器器
微操作控制电路微操作控制电路
程序地址程序地址寄存器寄存器
缓冲器缓冲器
PCPC+1
内部内部
ROMROM
DPTRDPTR
MCS - 51 单片机的硬件结构( 2 )
Ⅱ 存储器
存储器
RAM 片内 RAM 片外 RAM
ROM 片内 ROM 片外 ROM
MCS - 51 单片机的硬件结构( 2 )
特殊功能寄存器( 80H—FFH )
20H
普通 RAM 区
位寻址区工作寄存器区
SFR 分布在80H-FFH
其中 92 个位可位寻址
特殊功能寄存器( SFR) 又称为专用寄存器。专用于控制、选择、管理、存放单片机内部各部分的工作方式、条件、状态、结果的寄存器。
00H
2FH
7FH
1FH
30H
80H
FFH
128 字节
片内 RAM
MCS - 51 单片机的硬件结构( 2 )
片内 ROM
FFFH
000H
片内 ROM 4K
字节EA=1
8051 子系列
8052 子系列
1FFFH
0000H
8K字节
EA=1
片内 ROM
条件: EA = 1
用途:
主要用来存储程序
通过内部总线与 CPU 联接地址存放在 PC 寄存器中
MCS - 51 单片机的硬件结构( 2 )
片内 RAM
8051 子系列
8052 子系列
8052 子系列有附加的 128 字节的片内 RAM 其地址与 SFR 重叠!
可以通过间接寻址的方法解决二者的地址重叠
FFH
00H
7FH80H
SFRs
FFH
80H 256字节
片内 RAM
主要用来作为数据存储器内部总线联接 CPU
地址存放在 RAM ADDR REG 中
128字节
7FH
00H
片内 RAM
FFH
SFRs
80H
MCS - 51 单片机的硬件结构( 2 )
位寻址区30H
普通 RAM 区
工作寄存器区00H
20H
2FH
7FH
1FH
128 字节
片内 RAM
片内 ROM 主要作为内部数据存储器
包括普通 RAM 区、位寻址区、工作寄存器区
都可以用于存放数据,也称为数据缓存寄存器
00H
20H
2FH
7FH
1FH
30H
普通 RAM 区
位寻址区工作寄存器区
256 字节
80H
FFH
间接寻址普通 RAM 区
8051 子系列
8052 子系列
MCS - 51 单片机的硬件结构( 2 )
外部存储器
FFFFH
0000H
64K字节
FFFFH
0000H
64K字节
可寻址片外 RAM
片外RAM
可寻址片外 RO
M
片外ROM
MCS - 51 单片机的硬件结构( 2 )
FFFFH
0000H
可寻址片外 ROM/R
AM 64K字节
对于具体的一种单片机而言其内部的片内存储器的容量是确定。
片外存储器的容量是可以根据需要进行配置。我们所讲的可寻址片外 64KROM/RAM指的是一种能力。
MCS - 51 单片机的硬件结构( 2 )
FFFFH
0000H
64K字节
地址总线
数据总线
控制总线
单片机为了具有扩展外部存储器的能力 ,应该为外部存储器提供相应的总线信号:
可寻址片外 ROM/R
AM
MCS - 51 单片机的硬件结构( 2 )
FFFFH
0000H
可寻址片外 RO
M
64K字节
地址总线
数据总线
控制总线
单片机为了具有扩展外部存储器的能力应该为外部存储器提供相应的总线信号:
16 根地址线 A0 ~ A15
8 根数据线 D0 ~ D7
PSEN 、 ALE
使能EA = 0
地址存放在 PC中
通过外部总线与 CPU 联接
与片内 ROM 统一编址
MCS - 51 单片机的硬件结构( 2 )
FFFFH
0000H
可寻址片外 R
AM
64K字节
地址总线
数据总线
控制总线
单片机为了具有扩展外部存储器的能力应该为外部存储器提供相应的总线信号:
16 根地址线 A0 ~ A15
8 根数据线 D0 ~ D7
WR 、 RD 、 ALE
地址存放在 DPTR 中
通过外部总线与 CPU 联接
与片内 RAM独立编址
MCS - 51 单片机的硬件结构( 2 )
I/O 接口
串行 UART
并行 P0 P1 P2 P3
Ⅲ
MCS - 51 单片机的硬件结构( 2 )
实际应用中,计算机的 CPU 与其外部设备之间常常要进行信息的交换,计算机之间也需要交换信息,所有这些信息的交换均称为“通讯”。
MCS - 51 单片机的硬件结构( 2 )
通讯的基本方式可分为: 通讯的基本方式
并行通讯
串行通讯
并行通讯,是指数据的各位同时进行传送的方式。其特点是传输速度快,但当距离较远,位数又多时导致了通讯线路复杂且成本高,如图所示。
串行通讯,是指数据一位一位地顺序传送的通讯方式。其特点是通讯线路简单,只要一对传输线就可以实现通讯,并可以利用电话线,从而大大地降低了成本,特别适用于远距离通讯,但传送速度慢,如图所示。
MCS - 51 单片机的硬件结构( 2 )
并行 P0 P1 P2 P3
MCS-51 单片机有 4 个双向 8 位 I/O 口 P0 ,P1 , P2 , P3 。 P0 口为三态双向口,负载能力为 8 个 LSTTL 门电路, P1 , P2 , P3 为准双向口,负载能力为 4 个 LSTTL 门电路。
MCS - 51 单片机的硬件结构( 2 )
P0.0—P0.7: 双向 I/O (内置场效应管上拉) 寻址外部程序存储器时分时作为双向 8位数据口和输出低 8位地址复用口;不接外部程序存储器时可作为 8位准双向 I/O 口使用。
2
1
D Q
CK /Q
读引脚
读锁存器
写锁存器
内部总线
地址 / 数据 控制
引脚 P0.X
3
4
Vcc
P0
MCS - 51 单片机的硬件结构( 2 )
2
1
D Q
CK /Q
读引脚 =1
读锁存器
写锁存器
内部总线
地址 / 数据 控制
引脚 P0.X3
4
控制 =0 时, 此脚作输入口(事先必须对它的寄存器写“ 1” )
00
1
00
截止
截止
=0 Vcc
P0.0—P0.7: 双向 I/O (内置场效应管上拉) 寻址外部程序存储器时分时作为双向 8位数据口和输出低 8位地址复用口;不接外部程序存储器时可作为 8位准双向 I/O 口使用。
MCS - 51 单片机的硬件结构( 2 )
2
1
D Q
CK /Q
读锁存器
写锁存器
内部总线
地址 / 数据 控制
引脚 P0.X
3
4
控制 =0 时,此脚作 输出口(需要外接上拉电阻)
00
1
00
截止
截止
=0 Vcc
P0.0—P0.7: 双向 I/O (内置场效应管上拉) 寻址外部程序存储器时分时作为双向 8位数据口和输出低 8位地址复用口;不接外部程序存储器时可作为 8位准双向 I/O 口使用。 Vcc
上拉电阻
MCS - 51 单片机的硬件结构( 2 )
2
1
D Q
CK /Q
读引脚 =0
读锁存器
写锁存器
内部总线
地址 / 数据 控制 =1
引脚 P0.X
3
4
控制 =1 时,此脚作地址 / 数据复用口:( 1 )输出地址 / 数据 =0 时
1
0
1
1
=0
导通
截止=0
Vcc
P0.0—P0.7: 双向 I/O (内置场效应管上拉) 寻址外部程序存储器时分时作为双向 8位数据口和输出低 8位地址复用口;不接外部程序存储器时可作为 8位准双向 I/O 口使用。
MCS - 51 单片机的硬件结构( 2 )
2
1
D Q
CK /Q
读引脚 =0
读锁存器
写锁存器
内部总线
地址 / 数据 控制 =1
引脚 P0.X
3
4
控制 =1 时,此脚作地址 / 数据复用口:( 2 )输出地址 / 数据 =1 时
1
1
0
0
=1
截止
导通
=1
Vcc
P0.0—P0.7: 双向 I/O (内置场效应管上拉) 寻址外部程序存储器时分时作为双向 8位数据口和输出低 8位地址复用口;不接外部程序存储器时可作为 8位准双向 I/O 口使用。
MCS - 51 单片机的硬件结构( 2 )
2
1
D Q
CK /Q
读引脚 =1
读锁存器
写锁存器
内部总线
地址 / 数据 控制 =1
引脚 P0.X
3
4
控制 =1 时,此脚作地址 / 数据复用口: ( 3 )输入数据时,输入指令将使引脚与内部总线直通
Vcc
P0.0—P0.7: 双向 I/O (内置场效应管上拉) 寻址外部程序存储器时分时作为双向 8位数据口和输出低 8位地址复用口;不接外部程序存储器时可作为 8位准双向 I/O 口使用。
MCS - 51 单片机的硬件结构( 2 )
P1.0—P1.7: 准双向 I/O 口(内置了上拉电阻) 输出时一切照常,仅在作输入口用时要先对其 写“ 1”。
2
1
D Q
CK /Q
读引脚
读锁存器
写锁存器
内部总线
Vcc
引脚 P1.X
内部上拉电阻
P1
MCS - 51 单片机的硬件结构( 2 )
2
1
D Q
CK /Q
读引脚
读锁存器
写锁存器
内部总线
Vcc
引脚 P1.X
内部上拉电阻
输出数据 = 1 时
1 1
0
截止
=1
P1.0—P1.7: 准双向 I/O 口(内置了上拉电阻) 输出时一切照常,仅在作输入口用时要先对其 写“ 1”。
MCS - 51 单片机的硬件结构( 2 )
2
1
D Q
CK /Q
读引脚
读锁存器
写锁存器
内部总线
Vcc
引脚 P1.X
内部上拉电阻
输出数据 = 0 时
0 0
1
=0
导通
P1.0—P1.7: 准双向 I/O 口(内置了上拉电阻) 输出时一切照常,仅在作输入口用时要先对其 写“ 1”。
MCS - 51 单片机的硬件结构( 2 )
2
1
D Q
CK /Q
读引脚 =1
读锁存器
写锁存器
内部总线
Vcc
引脚 P1.X
内部上拉电阻
输入数据时,要先对其写“ 1”
1 1
0
截止
P1.0—P1.7: 准双向 I/O 口(内置了上拉电阻) 输出时一切照常,仅在作输入口用时要先对其 写“ 1”。
MCS - 51 单片机的硬件结构( 2 )
P2.0—P2.7: 双向 I/O (内置了上拉电阻) 寻址外部程序存储器时输出高 8位地址;不接外部程序存储器时可作为 8位准双向 I/O 口使用。
2
1
D Q
CK /Q
读引脚
读锁存器
写锁存器
内部总线
地址高 8 位 控制
引脚 P2.X3
内部上拉电阻
Vcc
P2
MCS - 51 单片机的硬件结构( 2 )
2
1
D Q
CK /Q
读引脚 =0
读锁存器
写锁存器
内部总线
地址高 8 位 控制
引脚 P2.X
控制 =0 时,此脚作通用 输出口: 输出 =1 时
1
10 截
止3
内部上拉电阻
1 1
Vcc
=1
=0
P2.0—P2.7: 双向 I/O (内置了上拉电阻) 寻址外部程序存储器时输出高 8位地址;不接外部程序存储器时可作为 8位准双向 I/O 口使用。
MCS - 51 单片机的硬件结构( 2 )
2
1
D Q
CK /Q
读引脚 =0
读锁存器
写锁存器
内部总线
地址高 8 位 控制
引脚 P2.X
控制 =0 时,此脚作通用 输出口:输出 =0 时
0
01 导
通3
内部上拉电阻
0 0
Vcc
=0
=0
P2.0—P2.7: 双向 I/O (内置了上拉电阻) 寻址外部程序存储器时输出高 8位地址;不接外部程序存储器时可作为 8位准双向 I/O 口使用。
MCS - 51 单片机的硬件结构( 2 )
2
1
D Q
CK /Q
读引脚 =0
读锁存器
写锁存器
内部总线
地址高 8 位 控制 =1
引脚 P2.X
控制 =1 时,此脚作 高 8 位地址 A8—A15 输出口:当输出 =1 时
1
0 截止3
内部上拉电阻
1
=1
Vcc
=1
P2.0—P2.7: 双向 I/O (内置了上拉电阻) 寻址外部程序存储器时输出高 8位地址;不接外部程序存储器时可作为 8位准双向 I/O 口使用。
MCS - 51 单片机的硬件结构( 2 )
2
1
D Q
CK /Q
读引脚 =0
读锁存器
写锁存器
内部总线
地址高 8 位 控制 =1
引脚 P2.X
0
1 导通3
内部上拉电阻
0
=0
Vcc
=0
控制 =1 时,此脚作 高 8 位地址 A8—A15 输出口:当输出 =0 时
P2.0—P2.7: 双向 I/O (内置了上拉电阻) 寻址外部程序存储器时输出高 8位地址;不接外部程序存储器时可作为 8位准双向 I/O 口使用。
MCS - 51 单片机的硬件结构( 2 )
P3.0—P3.7: 双功能口(内置了上拉电阻) 它具有特定的第二功能。在不使用它的第二功能时它就是普通的通用准双向 I/O 口。
2
1
D Q
CK /Q
读引脚
读锁存器
写锁存器
内部总线
第二功能输出
引脚 P3.X3
内部上拉电阻
Vcc
第二功能输入
4
P3
MCS - 51 单片机的硬件结构( 2 )
2
1
D Q
CK /Q
读引脚
读锁存器
写锁存器
内部总线
第二功能输出( WR , RD , TxD )
引脚 P3.X3
内部上拉电阻
Vcc
4
第二功能输出时,内部自动 D=1
1 1
1
反相器
P3.0—P3.7: 双功能口(内置了上拉电阻) 它具有特定的第二功能。在不使用它的第二功能时它就是普通的通用准双向 I/O 口。
MCS - 51 单片机的硬件结构( 2 )
2
1
D Q
CK /Q
读引脚
读锁存器
写锁存器
内部总线
此端自动= 1
引脚 P3.X
3
内部上拉电阻
Vcc
第二功能输入( RxD ,T0 , T1 , INT0 , INT1 )
4
第二功能输入时,信号经缓冲器 4 直接进入内总线
1
1
1 0 截止
P3.0—P3.7: 双功能口(内置了上拉电阻) 它具有特定的第二功能。在不使用它的第二功能时它就是普通的通用准双向 I/O 口。
MCS - 51 单片机的硬件结构( 2 )P3 口第二功能表( P.26 表 2 - 3 )
引 脚 第 二 功 能 P3.0 RxD: 串行口接收数据输入端P3.1 TxD: 串行口发送数据输出端P3.2 INT0: 外部中断申请输入端 0P3.3 INT1: 外部中断申请输入端 1P3.4 T0: 外部计数脉冲输入端 0P3.5 T1: 外部计数脉冲输入端 1P3.6 WR: 写外设控制信号输出端P3.7 RD: 读外设控制信号输出端
MCS - 51 单片机的硬件结构( 2 )
串行 UART
MCS - 51 单片机的硬件结构( 2 )串行通讯本身又分为两种基本方式:
异步传送
同步传送 所谓同步传送就是去掉异步传送时每个字符的起始位和停止位的成帧标志信号,仅在数据块开始处用同步字符来指示,如图所示。 很显然,同步传送的有效数据位传送速率高于异步传送,可达 50千波特,甚至更高。其缺点是硬件设备较为复杂,因为它要求要有时钟来实现发送端和接收端之间的严格同步,而且对同步时钟脉冲信号的相位一致性还要求非常严格,为此通常还要采用“锁相器”等措施来保证。
在异步传送中,每一个字符要用起始位和停止位作为字符开始和结束的标志,它是以字符为单位一个个地发送和接收的。
异步传送 异步传送时,每个字符的组成格式如图所示。首先是一位起始位表示字符的开始;后面紧跟着的是字符的数据字,数据字可以是 8 或 9 位数据,在数据字中可根据需要加入奇偶校验位;最后是停止位,其长度可以是一位、一位半或两位。所以,串行传送的数据字加上成帧信号起始位和停止位就形成一个字符串行传送的帧。起始位用逻辑“ 0” 低电平表示,停止位用逻辑“ 1” 高电平表示。图示数据字为 7 位,第 8 位(或第 9 位)是奇偶校验位。加上起始位、停止位,一个字符由 10 位(或 11 位)组成。这样加上成帧信号后,字符便可以一个接一个地传送了。
0/ 10/ 1 0/ 10/ 1 0/ 10/ 1 0/ 10/ 1 0/ 10/ 1 1 0/ 10/ 1 0/ 10/ 1
起始位
停止位
奇偶校验 7 ( 8 )位数据 或 位
停止位
奇偶校验
起始位 7 ( 8 )位数据 或 位
01 0
n第 个字符(n-1)第 个字符 (n+1)第 个字符
低位 高位 下降沿指出下一个字符的开始
在异步传送中,字符间隔不固定,在停止位后可以加空闲,空闲位用高电平表示,用于等待传送。这样,接收和发送可以随时地 或间断地进行,而不受时间的 限制。图示为有空闲位的情况。
0/ 10/ 10/ 1 0/ 10/ 1 0/ 10/ 1 0/ 10/ 1 0/ 1
起始位 7 ( 8 )位数据 或 位
停止位
奇偶校验
起始位
0 0
n第 个字符(n+1)第 个字符
低位 高位 下降沿指出下一个字符的开始
1 1 1 1
空用位
位时间取决于波特率
在异步数据传送中, CPU 与外设之间事先必须约定两项事宜:
①字符格式。双方要约好字符的编码形式,奇偶校验形式、 以及起始位和停止位的规定。
②波特率( Baud rate )。波特率是衡量位传送速率的指标,它要求发送站和接收站都要以相同的数据传送速率工作。
串行通讯中数据的传送方向
(b) 半双工通信方式
(a) 单工通信方式
(c) 全双工通信方式
A B
A B
A B
KK
单工通讯方式 ☞
半双工通讯方式 ☞
全双工通讯方式 ☞
A 端为发送站, B 端为接收站,数据仅能从 A站发至 B站
数据可以从 A发送到 B ,也可以由 B发送到 A 。不过同一时间只能作一个方 向的传送,其传送方式由收发控制开关 K 来控制。
每个站( A 、 B )既可同时发送,又可同时接 收。
MCS-51 单片机串行口
串行通信的基本特征是数据逐位顺序进行传送串行通信的格式及约定(如:同步方式、通讯速率、数据块格式、信号电平……等)不同,形成了多种串行通信的协议与接口标准。常见的有:☞通用异步收发器 (UART) 51 系列单片机的串口形式☞通用串行总线( USB )☞I2C 总线☞CAN 总线☞SPI 总线☞RS-485 , RS-232C , RS422A 标准……等等
MCS-51 单片机串行口
SBUF(发)
SBUF(收)
发送控制器 TI
接收控制器 RI
移位寄存器
波特率发生器
1
A累加器
移位寄存器
RxD
TxD
申请中断
引脚
引脚
CP
U
内
部
串行口结构
SM0 SM1 SM2 REN TB8 RB8 TI R1SCON☞ SM0 , SM1 :串行口 4种工作方式的选择位。
0 0 方式 0: 8位移位寄存器 I/O, 波特率固定为 fosc/12 0 1 方式 1: 8位 UART ( 1+8+1 位), 波特率可变 ,按公式计算 1 0 方式 2: 9位 UART ( 1+8+1+1 位), 波特率固定 =fosc x ( 1/32 )或( 1/64 ) 1 1 方式 3: 9位 UART ( 1+8+1+1 位), 波特率可变,按公式计算☞ SM2 :串行口多机通信控制位 (作为方式 2、方式 3的附加控制位)
串行口控制寄存器 SCON
☞ RI,TI :串行口收 /发数据申请中断标志位 = 1 申请中断; = 0 不申请中断
☞ TB8 :方式 2、 3中,是要发送的第 9位数据。 多机通信中 ,TB8=0 表示发送的是数据; TB8=1 表示发送的是地址。(奇偶校验)
☞ RB8 :在方式 2、 3中,是收到的第 9位数据。 在多机通信中 ,用作区别地址帧 /数据帧的 标志。(奇偶校验)
SM0 SM1 SM2 REN TB8 RB8 TI R1
☞ REN :串行口接收允许控制位 = 1 表示允许接收; = 0 禁止接收。
SCON
串行口工作方式
工作方式 0: 8位同步移位寄存器 I/O 方式☞ 发送: SBUF 中的串行数据由 RxD 逐位移出; TxD 输出移位时钟,频率 =fosc1/12 ; 每送出 8位数据 TI 就自动置 1; 需要用软件清零 TI 。 ☞ 接收:串行数据由 RxD 逐位移入 SBUF 中; TxD 输出移位时钟,频率 =fosc1/12 ; 每接收 8位数据 RI 就自动置 1; 需要用软件清零 RI 。
SBUF(发)
SBUF(收)
发送控制器 TI
接收控制器 RI
移位寄存器
波特率发生器
1
A累加器
移位寄存器
RxD
TxD
申请中断
引脚
引脚
CP
U
内
部
回顾
串行口方式 0 的扩展应用
串行口常用工作方式 0扩展出并行 I/O口
AB
CLK
h g f e d c b a
CLR
AB
CLK
CLR
AB
CLK
CLR
+5V
74LS164 74LS164 74LS164
74LS164 是串入并出芯片
h g f e d c b a h g f e d c b a
+5V共阳 LED 数码管
VCCTxDRxD
51 单片机
☞常用于串行通讯。除发 /收 8位数据外,还 在 D0 位前有一个起始位“ 0”; 在 D7 位后有一个停止位“ 1”。
☞方式 1工作时: 发送端自动添加一个起始位和一个停止位; 接收端自动去掉一个起始位和一个停止位。
工作方式 1:8 位 UART(1+8+1 位 )波特率可变
☞波特率可变 (由用户设置 ) ——用定时器 T1作波特率发生器: 公式:波特率 =( 2SMOD/32 ) T1 的溢出率
波特率 =(2SMOD/32)T1 的溢出率
☞ 溢出率: T1溢出的频繁程度 即: T1溢出一次所需时间的倒数。
☞ 初值 X = 2n - 2SMOD fosc
32 波特率 12
☞ 波特率 =2SMOD fosc
32 12(2n - X)其中: X 是定时器初值
☞RxD 引脚为接收端, TxD 引脚为发送端 ,由波特率 发生器 T1控制发送速度 , 不同于方式 0:收 /发都 需要由 TxD 送出移位时钟。
☞T1 作波特率发生器时初始化包括 : 选定时器工作方式 2(TMOD 选 8位自动重装 ); 将计算 (或查表 )出的初值 X赋给 TH1,TL1; 启动 T1 (SETB TR1); 对 T1 不要开中断 !!
工作方式 1的接收 /发送
☞串行口的初始化包括 : 对 SCON 选工作方式 对 PCON 设波特率加倍位“ SMOD”(缺省值 =0) 如果是接收数据 , 要先置“ 1”REN 位
☞由于波特率固定 ,常用于单片机间通讯。 数据由 8+1 位组成,通常附加的一位 (TB8/RB8) 用于“奇偶校验”。
工作方式 2: 9 位 UART(1+8+1+1 位 )两种波特率
☞方式 2的波特率 = fosc 2SMOD/64 即 : fosc 1/32 或 fosc 1/64 两种
在 SFR 的 SCON中
☞奇偶校验是检验串行通信双方传输的数据正确与否的一个措施。但是,并不能保证通信数据的传输一定正确。 换言之:如果奇偶校验发生错误,表明数据传输一定出错了;如果奇偶校验没有出错,绝不等于数据传输完全正确。
☞奇校验: 8位有效数据连同 1位附加位中, 二进制“ 1”的个数为奇数 偶校验: 8位有效数据连同 1位附加位中, 二进制“ 1”的个数为偶数
☞约定接收采用奇校验 若接收到的 9位数据中“ 1”的个数为奇数, 则表明接收正确,取出 8位有效数据即可; 若接收到的 9位数据中“ 1”的个数为偶数, 则表明接收出错!应当进行出错处理。
☞约定发送采用奇校验 若发送的 8位有效数据中“ 1”的个数为偶数, 则要添加一个附加位“ 1”一起发送; 若发送的 8位有效数据中“ 1”的个数为奇数, 则要添加一个附加位“ 0”一起发送。
采用偶校验时,处理方法与奇校验相反
☞选用偶校验方式发送 如果 A 中 1的个数是奇数( P=1 ), 将 TB8 写成“ 1”一起发出去; 反之:若( P=0 )则写 TB8=“0”发出去。 ☞选用偶校验方式接收 若收到的数中 P=0,且检查到 RB8=0 就可能对了 若收到的数中 P=1,且检查到 RB8=1 也可能对了 若 P=0且 RB8=1 或 P=1且 RB8=0 就一定出错了!
串口方式 2 的奇偶校验用法:
SM0 SM1 SM2 REN TB8 RB8 TI RISCON
串行口控制寄存器 SCONTB8 RB8
工作方式 3:9 位 UART(1+8+1+1 位 ) 波特率可变
串口方式 3和方式 2唯一的区别是波特率机制不同☞方式 2的波特率固定为时钟周期的 32或 64 分频,不可变。此工作方式与其他串行通讯设备连接困难,因此不常用。☞方式 3的波特率可变,按前面的公式计算: ☞波特率 =
2SMOD fosc
32 12(2n - X)其中: X 是定时器初值
☞ SBUF 两个同名的接收 /发送缓冲寄存器
串行口相关的 SFR
☞ SCON 串行口控制寄存器
☞ PCON 电源控制寄存器
☞ TMOD 定时方式寄存器
☞ TH1,TL1 定时器 1初值寄存器
☞ TCON 定时器控制寄存器
缓存发送 / 接收数据( 8位)
设置工作方式
设置波特率
☞ 指令 MOV SBUF , A 启动一次数据发送 , 向 SBUF 发送一个数 指令 MOV A , SBUF 完成一次数据接收 ,SBUF可再 接收下一个数
☞ SBUF 两个同名的接收 /发送缓冲寄存器缓存发送 / 接收数据( 8位)
SM0 SM1 SM2 REN TB8 RB8 TI R1SCON ☞ SM0 , SM1 :串行口 4种工作方式的选择位。
0 0 方式 0: 8位移位寄存器 I/O, 波特率固定为 fosc/12 0 1 方式 1: 8位 UART ( 1+8+1 位), 波特率可变 ,按公式计算 1 0 方式 2: 9位 UART ( 1+8+1+1 位), 波特率固定 =fosc x ( 1/32 )或( 1/64 ) 1 1 方式 3: 9位 UART ( 1+8+1+1 位), 波特率可变,按公式计算 ☞ SM2 :串行口多机通信控制位 (作为方式 2、方式 3的附加控制位)
SCON 串行口控制寄存器
☞ RI,TI :串行口收 /发数据申请中断标志位 = 1 申请中断; = 0 不申请中断
☞ TB8 :多机通信中 ,TB8=0 表示发送的是数据; TB8=1 表示发送的是地址。方式 2、 3中,是要 发送的第 9位数据。(奇偶校验)
☞ RB8 :在多机通信中 ,用作区别地址帧 /数据帧 的标志。在方式 2、 3中,是收到的第 9位数据。 (奇偶校验)
SM0 SM1 SM2 REN TB8 RB8 TI R1
☞ REN :串行口接收允许控制位 = 1 表示允许接收; = 0 禁止接收。
SCON
SCON 串行口控制寄存器
SMOD — — — GF1 GF0 PD 1DL
电源控制寄存器 PCON ( 97H)——特殊功能寄存器 PCON不能按位寻址——
☞ SMOD :在串行口工作方式 1、 2、 3 中, 是波特率加倍位 =1 时,波特率加倍 =0 时,波特率不加倍。 ( 在 PCON 中只有这一个位与串口有关 )
PCON
MCS - 51 单片机的引脚
P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST
(RXD)P3.0(TXD)P3.1(INT0)P3.2(INT1)P3.3
(T0)P3.4(T1)P3.5
(WR)P3.6(RD)P3.7
XTAL2XTAL1GND
P0.0(AD0)P0.1(AD1)P0.2(AD2)P0.3(AD3)P0.4(AD4)P0.5(AD5)P0.6(AD6)P0.7(AD7)
VCC
EA/VPPALE/PROGPSENP2.7(A15)P2.6(A14)P2.5(A13)P2.4(A12)P2.3(A11)P2.2(A10)P2.1(A9)P2.0(A8)
电源地组( VCC 和 GND ) VCC(40): 电源端GND(20): 接地端时钟组( XTAL1 和 XTAL2 ) XTAL1(19): 输入端XTAL2(18): 输出端控制信号组 RST(9): 复位端ALE/PROG(30):地址锁存允许端PSEN(29): 外部程序存储器选通端EA/Vpp(31): 外部程序存储器地址允许端I/O 端口 (P0,P1,P2,P3)
AT89C51
作业
单片机只是用来实现我们解决某些问题思想的一种工具。
解决某些问题的思想是最重要的。
如果你已经掌握了单片机系统的设计方法,你将用它来解决什么问题?!
请提出你将应用单片机系统解决的问题,并给出解决这个问题的思路。