《AT89S51单片机中文资料.pdf》由会员分享,可在线阅读,更多相关《AT89S51单片机中文资料.pdf(25页珍藏版)》请在金锄头文库上搜索。
1、 AT89S51 中文资料 1 AT89S51 是美国 ATMEL 公司生产的低功耗,高性能 CMOS8 位单片机,片内含 4k bytes 的可系统编程的 Flash 只读程序 存储器,器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 8051 指令系统及引脚。它集 Flash 程序存储器 既可在线编程 (ISP) 也可用传统方法进行编程及通用 8 位微处理器于单片芯片中, ATMEL 公司的功能强大, 低价位 AT89S51 单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。 主要性能参数:主要性能参数: 与 MCS- 51 产品指令系统完全兼容 4k 字
2、节在系统编程(ISP)Flash 闪速存储器 1000 次擦写周期 4.05.5V 的工作电压范围 全静态工作模式:0Hz33MHz 三级程序加密锁 1288 字节内部 RAM 32 个可编程 IO 口线 2 个 16 位定时计数器 6 个中断源 全双工串行 UART 通道 低功耗空闲和掉电模式 中断可从空闲模唤醒系统 看门狗(WDT)及双数据指针 掉电标识和快速编程特性 灵活的在系统编程(ISP 字节或页写模式) AT89S51 中文资料 2 功能特性概述:功能特性概述: AT89S51 提供以下标准功能:4k 字节 Flash 闪速存储器,128 字节内部 RAM,32 个 IO 口线,看
3、门狗(WDT) ,两 个数据指针,两个 16 位定时计数器,一个 5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同 时, AT89S51 可降至 0Hz 的静态逻辑操作, 并支持两种软件可选的节电工作模式。 空闲方式停止 CPU 的工作, 但允许 RAM, 定时计数器,串行通信口及中断系统继续工作。掉电方式保存 RAM 中的内容,但振荡器停止工作并禁止其它所有部件 工作直到下一个硬件复位。 AT89S51 方框图方框图 AT89S51 中文资料 4 端口引脚端口引脚 第二功能第二功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INT0 (外中
4、断 0) P3.3 INT1 (外中断 1) P3.4 T0(定时计数器 0 外部输入) P3.5 T1(定时计数器 1 外部输入) P3.6 WR (外部数据存储器写选通) P3.7 RD (外部数据存储器读选通) RST:复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将使单片机复位。WDT 溢出将使该引 脚输出高电平,设置 SFR AUXR 的 DISRT0 位(地址 8EH)可打开或关闭该功能。DISRT0 位缺省为 RESET 输出高电平 打开状态。 ALEPROG :当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低 8 位字 节。即
5、使不访问外部存储器,ALE 仍以时钟振荡频率的 16 输出固定的正脉冲信号,因此它可对外输出时钟或用于定时 目的。要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。 对 F1ash 存储器编程期间,该引脚还用于输入编程脉冲(PROG) 。 如有必要,可通过对特殊功能寄存器(SFR)区中的 8EH 单元的 D0 位置位,可禁止 ALE 操作。该位置位后,只有 一条 M0VX 和 M0VC 指令 ALE 才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ALE 无效。 PSEN :程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当 AT89S51 由外部程序
6、存储器取指令(或 数据)时,每个机器周期两次PSEN 有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的PSEN信号。 EAVPP: 外部访问允许。 欲使 CPU 仅访问外部程序存储器 (地址为 0000HFFFFH) , EA端必须保持低电平 (接 地) 。需注意的是:如果加密位 LB1 被编程,复位时内部会锁存 EA端状态。 如 EA端为高电平(接 Vcc 端) ,CPU 则执行内部程序存储器中的指令。 F1ash 存储器编程时,该引脚加上+12V 的编程电压 Vpp。 XTALl:振荡器反相放大器及内部时钟发生器的输入端。 XTAL2:振荡器反相放大器的输出端。 AT89S51
7、中文资料 5 特殊功能寄存器:特殊功能寄存器: 特殊功能寄存器的于片内的空间分布如表 1 所示。 这些地址并没有全部占用,没有占用的地址亦不可使用,读这些地址将得到一个随意的数值。而写这些地址单元将不 能得到预期的结果。 表 1 AT89S51 特殊功能寄存器分布图及复位值 不要软件访问这些未定义的单元,这些单元是留作以后产品扩展用途的,复位后这些新的位将为 0。 中断寄存器:中断寄存器: 各中断允许控制位于 IE 寄存器,5 个中断源的中断优先级控制位于 IP 寄存器。 6 表 2 AUXR 辅助寄存器 双时钟指针寄存器:双时钟指针寄存器: 为更方便地访问内部和外部数据存储器,提供了两个 1
8、6 位数据指针寄存器:DP0 位于 SFR(特殊功能寄存器)区块 中的地址 82H、83H 和 DP1 位于地址 84H、85H,当 SFR 中的位 DPS=0 选择 DP0,而 DPS=1 则选择 DP1。用户应在访问 相应的数据指针寄存器前初始化 DPS 位。 AT89S51 中文资料 7 电源空闲标志:电源空闲标志: 电源空闲标志(POF)在特殊功能寄存器 SFR 中 PCON 的第 4 位(PCON.4) ,电源打开时 POF 置“1,它可由软件 设置睡眠状态并不为复位所影响。 存储器结构:存储器结构: MCS- 51 单片机内核采用程序存储器和数据存储器空间分开的结构,均具有 64K
9、B 外部程序和数据的寻址空间。 程序存储器:程序存储器: 如果 EA引脚接地(GND) ,全部程序均执行外部存储器。 在 AT89S51,假如 EA 接至 Vcc(电源+) ,程序首先执行地址从 0000H0FFFH(4KB)内部程序存储器,再执行地 址为 1000HFFFFH(60KB)的外部程序存储器。 数据存储器:数据存储器: AT89S51 的具有 128 字节的内部 RAM,这 128 字节可利用直接或间接寻址方式访问,堆栈操作可利用间接寻址方式 进行,128 字节均可设置为堆栈区空间。 看门狗定时器(看门狗定时器(WDT) :) : WDT是为了解决CPU程序运行时可能进入混乱或死
10、循环而设置, 它由一个14bit计数器和看门狗复位SFR (WDTRST) 构成。外部复位时,WDT 默认为关闭状态,要打开 WDT,用户必须按顺序将 01EH 和 0E1H 写到 WDTRST 寄存器(SFR 地址为 0A6H) ,当启动了 WDT,它会随晶体振荡器在每个机器周期计数,除硬件复位或 WDT 溢出复位外没有其它方法 关闭 WDT,当 WDT 溢出,将使 RST 引脚输出高电平的复位脉冲。 使用看门狗(使用看门狗(WDT) :) : 打开 WDT 需按次序写 01EH 和 0E1H 到 WDTRST 寄存器(SFR 的地址为 0A6H) ,当 WDT 打开后,需在一定的时候 01
11、EH 和 0E1H 到 WDTRST 寄存器以避免 WDT 计数溢出。14 位 WDT 计数器计数达到 16383(3FFFH) ,WDT 将溢出并 使器件复位。WDT 打开时,它会随晶体振荡器在每个机器周期计数,这意味着用户必须在小于每个 16383 机器周期内复 位 WDT,也即写 01EH 和 0E1H 到 WDTRST 寄存器,WDTRST 为只写寄存器。WDT 计数器既不可读也不可写,当 WDT 溢出时,通常将使 RST 引脚输出高电平的复位脉冲。复位脉冲持续时间为 98Tosc,而 Tosc=1Fosc(晶体振荡频率) 。 为使 WDT 工作最优化,必须在合适的程序代码时间段周期地
12、复位 WDT 防止 WDT 溢出。 掉电和空闲状态时的掉电和空闲状态时的 WDT: 掉电时期,晶体振荡停止,WDT 也停止。掉电模式下,用户不能再复位 WDT。有两种方法可退出掉电模式:硬件复 位或通过激活外部中断。当硬件复位退出掉电模式时,处理 WDT 可象通常的上电复位一样。当由中断退出掉电模式则有 所不同,中断低电平状态持续到晶体振荡稳定,当中断电平变为高即响应中断服务。为防止中断误复位,当器件复位,中 断引脚持续为低时,WDT 并未开始计数,直到中断引脚被拉高为止。这为在掉电模式下的中断执行中断服务程序而设置。 为保证 WDT 在退出掉电模式时极端情况下不溢出,最好在进入掉电模式前复位
13、 WDT。 在进入空闲模式前,WDT 打开时,WDT 是否继续计数由 SFR 中的 AUXR 的 WDIDLE 位决定,在 IDLE 期间(位 WDIDLE=0) 默认状态是继续计数。 为防止 AT89S51 从空闲模式中复位, 用户应周期性地设置定时器, 重新进入空闲模式。 当位 WDIDLE 被置位,在空闲模式中 WDT 将停止计数,直到从空闲(IDLE)模式中退出重新开始计数。 AT89S51 中文资料 8 UART通用异步通信口:通用异步通信口: AT89S51 的 UART 操作与 AT89C51 一样,有关更详细的资料请参考 ATMEL 公司的网站() ,从主 页选择“Produc
14、ts”“8051- Architecture Flash Microcontroller”“Product Overview。 定时器定时器 0 和定时器和定时器 1: AT89S51 的定时器 0 和定时器 1 操作与 AT89C51 一样,有关更详细的资料请参考 ATMEL 公司的网站 () ,从主页选择“Products”“8051- Architecture Flash Microcontroller”“Product Overview” 。 中断:中断: AT89S51 共有 5 个中断向量:2 个外中断(INT0 和 INT1) ,2 个定时中断(Timer0 和 Timer1)和
15、一个串行中断。这些 中断如图 1: 这些中断源各自的禁止和使能位参见特殊功能寄存器的 IE。IE 也包含总中断控制位 EA,EA清 0,将关闭所有中断。 值得注意的是表 4 中的 IE.6 和 IE.5 没有定义,用户不要访问这些位,它是保留为以后的 AT89 产品作扩展用途。 定时器 0 和定时器 1 的中断标志 TF0 和 TF1,它是定时器溢出时的 S5P2 时序周期被置位,该标志保留至下个时序周 期。 表 4:中断控制寄存器 AT89S51 中文资料 9 图 1 中断源方框图 晶体振荡器特性:晶体振荡器特性: AT89S51 中有一个用于构成内部振荡器的高增益反相放大器,引脚 XTAL1 和 XTAL2 分别是该放大器的输入端和输 出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起