1、湖北理工学院 毕业设计外文翻译 - 1 - AT89S51 概述 1 一般概述 该 AT89S51 是一个低功耗,高性能 CMOS 8 位微控制器 ,可在 4K 字节的系统内编程的闪存存储器。该设备是采用 Atmel的高密度、非易失性存储器技术和符合工业标准的 80C51指令集和引脚。芯片上的 Flash 程序存储器在系统中可重新编程或常规非易失性内存编程 。通过结合通用 8 位中央处理器的系统内可编程闪存的单芯片, AT89S51 是一个功能强大的微控制器提供了高度灵活的和具有成本效益的解决办法,可在许多嵌入式控制中应用。 在 AT89S51提供以下标准功能: 4K字节的 Flash闪存 ,
2、 128字节的 RAM , 32个 I / O线,看门狗定时器,两个数据指针,两个 16 位定时器 /计数器, 5向量两级中断结构,全双工串行端口,片上振荡器和时钟电路。此外, AT89S51设计了可降至零频率的静态逻辑操作和支持两种软件可选的节电工作模式。 在空闲模式下停止 CPU 的工作,但允许 RAM 、定时器 /计数器、串行接口和中断系统继续运行。掉电模式保存 RAM中的内容,停止振荡器工作并禁止其它所有部件工作,直到下一个外部中断或硬件复位。 2 端口 P0端口是一个 8位漏极开路双向 I / O端口。 作为一个输出端口,每个引脚可驱动 8个 TTL 输入。对端口写“ 1”可作为高阻
3、抗输入端用。在访问外部程序和数据存储器时,P0 端口也可以配置为复低阶地址 /数据总线。在访问期间激活内部上拉电阻。在 Flash 编程时, PO端口接收指令字节,而在程序校验时,输出指令字节,同时要求外接上拉电阻。 P1端口是一个带内部上拉电阻的 8位双向 I /O端口。 P1端口的输出缓冲级可以驱动四个 TTL输入。对端口写“ 1”,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口。作为输入口时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输 出一个电流( IIL), Flash编程和程序校验期间, P1接收低 8位地址。 端口引脚 第二功能 P1.5 MOSI(用于 ISP编程
4、) P1.6 MISO(用于 ISP编程) P1.7 SCK(用于 ISP编程 ) P2端口是一个带有内部上拉电阻的 8位双向 I/O端口。 P2端口的输出缓冲级可驱动(吸收或输出电流) 4 个 TTL 输入。对端口写“ 1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。当作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流( IIL)。在 访问外部程序存储器或 16位地址的外部数据存储器(例如执行 MOVX DPTR 指令 )时, P2 端口送出高 8 位地址数据。 在访问 8 位地址的外部湖北理工学院 毕业设计外文翻译 - 2 - 数据存储器(例如执行 MO
5、VXRi 指令)时, P2 端口上的内容(即特殊功能寄存器( SFR)区中 P2寄存器的内容),在整个访问期间不变。 Flash编程或校验时, P2 也可接收高位地址和其它控制信号。 P3端口是一组带有内部上拉电阻的 8位双向 I/O端口。 P3端口输出缓冲级可驱动(吸收或输出电流) 4 个 TTL 逻辑门电路。对 P3 端口写入“ 1”时,他们被内部上拉电阻拉高并作为输入端口 。当作输入端时,被外部拉低的 P2端口将用上拉电阻输出电流( IIL)端口还接收一些用于 Flash闪存编程和程序校验的控制信号。 P3 端口可以采用 AT89S51的 各种特殊功能,如下表所示。 端口引脚 第二功能
6、P3.0 RXD(串行输入端口 ) P3.1 TXD(串行输出端口 ) P3.2 INT0(外部中断 0) P3.3 INT1(外部中断 1) P3.4 T0(定时 /计数器 0外部输入) P3.5 T1(定时 /计数器 1外部输入) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通) 3 存储器结构 MCS-51 单片机内核采用程序存储器和数据存储器空间分开的结构,均具有 64KB 外部程序和数据的寻址空间。 3.1 程序存储器 如果的 EA引脚接地( GND),全部程序都可以执行外部存储器。在 AT89S51 ,如果 EA连接到电源 +( VCC) ,程序首先执
7、行地址从 0000H 到 FFFH内部存储器,在执行地址从 1000H到 FFFFH的外部程序存储器。 3.2 数据存储器 AT89S51 具有 128 字节的内部 RAM 。 这 128 字节都可以通过直接 和间接寻址方式访问,堆栈操作可利用间接寻址方式进行,因此, 128字节都可以可作为堆栈空间。 4 看门狗定时器 ( WDT) 看门狗定时器( WDT)是为了解决 CPU 程序运行时可能进入混乱或死循环而设置,它由一个 14bit 计数器和看门狗定时器复位 SFR( WDTRST)构成。外部复位时,看门狗定时器( WDT)默认为关闭状态,要打开 WDT,用户必须按顺序将 01EH 和 0E
8、1H 写到 WDTRST 寄存器( SFR地址为 0A6H),当启动了 WDT,它会随警惕振荡器在每个机器周期计数,除了硬件复位或 WDT 溢出复位外没有其它方法关 闭 WDT,当 WDT 溢出,将使 RST 引脚输出高电平的复位脉冲。 4.1使用看门狗定时器( WDT) 湖北理工学院 毕业设计外文翻译 - 3 - 用户在打开 WDT 时,需要按次序将 01EH 和 0E1H 写到 WDTRST 寄存器 (SFR 的地址为0A6H),当 WDT 打开后,需要在一定的时候将 01EH 和 0E1H 写道 WDTRST 寄存器以避免 WDT计数溢出。 14 位 WDT 计数器达到 16383( 3
9、FFFH), WDT 将溢出并使用器件复位。 WDT 打开时,它会随着晶体振荡器在每个机器周期计数,这意味着用户必须在小于每个 16383机器周期内复位 WDT,也即写 01EH和 0E1H到 WDTRST 寄存器, WDTRST为只写寄存器。 WDT计数器既不可读也不可写,当 WDT溢出时,通常将使 RST引脚输出高电平的复位脉冲。复位脉冲持续时间为 98xTosc,而 Tosc=1/Fosc(晶体振荡频率 )。为使 WDT 工作最优化,必须在合适的程序代码时间段周期地复位 WDT防止 WDT 溢出。 4.2掉电和空闲模式下的 WDT 掉电时期,晶体振荡停止,看门狗定时器也停止。掉电模式下,
10、用户不嗯那个在复位看门狗定时器。有两种方法可以推出掉电模式:硬件复位或通过激活外部中断,当硬件复位退出掉电模式时,处理看门狗定时器可像通常的上 电复位一样。当由中断退出掉电模式时则有所不同,中断低电平状态持续到晶体振荡稳定,当中断电平变为高电平事即可相应中断服务。以防止中断误复位,当器件复位,中断引脚持续为低时,看门狗定时器并未开始计数,知道中断引脚被拉高时为止。这为在掉电模式下的中断执行中断服务程序而设置。为保证看门狗定时器在退出掉电模式时极端情况下不溢出,最好在进入掉电模式前复位看门狗定时器。在进入空闲模式前,看门狗定时器打开时, WDT是否继续计数由 SFR中的 AUXR的 WDIDLE
11、位决定,在 IDLE 期间(位 WDIDLE=0)默认状态是继续计数。 为防止 AT89S51从空闲模式中复位,用户应该周期性地设置定时器,重新进入空闲模式。 当 WDIDLE 位被置位,在空闲模式中看门狗定时器将停止计数,直到从空闲 (IDLE)模式中退出重新开始计数。 5 中断 AT89S51 共有五个中断向量:两个外部中断( INT0 和 INT1 ) ,两个定时器中断( Timer0和 Timer1)和一个串行中断。这些中断源各自的禁止和使能位参见特殊功能寄存器的 IE。 IE也包含总中断控制位 EA, EA清 0,将关闭所有中断。 6 振荡器特性 AT89S51 中有一个用于构成内部
12、振 荡器的高增益反相放大器,引脚 XTAL1 和 XTAL2 分别是该放大器的输入端和输出端。如图所示。外接石英晶体或陶瓷谐振器都可以使用于反馈元件。用户也可以采用外部时钟,在这种情况下,外部时钟接到 XTAL1 端,即内部时钟发生器的输入端, XTAL2 则悬空,如图 7-2 所示。由于外部时钟信号是通过一个 2 分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但是最小高电平持续时间和最大的低电平时序时间应符合产品技术条件的要求。 7 空闲模式 在空闲工作模式状态, CPU保持睡眠状态而所有片内的外设仍然保 持激活状态,这种方式由软件产生。此时,片内 RAM和所有特殊功能寄存器的内特那个保持不变,空闲模式可由任何语序中断的请求或硬件复位终止。 需要注意的是,当由硬件复位来终止空闲工作模式时, CPU 通常是从激活空闲模式那条指令的下一条指令开始继续执行程序的,要完成内部复位操作,硬件复位脉冲要保持两