首页 单片机89c51

单片机89c51

举报
开通vip

单片机89c51 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 1 概述 该系列单片机是采用高性能的静态 80C51 设计 由先进 CMOS 工艺制造并带有非易失性 Flash 程序存 储器 全部支持 12 时钟和 6 时钟操作 P89C51X2 和 P89C52X2/54X2/58X2 分别包含 128 字节和 256 字节 RAM 32 条 I/O 口线 3 个 16 位 定时/计数器 6 输...

单片机89c51
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 1 概述 该系列单片机是采用高性能的静态 80C51 设计 由先进 CMOS 工艺制造并带有非易失性 Flash 程序存 储器 全部支持 12 时钟和 6 时钟操作 P89C51X2 和 P89C52X2/54X2/58X2 分别包含 128 字节和 256 字节 RAM 32 条 I/O 口线 3 个 16 位 定时/计数器 6 输入 4 优先级嵌套中断结构 1 个串行 I/O 口 可用于多机通信 I/O 扩展或全双工 UART 以及片内振荡器和时钟电路 此外 由于器件采用了静态设计 可提供很宽的操作频率范围 频率可降至 0 可实现两个由软件选 择的节电模式 空闲模式和掉电模式 空闲模式冻结 CPU 但 RAM 定时器 串口和中断系统仍然工作 掉电模式保存 RAM 的内容 但是冻结振荡器 导致所有其它的片内功能停止工作 由于设计是静态的 时钟可停止而不会丢失用户数据 运行可从时钟停止处恢复 选型表 特性 特性 y� 80C51 核心处理单元 4k 字节 FLASH 89C51X2 8k 字节 FLASH 89C52X2 16k 字节 FLASH 89C54X2 32k 字节 FLASH 89C58X2 128 字节 RAM 89C51X2 256 字节 RAM 89C52X2/54X2/58X2 布尔处理器 全静态操作 y� 12 时钟操作 可选 6 个时钟 通过软件或并行编程器 y� 存储器寻址范围 64K 字节 ROM 和 64K 字节 RAM y� 电源控制模式 ―时钟可停止和恢复 ―空闲模式 ―掉电模式 y� 两个工作频率范围 6 时钟模式时为 0 到 20MHz 12 时钟模式时为 0 到 33MHz y� LQFP, PLCC 或 DIP 封装 y� 扩展温度范围 y� 双数据指针 y� 3 个加密位 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 2 y� 4 个中断优先级 y� 6 个中断源 y� 4 个 8 位 I/O 口 y� 全双工增强型 UART ―帧数据错误检测 ―自动地址识别 y� 3 个 16 位定时/计数器 T0 T1 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 80C51 和增加的 T2 捕获和比较 y� 可编程时钟输出 y� 异步端口复位 y� 低 EMI (禁止 ALE 以及 6 时钟模式) y� 掉电模式可通过外部中断唤醒 订购信息 P89C51X2 4K 字节 FLASH 类型编号 封装 温度范围( ) P89C51X2BA PLCC44 0~+70 P89C51X2BN DIP40 0~+70 P89C51X2BBD LQFP44 0~+70 P89C51X2FA PLCC44 -40~+85 P89C52X2 8K 字节 FLASH 类型编号 封装 温度范围( ) P89C52X2BA PLCC44 0~+70 P89C52X2BN DIP40 0~+70 P89C52X2BBD LQFP44 0~+70 P89C52X2FA PLCC44 -40~+85 P89C52X2FN DIP40 -40~+85 P89C52X2FBD LQFP44 -40~+85 P89C54X2 16K 字节 FLASH 类型编号 封装 温度范围( ) P89C54X2BA PLCC44 0~+70 P89C54X2BN DIP40 0~+70 P89C54X2BBD LQFP44 0~+70 P89C54X2FA PLCC44 -40~+85 P89C58X2 32K 字节 FLASH 类型编号 封装 温度范围( ) P89C58X2BA PLCC44 0~+70 P89C58X2BN DIP40 0~+70 P89C58X2BBD LQFP44 0~+70 P89C58X2FA PLCC44 -40~+85 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 3 产品编号含义 存储器 温度范围(B) 封装 P89C51X2 9=FLASH 1=128 字节 RAM X2=可选 6 时钟 4K 字节 FLASH 2=256 字节 RAM 8K 字节 FLASH 4=256 字节 RAM 16K 字节 FLASH 8=256 字节 RAM 32K 字节 FLASH B=0 70 F= 40 +85 A=PLCC N=DIP BD=LQFP 下表所示为操作模式 电源电压以及最大外部时钟频率之间的关系 操作模式 电源电压 最大时钟频率 6-clock 5V 10% 20MHz 12-clock 5V 10% 33MHz 框图 1 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 4 框图 2(CPU) 逻辑符号 PLCC 和 CLCC 封装及管脚功能 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 5 DIP 封装及管脚功能 LQFP 封装及管脚功能 管脚描述 管脚号 名称 DIP LCC QFP 类型 名称和功能 Vss 20 22 16 I 地 Vcc 40 44 38 I 电源 提供掉电 空闲 正常工作电压 P0.0-0.7 39-32 43-36 37-30 I/O P0 口 P0 口是开漏双向口 可以写为 1 使其状态为悬浮 用作高阻输入 P0 也可以在访问外部程序存储器时作地 址的低字节 在访问外部数据存储器时作数据总线 此时 通过内部强上拉输出 1 P1.0-1.7 1-8 1 2 2-9 2 3 40-44 1-3 I/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 特殊功能寄存 器的内容 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 6 P3.0-3.7 10-17 10 11 12 13 14 15 16 17 11, 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 口 向 P3 口写入 1 时 P3 口被内部上拉为高电平 可用作输入口 当作为 输入脚时 被外部拉低的 P3 口会因为内部上拉而输出电 流(见 DC 电气特性) P3 口还具有以下特殊功能 RxD(p3.0) 串行输入口 TxD(P3.1) 串行输出口 INT0(P3.2) 外部中断 0 INT1(P3.3) 外部中断 T0(P3.4) 定时器 0 外部输入 T1(P3.5) 定时器 1 外部输入 WR(P3.6) 外部数据存储器写信号 RD(P3.7) 外部数据存储器读信号 RST 9 10 4 I 复位 当晶振在运行中 只要复位管脚出现 2 个机器周 期高电平即可复位 内部有扩散电阻连接到 Vss 仅需要 外接一个电容到 Vcc 即可实现上电复位 ALE 30 33 27 O 地址锁存使能 在访问外部存储器时 输出脉冲锁存地 址的低字节 在正常情况下 ALE 输出信号恒定为 1/6 振 荡频率 并可用作外部时钟或定时 注意每次访问外部数 据时一个 ALE 脉冲将被忽略 ALE 可以通过置位 SFR 的 auxlilary.0 禁止 置位后 ALE 只能在执行 MOVX 指令时 被激活 PSEN 29 32 27 O 程序存储使能 当执行外部程序存储器代码时 PSEN 每 个机器周期被激活两次 在访问外部数据存储器时 PSEN 无效 访问内部程序存储器时 PSEN 无效 EA/Vpp 31 35 29 I 外部寻址使能/编程电压 在访问整个外部程序存储器时 EA 必须外部置低 如果 EA 为高时 将执行内部程序 除非程序计数器包含大于片内 FLASH 的地址 该引脚在 对 FLASH 编程时接 5V/12V 编程电压(Vpp) 如果保密位 1 已编程 EA 在复位时由内部锁存 XTAL1 19 21 15 I 晶体 1 反相振荡放大器输入和内部时钟发生电路输入 XTAL2 18 20 14 O 晶体 2 反相振荡放大器输出 注: 为了避免上电时的”latch-up”效应 任意管脚 Vpp 除外 上的电压任何时候都不能高于 Vcc+0.5V 低 于 Vss-0.5V 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 7 表 1 P89C51X2/52X2/54X2/58X2 特殊功能寄存器 名称 定义 地址 位功能和位地址 复位值 ACC* 累加器 E0H E7 E6 E5 E4 E3 E2 E1 E0 00H AUXR# 辅助功能寄存器 8EH AO xxxxxxx0B1 AUXR1# 辅助功能寄存器 1 A2H GF2 0 DPS 02H1 B* B 寄存器 F0H F7 F6 F5 F4 F3 F2 F1 F0 00H CKCON 时钟控制寄存器 8FH X2 xxx00000B DPTR: 数据指针 双字节 DPH 指针高字节 83H 00H DPL 指针低字节 82H 00H AF AE AD AC AB AA A9 A8 IE* 中断使能 A8H EA ET2 ES ET1 EX1 ET0 EX0 0x000000B BF BE BD BC BBB BA B9 B8 IP* 中断优先级 B8H PT2H PSH PT1H PX1H PT0H PX0H xx000000B IPH# 中断优先级高字节 B7H PT2H PSH PT1H PX1H PT0H PX0H xx000000B 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 P1* P1 口 90H T2EX T2 FFH A7 A6 A5 A4 A3 A2 A1 A0 P2* P2 口 A0H AD15 AD14 AD13 AD12 AD11 AD10 AD9 AD8 FFH B7 B6 B5 B4 B3 B2 B1 B0 P3* P3 口 B0H RD WR T1 T0 INT1 INT0 TxD RxD FFH PCON#1 电源控制寄存器 87H SMOD1 SMOD0 POF2 GF1 GF0 PD IDL 00xxx000B D7 D6 D5 D4 D3 D2 D1 D0 PSW* 程序状态字 D0H CY AC F0 RS1 RS0 OV P 000000x0B RACAP2H# 定时器 2捕获高字节 CBH 00H RACAP2L# 定时器 2捕获低字节 CAH 00H SADDR# 从地址 A9H 00H SADEN# 从地址屏蔽 B9H 00H SBUF 串口数据缓冲区 99H xxxxxxxxB 9F 9E 9D 9C 9B 9A 99 98 SCON* 串行口控制 98H SM0/FE SM1 SM2 REN TB8 RB8 TI RI 00H SP 堆栈指针 81H 07H 8F 8E 8D 8C 8B 8A 89 88 TCON* 定时器控制 88H TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 00H CF CE CD CC CB CA C9 C8 T2CON* 定时器 2 控制 C8H TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RL2 00H T2MOD# 定时器 2 模式控制 C9H T2OE DCEN xxxxxx00B TH0 定时器 0 高字节 8CH 00H TH1 定时器 1 高字节 8DH 00H TH2# 定时器 2 高字节 CDH 00H 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 8 TL0 定时器 0 低字节 8AH 00H TL1 定时器 1 低字节 8BH 00H TL2# 定时器 2 低字节 CCH 00H TMOD 定时器模式 89H GATE C/T M1 M0 GATE C/T M1 M0 00H 注 带 * 号的 SFR 可位寻址 带 # 号的 SFR 表示从 80C51 的 SFR 修改而来或新增加的 表示保留位 1 复位值由复位源确定 FLASH EPROM 存储器 概述 P89C51X2/52X2/54X2/58X2 在 10000 次擦除和编程之后仍能可靠保存 FLASH 存储器的内容 存储单 元的设计使得擦除和编程结构最优化 此外 先进的沟道氧化工艺和低内部电场的结合使擦除和编程操作 更加可靠 特性 y� 带片擦除的 FLASH EPROM 内部程序存储器 y� 内部程序存储器禁止时 EA=0 外部程序存储器最多可达 64K 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/2 Flash 时钟控制位 FX2 可通过并行编程器编程取代 X2 位实现 6 时钟模式 见表 2 表 2 FX2 时钟模式位 只能 通过并行编程器设置 X2 位 CKCON.0 CPU 时钟模式 擦除 0 12 时钟模式 默认 擦除 1 6 时钟模式 编程 X 6 时钟模式 可编程时钟输出 可从 P1.0 编程输出 50%占空比的时钟信号 P1.0 除了作为常规 I/O 口外 还有两个可选功能 它可编 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 9 程为 1 用于定时/计数器 2 的外部时钟输入 2 使用 16MHz 操作频率时 12 时钟模式下输出 50%占空比的 61Hz~4MHz 时钟信号 6 时钟模式 时为 122Hz~8MHz 要将定时/计数器 2 配置为时钟发生器 C/T2(T2CON.1)必须清零 而 T2MOD 中的 T20E 位必须置位 要启动定时器 2 还必须将 TR2(T2CON.2)置位 时钟输出频率由振荡器频率和定时器 2 捕获寄存器的重新装入值确定 公式如下 振荡器频率 n 65536 RCAP2H,RCAP2L 此处 n = 16 6 时钟模式 或 32 12 时钟模式 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 从掉电唤醒 使能或禁止通过外部中断 唤醒掉电 WUPD 0 禁止 WUPD=1 使能 要正确退出掉电模式 在 Vcc 恢复到正常操作电压范围之后 复位或外部中断开始执行并且要保持足 够长的时间 ( 通常小于 10ms )以使振荡器重新启动并稳定下来 使用外部中断退出掉电模式时 INT0 和 INT1 必须使能且配置为电平触发 将管脚电平拉低使振荡器 重新启动 退出掉电模式后将管脚恢复为高电平 一旦中断被响应 RETI 之后所执行的是进入掉电模式指 令的后一条指令 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 10 表 3 空闲模式和掉电模式时外部管脚的状态 模式 程序存储器 ALE PSEN 口 0 口 1 口 2 口 3 空闲 内部 1 1 数据 数据 数据 数据 空闲 外部 1 1 悬浮 数据 地址 数据 掉电 内部 0 0 数据 数据 数据 数据 掉电 外部 0 0 悬浮 数据 数据 数据 设计中的注意事项 当空闲模式被硬件复位所中止时 器件在内部复位之前从停止处恢复程序正常运行 时间为 2 个机器 周期 这段时间内片内硬件禁止对内部 RAM 的访问 但对 I/O 口的访问未被禁止 当 Idle 模式被复位所中 止时 为了消除可能产生的误写操作 应用 Idle 模式指令后的指令不应执行写 I/O 口或写外部存储器操作 ONCE TM模式 ONCE(在线仿真)模式实现了对系统的测试和调试而不需要将器件从电路中移去 进入 ONCE 模式的条 件 1 当器件复位且 PSEN 为高电平时 将 ALE 置低电平 2 在 RST 撤除时 ALE 保持低电平 当器件处于 ONCE 模式时 P0 口处于悬浮状态 其它 I/O 口 ALE 和 PSEN 为弱上拉 振荡电路保 持工作状态 器件处于该模式时 可用仿真器或测试 CPU 驱动电路 执行正常复位时恢复正常操作 定时器 0和 1的操作 定时器 0 和 1 定时和计数功能由特殊功能寄存器 TMOD 的控制位 C/T 进行选择 这两个定时/计数器有 4 种操作模 式 通过 TMOD 的 M1 和 M0 选择 两个定时/计数器的模式 0 1 和 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 相同 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 11 此模式下定时器 0 的 TL0 及 TH0 作为两个独立的 8 位计数器 图 5 为模式 3 时的定时器 0 逻辑 TL0 占用定时器 0 的控制位 C/T GATE TR0 INT0 及 TF0 TH0 限定为定时器功能 计数器周期 占用 定时器 1 的 TR1 及 TF1 此时 TH0 控制 定时器 1 中断 模式 3 可用于需要一个额外的 8 位定时器的场合 定时器 0 工作于模式 3 时 80C51 看似有 3 个定时 器/计数器 当定时器 0 工作于模式 3 时 定时器 1 可通过开关进入/退出模式 3,它仍可用作串行端口的波特 率发生器 或者应用于任何不要求中断的场合 TMOD 地址 89H 复位值 00H 7 6 5 4 3 2 1 0 不可位寻址 GATE C/T M1 M0 GATE C/T M1 M0 定时器 1 定时器 0 位 符号 功能 TMOD.3/ TMOD.7 GATE 用于定时器 1 置位时只有在 INT1 脚置高及 TR1 控制置位时才可打开定时 器/计数器 清零时 置位 TR1 即可打开定时器/计数器 TMOD.2/ TMOD.6 C/T 控制定时器 1 用作定时器或计数器 清零则用作定时器 从内部系统时钟输 入 置位用作计数器 从 Tn 脚输入 M1 M0 定时器模式选择 M1 M0 定时器模式 0 0 8048 定时器 TLn 用作 5 位预分频器 0 1 16 位定时器/计数器 无预分频器 1 0 8 位自装载定时器 当溢出时将 THn 存放的值装入 TLn 1 1 定时器 0 此时作为双 8 位定时/计数器 TL0 作为一个 8 位定时器/计数器 通过标准定时器 0 控制位控制 TH0 仅作为一个 8 位定时器 由定时器 1 控制位控制 在这种模式下定时/计数器 1 关闭 图 1 定时/计数器 0/1 模式控制寄存器 TMOD 图 2 定时/计数器 0/1 的模式 0 13 位定时/计数器 INTn Pin Timer n Gate bit TRn TLn (5 Bits) THn (8 Bits) TFn Interrupt Control C/T = 0 C/T = 1 OSC ÷ 12 X2 =0 X2 =1 TnPin ÷ 6 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 12 TCON 地址 88H 7 6 5 4 3 2 1 0 可位寻址 复位值 00H TF1 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 的模式 2 8 位自动重装 TLn (8 Bits) TFn Interrupt Control C/T = 0 C/T = 1 THn (8 Bits) Reload INTn Pin Timer n Gate bit TRn OSC ÷ 12 X2 =0 X2 =1 TnPin ÷ 6 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 13 图 5 定时/计数器 0 的模式 3 双 8 位计数器 定时器 2的操作 定时器 2 定时器 2 是一个 16 位定时/计数器 通过设置特殊功能寄存器 T2CON 中的 C/T2 位 可将其作为定时 器或计数器 见图 6 定时器 2 有三种操作模式 捕获 自动重新装载 递增或递减计数 和波特率发生 器 这三种模式由 T2CON 中的位进行选择 见表 3 捕获模式 在捕获模式中 通过 T2CON 中的 EXEN2 设置两个选项 如果 EXEN2 0 定时器 2 作为一个 16 位 定时器或计数器 由 T2CON 中 C/T2 位选择 溢出时置位 TF2 定时器 2 溢出标志位 该位可用于产生 中断 通过使能 IE 寄存器中的定时器 2 中断使能位 如果 EXEN2 1 与以上描述相同 但增加了一个 特性 即外部输入 T2EX 由 1 变 0 时将定时器 2 中 TL2 和 TH2 的当前值各自捕获到 RCAP2L 和 RCAP2H 另外 T2EX 的负跳变使 T2CON 中的 EXF2 置位 EXF2 也象 TF2 一样能够产生中断 其向量与定时器 2 溢出中断地址相同 定时器 2 中断服务程序通过查询 TF2 和 EXF2 来确定引起中断的事件 捕获模式如图 2 所示 在该模式中 TL2 和 TH2 无重新装载值 甚至当 T2EX 产生捕获事件时 计数器仍以 T2EX 的负 跳变或振荡频率的 1/12 12 时钟模式 或 1/6 6 时钟模式 计数 自动重装模式 递增/递减计数器 16 位自动重装模式中 定时器 2 可通过 C/T2 配置为定时器/计数器 编程控制递增/递减计数 计数 的方向是由 DCEN 递减计数使能位 确定的 DCEN 位于 T2MOD 寄存器 见图 8 中 当 DCEN 0 时 定时器 2 默认为向上计数 当 DCEN 1 时 定时器 2 可通过 T2EX 确定递增或递减计数 图 9 显示了当 DCEN 0 时 定时器 2 自动递增计数 在该模式中通过设置 EXEN2 位进行选择 如 果 EXEN2 0 定时器 2 递增计数到 0FFFFH 并在溢出后将 TF2 置位 然后将 RCAP2L 和 RCAP2H 中的 16 位值作为重新装载值装入定时器 2 RCAP2L 和 RCAP2H 的值是通过软件预设的 如果 EXEN2 1 16 位重新装载可通过溢出或 T2EX 从 1 0 的负跳变实现 此负跳变同时将 EXF2 置位 如果定时器 2 中断被使能 则当 TF2 或 EXF2 置 1 时产生中断 在图 10 中 DCEN 1 时 定时器 2 可递增或递减计数 此模式允许 T2EX 控制计数的方向 当 T2EX 置 1 时 定时器 2 递增计数 计数到 0FFFFH 后溢出并置位 TF2 还将产生中断 如果中断被使能 定时 TL0 (8 Bits) TF0 Interrupt Control TH0 (8 Bits) TF1 Interrupt Control TR1 INT0 Pin Timer 0 Gate bit TR0 OSC ÷ 12 X2 =0 X2 =1 T0Pin ÷ 6 OSC ÷ 12 X2 =0 X2 =1 ÷ 6 C/T = 0 C/T = 1 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 14 器 2 的溢出将使 RCAP2L 和 RCAP2H 中的 16 位值作为重新装载值放入 TL2 和 TH2 当 T2EX 置零时 将使定时器 2 递减计数 当 TL2 和 TH2 计数到等于 RCAP2L 和 RCAP2H 时 定时 器产生溢出 定时器 2 溢出置位 TF2 并将 0FFFFH 重新装入 TL2 和 TH2 当定时器 2 递增/递减产生溢出时 外部标志位 EXF2 翻转 如果需要 可将 EXF2 位作为第 17 位 在此模式中 EXF2 标志不会产生中断 表 4 定时器 2 工作方式 RCLK+TCLK CP/RL2 TR2 模式 0 0 1 16 位自动重装 0 1 1 16 位捕获 1 X 1 波特率发生器 X X 0 关闭 图 6 定时器/计数器 2 T2CON 控制寄存器 T2CON 地址=0C8H 可位寻址 复位值=00H 7 6 5 4 3 2 1 0 TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RL2 符号 位 名称和意义 TF2 T2CON.7 定时器 2 溢出标志 定时器 2 溢出时置位 必须由软件清除 当 RCLK 或 TCLK 1 时 TF2 将不会置位 EXF2 T2CON.6 定时器 2 外部标志 当 EXEN2 1 且 T2EX 的负跳变产生捕获或重装时 EXF2 置位 定时器 2 中断使能时 EXF2 1 将使 CPU 从中断向量处执行 定时器 2 中断子程序 EXF2 位必须用软件清零 在递增/递减计数器模 式 DCEN 1 中 EXF2 不会引起中断 RCLK T2CON.5 接收时钟标志 RCLK 置位时 定时器 2 的溢出脉冲作为串行口模式 1 和 模式 3 的接收时钟 RCLK 0 时 将定时器 1 的溢出脉冲作为接收时钟 TCLK T2CON.4 发送时钟标志 TCLK 置位时 定时器 2 的溢出脉冲作为串行口模式 1 和 模式 3 的发送时钟 TCLK 0 时 将定时器 1 的溢出脉冲作为发送时钟 EXEN2 T2CON.3 定时器 2 外部使能标志 当其置位且定时器 2 未作为串行口时钟时 允 许 T2EX 的负跳变产生捕获或重装 EXEN2 0 时 T2EX 的跳变对定时 器 2 无效 TR2 T2CON.2 定时器 2 启动/停止控制位 置 1 时启动定时器 C/T2 T2CON.1 定时器/计数器选择 定时器 2 0 内部定时器 OSC/12 或 OSC/6 1 外部事件计数器 下降沿触发 CP/RL2 T2CON.0 捕获/重装标志 置位 EXEN2 1 时 T2EX 的负跳变产生捕获 清零 EXEN2 1 时定时器 2 溢出或 T2EX 的负跳变都可使定时器自动重装 当 RCLK 1 或 TCLK 1 时 该位无效且定时器强制为溢出时自动重装 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 15 图 7 定时器 2 捕获模式 T2MOD 地址=0C9H 复位值=XXXX XX00B 不可位寻址 7 6 5 4 3 2 1 0 T2OE DCEN 符号 功能 不可用 保留将来之用 * T2OE 定时器 2 输出使能位 DCEN 向下计数使能位 定时器 2 可配置成向上/向下计数器 * 用户勿将其置 1 这些位在将来 8051 系列产品中用来实现新的特性 这种情况下 以后用到 保留位 复位时或非有效状态时 它的值应为 0 而这些位为有效状态时 它的值为 1 从保留 位读到的值是不确定的 图 8 定时器 2 模式 T2MOD 控制寄存器 图 9 定时器 2 自动重装模式 DCEN=0 TR2 Control TL2 (8-bits) TH2 (8-bits) TF2 RCAP2L RCAP2H EXEN2 Control EXF2 Timer 2 Interrupt T2EXPin Transition Detector Capture C/T2 =0 C/T2 =1 OSC ÷ 12 X2 =0 X2 =1 T2Pin ÷ 6 TR2 CONTROL TL2 (8-BITS) TH2 (8-BITS) TF2 RCAP2L RCAP2H EXEN2 CONTROL EXF2 TIMER2 INTERRUPT T2EXPIN TRANSITION DETECTOR RELOAD C/T2 =0 C/T2 =1 OSC ÷ 12 X2 =0 X2 =1 T2Pin ÷ 6 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 16 图 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 的波特率= TL2 TH2 TR2 CONTROL FFH FFH RCAP2L RCAP2H (UP COUNTING RELOADVALUE) T2EXPIN TF2 INTERRUPT COUNT DIRECTION 1 = UP 0 = DOWN EXF2 OVERFLOW (DOWN COUNTING RELOAD VALUE) TOGGLE C/T2 = 0 C/T2 = 1 OSC ÷ 12 X2 =0 X2 =1 T2Pin ÷ 6 OSC ÷ 2 C/T2 =0 C/T2 =1 TR2 Control TL2 (8-bits) TH2 (8-bits) ÷ 16 RCAP2L RCAP2H EXEN2 Control EXF2 Timer2 Interrupt T2EXPin Transition Detector T2Pin Reload NOTE: OSC. Freq. is divided by 2, not 12 or 6. ÷ 2 “0” “1” RXClock ÷ 16 TXClock “0”“1” “0”“1” Timer 1 Overflow Note availability of additional external interrupt. SMOD RCLK TCLK 广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 17 振荡器频率 [n [65536 (RCAP2H,RCAP2L)]] 此处 n = 16 6 时钟模式 或 32 12 时钟模式 RCAP2H,RCAP2L)=RCAP2H 和 RCAP2L 的内容 为 16 位无符号整数 如图 11 所示 定时器 2 作为波特率发生器 仅当寄存器 T2CON 中的 RCLK 和 或 TCLK=1 时 定 时器 2 作为波特率发生器才有效 注意 TH2 溢出并不置位 TF2 也不产生中断 这样 当定时器 2 作为波 特率发生器时 定时器 2 中断不必被禁止 如果 EXEN2 T2 外部使能标志 被置位 在 T2EX 中 由 1 到 0 的转换会置位 EXF2 T2 外部标志位 但并不导致 TH2 TL2 重装载 RCAP2H RCAP2L 因 此 当定时器 2 用作波特率发生器时 如果需要 T2EX 可用作附加的外部中断 当计时器工作在波特率发生器模式下,则不要对 TH2和 TL2 进行读写 每隔一个状态时间 0sc/2 或 由 T2 进入的异步信号 定时器 2 将加 1 在此情况下对 TH2 和 TH1 进行读写是不准确的 可对 RCAP2 寄存 器进行读 但不要进行写 否则将导致自动重装错误 当对定时器 2 或寄存器 RCAP 进行访问时 应关闭定 时器 清零 TR2 表 5 列出了常用的波特率和如何用定时器 2 得到这些波特率 表 5 由定时器 2 产生的常用波特率 波特率 定时器 2 12 时钟模式 6 时钟模式 振荡器频率 RCAP2H RCAP2L 375K 9.6K 2.8K 2.4K 1.2K 300 110 300 110 750K 19.2K 9.6K 4.8K 2.4K 600 220 600 220 12MHz 12MHz 12MHz 12MHz 12MHz 12MHz 12MHz 6MHz 6MHz FF FF FF FF FE FB F2 FD F9 FF D9 B2 64 C8 1E AF 8F 57 波特率公式汇总 定时器 2 工作在波特率发生器模式 外部时钟信号由 T2 脚进入 波特率为 定时器 2 溢出率 16 如果定时器 2 采用内部时钟信号,则波特率为 fosc [n [65536 (RCAP2H,RCAP2L)]] 此处 n = 16 6 时钟模式 或 32 12 时钟模式 fOSC = 振荡器频率 自动重装值可由下式得到 RCAP2H,RCAP2L=65536-[fosc/(n 波特率)] 定时器/计数器 2 的设置 除了波特率发生器模式 T2CON 不包括 TR2 位的设置 TR2 位需单独设置来启动定时器 表 6 表 7 给出了 T2 作为定时器和计数器的设置 模式 1 和模式 3 的波特率= 波特率= 波特率= 广州周立功单片机发
本文档为【单片机89c51】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_408775
暂无简介~
格式:pdf
大小:1004KB
软件:PDF阅读器
页数:41
分类:工学
上传时间:2010-12-25
浏览量:23