概述
8xC31X2/51X2和8xC32X2/52X2/54X2/58X2各自包含128字节和256字节RAM32个I/O口3个16位定时/计数器
一个6中断源4优先级嵌套中断结构
定时器
串口和中断系统仍然工作
由于设计是静态的
掉电模式保时钟可停止
一个串行口可用作多机通信
I/O扩展或全双工
UART和片内振荡器和时钟电路
此外芯片的低静态功耗设计提供非常宽的操作频率可低至零可实现两个由软件选择的节电模式空闲模式和掉电模式空闲模式冻结CPU但RAM存RAM的内容但是冻结振荡器而不会丢失用户数据
选型表
Type导致所有其它的片内功能停止工作
运行可从时钟停止处恢复
MemoryTimersSerialInterfacesMax.Freq.at6-clk/12-clk(MHz)Freq.Rangeat3V(MHz)0–160–160–160–160–160–160–160–160–160–16Freq.Rangeat5V(MHz)0–30/330–30/330–30/330–30/330–30/330–30/330–30/330–30/330–30/330–30/33P87C58X2P80C58X2 P87C54X2256B256B256B256B256B256B128B128B256B128B–32K–16K–8K–4K––32K–16K–8K–4K–––––––––––––3333333333––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––323232323232323232326 (2)6 (2)6 (2)6 (2)6 (2)6 (2)6 (2)6 (2)6 (2)6 (2)––12–clk12–clk12–clk12–clk12–clk12–clk12–clk12–clk12–clk12–clk6-clk6-clk6-clk6-clk6-clk6-clk6-clk6-clk6-clk6-clk30/3330/3330/3330/3330/3330/3330/3330/3330/3330/33 P80C54X2P87C52X2 P80C52X2 P87C51X2P80C51X2 P80C32X2 P80C31X2 特性
y80C51核心处理单元
4k字节ROM/EPROM8k字节ROM/EPROM16k字节ROM/EPROM32k字节ROM/EPROM128字节RAM256字节RAM布尔处理器 全静态操作 低电压操作
2.7V到5.5V可达16MHz
y12时钟操作可选6个时钟 y存储器寻址范围
64K字节ROM和64K字节RAM
y电源控制模式
―时钟可停止和恢复 ―空闲模式 ―掉电模式 yCMOS和TTL兼容 y5V时有两个工作范围
6时钟模式时为0到30MHz 12时钟模式时为0到33MHz
yPLCC或DIP封装 y扩展温度范围
80/87C51X280/87C52X280/87C54X280/87C58X2
80/87C51X2和80C31X2
80/87C52/54X2/58X2和80C32X2
1
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
y双数据指针 y保密位
ROMOTP
y加密阵列 y4个中断优先级 y6个中断源 y4个8位I/O口 y全双工增强型UART
―帧数据错误检测 ―自动地址识别
y3个16位定时/计数器TOT1y可编程时钟输出 y异步端口复位 y低EMI (禁止ALE)
y掉电模式可通过外部中断唤醒
标准80C51
和增加的T2
捕获和比较
2位3位
订购信息
80C31/32X2(无ROM) 类型编号
封装
温度范围(
)
P80C31X2BA PLCC44 P80C31X2BN DIP40 P80C32X2BA PLCC44 P80C32X2BN DIP40 P80C32X2FA PLCC44 P80C32X2FN DIP40 87C51X2
4K字节OTP
封装
0~+70 0~+70 0~+70 0~+70 -40~+85 -40~+85
类型编号 温度范围()
P87C51X2BA PLCC44 P87C51X2BN DIP40 P87C51X2FA PLCC44
87C52X2
8K字节OTP
封装
0~+70 0~+70 -40~+85
类型编号 温度范围()
P87C52X2BA PLCC44 P87C52X2BN DIP40 P87C52X2FA PLCC44 P87C52X2FN DIP40 80C54X2
16K字节 ROM
封装
0~+70 0~+70 -40~+85 -40~+85
类型编号 温度范围()
P80C54X2BA PLCC44 P80C54X2FA PLCC44
2
0~+70 -40~+85
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
87C54X2
16K字节OTP
封装
温度范围(
)
0~+70 0~+70 -40~+85
类型编号
P87C54X2BA PLCC44 P87C54X2BN DIP40 P87C54X2FA PLCC44
87C58X2
32K字节OTP
封装
类型编号 温度范围()
P87C58X2BA PLCC44 P87C58X2BN DIP40 P87C58X2FA PLCC44
产品编号含义 存储器 P87C51X2 7=OTP 5=ROM/OTP 1=128字节RAM 0=ROM或 3=无ROM 4K字节ROM/OTP 无ROM 2=256字节RAM 8K字节ROM/OTP 4=256字节RAM 16K字节ROM/OTP 8=256字节RAM 32K字节ROM/OTP
操作模式
电源电压
0~+70 0~+70 -40~+85
温度范围(B) B=0F=4070 +85 封装 A=PLCC D=DIP 最大时钟频率
6-clock 5V10% 30MHz 6-clock 2.7V~5.5V 16MHz 12-clock 5V
3
10% 33MHz 12-clock 2.7V~5.5V 16MHz 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
框图1 Crystal orResonator Port0ConfigurableI/OsPort1ConfigurableI/OsPort2ConfigurableI/OsPort3ConfigurableI/OsTimer2128 / 256 ByteDataRAMTimer0Timer10K / 4K / 8K / 16K/32KByteCODE ROM / EPROMFull-duplexenhancedUARTAccelerated 80C51 CPU(12-clkmode,6-clkmode)
Oscillator 4
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
框图2
VCCPORT0DRIVERSPORT2DRIVERSP0.0–P0.7P2.0–P2.7 VSSRAMADDRREGISTERRAMPORT0LATCHPORT2LATCHROM/EPROM8BREGISTERSTACKPOINTERACCTMP2TMP1PROGRAMADDRESSREGISTERALUSFRsPSWTIMERSBUFFER PSENPCINCRE-MENTER8PROGRAMCOUNTER16ALE/PROG
EA/VPPTIMINGANDCONTROLDPTR’SMULTIPLERSTPDPORT1LATCHPORT3LATCHOSCILLATORPORT1DRIVERSXTAL1XTAL2P1.0–P1.7P3.0–P3.7PORT3DRIVERS 5
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
逻辑图 PLCC和CLCC封装及管脚功能 VCCVSS XTAL1 ADDRESSAND DATA BUS
XTAL2 T2T2EX RSTEA/VPP PSENALE/PROG RxDINT0 TxDINT1 T0ADDRESSBUS T1WR RD
DIP 封装及管脚功能
T2/P1.0140VCC
T2EX/P1.
1
239P0.0/AD0P1. 2338P0.1/AD1P1. 3437P0.2/AD2P1.
4536P0.3/AD3P1. 5635P0.4/AD4P1. 6
734P0.5/AD5P1. 7
8
33P0.6/AD6RST 932P0.7/AD7
RxD/P3.010DUAL
IN-LINE31EA/VPPTxD/P3.1
11
PACKAGE
30ALEINT0/P3.2 1229PSENINT1/P3.3 1328P2.7/A15T0/P3. 41427P2.6/A14T1/P3. 515
26P2.5/A13WR/P3.6 1625P2.4/A12RD/P3.7
1724P2.3/A11XTAL218
23P2.2/A10XTAL1 1922P2.1/A9V SS20
21P2.0/A8
61
40
7
39
PLCC17
29
18
28
PinFunctionPinFunction
PinFunction1NIC*16P3.4/T031P2.7/A152P1.0/T217P3.5/T132PSEN3P1.1/T2EX18P3.6/WR33ALE4P1.219P3.7/RD34NIC*5P1.320XTAL235EA/VPP6P1.421XTAL136P0.7/AD77P1.522VSS37P0.6/AD68P1.6
23NIC*38P0.5/AD59P1.7
24P2.0/A839P0.4/AD410RST25P2.1/A9
40P0.3/AD311P3.0/RxD26P2.2/A10
41P0.2/AD212NIC*27P2.3/A11
42P0.1/AD113P3.1/TxD28P2.4/A12
43P0.0/AD014P3.2/INT0
29P2.5/A1344
VCC
15P3.3/INT130P2.6/A14
*NOINTERNAL
CONNECTION
PQFP封装及管脚功能 4434133
LQFP
11
23
1222
Pin
FunctionPin
FunctionPin
Function1P1.516VSS31P0.6/AD62P1.617NIC*32P0.5/AD53P1.718P2.0/A833P0.4/AD44RST
19P2.1/A934P0.3/AD35P3.0/RxD20P2.2/A1035P0.2/AD26NIC*
21P2.3/A1136P0.1/AD17P3.1/TxD22P2.4/A1237P0.0/AD08P3.2/INT023P2.5/A1338VCC9P3.3/INT124P2.6/A1439NIC*10P3.4/T025P2.7/A1540P1.0/T211P3.5/T126PSEN41P1.1/T2EX12P3.6/WR27ALE42P1.213P3.7/RD28NIC*43P1.314XTAL229EA/VPP44
P1.4
15
XTAL1
30
P0.7/AD7
*NOINTERNALCONNECTION
6
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
管脚描述
助记符 Vss Vcc 类型 名称和功能 DIP LCC QFP 20 22 16 I 地: 0v参考点 40 44 38 I 电源:提供正常空闲和掉电工作电压 入在访问外部程序和数据存储器时也可作为地址和数据总线的低位地址在此应用中当发送1时使用内部强上拉 P0口还可在对程序进行校验时输出代码字节在对EPROM编程时接收代码字节P1.0-1.7 1-8 2-9 1 2 2 3 40-44 1-3 I/O 对程序校验时需要外部上拉P1口P1口是带内部上拉的双向I/O口向P1口写1时口被内部上拉为高电平可以用作输入口DC特性T2(P1.0)IIL)当作为输入脚时P1口管脚可被外部拉低由于有内部上拉会输出电流(见P1口在程序校验时接收地址的低位字节 P1口第2功能程时钟输出) 管脚号 P0.0-0.7 39-32 43-36 37-30 I/O P0口P0口是开漏双向口可以写1成为悬浮用作高阻输定时/计数器2的外部输入/时钟输出(见可编 T2EX(P1.1)定时/计数器2重装/捕获/方向控制口被内部上拉为高电平可以用作输入口P2.0-2.7 21-28 24-31 18-25 I/O P2口P2口是带内部上拉的双向I/O口向P2口写1时当作为输入脚时P2口管脚可被外部拉低由于有内部上拉会输出电流(见DC特性IIL)在访问外部程序存储器和对数据存储器进行16位寻址(MOVX @DPTR)时作为地址的高字节此应用中向口送1时采用强内部上拉对外部数据存储器进行8位寻址(MOV @Ri)时P2口发送P2特殊功能寄存器的内容P2口的一部分在EPROM编程和校验时接收高位地址P3.0-3.7 10-17 11, 10 11 12 13 14 15 16 17 RST 13-19 11 13 14 15 16 17 18 19 5, 7-13 5 7 8 9 10 11 12 13 I/O P3口P3口是带内部上拉的双向I/O口向P2口写1时口被内部上拉为高电平可以用作输入口DC特性IIL)P3口脚也提供特殊功能当作为输入脚时 P2口管脚可被外部拉低由于有内部上拉会输出电流(见RxD(p3.0): 串行输入口 TxD(P3.1): 串行输出口 INT0(P3.2): 外部中断0 INT1(P3.3): 外部中断1 T0(P3.4): 定时器0外部输入 T1(P3.5): 定时器1外部输入 WR(P3.6): 外部数据存储器写选通 RD(P3.7): 外部数据存储器读选通 9 10 4 I 复位当晶振在运行时只要复位管脚出现2个机器周期的高电平即复位芯片由于内部有一个扩散电阻连接到Vss上电复位允许只使用一个外部电容连接到Vcc 7
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
ALE/ PROG 30 33 27 O 地址锁存使能/编程脉冲在访问外部存储器时输出脉冲用来锁存低地址的字节在正常情况下ALE以恒定的频率输出1/6(12时钟模式)或1/3(6时钟模式)振荡器频率输出的振荡频率可以当作外部时序或时钟注意每次访问外部数据存储器都忽略一个ALE脉冲还作为编程脉冲输入时有效 PROG该脚在EPROM编程时ALE可以通过设置SFR auxlilary.0禁止该位置位后ALE只能在执行MOVX 指令PSEN 29 32 27 O 程序存储使能外部程序存储器的读选通当芯片从外部程序存储器读取程序时PSEN每个机器周期被激活两次而在每次访问外部数据存储器时PSEN被忽略两次对内部程序程序存储器访问时PSEN无效 EA/Vpp 31 35 29 I 外部寻址使能/编程电压在访问外部程序存储器时EA必须通过外部置低如果EA保持高电平芯片将执行内部程序除非程序计数器包含了大于片内ROM/OTP的地址该引脚在对EPROM编程时接12.75V编程电压XTAL1 19 21 15 I 晶振1注:为了避免Vss-0.5V
Vpp 反相振荡放大器输入和内部时钟发生电路输入 XTAL2 18 20 14 O 晶振2: 反相振荡放大器输出 latch-up
在上电时的影响,任何管脚上的电压最大不能高于Vcc+0.5V
最低不能低于
表1 特殊功能寄存器
名称 ACC* AUXR# AUXR1# B* CKCON DPTR DPH DPL IE* IP0* IP0H#
定义
累加器
辅助功能寄存器
地址
位功能和位地址
复位值
E0H E7 E6 E5 E4 E3 E2 E1 E0 00H 8EH
0
AO xxxxxxx0B DPS xxx000x0B
辅助功能寄存器1 A2H B寄存器 时钟控制寄存器 数据指针双字节 指针高字节 指针低字节
中断使能0
中断优先级0
LPEP2 WUPD F0H F7 F6 F5 F4 F3 F2 F1 F0 00H 8FH 83H 82H
X2 xxx00000B
00H 00H AF AE AD AC AA AB A9 A8 A8H EA ET2 ES ET1 EX1 ET0 EX0 0x000000B BF BE BD BC BBB BA B9 B8 B8H
PT2 PS PT1 PX1 PT0 PX0 xx000000B PT2H PSH PT1H PX1H PT0H PX0H xx000000B 中断优先级高字节 B7H
87 86 85 84 83 82 81 80 P0* P0口
80H AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 FFH 97 96 95 94 93 92 91 90 90H
P1* P1口
T2EX T2 FFH FFH FFH A7 A6 A5 A4 A3 A2 A1 A0 A0H AD15 AD14 AD13 AD12 AD11 AD10 AD9 AD8 B7 B6 B5 B4 B3 B2 B1 B0 B0H RD WR T1 T0 INT1 INT0 TxD RxD P2* P2口
P3* P3口
8
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
PCON#1 PSW*
电源控制寄存器
程序状态字
87H SMOD1 SMOD0 POF GF1 GF0 PD IDL 00xx0000B D7 D6 D5 D4 D3 D2 D1 D0 D0H CY AC F0 RS1 RS0 OV
P 000000x0H
00H 00H 00H 00H
RACAP2H# 定时器2捕获高字节 CBH RACAP2L# 定时器2捕获低字节 CAH SADDR# SADEN# SBUF SCON* SP TCON* T2CON* TH0 TH1 TH2# TL0 TL1 TL2# TMOD
从地址 从地址屏蔽 串口数据缓冲区 串口控制 堆栈指针
定时器0/1控制
定时器2控制
定时器0高字节 定时器1高字节 定时器2高字节 定时器0低字节 定时器1低字节 定时器2低字节 定时器工作模式
A9H B9H
99H xxxxxxxxB 9F 9E 9D 9C 9B 9A 99 98 98H SM0/FE SM1 81H
SM2
REN
TB8
RB8
TI
RI
00H 07H 8F 8E 8D 8C 8B 8A 89 88 88H TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 00H CF CE CD CC CB CA C9 C8 TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RL2 00H 8CH 8DH CDH 8AH 8BH CCH
T2OE DCEN xxxxxx00B
00H 00H 00H 00H 00H 00H
89H GATE C/T M1 M0 GATE C/T M1 M0 00H 注带带12
用户在编程时请勿将未定义的寄存器位置1*号的SFR可位寻址#
表示保留位 复位值由复位源确定LPEP
仅用于OTP
低电压EPROM操作
否则器件功能有可能出错
号的SFR表示从80C51的SFR修改而来或新增加的
振荡器特性
XTAL1和XTAL2为输入和输出可分别作为一个反相放大器的输入和输出此管脚可配置为使用内部振荡器规定
要使用外部时钟源驱动器件时
XTAL2可以不连接而由XTAL1驱动
外部时钟信号无占空比
的要求因为时钟通过触发器二分频输入到内部时钟电路
但高低电平的最长和最短时间必须符合手册的
复位
在振荡器工作时
将RST脚保持至少两个机器周期高电平
复位后
12时钟模式为24个振荡器周期6时钟
模式为12振荡周期可实现复位为了保证上电复位的可靠RST必须保持足够长时间的高电平以使振荡器产生两个机器周期的脉冲通常为几个微秒
振荡器以12时钟模式运行
低功耗模式
时钟停止模式
9
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
静态设计使时钟频率可以降至0MHz(停止)当振荡器停振时RAM和SFR的值保持不变该模式允许逐步应用并可将时钟频率降至任意值以实现系统功耗的降低
空闲模式
空闲模式见表2中CPU进入睡眠状态但片内的外围电路仍然保持工作状态正常操作模式的
此时
程序从中断服务程序处恢复并继续执行
该模式中
振荡器停振并且在最后一条指
或硬件复位
与上电复位使用相同的方式启
如要实现最低功耗则建议使用掉电模式
最后一条指令执行进入空闲模式空闲模式下CPU内容片内RAM和所有SFR保持原来的值任何被使能的中断
动处理器均可终止空闲模式
掉电模式
为了进一步降低功耗
通过软件可实现掉电模式(见表2)
令执行进入掉电模式降到2.0V时片内RAM和SFR保持原值在退出掉电模式之前Vcc必须升至规定的最低操作电压
硬件复位或外部中断均可结束掉电模式硬件复位使所有的SFR重新设置但不改变片内RAM的值
从掉电唤醒
使能或禁止通过外部中断唤醒掉电
使能
外部中断允许SFR和片内RAM都保持原值WUPDAUXR1.3 WUPD0
禁止 WUPD=1
要正确退出掉电模式在Vcc恢复到正常操作电压范围之后复位或外部中断开始执行并且要保持足使用外部中断退出掉电模式时INT0和INT1必须使能且配置为电平触发将管脚电平拉低使振荡器
够长的时间 ( 通常小于10ms )以使振荡器重新启动并稳定下来
重新启动退出掉电模式后将管脚恢复为高电平一旦中断被响应RETI之后所执行的是进入掉电模式指令的后一条指令
低电压EPROM操作LPEP
EPROM阵列包含了一些模拟电路需要可通过软件置位LPEDAUXR.4电压的场合才可将LPEP置位
表2 空闲模式和掉电模式时外部管脚的状态 模式 空闲 空闲 掉电 掉电 程序存储器 ALE PSEN 口0 内部 外部 1 1 1 1 数据 悬浮 口1 数据 数据 数据 数据 口2 数据 地址 数据 数据 口3 数据 数据 数据 数据
这部分电路在VDD低于4V时是不需要的但VDD高于4V时则将这些模拟电路断电以降低功耗
只有那些持续工作于4V以下
内部 0 0 数据 外部 0 0 悬浮 设计中的注意事项 当空闲模式被硬件复位所中止时器件在内部复位之前从停止处恢复程序正常运行时间为2个机器周期中止时作 这段时间内片内硬件禁止对内部RAM的访问但对I/O口的访问未被禁止当Idle模式被复位所为了消除可能产生的误写操作应用Idle模式指令后的指令不应执行写I/O口或写外部存储器操ONCE模式 ONCE(在线仿真)模式实现了对系统的测试和调试而不需要将器件从电路中移去件
12 当器件复位且PSEN为高电平时将ALE置低电平 在RST撤除时ALE保持低电平 进入ONCE模式的条TM当器件处于ONCE模式时P0口处于悬浮状态其它I/O口ALE和PSEN为弱上拉振荡电路保10
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 持工作状态
器件处于该模式时
可用仿真器或测试CPU驱动电路
执行正常复位时恢复正常操作
时钟控制寄存器CKCON
该器件提供通过一个SFR位CKCON的X2位控制选择6时钟/12时钟模式当该位置012时钟模式有效该位设置为1时系统切换到6时钟模式由于该功能是通过SFR位实现的因此可以随时访问并修改需要注意的是将X2从0改为1将导致以两倍的速度执行用户代码因为所有的系统时间间隔都变成原来的1/2
从6时钟模式变为12时钟模式会将运行代码的速度降低为1/2
可编程时钟输出
可从P1.0编程输出50%占空比的时钟信号P1.0除了作为常规I/O口外还有两个可选功能它可编程为
12
用于定时/计数器2的外部时钟输入
范围
61Hz~4MHz
在16MHz操作频率下输出50%占空比的时钟信号
公式如下
要将定时/计数器2配置为时钟发生器,C/T2(T2CON.1)必须清零T2MOD中的T20E位必须置位启动定时器2必须将TR2(T2CON.2)置位
此处
时钟输出频率由振荡器频率和定时器2捕获寄存器的重新装入值确定
振荡器频率 65536
RCAP2H,RCAP2L
RCAP2H和RCAP2L的内容作为一个16位无符号整数
但需要注意的是
波特率和时钟输出频率相同
4
RCAP2H,RCAP2L
在时钟输出模式中定时器2的翻转将不会产生中断这和它作为波特率发生器时相似定时器2可同时作为波特率发生器和时钟发生器
定时器0和1的操作
定时器0和1
定时和计数功能由特殊功能寄存器TMOD的控制位C/T进行选择式
通过TMOD的M1和M0选择模式0
将定时器设置成模式0时类似8048定时器即8 位计数器带32分频的预分频器图2所示为模式0工作方式
此模式下中断标志TFn位控制
定时器寄存器配置为13位寄存器当计数从全为当TRn=1同时GATE=0或INTn=1时定时器计数
1
翻转为全为
0
时置位定时器
两个定时/计数器的模式0
这两个定时/计数器有4种操作模
模式3不同
如下所述
1和2都相同
置位GATE时将由外部输入INTn控制
GATE是TMOD寄存器内的控制位
该13位寄存器包含THn的8位及TLn的低5位TLn的高3位不定且可忽略置位运行标志TRn不能清除此寄存器
模式0的操作对于定时器0及定时器1都是相同的模式1
模式1除了使用了THn及TLn全部16位外与模式0相同模式2
此模式下定时器寄存器作为可重装的8位计数器TLn将THn内容重新装入TLn定时器1是相同的
模式3
在模式3时定时器1停止计数
效果与将TR1置0相同
THn内容由软件预置
如图4所示TLn溢出不仅置位TFn而且
模式2的操作对于定时器0及
两个GATE位分别分配给定时器0及定时器1
重装时THn内容不变
此模式下定时器0的TL0及TH0作为两个独立的8位计数器图5为模式3时定时器0的逻辑图
11
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
TL0占用定时器0的控制位占用定时器1的TR1及TF1
C/TGATETR0INT0及TF0
中断
TH0限定为定时器功能
计数器周期
此时TH0控制定时器1
模式3可用于需要一个额外的8位定时器的场合定时器0工作于模式3时80C51看似有3个定时器/计数器当定时器0工作于模式3时定时器1可通过开关进入/退出模式3,它仍可用作串行端口的波特率发生器
或者应用于任何不要求中断的场合
TMOD 地址89H 定时器1 定时器0 不可位寻址 复位值00H 位 TMOD.3/ TMOD.7 TMOD.2/ TMOD.6 M1M1M0 M0 C/T 7 6 5 4 3 2 1 0 GATE C/T M1 M0 GATE C/T M1 M0 符号 GATE 功能 用于定时器1置位时只有在INT1脚置高及TR1控制置位时才可打开定时器/计数器清零时置位TR1即可打开定时器/计数器 控制定时器1用作定时器或计数器清零则用作定时器从内部系统时钟输入置位用作计数器从Tn脚输入 定时器模式选择 定时器模式 8048定时器TLn用作5位预分频器 16位定时器/计数器无预分频器8 位自装载定时器 0 0 0 1 1 0 1 1 当溢出时将THn存放的值装入TLn定时器0此时作为双8位定时/计数器通过标准定时器0控制位控制控制位控制TL0作为一个8 位定时器/计数器由定时器1TH0仅作为一个8位定时器 在这种模式下定时/计数器1关闭TMOD
图1 定时/计数器0/1模式控制寄存器
X2 =0OSC÷ 12 C/T =0C/T =1X2 =1÷6 Control TLn(5 Bits)THn(8 Bits)TFnInterrupt
TnPinTRnTimernGate bitINTn Pin图2 定时/计数器0/1的模式0
13位定时/计数器
12
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
TCON 地址可位寻址 复位值 位
00H
88H
7 6 5 4 3 2 1 0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 符号
功能
定时器1溢出标志定时/计数器溢出时由硬件置位中断处理时由硬件TCON.7 TF1
清除或用软件清除
定时器1运行控制位TCON.6 TR1
由软件置位/清零将定时/计数器打开/关闭
定时器0溢出标志定时/计数器溢出时由硬件置位中断处理时由硬件TCON.5 TF0
清除或用软件清除定时器0运行控制位TCON.4 TR0
由软件置位/清零将定时/计数器打开/关闭当检测到外部中断1边沿时由硬件置位
中断处
TCON.3 IE1 中断1边沿触发标志
理时清零
TCON.2 IT1 中断1触发类型控制位由软件置位/清零以选择外部中断以下降沿/低
电平方式触发
当检测到外部中断0边沿时由硬件置位
中断处
TCON.1 IE0 中断0边沿触发标志
理时清零
TCON.0 IT0 中断0触发类型控制位由软件置位/清零以选择外部中断以下降沿/低
电平方式触发
TCON
图3 定时器/计数器控制寄存器
OSC TimernGate bit INTn Pin÷ 12X2 =0C/T=0X2 =1÷6TLn(8 Bits)ControlTFnInterrupt
C/T=1TnPinTRnReloadTHn(8 Bits) 图4 定时/计数器0/1的模式2
8位自动重装
13
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
Timer0Gate bit INT0 Pin OSC OSC÷ 12X2 =0C/T=0X2 =1÷6TL0(8 Bits)ControlTF0Interrupt
C/T=1T0PinTR0÷ 12X2 =0X2 =1÷6ControlTR1TH0(8 Bits)TF1Interrupt
图5 定时/计数器0的模式3双8位计数器 定时器2的操作 定时器2 定时器2是一个16位定时/计数器通过设置特殊功能寄存器T2CON中的C/T2位可将其作为定时器或计数器见图6器 中断另外捕获模式 在捕获模式中通过T2CON中的EXEN2设置两个选项如果EXEN2通过使能IE寄存器中的定时器2中断使能位T2EX的负跳变使T2CON中的EXF2置位如果EXEN210定时器2作为一个16位
该位可用于产生溢出时置位TF2定时器2溢出标志位定时器2有三种操作模式捕获自动重新装载递增或递减计数和波特率发生 这三种模式由T2CON中的位进行选择见表3定时器或计数器由T2CON中C/T2位选择与以上描述相同但增加了一个特性即外部输入T2EX由1变0时将定时器2中TL2和TH2的当前值各自捕获到RCAP2L和RCAP2HEXF2也象TF2一样能够产生中断其向量与定时器2
捕获模式如图计数器仍以T2EX的负
溢出中断地址相同定时器2中断服务程序通过查询TF2和EXF2来确定引起中断的事件2所示在该模式中自动重装模式TL2和TH2无重新装载值甚至当T2EX产生捕获事件时12时钟模式或1/66时钟模式计数 编程控制递增/递减计数计数
递增/递减计数器 定时器2可通过C/T2配置为定时器/计数器跳变或振荡频率的1/12 16位自动重装模式中定时器2默认为向上计数果EXEN2
0
的方向是由DCEN递减计数使能位确定的DCEN位于T2MOD寄存器见图8中当DCEN0时
当DCEN1时定时器2可通过T2EX确定递增或递减计数
定时器2自动递增计数
图9显示了当DCEN0时
在该模式中通过设置EXEN2位进行选择如
然后将RCAP2L和RCAP2H中的
定时器2递增计数到0FFFFH并在溢出后将TF2置位
16位重新装载可通过溢出或T2EX从1
16位值作为重新装载值装入定时器2
如果EXEN21置位
如果定时器2中断被使能
RCAP2L和RCAP2H的值是通过软件预设的
0的负跳变实现此负跳变同时将EXF2
则当TF2或EXF2置1时产生中断
在图10中DCEN1时定时器2可递增或递减计数此模式允许T2EX控制计数的方向当T2EX置1时定时器2递增计数计数到0FFFFH后溢出并置位TF2还将产生中断如果中断被使能
定时
14
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 器2的溢出将使RCAP2L和RCAP2H中的16位值作为重新装载值放入TL2和TH2器产生溢出在此模式中
定时器2溢出置位TF2
并将0FFFFH重新装入TL2和TH2
可将EXF2位作为第17位
当T2EX置零时将使定时器2递减计数当TL2和TH2计数到等于RCAP2L和RCAP2H时定时当定时器2递增/递减产生溢出时外部标志位EXF2翻转如果需要
EXF2标志不会产生中断
表3 定时器2工作方式
RCLK+TCLK CP/RL2 0 0 0 1 1 X X X T2CON 地址=0C8H 可位寻址 复位值=00H 7 6 5 4 3 2 1 0 TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RL2 TR2 模式 1 16位自动重装 1 16位捕获 1 波特率发生器 0 关闭 符号 TF2 位 名称和意义 必须由软件清除当RCLK TF2将不会置位 1将使CPU从中断向量处执行 T2CON.7 定时器2溢出标志定时器2溢出时置位 或TCLK1时 EXF2 T2CON.6 定时器2外部标志 当EXEN21且T2EX的负跳变产生捕获或重装时 EXF2置位定时器2中断使能时EXF2式DCEN1中定时器2中断子程序EXF2位必须用软件清零在递增/递减计数器模 EXF2不会引起中断 RCLK0时将定时器1的溢出脉冲作为接收时钟 定时器2的溢出脉冲作为串行口模式1和 将定时器1的溢出脉冲作为发送时钟 允 0时 T2EX的跳变对定时TCLK0时RCLK T2CON.5 接收时钟标志RCLK置位时定时器2的溢出脉冲作为串行口模式1和 模式3的接收时钟TCLK EXEN2 模式3的发送时钟T2CON.4 发送时钟标志TCLK置位时T2CON.3 定时器2外部使能标志当其置位且定时器2未作为串行口时钟时许T2EX的负跳变产生捕获或重装EXEN2器2无效 定时器2 TR2 T2CON.2 定时器2启动/停止控制位置1时启动定时器C/T2 T2CON.1 定时器/计数器选择 01内部定时器OSC/12或OSC/6外部事件计数器下降沿触发置位EXEN2CP/RL2 T2CON.0 捕获/重装标志EXEN21时T2EX的负跳变产生捕获清零 1时定时器2溢出或T2EX的负跳变都可使定时器自动重装当RCLK1或TCLK1时 图6 定时器/计数器2
该位无效且定时器强制为溢出时自动重装 控制寄存器
T2CON
15
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com T2EXPinTransitionDetectorRCAP2LRCAP2HT2Pin÷6C/T2 =1ControlOSC÷ 12X2 =0C/T2 =0TL2(8-bits)TH2(8-bits)TF2X2 =1TR2CaptureTimer2Interrupt
ControlEXF2 图7 定时器2捕获模式
EXEN2
T2MOD 地址=0C9H 不可位寻址 7 6 5 4 3 2 1 0 符号 T2OE DCEN 功能 不可用保留将来之用* 这种情况下它的值为1以后用到 从保留 T2OE DCEN 复位值=XXXX XX00B 定时器2输出使能位 向下计数使能位定时器2可配置成向上/向下计数器这些位在将来8051系列产品中用来实现新的特性它的值应为0而这些位为有效状态时 图8 定时器2模式
X2 =0C/T2 =0 * 用户勿将其置1 保留位复位时或非有效状态时 位读到的值是不确定的 T2MOD控制寄存器
OSC÷ 12 CONTROLTL2(8-BITS)TH2(8-BITS)X2 =1÷6C/T2 =1T2Pin RCAP2LRCAP2HTF2TIMER2INTERRUPTEXF2TR2RELOADTRANSITIONDETECTORT2EXPINCONTROL
DCEN=0
EXEN2
图9 定时器2自动重装模式
16
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com (DOWN COUNTING RELOAD VALUE)FFHFFHTOGGLEEXF2 OSC÷ 12X2 =0C/T2 =0TL2C/T2 =1CONTROLTR2X2 =1÷6 RCAP2LTH2OVERFLOWTF2INTERRUPTT2PinCOUNTDIRECTION1 = UP0 = DOWNRCAP2HT2EXPIN
(UP COUNTING RELOADVALUE)
图10 定时器2自动重装模式
NOTE: OSC. Freq. is divided by 2, not 12 or 6.DCEN=1
Timer1Overflow
RCAP2L“1”Reload÷2“0”“1”SMODTH2(8-bits)“1”“0”RCLKOSC÷2C/T2 =0TL2(8-bits)C/T2 =1T2PinControl÷ 16“0”RXClockTCLKTR2TransitionDetector
RCAP2H÷ 16TXClock
T2EXPinEXF2Timer2InterruptControlEXEN2
Note availability of additional external interrupt.
图11 定时器2波特率发生器模式
波特率发生器模式
寄存器T2CON的位TCLK和或RCLK见表3允许从定时器1或定时器2获得串行口发送和接收的波特率当TCLK=0时定时器1作为串行口发送波特率发生器当TCLK=1时定时器2作为串行口发送波特率发生器
RCLK对串行口接收波特率有同样的作用通过这两位
另一个通过定时器2产生
当TH2溢出时
波特率发生
寄存器RCAP2H和串行口能得到不同的接收
和发送波特率 一个通过定时器1产生
图11所示为定时器2工作在波特率发生器模式与自动重装模式相似RCAP2LR的值由软件预置
器模式使定时器2寄存器重新装载来自寄存器RCAP2H和RCAP2L的16位的值
当工作于模式1和模式3时
波特率由下面给出的定时器2溢出率所决定
定时器2溢出速率
16
模式1和模式3的波特率=
定时器可配置成定时或计数方式在许多应用上定时器被设置在定时方式C/T2*=0当定时器2作为定时器时
它的操作不同于波特率发生器
17
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
通常定时器2作为定时器它会在每个机器周期递增1/6或1/12振荡频率率发生器时
它会在每个状态周期递增
[32例如1/2振荡频率[65536这样
振荡器频率 模式1和模式3的波特率= 此处(RCAP2H,RCAP2L)]] 为16位无符号整数 RCAP2H,RCAP2L)=RCAP2H和RCAP2L的内容当定时器2作为波特
波特率公式如下
如图11所示定时器2作为波特率发生器仅当寄存器T2CON中的RCLK和或TCLK=1时定时器2作为波特率发生器才有效注意TH2溢出并不置位TF2也不产生中断这样当定时器2作为波特率发生器时此定时器2中断不必被禁止T2外部标志位如果EXEN2但并不导致T2外部使能标志TH2TL2重装载被置位在T2EX中由1因到0的转换会置位EXF2RCAP2HRCAP2L当定时器2用作波特率发生器时如果需要T2EX可用作附加的外部中断 当计时器工作在波特率发生器模式下,则不要对TH2和TL2进行读写每隔一个状态时间0sc/2或由T2进入的异步信号定时器2将加1在此情况下对TH2和TH1进行读写是不准确的可对RCAP2寄存器进行读但不要进行写否则将导致自动重装错误当对定时器2或寄存器RCAP进行访问时应关闭定时器清零TR2 表4列出了常用的波特率和如何用定时器2得到这些波特率表4 由定时器2产生的常用波特率 波特率 375K 9.6K 2.8K 2.4K 1.2K 300 110 300 110 波特率公式汇总 定时器2工作在波特率发生器模式波特率= 外部时钟信号由T2脚进入波特率为 定时器2溢出率 16 fosc 波特率= fosc为晶振频率 自动重装值可由下式得到
定时器/计数器2的设置
除了波特率发生器模式T2CON不包括TR2位的设置TR2位需单独设置来启动定时器表5表6给出了T2作为定时器和计数器的设置
表5 T2作为定时器
RCAP2H,RCAP2L=65536-(fosc/32*波特率)
[32
[65536
(RCAP2H,RCAP2L)]]
如果定时器2采用内部时钟信号,则波特率为 振荡器频率 12MHz 12MHz 12MHz 12MHz 12MHz 12MHz 12MHz 6MHz 6MHz 定时器2 RCAP2H RCAP2L FF FF FF FF FE FB F2 FD F9 FF D9 B2 64 C8 1E AF 8F 57 18
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
模式 16位重装 16位捕获
波特率发生器接收和发送相同波特率 只接收 只发送
表6 T2作为计数器 模式 16位 自动重装
注
T2CON 内部控制注1 00H 01H 34H 24H 14H
外部控制 08H 09H 36H 26H 16H
注2
TMOD 内部控制注1 02H 03H
外部控制 0AH 0BH
注2
1.仅当定时器溢出时进行捕获和重装
2.当定时/计数器溢出并且T2EX(P1.1)发生电平负跳变时产生捕获和重装定时器2用于波特率
发生器模式除外
全双工增强型UART
标准UART操作
串口为全双工结构表示可以同时发送和接收它还具有接收缓冲在第一个字节从寄存器读出之前可以开始接收第二个字节
但是如果第二个字节接收完毕时第一个字节仍未读出其中一个字节将会丢失
对SBUF
串口的发送和接收寄存器都是通过SFR SBUF进行访问的写入SBUF的数据装入发送寄存器的读操作是对物理上分开的接收寄存器进行访问
串口有4种操作模式模式0
串行数据通过RxD进出
TxD输出时钟每次发送或接收以LSB最低位
作首位
每次8位
波
特率固定为MCU时钟频率的1/12
模式1 TxD脚发送止位
1
RxD脚接收每次数据为10位一个起始位0
停止位存于SCON的RB8内
波特率可变
8个数据位LSB在前及一个停
当接收数据时由定时器1溢出速率决定
模式2
TxD脚发送RxD脚接收每次数据为11位一个起始位0程第9位数据及一个停止位
1
8个数据位LSB在前
一个可编
发送时第9个数据位SCON内TB8位可置为0或1例如将奇偶位PSW内P位移至TB8接收时
第9位数据存入SCON的RB8位
停止位忽略
波特率可编程为MCU时钟频率的1/32或1/64
由PCON内SMOD1位决定
模式3
TxD脚发送RxD脚接收每次数据为11位一个起始位0程的第9位数据及一个停止位1器1溢出率决定
8个数据位LSB为首位一可编
事实上模式3除了波特率外均与模式2相同其波特率可变并由定时
在上述4种模式中发送过程是以任意一条以写SBUF作为目标寄存器的指令开始的模式0时接收
19
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
通过设置R1=0及REN=1初始化
多机通信
其它模式下如若REN=1则通过起始位初始化
UART模式2及模式3有一个专门的应用领域即多机通信在这些模式时接收为9位数据第9位存入RB8接下来为停止位UART可编程为接收到停止位时仅当RB8=1时串口中断才有效可通过置位SCON内SM2位来选择这一特性
下述为多机系统利用这一特性的一种方法
当主机需要发送一数据块给数台从机之一时首先发送出一个地址字节对目标从机进行识别地址与数据字节通过第9位数据区别其中地址字节的第9位为1而数据字节为0使各从机产生中断数据继续各自工作
而地址字节则令所有从机中断
被寻址的从机即可清除SM2位以准备接收随后数据内容
SM2=1时数据字节不会
这样各从机可以检查接收到的数据判断是否被寻址
未被寻址的从机的SM2位仍为1则不理睬随后
模式0时SM2无效模式1时SM2用于检验停止位是否有效在模式1时如果SM2=1那么只有接收到有效的结束位才可产生接收中断
串行端口控制寄存器
SCON
其中包括模式选择位
以及发送和接收的第9
串行端口控制及状态寄存器即SCON如图12所示位数据SCON 可位寻址 复位值位
00H 符号 TB8及RB8地址98H
以及串行端口中断位
TI及RI
7 6 5 4 3 2 1 0 SM0/FE SM1 SM2 REN TB8 RB8 功能
TI
RI
SCON.7 FE 帧错误位当检测到一个无效停止位时通过UART接收器设置该位但它必须由
软件清零要使该位有效PCON寄存器中的SMOD0位必须置1
SCON.7 SM0 和SM1定义串口操作模式SCON.6 SM1 和SM0定义串行口操作模式
要使该位有效见下表
PCON寄存器中的SMOD0必须置0
SM0 SM1 UART模式 波特率
0 0 0 1 1 0 1 1
0123
同步移位寄存器 fosc/12或fosc/68位UART 可变
9位UART fosc /64或fosc /32 9位UART 可变
取决于时钟模式
SCON.5 SM2 在模式2和3中多处理机通信使能位在模式2或3中若SM2=1且接收到的第
9位数据RB8是0则RI接收中断标志不会被激活在模式1中若SM2=1且没有接收到有效的停止位
SCON.4 REN 允许接收位
则RI不会被激活
在模式0中
SM2必须是0
由软件置位或清除REN=1时允许接收REN=0时禁止接收
SCON.3 TB8 模式2和3中发送的第9位数据SCON.2 RB8 模式2和3中已接收的第9位数据
位
在模式0中
RB8未用
可以按需要由软件置位或清除在模式1中
或sm2=0
RB8是已接收的停止
SCON.1 TI 发送中断标志模式0中在发送完第8位数据时由硬件置位其它模式中
在
发送停止位之初由硬件置位在任何模式中
SCON.0
RI
都必须由软件来清除TI
接收中断标志模式0中接收第8位结束时由硬件置位其它模式中在接收停
止位的中间时刻由硬件置位在任何模式(SM2所述情况除外)必须由软件清除RI
图12 串行控制寄存器
SCON
20
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
波特率
操作模式0的波特率是固定的为fosc/12
模式2的波特率是MCU时钟/64或MCU时钟/32
复位值
取决
于PCON寄存器中的SMOD1位的值若SMOD1=0波特率为MCU时钟/32
在80C51中
波特率为MCU时钟/64若SMOD1=1
模式1和模式3的波特率由定时器1的溢出速率决定
使用定时器1作波特率发生器 当定时器1用作波特率发生器
在此应用中定时器1不能用作中断定时器1可以工作在定时或计数方式和3种工作模式中任何一个在最典型应用中它用作定时器方式工作自动重装载模式TMOD的高半字节为0010B下式给出
可以定时器1的中断实现非常低的波特率0001B
并使用中断进行16位软件重装
波特率Mode0Max:1.67MHzMode2Max:625kMode1,3Max:104.2k19.2k9.6k4.8k2.4k1.2k137.5110110模式1和3中波特率由定时器1的溢出速率和SMOD1的值决定
它的波特率值由
将定时器配置为16位定时器 OSCTMOD的高半字节为
图13列出了几个常用的波特率以及如何从定时器1获得
定时器1C/TX1110000000XX000000000模式XX222222221重装值XXFFHFDHFDHFAHF4HE8H1DH72HFEEBH 20MHz 20MHz 20MHz11.059MHz 11.059MHz11.059MHz 11.059MHz 11.059MHz11.986MHz 6MHz12MHz 图13 由定时器1产生的通用波特率
UART模式0
串行数据由RxD端出入TxD输出同步移位时钟发送或接收的是8位数据固定为MCU时钟的1/12
图14是串行口模式0的功能方框简图及相关的时序图并通知发送控制部分开始发送
低位在先
其波特率
执行任何一条把SBUF作为目的寄存器的指令时就开始发送S6P2时刻的写SBUF信号将1装入发送移位寄存器的第9位SEND端有效
SEND使能RxDP3.0端送出数据TxDP3.1输出移位时钟每个机器周期的S3S4及S5状态内移位时钟为低电平而S6S1及S2状态内为高在SEND有效时每一机器周期的S6P2时刻发送移位寄存器的内容右移一位入
1
的第9位
数据位向右移时左边添加零当数据字节最高位MSB移到移位寄存器的输出端时其左边是装
再左的内容均为0, 此时通知Tx控制模块进行最后一位移位处理后禁止SEND并置位
T1, 所有这些步骤均在写入SBUF后第10个机器周期的S1P1时进行的接收初始化条件是REN=1及R1=0下一机器周期的S6P2时RX控制单元向接收移位寄存器写入1111 1110并在下一个时钟使RECEIVE端有效
RECEIVE使能移位时钟转换P3.1功能移位时钟在每个机器周期的S3P1及S6P1跳变在RECEIVE有效时每一机器周期的S6P2时刻接收移位寄存器内容向左移一位从右移位进来的值是该机器周期S5P2
写SBUF信号有效后一个完整的机器周期后
21
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 时从P3.0脚上采样得来的
数据从右边移入时RI
UART模式1
串行口工作于模式1时传输的是10位1位起始位0由RxD接收
TxD发送接收时
图15所示为串行口模式1的功能简图及相应的发送/接收时序
写SBUF
信号还把1
写SBUF
TB8装入发信号同步 使输出移位寄其左边是装入
8位数据低位在先及一位停止位1
停止位存入SCON内RB880C51波特率取决于定时器1的溢出速率
左边移出为
1
当初始时置入最右端的
0
移至最左端时
通知RX控制时
在写入SCON清除R1后第10个机器周期
RECEIVE端被清除且置位
钟作最后一次移位后装入SBUF
发送过程是由执行一条以SBUF为目的寄存器的指令启动的的那个机器周期的S1P1时刻
送移位寄存器的第9位同时通知发送控制器进行发送实际上发送过程开始于16分频计数器下次翻转后
每位的发送时序与16分频计数器同步
一位
时间
产生第一个移位脉冲
而并不与
发送以激活SEND端开始向TxD发送一起始位存器中数据得以送至TxD再过一位
数据向右移出1
的第9位这都发生于
左边不断填以0再左的内容均为0
以后DATA端有效
当数据字节的最高位移到移位寄存器的输出位置时
此时通知TX控制器作最后一次移位然后禁止SEND端并置位TI
写SBUF后16分频计时器的第10次翻转时
接收在RxD端检测到负跳变时启动为此MCU 对RxD不断采样采速率为波特率的16倍当检测到负跳变时16分频计数器立即复位同时将1FFH写入输入移位寄存器复位16分频计时器确保计时器翻转时位与输入数据位时间同步
计数器的16个状态将每个位时间分为16份取值为三个采样值中取多数至少2个说明它不是一帧数据的起始位误的起始位
如果起始位有效
该位被摒弃
在第7
8
9状态时位检测器对RxD端的值采样等待另一个负跳变的到来
这用来防止错
仅当
作为读入值
这样可以抑制噪声如果所接收的第一位不为0
并开始接收这一帧中的其它位9
位分别装入SBUF及RB8
接收电路被复位
则被移入输入移位寄存器
当数据位逐一由右边移入时1从左边被移出当起始位0移到最左边时模式1为9位寄存器
并置RI=1
RI=0
SM2=0或接收到的停止位=1才会装载SBUF
通知接收控制器进行最后一次移位将移位寄存器内容最后一位移位脉冲产生时同时满足下述2个条件和RB8
并且置位RI
RI=1
这时
上述两个条件任一不满足,所接收到的数据帧就会丢失不再恢复两者都满足时停止位就进入RB88位数据进入SBUF
无论上述条件满足与否接收控制单元都会重新等待RxD的负跳变
通过RxD都是11位包括1位起始位0
1
发送时
第9位数据位
TB8
模式2和模式3 模式2和3中发送位
LSB在先
接收时
0或1
通过TxD和接收
第9位
8位数据可置为
1位可编程数据位
及一位停止位
第9位存入SCON的RB8模式2时波特率可编程选为MCU时钟频率的1/16或1/32
模式3时可由定时器1获取可变的波特率
图16及17所示为模式2存器内第9位和模式1有所不同
3时串行口的功能简图接收部分与模式1相同发送部分仅发送移位寄
写SBUF
同时将TB8装入发送移位
发送过程是由执行一条以SBUF为目的寄存器的指令启动的周期的S1P1时刻开始
寄存器的第9位位置上并通知发送控制器进行一次发送发送过程由于16分频计数器下一次翻转后机器
发送过程由使能SEND有效开始将一个起始位送到TxD端一位时间后DATA有效数据由移位寄存器送入TxD端再过一位后产生第一个移位脉冲第一个移位时钟将1的第9位此后每次移位只把0送入第9位所以当数据位向右移出时出位置上时
它左边就是停止位这些均发生在
其余位均为零写SBUF
无效并置位TI
后第11次计数器翻转时
停止位送入移位寄存器
然后使SEND
0从左边移入当TB8移至输
此时将通知发送控制器作最后一次移位
MCU以16倍波特率对RxD脚进行
22
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 采样
一旦检测到负跳变16分频计数器立即复位同时将1FFH写入输出移位寄存器在每一位的第7为确定值以抑制噪声起始位有效
89状态时位检测器对RxD端值进行采样如若所接收的第一位不为0
接收电路复位
并开始接收这一帧中的其它位
至少2次
如果
对三个采样值取多数
单元等待下一个负跳变的出现
则被移入输入移位寄存器
数据位从右边移入足下列2个条件
RI=0,
1从左边移出当起始位移至寄存器模式2~3时为9位寄存器的最左端时SM2=0或接收到的第9位数据为1时, 才装载SBUF和RB8并置位
RI仍为0
一个位时间后无论上述条件满足与否
通知接收控制器进行最后一次移位并装入SBUF及RB8并置位RI仅当产生最后一位移位脉冲时同时满
上述两个条件任一不满足,所接收到的数据帧就会丢失不再恢复位数据位就装入RB8等待RxD端的负跳变
S4 ..ALE80C51 Internal BusReadSBUFLSBSBUFMSBLoadSBUFRENRIS6SerialPortInterruptRXClockR1RXControlStartLSBInput Shift RegisterShift1 1 1 1 1 1 10MSBRxDP3.0 AltInputFunctionReceiveShiftShiftClockStartTXControlTXClockT1SendShiftWritetoSBUFDSCLRxDP3.0 AltOutputFunction当两者都满足时第9
单元都会重新
前8位数据则装入SBUF
80C51 Internal BusQSBUFZero DetectorTxDP3.1 AltOutputFunction S1. . .. S6S1. . ..S6S1. . ..S6S1. . ..S6S1. . ..S6S1. . ..S6S1. . ..S6S1. . ..S6S1. . ..S6S1. . ..S6S1Write to SBUFS6P2Transmit
D0D1D2D3D4D5D6D7SendShift D0S5P2D1D2D3D4D5D6D7RxD (Data Out)TxD (Shift Clock)TIS3P1S6P1Write to SCON (Clear RI)
RIReceiveShift
Receive
RxD (Data In)TxD (Shift Clock)图14 串口模式0
23
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
Overflow
SMOD =0÷2SMOD =1Timer180C51 Internal BusTB8 WritetoSBUFDCLSQSBUFTxD
Zero DetectorStartTXControl÷ 16SerialPortInterrupt÷ 16TXClockT1ShiftDataSendSample1-to-0TransitionDetectorStartRX Clock RIRXControlLoadSBUFShift1FFHBit DetectorInput Shift Register(9 Bits)RxDLoadSBUFShiftSBUFReadSBUF80C51 Internal BusTXClockWrite to SBUFSendS1P1Transmit
DataShiftTxDTI Start BitD0D1D2D3D4D5D6D7Stop BitRXClockRxDBit DetectorSampleTimesShiftRI
÷ 16 ResetStartBitD0D1D2D3D4D5D6D7Stop BitReceive
图15 串口模式1
24
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
Mode2 ÷2SMOD =1÷16SerialPortInterruptSMOD =0(SMOD isPCON.7)Sample1-to-0TransitionDetectorStart÷16StartPhase 2 Clock(1/2fOSC)WritetoSBUFDCLSQ80C51 Internal BusTB8SBUFTxD
Zero DetectorStop BitGen.TXControlT1ShiftDataTXClockSend RXClockR1LoadSBUFShift1FFHRXControlBit DetectorInput Shift Register(9 Bits)RxDLoadSBUFShiftSBUFReadSBUF80C51 Internal BusTXClock Write to SBUFSendS1P1Transmit
Start BitDataShiftTxDTI D0D1D2D3D4D5D6D7TB8Stop BitStop Bit Gen.÷ 16 ResetRXClockRxDBit DetectorSampleTimesShiftRI
StartBitD0D1D2D3D4D5D6D7RB8Stop BitReceive
图16 串口模式2
25
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
Timer1Overflow 80C51 Internal BusTB8÷2SMOD =1SMOD =0 WritetoSBUFDCLSQSBUFTxD
Zero DetectorStartShiftTXControlData Bit DetectorSample1-to-0TransitionDetectorStartSerialPortInterrupt÷16TXClockT1Send÷16RXClockR1LoadSBUFShift1FFHRXControl TXClockReadSBUFRxDLoadSBUFInput Shift Register(9 Bits)ShiftSBUF80C51 Internal Bus Write to SBUFSendS1P1Transmit
Start BitDataShiftTxDTI D0D1D2D3D4D5D6D7TB8Stop BitStop Bit Gen.RXClockRxD÷ 16 ResetStartBitD0D1D2D3D4D5D6D7RB8Stop BitReceive
Bit DetectorSampleTimesShiftRI图17 串口模式3
增强型UART操作
除了标准操作模式外还支持多机通信
当使用帧错误检测时丢失的位将会置位SCON中的FE位FE与SM0共用SCON.7通过PCON.6SMOD0选择如果SMOD0置位SCON.7作为FESMOD0为0时SCON.7作为SM0作为FE时SCON.7只能由软件清零
自动地址识别
见图18
UART可实现自动地址识别和通过查询丢失的停止位进行帧错误检测
UART
26
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
自动地址识别是这样一种特性它使UART可以通过硬件比较从串行数据流中识别出特定的地址这样就不必花费大量软件资源去检查每一个从串口输入的串行地址将SCON内SM2置位可使能该特性在9位UART模式标志
RI
模式2和模式3
下
如果接收的字节中包含给定
地址或
广播
地址
接收中断
将自动置位
在9位模式下要求第9个信息位为1以表明该信息内容是地址而非数据
使用自动地址识别特性时主机通过调用特定从机地址选择与一个或多个从机通信使用广播地址时所有从机都被联系在此使用了两个特殊功能寄存器SADDR表示从机地址SADEN表示地址屏蔽
从机1 SADDR=1100 0000
特定地址=1100 000X
而SADEN不同以区分两个从机由于从机1的1位必须为0
从机0要求0位为0而忽略1位
从机1则
由
从机0只能取独有的地址1100 0010以区别
SADEN=1111 1110 上例中SADDR相同
SADEN用于定义SADDR内哪几位需使用而哪几位不予考虑
用于对每一从机进行寻址
示例如下
从机0 SADDR=1100 0000
特定地址=1100 00X0
SADEN可以与SADDR逻辑
与
得
出给定的地址
SADEN=1111 1101 要求1位为0 而忽略0位被寻址
下例所示为选择从机1
于从机0的0位必须为1从机1只能取独有的地址1100 0001以区别而取地址1100 0000时两从机都可
2而不选从机0
从机0 SADDR=1100 0000 SADEN=1111 1001 特定地址=1100 0XX0
从机2 SADDR=1110 0000
SADEN=1111 1100
特定地址=1110 00XX
从机0要求位0=0
它可通过1110 0110单独寻址
从机1要求位
上述三个从地址只有低3位不同
从机1 SADDR=1110 0000
特定地址=1100 0X0X
SADEN=1111 1010 1=0可通过1110 0101单独寻址从机2要求位2为0可通过1110 0011单独寻址由于必须使地址字节的第2位为1以屏蔽从机2因此使用地址1110 0100可选通从机0和1同时屏蔽从机2将SADDR和SADEN相或后产生每个从机的广播地址结果为零的位视为无关位大多数情况下无关位被认为是1
这样
广播也即
地址为FFH复位时SADDR和SADEN均为00H此时产生了一个所有位都是无广播
地址
这样有效地禁止了自动寻址模式
并允许微控制器使用不带有上述
关位的给定地址
特性的标准UART驱动器
27
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
RECEIVED ADDRESS D0TO D7PROGRAMMEDADDRESSCOMPARATORSM011SM110SM21REN1TB8XRB8TIRISCON(98H)
D0D1D2D3D4D5D6D7D8STARTBITDATABYTEONLY INMODE 2,3STOPBITSET FE BIT IF STOP BIT IS 0 (FRAMING ERROR)SM0TO UART MODE CONTROLSM0 / FESM1SM2RENTB8RB8TIRISCON(98H)SMOD1SMOD0–POFGF1GF0PDIDLPCON(87H)0 : SCON.7 = SM0
1 : SCON.7 = FE
图18 UART 帧错误检测
D0D1D2D3D4D5D6D7D8INUART MODE 2 OR MODE 3 AND SM2 = 1:
INTERRUPT IF REN=1, RB8=1 AND“RECEIVED ADDRESS” =“PROGRAMMED ADDRESS”– WHEN OWN ADDRESS RECEIVED, CLEAR SM2TO RECEIVE DATABYTES– WHEN ALL DATA BYTES HAVE BEEN RECEIVED: SET SM2TO WAIT FOR NEXT ADDRESS.
图19 UART多机通信,自动地址识别
中断优先级结构
TF1TI
RI
TF2, EXF2
0INT11IT1IE1InterruptSources
TF0INT010IT0IE0图20 中断源
中断
本手册所讲述的器件提供6个中断源如图20所示外部中断INT0和INT1可根据寄存器TCON中的IT0和IT1位状态分别设置为电平或者边沿触发产生外部中断时
如果是边沿触发
由外部请求源而不是由片内硬件控制请求标志
实际产生的中断标志是TCON中的位IE0和IE1
如果中断是电平触发
当
进入中断服务程序后由硬件清除中断标志位
定时器0和定时器1中断由TF0和TF1分别由各自的定时/计数寄存器控制定时器0工作在模式3
28
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 时除外
产生当产生定时器中断时
进入中断服务程序后由片内硬件清除标志位
然后由软件清除中断标志
串口中断由RI和TI的逻辑或产生进入中断服务程序后这些标志均不能被硬件清除实际上中断服务程序通常需要确定是由RI还是TI产生的中断断可由软件产生推迟或取消
图21
中的相应位分别使能或禁止IE中还包含一个全局
图22和IPH图23
单独设置优先级
一个中断
所以这些产生中断的位都可通过软件置位或清零与通过硬件置位或清零的效果相同简而言之中每个中断源可通过置位或清零寄存器IE禁止位EA可以立即禁止所有的中断
中断优先级结构
每个中断源都可通过编程中断优先级寄存器IP服务程序可响应更高级的中断
但不能响应同优先级或低级中断
最高级中断服务程序不响应其它任何中
断如果两个不同中断优先级的中断源同时申请中断时如下所示
1. IE02. TF03. IE14. TF15. RI+TI注
最低
同级优先级 最高
外部中断0定时器0外部中断1定时器1UART
定时器2
响应较高优先级的中断申请
如果2 个同优先级的中断源同时申请中断内部查询顺序将确定首先响应哪一个中断请求查询顺序中断源
6. TF2,EXF2
同级优先级
只用来处理相同优先级别中断源同时申请中断的情况
用户软件不应
IP和IPH寄存器中包含了一些无效位由于这些位可能用于其它80C51系列产品中将这些位写入1
中断的处理
中断标志在每个机器周期的S5P2时采样在下一个机器周期查询该采样如果在S5P2周期时有一个标志置位查询周期将发现它然后中断系统产生一个LCALL调用对应的服务程序由硬件产生的LCALL在下面任意一种情况下都会推迟执行
1. 同级或更高级的中断已在处理中
2. 当前的周期不是正在执行指令的最后一个周期
3. 正在处理的指令是RETI或任何写IE或IP寄存器的指令
条件2确保正在处理的指令在进入任何中断服务程序前可以执行完毕条件3确保了如果正在处理的指令是RETI或任何访问IE或IP寄存器的指令是
如果一个中断标志位有效但仍然没有被响应
中断将不再响应
换句话说
每次查询周期都会更新中断标志
那么在进入任何中断服务程序之前至少再执行一条指令 是因为出现上面所述的情况
如果当阻碍的条件撤除时
之后将不再
查询周期在每个机器周期都会重复所查询的值是在前一个机器周期的S5P2出现的值需要注意的中断标志不再有效被记忆
实际上如果中断标志有效时没有响应中断
29
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
IE 地址0A8H 复位值0X000000B
可位寻址 7 6 5 4 3 2 1 0 EA ET2 ES ET1 EX1 ET0 EX0 使能位=1位
使能中断 使能位=0符号
功能
如果EA=0
所有的中断都被禁止;EA=1时
所有的中断都可通过
设置/清零各自的使能位单独使能或禁止
IE.6
无效位保留将来之用
IE.5 ET2 定时器2中断使能位 IE.4 ES 串口中断使能位 IE.3 ET1 定时器1中断使能位 IE.2 EX1 外部中断1使能位 IE.1 ET0 定时器0中断使能位 IE.0 EX0 外部中断0使能位
图21 中断使能IE
IP
禁止中断
IE.7 EA 全局禁止位
寄存器
XX000000B
地址0B8H 复位值
可位寻址 7 6 5 4 3 2 1 0
优先级位=1位 IP.7 IP.6
PT2 PS PT1 PX1 PT0 PX0 分配低优先级
分配高优先级 优先级位=0
功能
无效位保留将来之用 无效位保留将来之用
符号
IP.5 PT2 定时器2中断优先级位 IP.4 PS 串口中断优先级位 IP.3 PT1 定时器1中断优先级位 IP.2 PX1 外部中断1优先级位 IP.1 PT0 定时器0中断优先级位 IP.0 PX0 外部中断0优先级位
图22 中断优先级
IPH 地址
IP寄存器
0B7H 复位值XX000000B
PT2 PS PT1 PX1 PT0 PX0 分配低优先级
可位寻址 7 6 5 4 3 2 1 0
优先级位=1位 IPH.7 IPH.6
分配高优先级 优先级位=0
功能
无效位保留将来之用 无效位保留将来之用
符号
IPH.5 PT2H 定时器2中断优先级高位 IPH.4 PSH 串口中断优先级高位 IPH.3 PT1H 定时器1中断优先级高位 IPH.2 PX1H 外部中断1优先级高位 IPH.1 PT0H 定时器0中断优先级高位 IPH.0 PX0H 外部中断0优先级高位
图23 中断优先级高
30
IPH
寄存器
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
. . . . . . . ..
S5P2
. . . . . . . ..
C1
S6
C2C3
C4C5. . ..
. . ... . ..
Long Call to
InterruptVector Address
Interrupt Routine
εInterruptGoesActive
InterruptLatched
InterruptsArePolled
This is the fastest possible response when C2 is the final cycle of an instruction other than RETI or an access to IE or IP.
图24 中断响应时序图
查询周期和LCALL时序如图24所示需要注意的是如果一个更高优先级的中断在S5P2之前的C3有效志位触发
如图24
然后根据上面的规则
它会在C5,C6响应中断
不执行任何低优先级中断的指令
在有些情况下
处理器通过执行硬件产生的LCALL调用相应的服务程序来应答中断另一些情况不清零
它永远不会清零串口中断标志
中断标志IE0或IE1会被硬件清零当中断服务程序执行到RETI指令时新装入PC继续执行被中断的程序就无法响应
它清零中断标
但不会保
这需要用户软件来完成
如果外部中断是边沿
硬件产生的LCALL将程序指针的内容压入堆栈
护PSW并根据响应的中断源重新将一个地址装入PC如表7所示
通知处理器中断程序已执行完毕然后从堆栈弹出两个字节重
注意RET指令也可以返回被中断的程序但这样会使中断系统认为中断仍在执行那么后面的中断外部中断
外部中断源可配置为电平触发或边沿触发通过将寄存器TCON中的位IT1或IT0置位或清零实现如果ITx=0外部中断x通过INTx脚的低电平触发IEx请求中断
如果ITx=1外部中断x为边沿触发
该模式下对
INTx脚连续采样如果在一个周期为高电平而下一个周期为低电平中断请求标志IEx将置位然后通过
由于外部中断脚每个机器周期采样一次输入高或低应当保持至少12个振荡周期以确保能够采样到如果外部中断为边沿触发外部中断源应当将中断脚至少保持1个机器周期高电平然后至少保持1个机器周期低电平这样就确保了边沿能够被检测到以使IEx置位当调用中断服务程序后零如果外部中断为电平触发程序结束之前撤除请求
响应时间
INT0和INT1电平在每个机器周期的S5P2取反并锁存到IE0和IE1路查询期
如果请求有效且应答的条件正确
如果正在执行的指令不是它的最
身占用两个周期
在下个周期之前该值不会被电
CALL指令本
下个执行的指令就是硬件子程序调用请求中断
外部中断源必须一直保持请求有效
否则将产生另一次中断
CPU自动将IEx清
然后在中断
直到产生所请求的中断
因此从中断请求有效到开始执行中断服务程序的第一条指令需要至少3个完整的机器周
图24所示为中断响应时序
如果中断被前面所述的3个条件之一所阻滞中断就需要更长的响应时间如果同级或高优先级的中断已经在处理
额外的等待时间就取决于其它中断服务程序所耗的时间
后一个周期额外的等待时间不会超过3个周期因为最长的指令MUL和DIV为4个周期如果正在处理的是RETI或者任何访问IE或IP的指令额外的等待时间不会超过5个周期完成正在处理的指令需要一个周期
再加最多4个周期完成下一条指令
如果指令为MUL和DIV
IP和IPHIPH
如下表所示
因此在一个单中断系统中响应时间总是大于3个周期小于9个周期如前面所述
该手册所描述的器件都具有4个中断优先级结构
寄存器的功能很简单
当其与IP寄存器组合使用时决定每个中断的优先级
对应的寄存器为IE
31
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
优先级位
IPH.x IP.x 中断优先级
0 0 0最低优先级0 1 1 1 0 2 1 1 3最高优先级
表7 中断表
中断源
查询优先级
请求位
向量地址
硬件清除
外部中断0 1 IE0 N(L)1 Y(T)2 03H 定时器0中断 2 TF0 Y 0BH 外部中断0 3 IE1 N(L)1 Y(T)2 13H 定时器1中断 4 TF1 Y 1BH UART 5 RITI N 23H 定时器2中断 6 注 降低EMI
所有口控制输出时都有转换率这限制了由于输出信号的快速切换所产生的EMI该转换率由工厂设定
大约为10ns的上升和下降时间降低EMI模式 当位AOAUXR.0AUXR
8EH
置位时
禁止ALE 输出
1. L=低电平有效 2. T=边沿有效
TF2 N 2BH 7 6 5 4 3 2 1 0
AO
AUXR.0 AO 关闭ALE输出
双DPTR结构 双DPTR结构址外部存贮器SFR的地址复位值AUXR1
如图25
提供了一种用于寻址外部数据存贮器的方法有两个16位DPTR寄存器可以寻
通过对AUXR1的DPS位编程可实现两个DPTR寄存器的切换A2H A2H
新寄存器名AUXR1#
xxx000x0B
7 6 5 4 3 2 1 0 此处
用于切换指针DPTR0和DPTR1
DPS
LPEP
WUPD
0
DPS DPS为AUXR1的位0 选择寄存器
DPTR0 0 DPTR1 1
当切换DPTR0和DPTR1时影响WUPD或LPEP位
32
应当通过软件来保存DPS
能对DPS快速切换且不会
注意AURX的位2不能写而读出值为0
通过执行INC DPTR 指令
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
图25
DPTR指令
DPTR指令根据当前AUXR1位0的值INC
DPTR
可作为数据指针
下面是使用 DPTR的6个指令
数据指针加1
DPSBIT0AUXR1DPTR1DPTR0DPH(83H)DPL(82H)EXTERNAL
DATAMEMORY
MOV DPTR,#data16 DPTR装载16 位常数
MOV A,@A+DPTR 将与DPTR相关的代码字节送入ACC MOVX A,@DPTR 外部RAM
16位地址的内容装入ACC
16 位地址
MOVX @DPTR,A 把ACC的内容送到外部RAM可以通过寻址SFR的低字节或高字节来寻址数据指针
极限参数1
23
JMP @A+DPTR 间接跳转到与DPTR相关的地址
更详细的内容可参见应用指南AN458
参数
操作温度 贮存温度范围
EA/Vpp脚相对于Vss的电压 其它任何脚相对于Vss的电压 每个I/O脚的最大IOL 注1. 2. 3.
AC电气特性 Tamb=0标号 1/tCLCL
+70图号 30
或
40
+85参数 振荡器频率
操作模式
电源电压
器件在超过上面所列的绝对最大值情况下工作况下工作说明
除非另有规定
0
值 +70或40650
+150
+85
单位
+13.0 V +6.5 V 0.5
15 mA 电源损耗 1.5 W 可能会造成永久性的损坏
本产品有保护器件内部的电路设计避免超负荷的损坏性影响不过建议避免在超过最大值的情参数在操作温度范围内是有效的
所有的电压都是相对Vss而言的
除非另有
时钟频率范围 最小
最大
单位
6时钟 5V12时钟 5V10% 0 30 MHz 10% 0 33 MHz 6时钟 2.7V~5.5V 0 16 MHz 12时钟 2.7V~5.5V 0 16 MHz
33
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
直流电气特性 Tamb=0标号 +70
或参数 40
+85
;Vcc=2.7V至5.5V; Vss=0V(16MHz最大
测试条件 MIN TYPCPU时钟)
1 极限 MAX 单位 VIL VIH 输入低电压 输入高电压(端口0,1,2,3,EA) 4.0V 激活模式复位空闲方式 +70ALE6. 如Tamb=07. P0,ITL =-650uA;Tamb=-40PSEN的负载电容为100pF,其它管脚的负载电容为80pFI0L必须通过外部来限制 15mA注26mA 在85 8. 在稳定的条件下不跳变 每个口管脚IOL的最大值 每个8位端口IOL的最大值 34 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 所有输出的总IOL的最大值71mA 这个脚的电压才以VOH为准管脚电容小于25pF 如果IOL超过了测试条件VOL可能会超出相关的规格管脚不能保证吸收电流超过测试条件下的值 除了关闭ALE功能时 并不是测试出来的 陶瓷封装的管脚电容小于 9. ALE脚测试的VOH1电压 15pF(除了EA为25pF) 直流电特性 Tamb=0标号 VIL VIH +70或40参数 10. 管脚电容是由特性曲线得到 +85; Vcc=5V10%;Vss=0V(33MHz) 测试条件 极限 MIN TYP1 MAX 单位 输入低电压 4.5V 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 11. 在稳定的条件下不跳变 I0L必须通过外部来限制 15mA注26mA 71mA 这个脚的电压才以VOH为准管脚电容小于25pF 时的规格 每个口管脚IOL的最大值 每个8位端口IOL的最大值所有输出的总IOL的最大值在85 如果IOL超过了测试条件VOL可能会超出相关的规格管脚不能保证吸收电流超过测试条件下的值 除了关闭ALE功能时 并不是测试出来的 10% LimitsMIN3127272727272727272727272829282828282828,2928,292929292828,29313131313030303030OscillatorfrequencyALEpulsewidthAddress valid to ALE lowAddress hold after ALE lowALE low to valid instruction inALE low to PSEN lowPSENpulsewidthPSEN low to valid instruction inInputinstructionholdafterPSENInputinstructionfloatafterPSENAddresstovalidinstructioninPSEN low to address floatRDpulsewidthWRpulsewidthRD low to valid data inDataholdafterRDDatafloatafterRDALE low to valid data inAddress to valid data inALE low to RD or WR lowAddress valid to WR low or RD lowData valid to WRtransitionDataholdafterWRData valid to WRhighRD low to address floatRD or WR high to ALE highHightimeLowtimeRisetimeFalltimeSerial port clock cycle timeOutput data setup to clock rising edgeOutputdataholdafterclockrisingedgeInputdataholdafterclockrisingedgeClockrisingedgetoinputdatavalid12tCLCL10tCLCL–252tCLCL–15010tCLCL–133tCLCL–100.32tCLCL0.32tCLCL3tCLCL–154tCLCL–15tCLCL–25tCLCL–157tCLCL–50tCLCL+10tCLCL–tCLCXtCLCL–tCHCX55750600110049252.502tCLCL–108tCLCL–359tCLCL–353tCLCL+15172.523537.547.5432.5072.56tCLCL–206tCLCL–205tCLCL–350115465527.5202.50tCLCL–105tCLCL–3510355355277.5tCLCL–103tCLCL–103tCLCL–35052.5277.51002tCLCL–8tCLCL–13tCLCL–204tCLCL–3552.5177.5152.5MAX3311749.542.521516 MHz ClockMINMAXMHznsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsUnit12. ALE脚测试的VOH1电压 15pF(除了EA为25pF) 13. 管脚电容是由特性曲线得到陶瓷封装的管脚电容小于 AC电气特性(12时钟模式5V Tamb= 0°C to +70°C or–40°C to +85°C ;V SymbolFigureParameterCC = 5 V±10%,VSS= 0V1,2,3,4 1/tCLCLtLHLLtAVLLtLLAXtLLIVtLLPLtPLPHtPLIVtPXIXtPXIZtAVIVtPLAZtRLRHtRLDVtRHDXtRHDZtLLDVtAVDVtLLWLtQVWX DataMemory tWLWHtAVWL tWHQXtRLAZtWHLHtCHCXtCLCXtCLCHtCHCLtXLXLtXHQXtQVWH ClockExternalShiftregistertQVXH tXHDX tXHDV 36 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com AC电气特性(12时钟模式2.7V~5.5V) Tamb= 0 °C to +70°C or–40°C to +85°C ;VSymbolFigureParameterV,VCC = 2.7 V to 5.5SS= 0VLimitsMINMAX1611547.537.54tCLCL–55tCLCL–153tCLCL–153tCLCL–550tCLCL–105tCLCL–50106tCLCL–256tCLCL–255tCLCL–5002tCLCL–208tCLCL–559tCLCL–503tCLCL–204tCLCL–20tCLCL–30tCLCL–207tCLCL–100tCLCL–150.32tCLCL0.32tCLCLtCLCL+15tCLCL–tCLCXtCLCL–tCHCX5512tCLCL10tCLCL–252tCLCL–15010tCLCL–133750600110049247.53tCLCL+20167.523032.542.5427.5077.50105445512.5207.5350350262.5052.5262.51047.5172.5132.519502tCLCL–10tCLCL–15tCLCL–2516 MHz ClockMINMAXMHznsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsUnit 1/tCLCL tLHLLtAVLLtLLAXtLLIVtLLPLtPLPHtPLIVtPXIXtPXIZtAVIVtPLAZ3127272727272727272727272829282828282828,2928,292929292828,29313131313030303030OscillatorfrequencyALEpulsewidthAddress valid to ALE lowAddress hold after ALE lowALE low to valid instruction inALE low to PSEN lowPSENpulsewidthPSEN low to valid instruction inInputinstructionholdafterPSENInputinstructionfloatafterPSENAddresstovalidinstructioninPSEN low to address floatRDpulsewidthWRpulsewidthRD low to valid data inDataholdafterRDDatafloatafterRDALE low to valid data inAddress to valid data inALE low to RD or WR lowAddress valid to WR low or RD lowData valid to WRtransitionDataholdafterWRData valid to WRhighRD low to address floatRD or WR high to ALE highHightimeLowtimeRisetimeFalltimeSerial port clock cycle timeOutput data setup to clock rising edgeOutputdataholdafterclockrisingedgeInputdataholdafterclockrisingedgeClockrisingedgetoinputdatavalid DataMemorytRLRHtWLWHtRLDVtRHDXtRHDZtLLDVtAVDVtLLWLtAVWLtQVWXtWHQXtQVWHtRLAZtWHLHtCHCXtCLCXtCLCHtCHCLtXLXLtQVXHtXHQXtXHDXtXHDVExternalClockShiftregister 37 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com AC电气特性(6时钟模式5V °C to +70°C or–40°C to +85°C ;VTamb = 0SymbolFigureParameter 1/tCLCL tLHLLtAVLLtLLAXtLLIVtLLPLtPLPHtPLIVtPXIXtPXIZtAVIV3127272727272727272727OscillatorfrequencyALEpulsewidthAddress valid to ALE lowAddress hold after ALE lowALE low to valid instruction inALE low to PSEN lowPSENpulsewidthPSEN low to valid instruction inInputinstructionholdafterPSENInputinstructionfloatafterPSENAddresstovalidinstructioninPSEN low to address floatRDpulsewidthWRpulsewidthRD low to valid data inDataholdafterRDDatafloatafterRDALE low to valid data inAddress to valid data inALE low to RD or WR lowAddress valid to WR low or RD lowData valid to WRtransitionDataholdafterWRData valid to WRhighRD low to address floatRD or WR high to ALE highHightimeLowtimeRisetimeFalltimeSerial port clock cycle timeOutput data setup to clock rising edgeOutputdataholdafterclockrisingedgeInputdataholdafterclockrisingedgeClockrisingedgetoinputdatavalid6tCLCL5tCLCL–25tCLCL–1505tCLCL–1330.5tCLCL–100.4tCLCL0.4tCLCL1.5tCLCL–152tCLCL–150.5tCLCL–250.5tCLCL–153.5tCLCL–500.5tCLCL+10tCLCL–tCLCXtCLCL–tCHCX55375287.547.50179.521.250tCLCL–104tCLCL–354.5tCLCL–351.5tCLCL+1578.751106.2516.25213.75041.253tCLCL–203tCLCL–202.5tCLCL–35052.5215246.25108.7500.5tCLCL–102.5tCLCL–3510167.5167.5121.250.5tCLCL–101.5tCLCL–101.5tCLCL–35021.25121.2510CC10%) = 5 V±10%,VSS= 0V1,2,3,4,5 LimitsMIN0tCLCL–80.5tCLCL–130.5tCLCL–202tCLCL–35MAX3016 MHz ClockMIN54.518.2511.259021.2583.7558.75MAXUnitMHznsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnstPLAZ27 DataMemorytRLRHtWLWHtRLDVtRHDXtRHDZtLLDVtAVDVtLLWLtAVWLtQVWXtWHQXtRLAZ2829282828282828,2928,2929292928tQVWH tWHLH28,29 ExternalClocktCHCXtCLCXtCLCH313131tCHCL 31ShiftregistertXLXLtQVXHtXHQXtXHDXtXHDV3030303030 38 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com AC电气特性(6时钟模式2.7V~5.5V) Tamb = 0 °C to +70°C or–40°C to +85°C ;VSymbolFigureParameterV,VCC=2.7 V to 5.5SS = 0V1,2,3,4,5 LimitsMINMAX160tCLCL–100.5tCLCL–150.5tCLCL–252tCLCL–550.5tCLCL–151.5tCLCL–151.5tCLCL–5500.5tCLCL–102.5tCLCL–50103tCLCL–253tCLCL–252.5tCLCL–500tCLCL–204tCLCL–554.5tCLCL–501.5tCLCL–202tCLCL–200.5tCLCL–300.5tCLCL–203.5tCLCL–1000.5tCLCL–150.4tCLCL0.4tCLCL0.5tCLCL+15tCLCL–tCLCXtCLCL–tCHCX556tCLCL5tCLCL–25tCLCL–1505tCLCL–1331.5tCLCL+2016 MHz ClockMIN52.516.256.257016.2578.7538.75021.25101.2510162.5162.5106.25042.5195231.2573.751051.2511.25208.75016.2546.25113.75MAXUnitMHznsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsnsns1/tCLCL tLHLLtAVLLtLLAXtLLIVtLLPLtPLPHtPLIVtPXIXtPXIZtAVIV3127272727272727272727OscillatorfrequencyALEpulsewidthAddress valid to ALE lowAddress hold after ALE lowALE low to valid instruction inALE low to PSEN lowPSENpulsewidthPSEN low to valid instruction inInputinstructionholdafterPSENInputinstructionfloatafterPSENAddresstovalidinstructioninPSEN low to address floatRDpulsewidthWRpulsewidthRD low to valid data inDataholdafterRDDatafloatafterRDALE low to valid data inAddress to valid data inALE low to RD or WR lowAddress valid to WR low or RD lowData valid to WRtransitionDataholdafterWRData valid to WRhighRD low to address floatRD or WR high to ALE highHightimeLowtimeRisetimeFalltimeSerial port clock cycle timeOutput data setup to clock rising edgeOutputdataholdafterclockrisingedgeInputdataholdafterclockrisingedgeClockrisingedgetoinputdatavalidtPLAZ27DataMemory tRLRHtWLWHtRLDVtRHDXtRHDZtLLDVtAVDVtLLWLtAVWLtQVWXtWHQXtQVWHtRLAZ2829282828282828,2928,2929292928tWHLH28,29 ExternalClocktCHCXtCLCXtCLCH313131tCHCL 31ShiftregistertXLXLtQVXHtXHQXtXHDXtXHDV3030303030375287.547.50179.5nsnsnsnsnsAC标号说明 每个时序标号有5个特征首先是的逻辑状态 A C D H I L Z 说明如下 地址 时钟 输入数据 P Q R t W X V PSEN 数据输出 RD信号 时间 WR信号 不再是有效逻辑电平 有效 t 时序 其他特征取决于他们的位置 用来表示信号名或信号 逻辑高电平 指令编程存贮器的内容 逻辑低电平或ALE 悬浮 例如tAVLL=从地址有效到ALE为低的时间 tLLPL=从ALE为低到PSEN为低的时间 39 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com ALE tLHLL tAVLLtLLPLtLLIVtPLIVtLLAXtPLPHPSEN tPLAZtPXIXtPXIZPORT0 A0–A7INSTRINA0–A7tAVIVA0–A15A8–A15PORT2 图26 外部程序存储器读周期 ALE tWHLHPSEN tLLWLtLLDVtRLRHRD tAVLLtLLAXtRLAZA0–A7FROM RI OR DPLtRLDVtRHDXDATA INtRHDZPORT0 A0–A7 FROM PCLINSTR INtAVWLtAVDVP2.0–P2.7 OR A8–A15 FROM DPFA0–A15FROMPCHPORT2 图27 外部数据存储器读周期 ALEtWHLHPSEN tLLWLtWLWHWR tAVLLtLLAXtQVWXtQVWHA0–A7FROM RI OR DPLDATA OUTA0–A7 FROM PCLINSTR INtWHQXPORT0 tAVWLPORT2 P2.0–P2.7 OR A8–A15 FROM DPFA0–A15FROMPCH图28 外部数据存储器写周期 40 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com CLOCKINSTRUCTION 012345678 ALE tXLXL tQVXH0tXHQX1234567OUTPUT DATAWRITETO SBUFtXHDVVALIDVALIDtXHDXVALIDVALIDVALIDVALIDVALIDSET TIVALIDINPUTDATA CLEARRISET RI图29 移位寄存器模式时序 0.45V VCC–0.50.45V 0.7VCC0.2VCC–0.1tCHCLtCLCXtCLCLtCHCXtCLCH图30 外部时钟驱动 VCC–0.5 0.2VCC+0.90.2VCC–0.1 VLOAD+0.1VVLOAD VLOAD–0.1VTIMINGREFERENCEPOINTSVOH–0.1VVOL+0.1V NOTE:NOTE: AC inputs during testing are driven atVCC–0.5 for a logic‘1’ and 0.45V for a logic.‘0’For timing purposes, a port is no longer floating when a 100mV change from VIL max for a logic‘0’.load voltage occurs, and begins to float when a 100mV change from the loadedTiming measurements are made atVIH min for a logic‘1’ and VOH/VOL level occurs.IOH/IOL≥±20mA. 图31 AC测试输入/输出 图32 悬浮波形 TYP IDLE MODE4 8 12 16 20 24 28 32 36 151052520 MAXACTIVEMODEICCMAX = 0.9 X FREQ. + 1.0TYP ACTIVE MODEMAX IDLE MODE3530 AL1 (MHzFREQAT XT) 图33 Icc vs. FREQ (12时钟模式) 用于测量IDD的源代码 /* ## as31 version V2.10 / *js* / ## ## ## source file: idd_ljmp1.asm ## list file: idd_ljmp1.lst created Fri Apr 20 15:51:40 2001 41 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com ## ########################################################## #0000 # AUXR equ 08Eh #0000 # CKCON equ 08Fh # # #0000 # org 0 # #LJMP_LABEL: 0000 /75;/8E;/01; 0003 /02;/FF;/FD; # # # #FFFD # org 0fffdh # # LJMP_LABEL: # FFFD /02;/FD;FF; # # ; # /* 图35 激活方式时Icc测试图 VCC–0.50.45V 0.7VCC0.2VCC–0.1(NC)VCCVCCP0EAXTAL2XTAL1VSS(NC)CLOCK SIGNAL XTAL2XTAL1VSSVCCICCVCCRSTP0EAVCCVCCICCVCCMOV AUXR,#001h ; turn off ALE LJMP LJMP_LABEL ; jump to end of address space 0005 /00; # NOP LJMP LJMP_LABEL NOP RSTCLOCK SIGNAL 图36 空闲方式时Icc测试图 所有其它管脚都没有连接 所有其它管脚都没有连接 tCHCLtCLCXtCHCXtCLCHtCLCL 图37 激活和空闲模式时Icc测试时钟信号波形(tCLCH=tCHCL=5ns) 42 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 图38 掉电方式时Icc测试图(其他管脚没有连接,VCC=2V~5V) (NC)XTAL2XTAL1VSSP0EAVCCRSTVCCICCVCCEPROM特性 该手册中描述的OTP器件可以通过一个改进的快速脉冲编程Quick-Pulse Programming算法实现编程它不同于旧的编程方法区别在于VPP的值和ALE/PROG脉冲宽度和个数出器件是由Philips制造的 图41所示为用于正常程序存储器校验的电路配置 注意器件以4到6MHz晶振运行 振荡器需要运行的原 该系列包括两个标识字节可通过EPROM编程系统读出对器件进行识别这两个标识字节可以识别表8列出了用于读出标识字节以及编程程序存储器加密表和加密位的逻辑电平快速脉冲编程的电路配置和波形如图39和40所示 快速脉冲编程 微控制器快速脉冲编程的建立如图39所示因是器件执行内部地址和程序的数据传输 P1口和P2口提供EPROM的编程地址P0口提供编程的代码字节如图39所示RSTPSEN和表8中指定的P2P3口管脚的电平维持在编程代码数据电平上ALE/PROG管脚产生的5个负脉冲如图40所示 为了编程密码表在地址0至1FH处重复5个编程脉冲并使用编程密码表电平编程密码表后校验周期将产生唯一的加密数据 为了编程保密位重复5个脉冲编程并使用编程保密位电平编程一个保密位后禁止编程程序存贮器和密码表 注 致器件永久性损坏 编程校验 如果保密位2和3还未被编程片内程序存贮器的内容可以被读出以校验程序P1口和P2口提供所要读出的存贮器的地址参见图41由P0口输出码校验数据 在这个操作中 其它管脚保持在校验程序数据 电平上 参见表8 地址的内容 P0口需外接上拉电阻 而其它保密位仍能被编程应精确地调整Vpp电源 并保证少受干扰 EA/Vpp脚电压任何时候都不能超过Vpp规定的最大值甚至超过此值的一个小干扰都有可能导 如果64字节密码表已被编程P0口的数据是程序字节与其中一个密码字节异或的结果为了正确解 用户必须知道密码表的内容 而密码表的内容不能被读出 读标识字节 标识字节在地址030H和031H处采用与校验同样的方式读出区别在于P3.6和P3.7需要保持逻辑030H= 15H表示器件由Philips制造 031H= 92H/97H/BBH/BDH; 表示87C51X2/52X2/54X2/58X2 编程/校验算法 低电平值参考如下 43 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 任何算法如果与表8所列的条件相符而且满足时序要求方式 读标识 则适合应用在这些单片机上 表8 EPROM编程模式 RST PSEN ALE/PROG EA/Vpp P2.7 P2.6 P3.7 P3.6 1 0 1 0 1 0 0 0 0 1 0 0 0 0 Vpp 1 0 1 1 1 0 0 1 1 Vpp 1 0 1 0 Vpp 1 1 1 1 Vpp 1 1 0 0 Vpp 0 1 0 1 编程代码数据 1 0 校验代码数据 1 0 编程密码表 1 0 编程保密位1 1 0 编程保密位2 1 0 编程保密位3 1 0 注 1 0 表示管脚低有效 0.25V 10% 1 表示管脚高有效 2 Vpp=12.75V保密位 3 在编程和校验期间,Vcc=5V 如果任一个保密位都没被编程则可以对程序存贮器的代码进行校验密码表被编程后当校验程序 MOVC指令访问外部程序存贮器时被禁止从内部 除上面所述外 还禁止外部程序存贮器 时程序将被加密当仅编程保密位1时见表9上面所述外 校验方式也被禁止 存贮器取代码字节EA脚由复位关闭且所有EPROM编程被禁止当保密位1和2同时被编程时除了 当编程了所有三个保密位时 密码阵列 表9 为EPROM器件编程保密位 编程锁位 12 64字节密码阵列初始化时没有被编程 SB1 SB2 SB3 1 U U U 没有保密特性使能 保护描述 MOVC指令(访问外部程序存贮器时)被禁止从内部存贮器取代码 2 P U U 字节,EA被采样并由复位关闭,EPROM程序被禁止 3 P P U 同2,再加上校验方式被禁止 4 P P P 同3,再加上外部程序存贮器被禁止 注: 1 P 图39 编程配置 44 4–6MHz XTAL1VSSA0–A7111P1RSTP3.6P3.7OTPXTAL2EA/VPPALE/PROGPSENP2.7P2.6P2.0–P2.5+12.75V 5 PULSESTO GROUND010A8–A12 VCCP0PGM DATA 已编程 U未编程 +5V 2 其它的保密位的组合未定义 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com EPROM 编程和校验特性 Tamb=21 SYMBOL VPPIPP1/tCLCLtAVGLtGHAXtDVGLtGHDXtEHSHtSHGLtGHSLtGLGHtAVQVtELQZtEHQZtGHGLProgrammingsupplyvoltageProgrammingsupplycurrentOscillatorfrequencyAddress setup to PROG lowAddress hold after PROGData setup to PROG lowData hold after PROGP2.7(ENABLE) high toVPPVPP setup to PROG lowVPP hold after PROGPROGwidthAddresstodatavalidENABLE low to data validDatafloatafterENABLEPROG high to PROG low010448tCLCL48tCLCL48tCLCL48tCLCL48tCLCL10109011048tCLCL48tCLCL48tCLCLµsµsµsµs4–6MHz XTAL1VSSXTAL2A0–A7111P1RSTP3.6P3.7OTPVCCP0EA/VPPALE/PROGPSENP2.7P2.6P2.0–P2.5PGM DATA110 0 ENABLE0A8–A12 ALE/PROG:10 NtGHGL = 10µs MI tGLGH = 100µs±10µs1 ALE/PROG:10123455PULSESSEEEXPLODEDVIEWBELOW图40 PROG波形 +5V 图41 编程校验 27,Vcc=5V10%,Vss=0V参见图42 MIN12.5MAX13.05061PARAMETERUNITVmAMHz 45 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com P1.0–P1.7P2.0–P2.5 P3.4(A0– A12) PROGRAMMING*ADDRESSVERIFICATIONADDRESS* tAVQVDATA INDATA OUTPORT0 P0.0– P0.7(D0– D7) tDVGLtAVGLtGHDXtGHAXALE/PROGtGLGHtSHGLtGHGLtGHSLLOGIC1EA/VPP LOGIC0LOGIC1tEHSHP2.7 ** tELQVtEHQZ注 参见图39 参见图41 图42 EPROM编程和校验 * 对于编程配置 对于校验条件 ** 参见表8 46 因篇幅问题不能全部显示,请点此查看更多更全内容