好文档 - 专业文书写作范文服务资料分享网站

基于AT89C51单片机的多功能电子万年历的设计

天下 分享 时间: 加入收藏 我要投稿 点赞

( WDT )和双数据指针 掉电标识和快速编程的特性 具有掉电状态下中断恢复功能 灵活的在系统编程( ISP 字节或页写模式)

因为 AT89C51 单片机片内有 4K 字节的在线编程 Flash 存储器,而且可以 擦写

1000 次,具有掉电模式,而且具有掉电状态下中断恢复功能,对设计开发 非常实用。所

以选用 AT89C51 单片机作为电子数字万年历芯片的控制单片机。

3. 软件无线电及其组成

根据上述所确定的系统方案构想,下面开始进行系统硬件电路的具体设计, 系统总体结构框图如下图所示。

3.1软件无线电的概念

3.1.1系统硬件框图

系统硬件框图如图3-1

图3-1系统硬件框图

Figure 3-1 block diagram of system hardware

3.1.2 AT89C51单片机结构

本系统采用的是ATMEL公司生产的AT89C51单片机,首先我们来熟悉一 下

AT89C51单片机的外部引脚与内部结构。

1 ?单片机的引脚功能:

AT89C51单片机共有40个引脚。 Vcc :电源电压+5V GND :接地

P0 口: P0 口是一组8位漏极开路型双向I/O 口,即地址/数据总线复用 口。

作为输出口时,每位能驱动 8个TTL逻辑门电路,对端口写“ 1 可以作为高阻抗输入端用

7 / 33

在访问外部数据存储器或程序存储器时, 这组口线分时转换地址 (低 8 位) 与数据总线服用,在访问期间激活内部上拉电阻。

Flash编程时,P0 口接收指令字节,但在程序校验时,输出指令字节,校验 时要求

外接上拉电阻。

P1 口: P1 口是一个带内部上拉电阻的八位双向I/O, P1的输出缓冲级可以 驱动

(吸收或输出电流) 4 个 TTL 逻辑门电路。对端口写“ 1”,通过内部的上 拉电阻把端口拉至高电平,这时可作输入口。作为输入口使用时,因为内部存 在上拉电阻,当某个引脚被外部信号拉低时会输出一个电流。

Flash 编程和程序校验时, P1 接收低 8 位地址。

P2 口: P2 口是一个带有内部上拉电阻的 8位双向I/O,P2的输出缓冲级可 以驱

动(吸收或输出电流) 4 个 TTL 逻辑门电路。对端口写“ 1”,通过内部的 上拉电阻把端口拉至高电平,此时可以作输入口。作为输入口使用时,因为内 部存在有上拉电阻,某个引脚被外部信号拉低时会输出一个电流。

在访问外部程序存储器或者 16 位地址的外部数据存储器(例如执行

MOVX@DPTR 指令)时, P2 口送出高 8 位地址数据。访问 8 位地址的外部数 据存

储器(MOVX @Ri指令)时,P2 口线上的内容(也即特殊功能寄存器(SFR) 区中P2寄存器的内容),在整个访问期间不会改变。

Flash编程和程序校验时,P2亦接收低高位地址和其他控制信号。

P3 口: P3 口是一组带有内部上拉电阻的 8位双向I/O,P3的输出缓冲级可 驱动

(吸收或输出电流)4个TTL逻辑门电路。对P3 口写入“ 1”时,它们被 内部的上拉电阻拉高并可以作为输入端口。

作为输入端时,被外部拉低的P3 口

将用上拉电阻输出电流。P3 口除了作为一般的I/O 口线外,它的第二功能作为 其更重要的用途,见表 3-1 所示:

P3 口同时还接收一些用于Flash闪速存储器编程和程序校验的控制信号。

表3-1 P3 口的第二功能图

Table 3-1 P3 port sec ond fun ctio n diagram 端口引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 第二功能 RXD (串行输入口) TXD (串行输出口) INT0 (外中断0) INT1 (外中断1) T0 (定时/计时器0外部输入) T1 (定时/计时器1外部输入) WR (外部数据存储器写选通) RD (外部数据存储器读选通) RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上的高 电平将使单

片机复位。WDT溢出将使引脚输出高电平,设置 SFR AUXR的 DISRT0 (地址8EH)可打开或关闭此功能。DISRT0位缺省为RESET输出高电 平打开状态。

ALE/PROG :当访问外部程序存储器或数据存储器时, ALE (地址锁存器

允许)输出脉冲用于锁存地址的低 8位字节。即使不访问外部存储器,ALE仍 然以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可以对外输出时钟或 用于定时目的。要注意的是:每当访问外部数据存储器时将会跳过一个 冲。

对Flash存储器编程期间,该引脚也用于输入编程脉冲(PROG)。

如有必要,可以通过多特殊功能寄存器(SFR)区中的8EH单元的DO位 置,可以禁止ALE操作。该位置后,只有一条 MOVX和MOVC指令ALE才 会被激活。另外,该引脚会被微弱拉高,单片机在执行外部程序时,应设置ALE 无效。

ALE脉

PSEN:程序存储允许(PSEN)输出是外部程序存储器的读选通信号,当 AT89C51通过外部程序存储器取指令(或数据)时,每个机器周期两次 PSEN 有效,即

输出两个脉冲。在访问外部数据存储器,没有两次有效的

PSEN信号。

EA/VPP :外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H —FFFFH),EA端必须保持低电平(接地)。需要注意的是:如加密位 LB1被 编程,复

位时内部会锁存EA端状态。

如EA端为高电平(接Vcc端),CPU则要执行内部程序存储器中的指令。

Flash 存储器编程时,该引脚加 +12V 的变成电压 Vpp. XTAL1 :振荡器反相放大器和内部时钟发生器的输入端。 XTAL2 :振荡器反相放大器的输出端。

9 / 33

2.AT89C51单片机与MCS-51完全兼容

看门狗( WDT ):WDT 是一种需要软件控制的复位方式。 WDT 是由 13 位 计数器和特殊功能寄存器中的看门狗定时器复位存储器

(WDTRST)构成。WDT

在默认情况下无法工作;为激活 WDT ,用户必须往 WDTRST 寄存器(地址: 0A6H)中依次写入01EH和0E1H。在WDT激活后,晶振工作,WDT在每个 机器周期都会增加。 WDT 计时周期依赖于外部时钟频率。除了复位(硬件复位 或 WDT 溢出复位),没有其他办法停止 WDT 工作。当 WDT 溢出,它将驱动 RSR引脚输出一个高电平。

在可编程串口( UART )在 AT89C51中,UART的操作与 AT89C51和

AT89C52 一样。 AT89C51 系列单片机的串行通信口可以工作于同步和异步通信 方式。

当工作于异步方式时,它具有全双工的操作功能,也就是说,它可以同 时进行数据的发送和接收。串行口内的接收器采用双缓冲结构,能够在接收到 的第一个字节从接收寄存器读走前就开始接收第二个字节(当然,如果第二个 字节接收完毕,但第一个字节仍然没有被读走,那将会丢掉一个字节) 。串行口 的发送和接收操作都通过特殊功能寄存器中的数据缓冲寄存器 SBUF 进行,但 在 SBUF 的内部,接收寄存器和发送寄存器在物理结构上是完全独立的。如果 将数据写入SBUF,数据将会被送入发送寄存器准备发送。如果执行

SBUF指

令,则读出的数据一定来自于接收缓存器。因此, CPU 对 SBUF 的读写,实际 上是分别访问 2 个不同的寄存器。这 2 个寄存器的功能不能混淆。

振荡电路: AT89C51 系列单片机的内部振荡器,是由一个单极反相器组成 的。

XTAL1 反相器的输入, XTAL2 为反相器的输出。 可以利用内部的振荡器产 生时钟,只

要 XTAL1 和 XTAL2 引脚上一个晶体及电容组成的并联谐振电路, 便构成一个完整的振荡信号发生器,此方式被称为内部方式。另外一种方式由 外部时钟源提供一个时钟信号到

XTAL1 端输入,而 XTAL2 端浮空。在组成一 个单片机应用系统时,多数都采用这种方

式,这种方式结构紧凑,成本低廉, 可靠性高。在电路中,对电容 C1 和 C2 的值要求不是很严格,如果使用高质的 晶振,则不管频率为多少, C1、C2 通常情况下都选择

30pF。

定时/计数器: AT89C51 单片机内含有两个 16位的定时器 /计数器。当用于 定时器方式时,定时器的输入来自于内部时钟发生电路,每过一个机器周期, 定时器加 1,因为一个机器周期包含有 12 个振荡周期,所以,定时器的技术频 率为晶振频率的 1/12,计数频率最高为晶振频率的 1/24。为了实现定时和计数 功能,定时器中含有 3 种基本的寄存器:方式寄存器、控制寄存器和定时器 /计 数器。方式寄存器是一个 8 位的寄存器,用于确定定时器的工作方式,控制寄 存器是一个 8 位的寄存器,用于控制定时器的工作

基于AT89C51单片机的多功能电子万年历的设计

(WDT)和双数据指针掉电标识和快速编程的特性具有掉电状态下中断恢复功能灵活的在系统编程(ISP字节或页写模式)因为AT89C51单片机片内有4K字节的在线编程Flash存储器,而且可以擦写1000次,具有掉电模式,而且具有掉电状态下中断恢复功能,对设计开发非常实用。所以选用AT89C51单片机作为电子数字万年
推荐度:
点击下载文档文档为doc格式
9xmk46yria2i4cx3q5al1oirv327pb00po4
领取福利

微信扫码领取福利

微信扫码分享