89C51存储器配置
第8章89C51单片机扩展存储器的设计
低 高 正脉冲 低 低
低
+5V
程序读出
+5V
高阻
高 +25V(或12V) 程序写入
低 +25V(或12V) 程序读出
高 +25V(或12V) 高阻
2、存储器地址空间分配
一个存储器单元对应一个地址 在外扩的多片存储器芯片中,AT89C51要完成这种功能,必
须进行两种选择:
一是必须选中该存储器芯片(或I/O接口芯片),这称为“片 选”,只有被“选中”的存储器芯片才能被AT89C51读出或 写入数据。为了片选的需要,每个存储器芯片都有片选信号 引脚
地址分配
采用译码器法扩展2片8KBP2.E7PRPO2M.6,P22.片5 8选KB中芯RA片M。地E址PR范O围M 存储容量 选用2764,RAM选用6264。0 1 0 IC1 0000H-1FFFH 8K
0 0 1 IC2 2000H-3FFFH 8K
0
10
IC3 4000H-5FFFH 8K
(5)全静态工作:可从0Hz~16MHz。
(6)程序存储器具有3级加密保护。
(7)空闲状态维持低功耗和掉电状态保存存储器内容。
本章小结:
AT89C51可扩展的外部存储器分为2个64K空间:程序存储器空间和 数据存储器空间 总线构成:地址总线:P0和P2口;
数据总线:P0口; 控制总线:ALE、PSEN、EA、WR、RD 片选方法:线选法和地址译码法
IC1 0000H-3FFFH 16K
0 1 Y1*
IC2 4000H-7FFFH 16K
1
0
Y2*
IC3 8000H-BFFFH 16K
1 1 Y3*
AT89C51单片机性能介绍
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
1.主要特性:·与MCS-51 兼容·4K字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年·全静态工作:0Hz-24Hz·三级程序存储器锁定·128*8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路2.管脚说明:VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
第2章 89C51单片机硬件结构和原理 (单片机原理课件)
返回
单片机原理及接口技术
1、准双向 当I/O口作为输入时,应先向此口锁存器写入 全1, 此时该口引脚浮空,可作高阻抗输入。
17:43
返回
单片机原理及接口技术
2、P0口:
P0口可作为一个8位数据准双向输入/输出口;
在CPU访问片外存储器时,P0口为分时复用的
低8位地址总线和8位数据总线。
17:43
3、片内4KB程序存储器Flash ROM(4KB): 用以存放程序、一些原始数据和表格。但有一些单片机内
部不带ROM/EPROM,如8031、8032、80C31等。
4、四个8位并行I/O(输入/输出)接口 P0~P3: 每个口可以用作输入,也可以用作输出。
17:43
返回
单片机原理及接口技术
5、两个或三个定时/计数器: 每个定时/计数器都可以设置成计数方式,用以对外部 事件进行计数,也可以设置成定时方式,并可以根据 计数或定时的结果 实现计算机控制。 6、一个全双工UART的串行I/O口: 可实现单片机与单片机或其它微机之间串行通信。 7、片内振荡器和时钟产生电路: 但需外接晶振和电容。 8、五个中断源的中断控制系统。 9、具有节电工作方式:
(3)8位程序状态寄存器PSW: (4)8位寄存器B:
(5)布尔处理器: (6)2个8位暂存器:
17:43
返回
单片机原理及接口技术
1)运算器 (1)8位的ALU: 可对4位、8位、16位数据进行操作。
17:43
返回
单片机原理及接口技术
(2)8位累加器ACC(A): • 它经常作为一个运算数经暂存器2进入ALU 的输入端,与另一个来自暂存器1的运算数 进行运算,运算结果又送回ACC。
17:43
第1部分 89C51单片机硬件结构和原理
第1部分 89C51单片机硬件结构和原理1. 89C51单片机片内包含哪些主要逻辑功能部件?答:89C51单片机是个完整的单片微型计算机。
芯片内部包括下列硬件资源:(1)8位CPU;(2)4KB的片内Flash ROM。
可寻址64KB程序存储器和64KB外部数据存储器;(3)256B内部 RAM/SFR;(4)21个 SFR;(5)4个8位并行I/O口P0~P3(共32位I/O线);(6)一个全双工uart的异步串行I/O口,用于实现单片机之间或单片机与PC机之间的串行通讯;(7)两个16位定时器/计数器;(8)5个中断源,两个中断优先级;(9)内部时钟发生器。
2. 89C51的EA端有何用途?答:作外部程序存储器地址允许输入端和固化编程电压输入端。
3. 89C51的存储器分哪几个空间?如何区别不同空间的寻址?答:89C51存储器包括程序存储器和数据存储器,从逻辑结构上看,可以分为三个不同的空间:(1)64KB的程序存储器地址空间:0000H~FFFFH,其中0000H~0FFFH为片内4KB的Flash ROM地址空间,1000H~FFFFH为外部ROM地址空间;(2)256B的内部数据存储器地址空间,00H~FFH,分为两大部分,其中00H~7FH(共128B单元)为内部静态RAM的地址空间,80H~FFH为特殊功能寄存器的地址空间,21个特殊功能寄存器离散地分布在这个区域;(3)64KB的外部数据存储器地址空间:0000H~FFFFH,包括扩展I/O地址空间。
MCS-51单片机存储器三类空间地址存在重叠,单片机设计了不同的数据传送指令符号来区分:CPU访问片内、片外ROM指令用MOVC,访问片外RAM指令用MOVX,访问片内RAM 指令用MOV。
4. 简述89C51片内RAM的空间分配。
答:89C51内部256B的数据RAM区,包括有工作寄存器组区、可直接位寻址区和数据缓冲区、特殊功能寄存器组区。
89c51 (3)
89C51简介89C51是一款经典的8位单片机,由英特尔公司于1980年推出。
该单片机采用Harvard结构,内部集成了CPU核心、RAM、ROM、IO口等功能模块,具有低功耗、高性能和易于编程的特点。
89C51系列单片机广泛应用于各种嵌入式系统、工控系统、通信设备等领域。
主要特性•CPU核心:基于MCS-51架构,运行频率可达12MHz•存储器:4KB Flash ROM、128B RAM•IO口:32个单向/双向可编程引脚•定时器/计数器:2个16位定时器/计数器,1个可编程独立定时器/计数器•串行通信口:可支持多种通信协议,如SPI和UART•中断系统:可支持4级中断,包括外部中断和定时器中断•低功耗模式:可进入休眠模式以降低功耗架构和指令集89C51采用Harvard体系结构,包含4个主要部分:CPU 核心、存储器、IO口和定时器/计数器。
CPU核心负责指令的执行和数据的处理,支持各种算术、逻辑和移位操作。
存储器包括4KB的Flash ROM用于存储程序代码,以及128B的RAM用于存储临时数据。
IO口可以配置为输入或输出模式,并与外部设备进行数据交互。
定时器/计数器用于生成精确的定时事件和计数任务。
89C51的指令集丰富而全面,支持多种数据操作和控制指令。
常用指令包括数据传输指令(MOV、MOVX)、算术指令(ADD、SUB、INC、DEC)、逻辑指令(AND、OR、XOR、NOT)、移位指令(RL、RR、SL、SR)等。
此外,89C51还支持分支指令(JMP、CALL、RET)和中断指令(INT、IRET),使得程序可以根据需要实现跳转和中断处理。
开发工具与编程语言由于89C51是一款经典的单片机,目前市面上有多种开发工具可供选择。
其中,常用的开发工具有Keil C51和SDCC。
Keil C51是一款专为89C51系列单片机开发的集成开发环境(IDE),提供了代码编辑、编译、调试等功能。
第8章 89C51片机扩展存储器的设计第8章 89C51单片机扩展存储器的设计
8.3 程序存储器EPROM的扩展
采用只读存储器,非易失性。 1 掩膜ROM 在制造过程中编程。成本较高,因此只适合于大批量生产。 2 可编程ROM(PROM) 用独立的编程器写入。但PROM只能写入一次,且不能再修改。 3 EPROM 电信号编程,紫外线擦除的只读存储器芯片。 (4)E2PROM( EEPROM) 电信号编程,电信号擦除的ROM芯片。读写操作与RAM几乎没什
所以,在扩展程序存储器设计时,应尽量采用大容量芯片。
1.常用的EPROM芯片 27系列EPROM芯片的引脚如图8-11所示,参数见表8-4(P143
略)。
图8-11中的引脚功能如下: A0~A15:地址线引脚。数目决定存储容量来定,用来进行单
元选择。 D7~D0:数据线引脚 CE*:片选输入端 OE* :输出允许控制端 PGM*:编程时,加编程脉冲的输入端
如果用74LS138把64K空间全部划分为每块4KB,如何划分呢? 由于4KB空间需要12条地址线进行“单元选择”,而译码 器的输入有3条地址线(P2.6~P2.4),P2.7没有参加译码 ,P2.7发出的0或1决定了选择64KB存储器空间的前32KB还 是后32KB,由于P2.7没有参加译码,就不是全译码方式这 样前后两个32KB空间就重叠了。
图8-3
表8-1 74LS138译码器真值表
输入
G1 G2A* G2B* Y0*
CBA
输出
Y7* Y6* Y5* Y4* Y3* Y2* Y1*
(2)74LS139 74LS139是双2-4译码器。两个译码器完全独立,分别有各自
的数据输入端、译码状态输出端以及数据输入允许端。其 引脚如图8-4所示,真值表如表8-2所示(见P138)。
1.线选法 直接利用系统的高位地址线作为存储器芯片(或I/O接口
AT89C51芯片介绍
AT89C51 芯片介绍
AT89C51 是一种带4K 字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8 位
微处理器,俗称单片机。
该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的MCS-51 指令集和输出管脚相兼容。
由于将多功能8 位CPU 和闪烁存储器组合在单个芯片中,ATMEL 的AT89C51 是一种高效微控
制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
1.主要特性:
-与MCS-51 兼容
-4K 字节可编程闪烁存储器
寿命:1000 写/擦循环
数据保留时间:10 年
-全静态工作:0Hz-24Hz
-三级程序存储器锁定。
单片机AT89C51
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
1.主要特性:·8031 CPU与MCS-51 兼容· 4K字节可编程FLASH存储器(寿命:1000写/擦循环)· 全静态工作:0Hz-24KHz· 三级程序存储器保密锁定· 128*8位内部RAM· 32条可编程I/O线· 两个16位定时器/计数器·6个中断源· 可编程串行通道· 低功耗的闲置和掉电模式· 片内振荡器和时钟电路2.管脚说明:VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH 编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
89C51单片机的硬件结构资料
2.2.3
I/O口引脚
89C51共有4个8位并行I/O端口:P0、P1、P2、P3口, 共32个引脚。P3口还具有第二功能,用于特殊信号输入输 出和控制信号(属控制总线)。
(1) P0 口:当 89C51 扩展外部存储器及 I/O 接口芯片时, P0 口 作为地址总线(低8位)及数据总线的分时复用端口。为双 向I/O口。 也可作为通用的I/O口使用,但需加上拉电阻,这时为准 双向口。当作为普通的I/O输入时,应先向端口的输出锁存 器写入1。P0口可驱动8个LS型TTL负载。 (2) P1口:8位准双向I/O口,具有内部上拉电阻,可驱动4个 LS型TTL负载。 (3) P2口:8位准双向I/O口,与地址总线(高8位)复用,具 有内部上拉电阻,可驱动4个LS型TTL负载。 (4) P3 口: 8 位准双向 I/O 口,双功能复用口,具有内部上拉 电阻,可驱动 4 个 LS 型 TTL 负载。 P3 口还可提供第二功能, 定义如表2-1所列,应熟记。 注意:准双向口与双向三态口的差别。 (1)当3个准双向I/O口作输入口使用时,要向该口先写“1”。 (2)准双向I/O口无高阻 “浮空”状态。
片内ROM
有ROM 有EPROM
片内 RAM
128 字节
定时器 计数器
并行 I/O
串行 I/O
中 断 源
8031 80C31 8032 80C32
8051 80C51
(4K字节)
8751 87C51
(4K字节)
2x16
4x8位
1
5
8052 80C52
(8K字节)
8752 87C52
(8K字节)
256 字节
(3) ALE/PROG* ( 30 脚):地址锁存允许 / 片内 EPROM 编程脉冲 第一功能 :ALE 为地址锁存允许,用来锁存 P0 口 送出的低8位地址,可驱动8个LS型TTL负载。 第 二 功 能 :PROG* 为 编 程 脉 冲 输 入 端 , 片 内 有 EPROM的芯片,在EPROM编程期间,此引脚输入编程 脉冲。
第3章 89C51的存储器结构
3.1 存储器和它的地址表示方法
图3-1 89C51的存储体系 的存储体系
上一页 下一页 返回
3.2 89C51的程序存储器 的程序存储器
存储器( 程序存储器(ROM)是用于存放用户程序及表格常数的。 )是用于存放用户程序及表格常数的。 89C51片内有 片内有4KB的ROM,当片内空间不够时,外部可用 片内有 的 ,当片内空间不够时,外部可用16 位地址线扩展到最大64KB的ROM地址空间,片内 的 地址空间, 位地址线扩展到最大 地址空间 片内ROM和外 和外 部扩展ROM是统一编址的。当 部扩展 是统一编址的。 是统一编址的 =1时,程序计数器PC在 时 程序计数器 在 0000 H~0FFFH范围内(即4KB地址),执行片内 范围内( 地址),执行片内ROM中的 范围内 地址),执行片内 中的 程序。 的内容在1000 H~FFFFH范围(超过 范围( 地址) 程序。当PC的内容在 的内容在 范围 超过4KB地址) 地址 自动转向外部ROM执行程序。 执行程序。 时,CPU自动转向外部 自动转向外部 执行程序 当 =0时,所有取指令操作均在外部程序存储器中进行。 时 所有取指令操作均在外部程序存储器中进行。 单片机, 对8031单片机,因片内无 单片机 因片内无ROM,只能外部扩展程序存储器, ,只能外部扩展程序存储器, EA必须为低电平。 必须为低电平。 必须为低电平
1. 片内数据存储器低 片内数据存储器低128单元 单元
片内RAM低128单元按用途可分为 个区域。 低 单元按用途可分为3个区域 片内 单元按用途可分为 个区域。 (1)工作寄存器区(00H~1FH) )工作寄存器区( ) 片内RAM中的 中的00H~1FH共32B为工作寄存器区,分4组, 为工作寄存器区, 组 片内 中的 共 为工作寄存器区 每组有8个8位工作寄存器 每组有 个 位工作寄存器R0~R7。通过对特殊功能寄存器程 。 位工作寄存器 序状态字PSW的位 和位 (RS0、RS1)的设置,可决定当前 的位3和位 序状态字 的位 和位4( 、 )的设置, 程序使用哪一组工作寄存器。 复位后, 程序使用哪一组工作寄存器。CPU复位后,总是选中 组工作 复位后 总是选中0组工作 寄存器。如果实际应用中并不需要 组工作寄存器 组工作寄存器, 寄存器。如果实际应用中并不需要4组工作寄存器,那么剩下 的工作寄存器组所对应的单元可作为一般的数据缓冲器使用。 的工作寄存器组所对应的单元可作为一般的数据缓冲器使用。
89C51单片机的硬件结构
(7)P(PSW.0)奇偶标志位
P=1,A中“1”的个数为奇数
P=0,A中“1”的个数为偶数
2.3.2 控制器 1.程序计数器PC(Program Counter)
存放下一条要执行的指令在程序存储器中的地址。 基本工作方式有以下几种:
(1)程序计数器自动加1 (2)执行有条件转移或无条件转移指令时, PC将被 置入新的数值,从而使程序的流向发生变化。 (3)执行子程序调用或中断调用,完成下列操作:
8031:无此部件; 8051:4K字节ROM; 8751:4K字节EPROM ; 89C51/89C52/89C55:4K/8K/20K 字节闪存。 4. 4个并行可编程的8位I/O口 P1口、P2口、P3口、P0口 5. 串行口 1个全双工的异步串行口,具有四种工作方式。
6. 定时器/计数器 7. 中断系统 8. 特殊功能寄存器(SFR)
I/O
I/O
断 源
Intel MCS-51 子系列
8031 8051
8751
128
80C31 80C51 87C51 字节
(4K字节) (4K字节)
2x16
4x8位
1
5
Intel MCS-52 子系列
8032 8052
8752
256
80C32 80C52 87C52 字节
(8K字节) (8K字节)
3x16
89C51内RAM又可分成三个物理空间:工作寄 存器区、位寻址区和数据缓冲区。
地址区域
00H~07H
00H
08H~0FH
~
10H~17H
1FH
18H~1FH
20H~2FH
30H~7FH
功能名称 工作寄存器0区 工作寄存器1区 工作寄存器2区 工作寄存器3区
广州周立功单片机 P89C51 89C52 89C54 89C58 说明书
指针低字节
82H
AF
AE
AD
AC
AB
IE*
中断使能
A8H
EA
ET2
ES
ET1
BF
BE
BD
BC
BBB
IP*
中断优先级
B8H
PT2H
PSH
PT1H
B7
B6
B5
B4
B3
IPH#
中断优先级高字节 B7H
PT2H
PSH
PT1H
87
86
85
84
83
P0*
P0 口
80H
AD7
AD6
AD5
AD4
AD3
97
96
95
94
特性
y 80C51 核心处理单元 y 片内 FLASH 程序存储器 y 速度可达 33MHz y 全静态操作 y RAM 可扩展到 64K 字节 y 4 个中断优先级 y 6 个中断源 y 4 个 8 位 I/O 口 y 全双工增强型 UART
―帧数据错误检测 ―自动地址识别 y 电源控制模式 ―时钟可停止和恢复 ―空闲模式 ―掉电模式 y 可编程时钟输出 y 异步端口复位 y 双 DPTR 寄存器 y 低 EMI (禁止 ALE) y 3 个 16 位定时器 y 掉电模式可通过外部中断唤醒
复位值
E0
00H
AO xxxxxxx0B1
DPS
02H1
F0
00H
00H
00H
A8
EX0 0x000000B
B8
PX0H xx000000B
B0
PX0H xx000000B
80
AD0
at89c51的工作原理
at89c51的工作原理AT89C51是一款基于MCS-51体系结构的8位单片机,其工作原理如下:1. 存储器结构:AT89C51具有4KB的内部FLASH存储器,可用于存储程序和数据。
它还拥有128字节的RAM,用于存储变量和临时数据。
2. 中央处理单元(CPU):AT89C51的CPU是一个8位的高性能单元,由一个ALU(算术逻辑单元)、寄存器组和控制单元组成。
它能够执行各种指令,包括算术和逻辑运算,以及控制和数据传输操作。
3. 输入/输出(I/O)口:AT89C51具有4个通用输入/输出端口,每个端口有8个引脚,可用于连接外部设备和传感器。
通过配置这些引脚,可以实现与外部环境的数据交换和控制。
4. 定时/计数器:AT89C51具有2个16位定时/计数器,可以用作计时和事件计数器。
这些定时器可以配置为不同的工作模式,例如计时延时、PWM生成和捕获模式等。
5. 串行通信接口:AT89C51集成了一个可配置的串行通信接口(UART),用于与其他设备进行串行数据传输。
它支持标准的异步串行通信协议,例如RS232。
6. 中断系统:AT89C51具有多种中断源和优先级控制,可以响应外部事件和内部发生的事件。
通过使用中断,可以实现实时响应和处理紧急事件。
7. 时钟和复位电路:AT89C51需要外部提供时钟信号来驱动其内部运行。
一个复位电路用于初始化和复位芯片的状态。
总之,AT89C51是一款多功能的单片机,通过集成的CPU、存储器、I/O口、定时/计数器、串行通信接口和中断系统等组件,实现了各种数据处理、控制和通信功能。
它被广泛应用于各种领域,如自动控制、仪器仪表、家电等。
第2章 89C51单片机单片机的硬件结构
第2章 89C51单片机单片机的硬件结构第 2 章 89C51 单片机的硬件结构单片机作为一种集成电路芯片,在现代电子技术领域中扮演着至关重要的角色。
89C51 单片机更是其中应用广泛的一款,了解其硬件结构对于掌握单片机的工作原理和应用开发具有重要意义。
89C51 单片机的硬件结构主要包括中央处理器(CPU)、存储器、输入/输出(I/O)端口、定时器/计数器和中断系统等部分。
中央处理器(CPU)是单片机的核心,它负责控制和协调各个部分的工作。
89C51 的 CPU 由运算器和控制器组成。
运算器用于进行算术和逻辑运算,而控制器则根据程序指令来指挥单片机的工作流程。
存储器是单片机用于存储数据和程序的重要部件。
89C51 单片机的存储器分为程序存储器和数据存储器。
程序存储器用于存放用户编写的程序代码,通常是只读的,以保证程序的稳定性和安全性。
数据存储器则用于存储运行过程中的临时数据和结果。
在 89C51 中,程序存储器的空间可达 64KB。
这为复杂程序的存储提供了足够的空间。
而数据存储器又分为内部数据存储器和外部数据存储器。
内部数据存储器的容量较小,但访问速度快,通常用于存放频繁使用的数据。
外部数据存储器的容量可以根据需要进行扩展,以满足大量数据存储的需求。
输入/输出(I/O)端口是单片机与外部设备进行信息交换的接口。
89C51 单片机拥有四个 8 位的并行 I/O 端口,分别是 P0、P1、P2 和 P3 端口。
这些端口既可以作为输入端口,也可以作为输出端口。
通过对端口寄存器的设置,可以灵活地控制每个端口的工作模式和状态。
定时器/计数器是 89C51 单片机中的重要功能模块。
定时器用于实现定时功能,比如产生周期性的中断信号;计数器则用于对外部脉冲进行计数。
通过对定时器/计数器的设置,可以满足各种定时和计数的需求,为系统的精确控制提供了有力支持。
中断系统是单片机处理突发事件的有效手段。
当外部事件发生时,如按键按下、通信数据到达等,通过中断机制,单片机可以暂停当前正在执行的程序,转而去处理紧急事件,处理完成后再返回原来的程序继续执行。
89C51单片机硬件结构和原理
2.时钟电路引脚(XTAL1, XTAL2)
XTAL1 I,19) XTAL1(I,19):振荡器反向放大器输入端. 当外接晶体时,接晶体和微调电容的一端. 当采用外部时钟时,此脚作为驱动端,接外部时钟. 振荡电路的频率就是晶体固有频率. 振荡电路的频率就是晶体固有频率. 单片机正常工作时,该引脚应有脉冲信号输出. 单片机正常工作时,该引脚应有脉冲信号输出. XTAL2(I,18) XTAL2(I,18):振荡器反向放大器输出端. 当外接晶体时,接晶体和微调电容的一端. 当采用外部时钟时,此脚悬空.
第二章 89C51单片机硬件结构和原理 89C51单片机硬件结构和原理
2.1 89C51单片机内部结构及特点 89C51单片机内部结构及特点
MCS-51系列单片机为Intel 公司产品,1980年推出. MCS-51 系列单片机有: 8051,8751,8031 80c51BH,80c31BH … 它们的基本组成,基本性能和指令系统都是相同的. 89C51单片机是ATNMEL,PHILIPS,SST公司的产品: 89C51= 80C31+373+Flash ROM 给单片机的开发及应用带来很大的方便
复位 在RST端加入"1",且维持两个机器周期(24个振荡周期),
则CPU复位.复位时 PC=0000H. 复位时 = . 复位电路有上电复位,按键兼上电复位两种 复位电路有上电复位,按键兼上电复位两种: 上电复位(右图) ① 上电复位 在通电瞬间(Vc=0),电容C 通过R充电,在RST 端出现如图 正脉冲,则89C51加电自动复位. R,C随CPU时钟频率而变化, 取值如图.
(完整版)STC89C51
3。
1 STC89C51单片机的介绍STC系列单片机是美国STC公司最新推出的一种新型51内核的单片机。
片内含有Flash程序存储器、SRAM、UART、SPI、A\D、PWM等模块。
该器件的基本功能与普通的51单片机完全兼容。
3.1.1主要功能、性能参数1。
内置标准51内核,机器周期:增强型为6时钟,普通型为12时钟;2.工作频率范围:0~40MHZ,相当于普通8051的0~80MHZ;3.STC89C5xRC对应Flash空间:4KB\8KB\15KB;4。
内部存储器(RAM):512B;5。
定时器\计数器:3个16位;6。
通用异步通信口(UART)1个;7.中断源:8个;8.有ISP(在系统可编程)\IAP(在应用可编程),无需专用编程器\仿真器;9。
通用I\O口:32\36个;10.工作电压:3.8~5.5V;11。
外形封装:40脚PDIP、44脚PLCC和PQFP等3。
1。
2 89C51单片机的引脚功能说明(1)VCC:电源电压(2)GND:地(3) P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。
作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时可作为高阻抗输入端用.在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复位,在访问期间激活内部上拉电阻。
(4)P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTE 逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(ILL).与AT89C51不同之处是,P1.0和P1。
1还可分别作为定时/计数器2的外部计数输入(P 1.0/T2)和输入(P 1。
1/T2EX ),参见表4—1。
Flash编程和程序校验期间,P1接收低8位地址。
89C51单片机中文资料
89C51单片机中文资料一、概述89C51是一款由英特尔公司推出的单片机,广泛应用于嵌入式系统和物联网设备中。
本文将为您介绍89C51单片机的中文资料,包括其基本特性、应用领域、技术参数等内容。
二、基本特性1. 架构:89C51采用8位的CMOS单片机架构,具有强大的数据处理能力。
2. 存储器:89C51具有4KB的闪存程序存储器,用于存储程序代码和数据。
此外,它还配备了128字节的RAM,用于存储临时数据。
3. 时钟系统:89C51内置了一个可编程的时钟/计数器,可提供准确的时钟信号和定时功能。
4. 输入/输出:89C51具有多个通用输入/输出引脚,可用于连接外部设备和传感器。
5. 串行通信:89C51支持串行通信接口,可与其他设备进行数据交换和通信。
6. 中断系统:89C51具有灵活的中断系统,可实现对外部事件的快速响应。
三、应用领域89C51单片机广泛应用于各种嵌入式系统和物联网设备中,其应用领域包括但不限于:1. 工业控制:89C51可用于工业自动化控制系统,如温度控制、压力控制等。
2. 家电产品:89C51可用于家电产品,如洗衣机、冰箱、空调等,实现智能控制和功能扩展。
3. 交通系统:89C51可用于交通信号灯、智能停车系统等,提高交通效率和安全性。
4. 安防设备:89C51可用于安防设备,如入侵报警系统、监控摄像头等,实现智能化监控和报警功能。
5. 医疗设备:89C51可用于医疗设备,如血压计、心电图仪等,提供准确的数据采集和处理功能。
四、技术参数以下是89C51单片机的一些典型技术参数:1. 工作电压:3.3V-5V2. 最大时钟频率:12MHz3. I/O口数量:32个4. 串行通信接口:支持SPI和I2C协议5. 温度范围:-40℃至85℃6. 封装形式:DIP、PLCC、QFP等五、学习资料推荐如果您对89C51单片机感兴趣并希望深入学习,以下是一些中文学习资料的推荐:1. 《单片机原理与应用》:该书详细介绍了单片机的原理、应用和编程方法,适合初学者入门学习。
89C51中文手册
概述该系列单片机是采用高性能的静态80C51设计由先进CMOS工艺制造并带有非易失性Flash程序存储器全部支持12时钟和6时钟操作P89C51X2和P89C52X2/54X2/58X2分别包含128字节和256字节RAM32条I/O口线3个16位定时/计数器6输入4优先级嵌套中断结构1个串行I/O口可用于多机通信I/O扩展或全双工UART以及片内振荡器和时钟电路此外由于器件采用了静态设计可提供很宽的操作频率范围频率可降至0可实现两个由软件选择的节电模式空闲模式和掉电模式空闲模式冻结CPU但RAM定时器串口和中断系统仍然工作掉电模式保存RAM的内容但是冻结振荡器导致所有其它的片内功能停止工作由于设计是静态的时钟可停止而不会丢失用户数据运行可从时钟停止处恢复选型表特性特性y 80C51核心处理单元4k字节FLASH89C51X28k字节FLASH89C52X216k字节FLASH89C54X232k字节FLASH89C58X2128字节RAM89C51X2256字节RAM89C52X2/54X2/58X2布尔处理器全静态操作y 12时钟操作可选6个时钟通过软件或并行编程器y 存储器寻址范围64K字节ROM和64K字节RAMy 电源控制模式―时钟可停止和恢复―空闲模式―掉电模式y 两个工作频率范围6时钟模式时为0到20MHz12时钟模式时为0到33MHzy LQFP, PLCC或DIP封装y 扩展温度范围y 双数据指针y 3个加密位y 4个中断优先级y 6个中断源y 4个8位I/O口y 全双工增强型UART―帧数据错误检测―自动地址识别y 3个16位定时/计数器T0T1标准80C51和增加的T2捕获和比较y 可编程时钟输出y 异步端口复位y 低EMI (禁止ALE以及6时钟模式)y 掉电模式可通过外部中断唤醒订购信息P89C51X24K字节FLASH类型编号封装温度范围()P89C51X2BA PLCC44 0~+70P89C51X2BN DIP40 0~+70P89C51X2BBD LQFP44 0~+70P89C51X2FA PLCC44 -40~+85 P89C52X28K字节FLASH类型编号封装温度范围()P89C52X2BA PLCC44 0~+70P89C52X2BN DIP40 0~+70P89C52X2BBD LQFP44 0~+70P89C52X2FA PLCC44 -40~+85 P89C52X2FN DIP40 -40~+85 P89C52X2FBD LQFP44 -40~+85 P89C54X216K字节FLASH类型编号封装温度范围()P89C54X2BA PLCC44 0~+70P89C54X2BN DIP40 0~+70P89C54X2BBD LQFP44 0~+70P89C54X2FA PLCC44 -40~+85 P89C58X232K字节FLASH类型编号封装温度范围()P89C58X2BA PLCC44 0~+70P89C58X2BN DIP40 0~+70P89C58X2BBD LQFP44 0~+70P89C58X2FA PLCC44 -40~+85B=07040+85下表所示为操作模式电源电压以及最大外部时钟频率之间的关系操作模式电源电压最大时钟频率6-clock 5V10% 20MHz 12-clock 5V10% 33MHz框图1逻辑符号PLCC和CLCC封装及管脚功能DIP 封装及管脚功能 LQFP 封装及管脚功能管脚描述 管脚号名称 DIP LCC QFP 类型 名称和功能Vss 20 22 16I地 Vcc 40 44 38 I电源提供掉电空闲正常工作电压P0.0-0.739-32 43-36 37-30 I/O P0口 P0口是开漏双向口可以写为1使其状态为悬浮用作高阻输入P0也可以在访问外部程序存储器时作地址的低字节在访问外部数据存储器时作数据总线此时通过内部强上拉输出1P1.0-1.7 1-8 1 22-92 340-44 1-3I/O P1口 P1口是带内部上拉的双向I/O 口向P1口写入1时P1口被内部上拉为高电平可用作输入口当作为输入脚时被外部拉低的P1口会因为内部上拉而输出电流(见DC 电气特性)P1口第2功能T2(P1.0) 定时/计数器2的外部计数输入/时钟输出(见可编程输出)T2EX(P1.1)定时/计数器2重装载/捕捉/方向控制P2.0-2.7 21-28 24-31 18-25 I/O P2口 P2口是带内部上拉的双向I/O 口向P2口写入1时P2口被内部上拉为高电平可用作输入口当作为输入脚时被外部拉低的P2口会因为内部上拉而输出电流(见DC 电气特性)在访问外部程序存储器和外部数据时分别作为地址高位字节和16位地址(MOVX @DPTR)此时通过内部强上拉传送1当使用8位寻址方式(MOV@Ri)访问外部数据存储器时,P2口发送P2特殊功能寄存器的内容P3口P3口被内部上拉为高电平可用作输入口输入脚时口会因为内部上拉而输出电电气特性)串行输入口INT0(P3.2)INT1(P3.3)WR(P3.6)当晶振在运行中期高电平即可复位内部有扩散电阻连接到VssVcc输出脉冲锁存地在正常情况下ALE输出信号恒定为并可用作外部时钟或定时注意每次访问外部数据时一个ALE可以通过置位ALE只能在执行程序存储使能当执行外部程序存储器代码时个机器周期被激活两次在访问外部数据存储器时访问内部程序存储器时外部寻址使能在访问整个外部程序存储器时如果EA将执行内部程序除非程序计数器包含大于片内FLASH的地址该引脚在(Vpp)如果保密位已编程在复位时由内部锁存反相振荡放大器输入和内部时钟发生电路输入反相振荡放大器输出注: 为了避免上电时的”latch-up”效应任意管脚Vpp除外上的电压任何时候都不能高于Vcc+0.5V低于Vss-0.5V表1 P89C51X2/52X2/54X2/58X2 特殊功能寄存器双字节指针高字节*号的#80C51修改而来或新增加的表示保留位1复位值由复位源确定存储器的内容存储单先进的沟道氧化工艺和低内部电场的结合使擦除和编程操作特性y 可编程加密位y 每字节最少10000次擦除/编程周期 y 数据最少可保存10年y 从一般销售商处可获得编程支持振荡器特性XTAL1和XTAL2为输入和输出可分别作为一个反相放大器的输入和输出此管脚可配置为使用内部振荡器要使用外部时钟源驱动器件时XTAL2可以不连接而由XTAL1驱动外部时钟信号无占空比的要求因为时钟通过触发器二分频输入到内部时钟电路但高低电平的最长和最短时间必须符合手册的规定时钟控制寄存器CKCON该器件提供通过一个SFR 位CKCON 的X2位和一个Flash 位保密块中的FX2控制选择6时钟/12时钟模式当X2置0时12时钟模式有效该位置1时系统切换到6时钟模式由于该功能是通过SFR 位实现的因此可以随时访问并修改需要注意的是将X2从0改为1将导致用户代码以两倍的速度执行因为所有的系统时间间隔都变成原来的1/2从6时钟模式变为12时钟模式会将运行代码的速度降低为1/2Flash 时钟控制位FX2可通过并行编程器编程取代X2位实现6时钟模式见表2表2FX2时钟模式位只能通过并行编程器设置X2位CKCON.0CPU 时钟模式擦除 0 12时钟模式默认擦除 1 6时钟模式 编程 X 6时钟模式可编程时钟输出可从P1.0编程输出50%占空比的时钟信号P1.0除了作为常规I/O 口外还有两个可选功能它可编程为1用于定时/计数器2的外部时钟输入2使用16MHz操作频率时12时钟模式下输出50%占空比的61Hz~4MHz时钟信号6时钟模式时为122Hz~8MHz要将定时/计数器2配置为时钟发生器C/T2(T2CON.1)必须清零而T2MOD中的T20E位必须置位要启动定时器2还必须将TR2(T2CON.2)置位时钟输出频率由振荡器频率和定时器2捕获寄存器的重新装入值确定公式如下振荡器频率n65536RCAP2H,RCAP2L此处n = 166时钟模式或3212时钟模式RCAP2H,RCAP2L RCAP2H和RCAP2L的内容作为一个16位无符号整数在时钟输出模式中定时器2的翻转将不会产生中断这和它作为波特率发生器时相似定时器2可同时作为波特率发生器和时钟发生器但需要注意的是波特率和时钟输出频率相同复位在振荡器工作时将RST脚保持至少两个机器周期高电平12时钟模式为24个振荡器周期6时钟模式为12振荡器周期可实现复位为了保证上电复位的可靠RST保持高电平的时间至少为振荡器启动时间通常为几个毫秒再加上两个机器周期复位后振荡器以12时钟模式运行当已通过并行编程器设置为6时钟模式时除外低功耗模式时钟停止模式静态设计使时钟频率可以降至0MHz(停止)当振荡器停振时RAM和SFR的值保持不变该模式允许逐步应用并可将时钟频率降至任意值以实现系统功耗的降低如要实现最低功耗则建议使用掉电模式空闲模式空闲模式见表3中CPU进入睡眠状态但片内的外围电路仍然保持工作状态正常操作模式的最后一条指令执行进入空闲模式空闲模式下CPU内容片内RAM和所有SFR保持原来的值任何被使能的中断此时程序从中断服务程序处恢复并继续执行或硬件复位与上电复位使用相同的方式启动处理器均可终止空闲模式掉电模式为了进一步降低功耗通过软件可实现掉电模式(见表3)该模式中振荡器停振并且在最后一条指令执行进入掉电模式降到2.0V时片内RAM和SFR保持原值在退出掉电模式之前Vcc必须升至规定的最低操作电压硬件复位或外部中断均可结束掉电模式硬件复位使所有的SFR重新设置但不改变片内RAM的值外部中断允许SFR和片内RAM都保持原值WUPD AUXR1.3从掉电唤醒使能或禁止通过外部中断唤醒掉电WUPD0禁止WUPD=1使能要正确退出掉电模式在Vcc恢复到正常操作电压范围之后复位或外部中断开始执行并且要保持足够长的时间 ( 通常小于10ms )以使振荡器重新启动并稳定下来使用外部中断退出掉电模式时INT0和INT1必须使能且配置为电平触发将管脚电平拉低使振荡器重新启动退出掉电模式后将管脚恢复为高电平一旦中断被响应RETI之后所执行的是进入掉电模式指令的后一条指令表3 空闲模式和掉电模式时外部管脚的状态器件在内部复位之前从停止处恢复程序正常运行时间为这段时间内片内硬件禁止对内部RAM但对当Idle模式被复位所中为了消除可能产生的误写操作应用模式指令后的指令不应执行写I/O口或写外部存储器操作进入件将ALE保持低电平模式时口处于悬浮状态持工作状态器件处于该模式时可用仿真器或测试CPU驱动电路执行正常复位时恢复正常操作定时器0和1的操作定时器0和1定时和计数功能由特殊功能寄存器TMOD的控制位C/T进行选择这两个定时/计数器有4种操作模式通过TMOD的M1和M0选择两个定时/计数器的模式01和2都相同模式3不同如下所述模式0将定时器设置成模式0时类似8048定时器即8 位计数器带32分频的预分频器图2所示为模式0工作方式此模式下定时器寄存器配置为13位寄存器当计数从全为1翻转为全为0时定时器中断标志位TFn置位当TRn=1同时GATE=0或INTn=1时定时器计数置位GATE时允许由外部输入INTn 控制定时器这样可实现脉宽测量TRn为TCON寄存器内的控制位图3该13位寄存器包含THn全部8个位及TLn的低5位TLn的高3位不定可将其忽略置位运行标志TRn不能清零此寄存器模式0的操作对于定时器0及定时器1都是相同的两个不同的GATE位TMOD.7和TMOD.3分别分配给定时器0及定时器1模式1模式1除了使用了THn及TLn全部16位外其它与模式0相同模式2此模式下定时器寄存器作为可自动重装的8位计数器TLn如图4所示TLn的溢出不仅置位TFn而且将THn内容重新装入TLn THn内容由软件预置重装时THn内容不变模式2的操作对于定时器0及定时器1是相同的模式3在模式3中定时器1停止计数效果与将TR1设置为0相同此模式下定时器0的TL0及TH0作为两个独立的8位计数器图5为模式3时的定时器0逻辑TL0C/T GATETR0TH0TF1此时TH0控制定时器中断可用于需要一个额外的位定时器的场合定时器时80C513个定时计数器当定时器时定时器可通过开关进入它仍可用作串行端口的波特或者应用于任何不要求中断的场合复位值2 1 0 置位时只有在计数器清零时计数器用作定时器或计数器清零则用作定时器从内部系统时钟输入置位用作计数器从脚输入定时器模式选择定时器模式无预分频器当溢出时将计数器控制位控制1控制位控制图1 定时/计数器0/1模式控制寄存器TMOD图2 定时/计数器0/1的模式013位定时/计数器InterruptTCON 地址88H 7 6 5 4 3 2 1 0 可位寻址 复位值00HTF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0位符号功能TCON.7 TF1定时器1溢出标志定时/计数器溢出时由硬件置位中断处理时由硬件清除或用软件清除TCON.6 TR1定时器1运行控制位由软件置位/清零将定时/计数器打开/关闭TCON.5 TF0定时器0溢出标志定时/计数器溢出时由硬件置位中断处理时由硬件清除或用软件清除TCON.4 TR0定时器0运行控制位由软件置位/清零将定时/计数器打开/关闭 TCON.3 IE1 中断1边沿触发标志当检测到外部中断1边沿时由硬件置位中断处理时清零TCON.2 IT1 中断1触发类型控制位由软件置位/清零以选择外部中断以下降沿/低电平方式触发TCON.1 IE0 中断0边沿触发标志当检测到外部中断0边沿时由硬件置位中断处理时清零TCON.0 IT0 中断0触发类型控制位由软件置位/清零以选择外部中断以下降沿/低电平方式触发图3 定时器/计数器控制寄存器TCON图4 定时/计数器0/1的模式28位自动重装Interrupt通过设置特殊功能寄存器位可将其作为定时见图6定时器有三种操作模式捕获递增或递减计数和波特率发生这三种模式由T2CON 中的位进行选择见表3捕获模式 通过EXEN2设置两个选项如果定时器16位由T2CON TF2溢出标志位该位可用于产生IE 中断使能位如果EXEN21与以上描述相同即外部输入时将定时器2TL2和的当前值各自捕获到RCAP2L EXF22溢出中断地址相同定时器中断服务程序通过查询来确定引起中断的事件捕获模式如图在该模式中TL2计数器仍以的负跳变或振荡频率的1/12或6时钟模式递增递减计数器位自动重装模式中2可通过C/T2配置为定时器计数的方向是由DCEN 递减计数使能位确定的DCEN 位于T2MOD 寄存器见图8中当DCEN 0时定时器2默认为向上计数当DCEN 1时定时器2可通过T2EX 确定递增或递减计数图9显示了当DCEN 0时定时器2自动递增计数在该模式中通过设置EXEN2位进行选择如果EXEN2定时器2递增计数到0FFFFH 并在溢出后将TF2置位然后将RCAP2L 和RCAP2H 中的16位值作为重新装载值装入定时器2RCAP2L 和RCAP2H 的值是通过软件预设的如果EXEN2116位重新装载可通过溢出或T2EX 从10的负跳变实现此负跳变同时将EXF2置位如果定时器2中断被使能则当TF2或EXF2置1时产生中断在图10中DCEN 1时定时器2可递增或递减计数此模式允许T2EX 控制计数的方向当T2EX 置1时定时器2递增计数计数到0FFFFH 后溢出并置位TF2还将产生中断如果中断被使能定时InterruptInterrupt器2的溢出将使RCAP2L 和RCAP2H 中的16位值作为重新装载值放入TL2和TH2当T2EX 置零时将使定时器2递减计数当TL2和TH2计数到等于RCAP2L 和RCAP2H 时定时器产生溢出定时器2溢出置位TF2并将0FFFFH 重新装入TL2和TH2当定时器2递增/递减产生溢出时外部标志位EXF2翻转如果需要可将EXF2位作为第17位在此模式中EXF2标志不会产生中断表4 定时器2工作方式图6 定时器/计数器2T2CON 控制寄存器溢出标志定时器溢出时置位必须由软件清除当TCLK 1时TF2将不会置位外部标志当EXEN21且的负跳变产生捕获或重装时置位定时器2中断使能时EXF21从中断向量处执行中断子程序EXF2位必须用软件清零在递增式DCEN 1中EXF2不会引起中断接收时钟标志RCLK 置位时定时器的溢出脉冲作为串行口模式模式的接收时钟RCLK 0时将定时器的溢出脉冲作为接收时钟发送时钟标志TCLK 置位时定时器和的发送时钟TCLK 0时将定时器的溢出脉冲作为发送时钟外部使能标志当其置位且定时器未作为串行口时钟时允的负跳变产生捕获或重装EXEN20时T2EX 的跳变对定时无效启动停止控制位置时启动定时器计数器选择定时器20内部定时器OSC/12或OSC/61外部事件计数器下降沿触发重装标志置位EXEN21T2EX 的负跳变产生捕获清零EXEN21时定时器2溢出或的负跳变都可使定时器自动重装RCLK 1TCLK 1时该位无效且定时器强制为溢出时自动重装图7 定时器2捕获模式保留将来之用2输出使能位定时器这些位在将来8051这种情况下以后用到复位时或非有效状态时而这些位为有效状态时它的值为1从保留位读到的值是不确定的图8 定时器2模式T2MOD 控制寄存器图9 定时器2自动重装模式DCEN=0EXEN 2T imer 2InterruptEXEN 2T IME R2图10 定时器2自动重装模式DCEN=1图11 定时器2波特率发生器模式波特率发生器模式寄存器T2CON 的位TCLK 和或RCLK 见表3允许从定时器1或定时器2获得串行口发送和接收的波特率当TCLK=0时定时器1作为串行口发送波特率发生器当TCLK=1时定时器2作为串行口发送波特率发生器RCLK 对串行口接收波特率有同样的作用通过这两位串行口能得到不同的接收和发送波特率 一个通过定时器1产生另一个通过定时器2产生图11所示为定时器2工作在波特率发生器模式与自动重装模式相似当TH2溢出时波特率发生器模式使定时器2寄存器重新装载来自寄存器RCAP2H 和RCAP2L 的16位的值寄存器RCAP2H 和RCAP2LR 的值由软件预置当工作于模式1和模式3时波特率由下面给出的定时器2溢出率所决定定时器2溢出速率16定时器可配置成定时或计数方式在许多应用上定时器被设置在定时方式C/T2*=0当定时器2作为定时器时它的操作不同于波特率发生器通常定时器2作为定时器它会在每个机器周期递增1/6或1/12振荡频率当定时器2作为波特率发生器时它会在每个状态周期递增例如1/2振荡频率这样波特率公式如下模式1和模式3的波特率=(UP C OUNTING R E LOADV ALUE)T2EX PINEXEN 2RXClock TXClockT imer 1OverflowNote availability of additional external interrupt.[65536n = 166或12时钟模式RCAP2H,RCAP2L)=RCAP2H 的内容为11所示定时器作为波特率发生器仅当寄存器RCLK 和或TCLK=1定作为波特率发生器才有效溢出并不置位TF2也不产生中断这样当定时器中断不必被禁止外部使能标志被置位在中1的转换会置位EXF2T2外部标志位但并不导致TH2重装载RCAP2H RCAP2L因当定时器用作波特率发生器时如果需要可用作附加的外部中断当计时器工作在波特率发生器模式下,则不要对TH2和进行读写每隔一个状态时间或定时器在此情况下对进行读写是不准确的可对RCAP2但不要进行写否则将导致自动重装错误当对定时器进行访问时应关闭定清零表列出了常用的波特率和如何用定时器得到这些波特率表由定时器外部时钟信号由波特率为2溢出率则波特率为[n[65536(RCAP2H,RCAP2L)]]此处 n = 166时钟模式或3212时钟模式f OSC = 振荡器频率 自动重装值可由下式得到RCAP2H,RCAP2L=65536-[fosc/(n波特率)]定时器/计数器2的设置除了波特率发生器模式T2CON 不包括TR2位的设置TR2位需单独设置来启动定时器表6表7给出了T2作为定时器和计数器的设置表6 T2作为定时器T2CON模式内部控制注1外部控制注216位重装00H 08H16位捕获01H 09H波特率发生器接收和发送相同波特率34H 36H只接收24H 26H只发送14H 16H 表7 T2作为计数器TMOD模式内部控制注1外部控制注216位02H 0AH自动重装03H 0BH注1.仅当定时器溢出时进行捕获和重装2.当定时/计数器溢出并且T2EX(P1.1)发生电平负跳变时产生捕获和重装定时器2用于波特率发生器模式除外全双工增强型UART标准UART操作串口为全双工结构表示可以同时发送和接收它还具有接收缓冲在第一个字节从寄存器读出之前可以开始接收第二个字节但是如果第二个字节接收完毕时第一个字节仍未读出其中一个字节将会丢失串口的发送和接收寄存器都是通过SFR SBUF进行访问的写入SBUF的数据装入发送寄存器对SBUF 的读操作是对物理上分开的接收寄存器进行访问串口有4种操作模式模式0串行数据通过RxD进出TxD输出时钟每次发送或接收以LSB最低位作首位每次8位波特率固定为MCU时钟频率的1/12模式1TxD脚发送RxD脚接收每次数据为10位一个起始位08个数据位LSB在前及一个停止位1当接收数据时停止位存于SCON的RB8内波特率可变由定时器1溢出速率决定模式2TxD脚发送RxD脚接收每次数据为11位一个起始位08个数据位LSB在前一个可编程第9位数据及一个停止位1发送时第9个数据位SCON内TB8位可置为0或1例如将奇偶位PSW内P位移至TB8接收时第9位数据存入SCON的RB8位停止位忽略波特率可编程为MCU时钟频率的1/32或1/64由PCON内SMOD1位决定模式3TxD脚发送RxD脚接收每次数据为11位一个起始位08个数据位LSB为首位一可编程的第9位数据及一个停止位1事实上模式3除了波特率外均与模式2相同其波特率可变并由定时器1溢出率决定在上述4种模式中发送过程是以任意一条以写SBUF作为目标寄存器的指令开始的模式0时接收通过设置R1=0及REN=1初始化其它模式下如若REN=1则通过起始位初始化多机通信UART模式2及模式3有一个专门的应用领域即多机通信在这些模式时接收为9位数据第9位存入RB8接下来为停止位UART可编程为接收到停止位时仅当RB8=1时串口中断才有效可通过置位SCON内SM2位来选择这一特性下述为多机系统利用这一特性的一种方法当主机需要发送一数据块给数台从机之一时首先发送出一个地址字节对目标从机进行识别地址与数据字节通过第9位数据区别其中地址字节的第9位为1而数据字节为0SM2=1时数据字节不会使各从机产生中断而地址字节则令所有从机中断这样各从机可以检查接收到的数据判断是否被寻址被寻址的从机即可清除SM2位以准备接收随后数据内容未被寻址的从机的SM2位仍为1则不理睬随后数据继续各自工作模式0时SM2无效模式1时SM2用于检验停止位是否有效在模式1时如果SM2=1那么只有接收到有效的结束位才可产生接收中断串行端口控制寄存器SCON串行端口控制及状态寄存器即SCON如图12所示其中包括模式选择位以及发送和接收的第9位数据TB8及RB8以及串行端口中断位TI及RISCON 地址98H7 6 5 4 3 2 1 0可位寻址复位值 00H SM0/FE SM1 SM2 REN TB8 RB8 TI RI 位符号功能SCON.7 FE 帧错误位当检测到一个无效停止位时通过UART接收器设置该位但它必须由软件清零要使该位有效PCON寄存器中的SMOD0位必须置1SCON.7 SM0 和SM1定义串口操作模式要使该位有效PCON寄存器中的SMOD0必须置0SCON.6 SM1 和SM0定义串行口操作模式见下表SM0 SM1 UART模式波特率0 0 0同步移位寄存器fosc/12或fosc/6取决于时钟模式0 1 18位UART 可变1 0 29位UART fosc /64或fosc /321 1 39位UART 可变SCON.5 SM2 在模式2和3中多处理机通信使能位在模式2或3中若SM2=1且接收到的第9位数据RB8是0则RI接收中断标志不会被激活在模式1中若SM2=1且没有接收到有效的停止位则RI不会被激活在模式0中SM2必须是0SCON.4 REN 允许接收位由软件置位或清除REN=1时允许接收REN=0时禁止接收SCON.3 TB8 模式2和3中发送的第9位数据可以按需要由软件置位或清除SCON.2 RB8 模式2和3中已接收的第9位数据在模式1中或sm2=0RB8是已接收的停止位在模式0中RB8未用SCON.1 TI 发送中断标志模式0中在发送完第8位数据时由硬件置位其它模式中在发送停止位之初由硬件置位在任何模式中都必须由软件来清除TISCON. 0 RI 接收中断标志模式0中接收第8位结束时由硬件置位其它模式中在接收停止位的中间时刻由硬件置位在任何模式(SM2所述情况除外)必须由软件清除RI图12 串行控制寄存器SCON波特率操作模式0的波特率是固定的为fosc/12模式2的波特率是MCU 时钟/64或MCU 时钟/32取决于PCON 寄存器中的SMOD1位的值若SMOD1=0复位值波特率为MCU 时钟/64若SMOD1=1波特率为MCU时钟/32在80C51中模式1和模式3的波特率由定时器1的溢出速率决定使用定时器1作波特率发生器 当定时器1用作波特率发生器模式1和3中波特率由定时器1的溢出速率和SMOD1的值决定在此应用中定时器1不能用作中断定时器1可以工作在定时或计数方式和3种工作模式中任何一个在最典型应用中它用作定时器方式工作自动重装载模式TMOD 的高半字节为0010B 它的波特率值由下式给出可以定时器1的中断实现非常低的波特率将定时器配置为16位定时器TMOD 的高半字节为0001B并使用中断进行16位软件重装图13列出了几个常用的波特率以及如何从定时器1获得OS C20 MHz X SMOD图13 由定时器1产生的通用波特率UART 模式0串行数据由RxD 端出入TxD 输出同步移位时钟发送或接收的是8位数据低位在先其波特率固定为MCU 时钟的1/12图14是串行口模式0的功能方框简图及相关的时序图执行任何一条把SBUF 作为目的寄存器的指令时就开始发送S6P2时刻的写SBUF 信号将1装入发送移位寄存器的第9位并通知发送控制部分开始发送写SBUF 信号有效后一个完整的机器周期后SEND 端有效SEND 使能RxD P3.0端送出数据TxD P3.1输出移位时钟每个机器周期的S3S4及S5状态内移位时钟为低电平而S6S1及S2状态内为高在SEND 有效时每一机器周期的S6P2时刻发送移位寄存器的内容右移一位数据位向右移时左边添加零当数据字节最高位MSB 移到移位寄存器的输出端时其左边是装入1的第9位再左的内容均为0, 此时通知Tx 控制模块进行最后一位移位处理后禁止SEND 并置位T1, 所有这些步骤均在写入SBUF 后第10个机器周期的S1P1时进行的接收初始化条件是REN=1及R1=0下一机器周期的S6P2时RX 控制单元向接收移位寄存器写入1111 1110并在下一个时钟使RECEIVE 端有效RECEIVE 使能移位时钟转换P3.1功能移位时钟在每个机器周期的S3P1及S6P1跳变在RECEIVE 有效时每一机器周期的S6P2时刻接收移位寄存器内容向左移一位从右移位进来的值是该机器周期S5P2。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章 单片机的结构和原理
2.3 89C51存储器配置
2.3.1 89C51存储器分类 2.3.2 程序存储器地址空间 2.3.3 数据存储器地址空间
2
2.3.1 89C51存储器分类
程序存储器51 存储器
片外程序存储器 片内数据存储器
数据存储器 RAM
片外数据存储器
3
2.3.2 程序存储器地址空间
1. 通过16位程序计数器PC寻址,最大寻址空间64K 2. 没有指令可以从程序存储空间转移到数据存储空间 3. 片内ROM 4K 0000H~0FFFH
片外ROM 64K 0000H~FFFFH 4. ������������高,访问片内ROM,������������低,访问片外ROM 5. 8031没有片内ROM,������������接地 6. 89C51 片内、片外ROM存取速度相等 7. ROM特殊存储空间(保留的存储单元) 8. 访问ROM 的指令 ,MOVC
P1
P0
EA VCC
ALE
P2 RD P3 WR
锁存器 I/O 页面地址
RAM 数据
6116 地址
WE OE
89C51 外扩片外RAM接法 图2.12 89C51外扩片外RAM接法
Flash ROM队列 FFFF
片外
15
RAM队列
FFFF
片外 RAM
& I/O口
EA=0 片外
0FFF 0000
EA=1 片内
定
志位 进位)
寄存器组选择
溢出 (补码 运算溢 出)
保留
奇\ 位意义 偶校 验位
12
RS1
RS2
寄存器组
0
0
第0组
0
1
第1组
1
0
第2组
1
1
第3组
片内RAM 00H~07H 08H~0FH 10H~17H 18H~1FH
表2-6 RS0、RS1的组合关系
13
图2.11 堆栈的压入与弹出
14
89C51
7
89C51
P1
P0
EA
ALE
P3
P2
PSEN
74HC373
片外程序存 储器
指令
地址 OE
访问片外程序存储器的连接方法 图2.7 访问片外程序存储器的连接方法
8
2.3.3 数据存储器地址空间
1、片外RAM ,64K地址空间,访问指令 MOVX
2、片内RAM ,256字节地址空间,访问指令MOV
a.低128B (00H~7FH)
1)四组工作寄存器
2)位寻址区
3)用户区
b.高128B(80H~FFH) SFR
1)ACC
2)B
3)PSW
4)SP
5)DPTR
6)P0~P3
9
FFH
高 128字节区
80H 7FH
低128字节 区
SFR 只通过直接寻址
方式访问
RAM 可通过直接和间接
寻址方式访问
0
图2片.8 片内外数数据 据存存储储器的器配的置配置
定时器 2 溢出中断
…
0023 H 0022 H
串行口中断
…
001 BH 001 AH
0013 H 0012 H
000 BH 000 AH
0003 H
0000 H
定时器 1 溢出中断 外部中断 1
定时器 0 溢出中断 外部中断 0 LJMP MAIN
…… …
中断程序转移地址 跳转到主程序处
图2.6 用户程序在程序存储器中的位置示意图
R4 04H 0CH 14H 1CH
R5 05H 0DH 15H 1DH
R6 06H 0EH 16H 1EH
R7 07H 0FH 17H 1FH
PSW
D7 D6
(D0H)
CY AC
表2-5 PSW程序状态字
D5
D4
D3
D2
F0
RS1
RS0
OV
D1 D0 位地址 __ P 位名称
进\借 辅进 用户标
位标 (半
4
存储单元 0000H~0002H 0003H~000AH 000BH~0012H 0013H~001AH 001BH~0022H 0023H~002AH 002BH
保留目的 复位后初始化引导程序地址 外部中断0 定时器0溢出中断 外部中断1 定时器1溢出中断 串行端口中断 定时器2中断(89C52才有)
10
图2.9 低128字节RAM区
图2.10 高128字节RAM区(SFR区, 特殊功能寄存器区)
11
组 RS1 RS2
0
00
1
01
2
10
3
11
R0 00H 08H 10H 18H
表2-4 工作寄存器地址表
R1 01H 09H 11H 19H
R2 02H 0AH 12H 1AH
R3 03H 0BH 13H 1BH
表2-2 保留的存储单元
5
中断源 外部中断0 定时器/计数器0溢出 外部中断1 定时器/计数器1溢出 串行口
中断矢量地址 0003H 000BH 0013H 001BH 0023H
表2-3 AT89C51中断入口地址
6
程序存储器
………
MAIN 0032 H
主程序
主程序入口地址
002 BH 002 AH
片内
FF 80
SFR
7F RAM
00
PSEN
图289.1C3518存9C储51器存配储置器配置
0000 RD WR