1、简述 AT89C51 单片机及其在编程电路中的应用电子信息工程 111 班 周芬玲 指导教师:谭歆(陕西科技大学职业教育师范学院学 陕西 西安 710021)单片机也被称为微控制器(Microcontroller Unit) ,常用英文字母的缩写 MCU 表示单片机,它最早是被用在工业控制领域。单片机由芯片内仅有 CPU 的专用处理器发展而来。最早的设计理念是通过将大量外围设备和 CPU 集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL 的 Z80 是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。 单片机又称单片微
2、控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了 I/O 设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。 AT89C51 单片机简介AT89C51 是一个低功耗,高性能 CMOS 8 位单片机,片内含 4k Bytes ISP(In-system programmable)的可反复擦写 1000 次的 Flash 只读程序存储器,器件采用 ATMEL 公司的高密度、非易失性存储技术制造,兼容标准 MC
3、S-51 指令系统及 80C51 引脚结构,芯片内集成了通用 8 位中央处理器和 ISP Flash 存储单元,功能强大的微型计算机的 AT89C51 可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89C51 具有如下特点:40 个引脚,4k Bytes Flash 片内程序存储器,128 bytes 的随机存取数据存储器(RAM) ,32 个外部双向输入/输出(I/O)口,5 个中断优先级 2 层中断嵌套中断,2个 16 位可编程定时计数器,2 个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。AT89C51 具有如下特点:40 个引脚,4k Bytes Flash 片内程序
4、存储器,128 bytes 的随机存取数据存储器(RAM) ,32 个外部双向输入/输出(I/O)口,5 个中断优先级 2 层中断嵌套中断,2个 16 位可编程定时计数器,2 个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。 此 外 , AT89C51设 计 和 配 置 了 振 荡 频 率 可 为 0Hz 并 可 通 过 软 件 设 置 省 电 模 式 。 空 闲 模 式下 , CPU 暂 停 工 作 , 而 RAM 定 时 计 数 器 , 串 行 口 , 外 中 断 系 统 可 继 续 工 作 , 掉 电 模 式 冻 结振 荡 器 而 保 存 RAM 的 数 据 , 停 止 芯 片
5、 其 它 功 能 直 至 外 中 断 激 活 或 硬 件 复 位 。 同 时 该 芯 片 还 具有 PDIP、 TQFP 和 PLCC 等 三 种 封 装 形 式 , 以 适 应 不 同 产 品 的 需 求 。(1)功能特性:兼容 MCS-51指令系统32个双向 I/O 口2个16位可编程定时/计数器全双工 UART 串行中断口线2个外部中断源中断唤醒省电模式看门狗(WDT)电路灵活的 ISP 字节和分页编程4k 可反复擦写(1000次)ISP Flash ROM4.5-5.5V 工作电压时钟频率0-33MHz128x8bit 内部 RAM低功耗空闲和省电模式3级加密位软件设置空闲和省电功能双
6、数据寄存器指针(2)管 脚 说 明 : VCC: 供 电 电 压 。 GND: 接 地 。 P0 口 : P0 口 为 一 个 8 位 漏 级 开 路 双 向 I/O 口 , 每 脚 可 吸 收 8TTL 门 电 流 。 当 P1 口 的 管脚 第 一 次 写 1 时 , 被 定 义 为 高 阻 输 入 。 P0 能 够 用 于 外 部 程 序 数 据 存 储 器 , 它 可 以 被 定 义 为 数据 /地 址 的 第 八 位 。 在 FIASH 编 程 时 , P0 口 作 为 原 码 输 入 口 , 当 FIASH 进 行 校 验 时 , P0输 出 原 码 , 此 时 P0 外 部 必
7、须 被 拉 高 。 P1 口 : P1 口 是 一 个 内 部 提 供 上 拉 电 阻 的 8 位 双 向 I/O 口 , P1 口 缓 冲 器 能 接 收 输 出4TTL 门 电 流 。 P1 口 管 脚 写 入 1 后 , 被 内 部 上 拉 为 高 , 可 用 作 输 入 , P1 口 被 外 部 下 拉 为 低电 平 时 , 将 输 出 电 流 , 这 是 由 于 内 部 上 拉 的 缘 故 。 在 FLASH 编 程 和 校 验 时 , P1 口 作 为 第八 位 地 址 接 收 。 P2 口 : P2 口 为 一 个 内 部 上 拉 电 阻 的 8 位 双 向 I/O 口 , P2
8、 口 缓 冲 器 可 接 收 , 输 出 4 个TTL 门 电 流 , 当 P2 口 被 写 “1”时 , 其 管 脚 被 内 部 上 拉 电 阻 拉 高 , 且 作 为 输 入 。 并 因 此 作 为 输入 时 , P2 口 的 管 脚 被 外 部 拉 低 , 将 输 出 电 流 。 这 是 由 于 内 部 上 拉 的 缘 故 。 P2 口 当 用 于 外 部程 序 存 储 器 或 16 位 地 址 外 部 数 据 存 储 器 进 行 存 取 时 , P2 口 输 出 地 址 的 高 八 位 。 在 给 出 地 址“1”时 , 它 利 用 内 部 上 拉 优 势 , 当 对 外 部 八 位
9、地 址 数 据 存 储 器 进 行 读 写 时 , P2 口 输 出 其 特 殊功 能 寄 存 器 的 内 容 。 P2 口 在 FLASH 编 程 和 校 验 时 接 收 高 八 位 地 址 信 号 和 控 制 信 号 。 P3 口 : P3 口 管 脚 是 8 个 带 内 部 上 拉 电 阻 的 双 向 I/O 口 , 可 接 收 输 出 4 个 TTL 门 电 流 。当 P3 口 写 入 “1”后 , 它 们 被 内 部 上 拉 为 高 电 平 , 并 用 作 输 入 。 作 为 输 入 , 由 于 外 部 下 拉 为 低电 平 , P3 口 将 输 出 电 流 ( ILL) 这 是 由
10、 于 上 拉 的 缘 故 。 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( 外 部 数 据 存 储 器 读 选 通 ) P3 口 同 时 为 闪 烁 编 程 和 编 程 校 验 接 收 一 些 控 制 信 号 。 I/O 口 作 为 输 入 口 时 有 两 种 工 作 方
11、式 , 即 所 谓 的 读 端 口 与 读 引 脚 。 读 端 口 时 实 际 上 并 不 从外 部 读 入 数 据 , 而 是 把 端 口 锁 存 器 的 内 容 读 入 到 内 部 总 线 , 经 过 某 种 运 算 或 变 换 后 再 写 回 到 端口 锁 存 器 。 只 有 读 端 口 时 才 真 正 地 把 外 部 的 数 据 读 入 到 内 部 总 线 。 上 面 图 中 的 两 个 三 角 形 表 示的 就 是 输 入 缓 冲 器 CPU 将 根 据 不 同 的 指 令 分 别 发 出 读 端 口 或 读 引 脚 信 号 以 完 成 不 同 的 操 作 。这 是 由 硬 件 自
12、动 完 成 的 , 不 需 要 我 们 操 心 , 1 然 后 再 实 行 读 引 脚 操 作 , 否 则 就 可 能 读 入 出 错 ,为 什 么 看 上 面 的 图 , 如 果 不 对 端 口 置 1 端 口 锁 存 器 原 来 的 状 态 有 可 能 为 0Q 端 为 0Q为 1 加到 场 效 应 管 栅 极 的 信 号 为 1, 该 场 效 应 管 就 导 通 对 地 呈 现 低 阻 抗 , 此 时 即 使 引 脚 上 输 入 的 信号 为 1, 也 会 因 端 口 的 低 阻 抗 而 使 信 号 变 低 使 得 外 加 的 1 信 号 读 入 后 不 一 定 是 1。 若 先 执 行
13、置 1 操 作 , 则 可 以 使 场 效 应 管 截 止 引 脚 信 号 直 接 加 到 三 态 缓 冲 器 中 实 现 正 确 的 读 入 , 由 于 在 输入 操 作 时 还 必 须 附 加 一 个 准 备 动 作 , 所 以 这 类 I/O 口 被 称 为 准 双 向 口 。 89C51 的P0/P1/P2/P3 口 作 为 输 入 时 都 是 准 双 向 口 。 接 下 来 让 我 们 再 看 另 一 个 问 题 , 从 图 中 可 以 看 出 这四 个 端 口 还 有 一 个 差 别 , 除 了 P1 口 外 P0P2P3 口 都 还 有 其 他 的 功 能 。 RST: 复 位
14、输 入 。 当 振 荡 器 复 位 器 件 时 , 要 保 持 RST 脚 两 个 机 器 周 期 的 高 电 平 时 间 。 ALE/PROG: 当 访 问 外 部 存 储 器 时 , 地 址 锁 存 允 许 的 输 出 电 平 用 于 锁 存 地 址 的 地 位 字 节 。在 FLASH 编 程 期 间 , 此 引 脚 用 于 输 入 编 程 脉 冲 。 在 平 时 , ALE 端 以 不 变 的 频 率 周 期 输 出 正脉 冲 信 号 , 此 频 率 为 振 荡 器 频 率 的 1/6。 因 此 它 可 用 作 对 外 部 输 出 的 脉 冲 或 用 于 定 时 目 的 。然 而 要
15、注 意 的 是 : 每 当 用 作 外 部 数 据 存 储 器 时 , 将 跳 过 一 个 ALE 脉 冲 。 如 想 禁 止 ALE 的输 出 可 在 SFR8EH 地 址 上 置 0。 此 时 , ALE 只 有 在 执 行 MOVX, MOVC 指 令 是 ALE 才 起作 用 。 另 外 , 该 引 脚 被 略 微 拉 高 。 如 果 微 处 理 器 在 外 部 执 行 状 态 ALE 禁 止 , 置 位 无 效 。 /PSEN: 外 部 程 序 存 储 器 的 选 通 信 号 。 在 由 外 部 程 序 存 储 器 取 指 期 间 , 每 个 机 器 周 期 两 次/PSEN 有 效
16、 。 但 在 访 问 外 部 数 据 存 储 器 时 , 这 两 次 有 效 的 /PSEN 信 号 将 不 出 现 。 /EA/VPP: 当 /EA 保 持 低 电 平 时 , 则 在 此 期 间 外 部 程 序 存 储 器 ( 0000H-FFFFH) , 不 管是 否 有 内 部 程 序 存 储 器 。 注 意 加 密 方 式 1 时 , /EA 将 内 部 锁 定 为 RESET; 当 /EA 端 保 持 高电 平 时 , 此 间 内 部 程 序 存 储 器 。 在 FLASH 编 程 期 间 , 此 引 脚 也 用 于 施 加 12V 编 程 电 源( VPP) 。 XTAL1: 反
17、 向 振 荡 放 大 器 的 输 入 及 内 部 时 钟 工 作 电 路 的 输 入 。 XTAL2: 来 自 反 向 振 荡 器 的 输 出 。 AT89SXX 系 列 单 片 机 实 现 了 ISP 下 载 功 能 , 故 而 取 代 了 89CXX 系 列 的 下 载 方 式 , 也 是因 为 这 样 , ATMEL 公 司 已 经 停 止 生 产 89CXX 系 列 的 单 片 机 , 现 在 市 面 上 的 AT89CXX 多是 停 产 前 的 库 存 产 品 。 总论当不在进行程序设计的时候,在电路设计中的 AT89C51 设计将变得透明化。在编程期间必须重视 EA/VPP 这一脚
18、。在不使用外部程序存储器的应用程序中,这脚可能会永久接到 VCC。应用程序使用的外部程序存储器要求这一脚为低电平才能正常运行。RST 在编程期间必须为高电平。应该提供一种方法使得电路通入电源以后,使 RST 代替主要的复位电路起到复位的作用 。在编程过程中,PSEN 必须保持低电平,在正常运行期间绝不能使用。ALE/ PROG 在编程过程中输出低电平,在正常运行期间绝不能使用。在编程过程中,AT89C51 的 I / O 端口是用于模式应用程序,地址和数据选择的,可能需要该控制器从应用的电路隔离。如何做到这一点取决于应用程序。输入端口在编程过程中,控制器必须与应用电路的信号来源隔离。带有三个输
19、出状态的缓冲区会在应用程序之间插入电路和控制器,同时在编程时缓冲区输出三种状态。一个多路复用器可用于信号源之间进行选择,适用于任何一方的应用电路或编程控制器电路的信号。输出端口如果应用的电路可以允许端口在编程过程中的状态变化,则不需要改变电路。如果应用电路的状态,必须事先在编程过程中的保持不变,可能在控制器和应用电路中插入锁存。锁存在编程期间是可用的,并保存应用程序的电路状态。应用实例 应用是该 AT89C51 一个移动的显示情况。此应用程序有在电路重新编程时将结果以图表的形式显示的简单能力。文本显示被设计作为其硬件的一部分,不能在无改编情况下变化。显示的文本可在 4 位 DIP 开关选择两种
20、模式之一中进行。在第一种模式的时候,进入一个字符从右边显示和快速移动,通过每个元素显示其在最后的装配位置的左侧。在第二个模式,信息在信息窗口中右到左移动显示。这种模式与常常在股票价格的显示器所使用的方法类似。输出包括四个 DL1414T,4 位 17 段的积分解码器和驱动程序的字母数字显示器。这就产生了16 名显示元素,每个数字有 0-9 的显示能力,是大写字母,标点符号和一些字符。可显示字符的ASCII 码,范围为 20H-5FH。上电复位电路和一个 6 MHz 的晶体振荡器完成应用软件程序。无论外部程序存储器或外部数据存储器都时可用的。支持应用程序的修改 据推测,编程器在休眠时,既不会驱动
21、,也不会加载应用程序。由于应用程序不使用外部程序存储器,EA/VPP 脚接 VCC 电源。复位电路被两种转换器改变状态,此转换器允许编程时 RST接高电平。在基本应用时未使用的 PSEN 和 ALE/ PROG,是被程序员直接控制的。编程器的编程需要获得所有数据表中记录的 AT89C51 的 I / O 端口。编程器是与那些应用程序未使用的控制器的引脚相连的,而这些应用程序的引脚需要最低有效位的四所产生的地址是可获得的,如下段所述。由编程器生成的最小的四位地址是与 DIP 转换的数据在控制器的端口多路复用的请注意,加在开关上的四个电阻在基本应用中并不是必须的,因为 AT89C51 的端口上提供
22、一个内部上拉电阻。在应用程序的正常运作时,控制器端口 0,1 个分别在显示器上提供数据和控制信号。在编程和程序验证时,编程受端口 0 和端口 2 的一部分控制。程序设计器连接端口 0 和 1,没有缓冲,因为,在不活动时,它的存在不影响应用程序的正常运作。透明锁存器被加在了控制器的两个端口之间做输入控制。锁存持有的显示控制信号在编程过程中不反应,从而消除端口 0 和 2 由于程序控制器的活动造成操作失误。显示数据输入是不能被孤立的,因为数据应用到输入被忽略时,控制信号无效。AT89C51 单片机复位电路,输入多路复用器和输出锁存器是由程序控制器生成一个单一的信号来控制的。在编程过程中,复位键生效
23、,多路开关信号输入,以及冻结显示锁存控制线。为确保控制线显示在已知的状态前锁定,AT89C51 的外部中断是用来允许程序控制器在复位之前向应用程序发出信号。应用程序固件响应中断显示一条消息,关闭显示控制线。编程后,当复位生效,当锁存可视控制器端口输出高电平。由于显示控制输入不为高电平,直到新的程序写入显示器内部不被打乱。虽然这个应用程序是没有必要的,它可能在某些应用中必须指出,在编程过程中不会扰乱外围电路的状态程序控制器程序控制器生成的地址,数据和控制信号,对嵌入到程序中的 AT89C51 有重要作用。程序控制器电路由一个 AT89C51 和一个 RS - 232 电平转换器组成。该控制器运行
24、在 11.0592兆 HZ,此频率允许串口运行在一个标准波特率下。一个 MAXIM MAX232 线路驱动器/接收器产生 RS - 232 水平,而只需要 5 伏的电源系统。程序控制器所产生的信号许多只需直接连接到 AT89C51,无需缓冲。这些信号,在不活动时,不再是三种状态,但被接高电平。AT89C51 的端口 1,2,3 内部有大约 3000 欧姆的上拉电阻,因为端口 0 没有内部上拉电阻,所以外部 10 千欧姆的上拉电阻已经加上允许适当的程序认证模式操作。示例应用程序在这种环境下可正常运行。如果有需要的应用程序兼容性,程序发出的信号可能在类似 74xx125 三态缓冲缓冲区内缓冲。AT
25、89C51 的程序不使用外部程序或数据存储器,这需要牺牲所需要的 I / O 引脚。这就要求程序代码和 I / O 缓冲区保持足够小以适合片上存储器。商业电话线远程编程 编程器和前面描述的显示应用是与通过调制解调器连接在远程站点电话线相连的。使用链接调制解调器的个人电脑,用户可以上传包含一个新的消息的程序,这个信息被变成进了嵌入到应用程序的 AT89C51 中。当编程完成后,应用程序执行新的程序,它显示新信息。本地配置测试配置的本地配置包括一台 IBM 个人电脑级的计算机连接到与 Hayes 兼容的,普罗米修斯1200 波特的调制解调器。选择此调制解调器,因为它是廉价可得。更快的调制解调器如果
26、需要的话可使用更快速的调制解调器,尽管一旦该文件的传输时间低于 1 分钟,进一步削减的传输时间不会进一步降低连接时间费用。更高的传输速度的可能优势是在某些高速调制解调器内的自动错误检测和纠正。Procomm Plus 版本 2.01,是一个商业数据通信软件包,用于配置调制解调器,建立通讯设置参数,并建立与远程调制解调器的链接。Procomm Plus 包括所谓的宏语言方面,它允许用户编写实现自定义的文件传输协议的脚本。一个简单的脚本编写用来读取一个程序文件的内容,并上传到远程编程器。文件传输协议(FTP)的实施,是一个简单的发送和等待的,数据包导向的协议。 FTP 模式发送和接收的是用数字 4
27、 和 5,如流程图所示。不在流程控制下发射器发送每个数据包,并等待响应。在计算校验和时那个程序控制器(接收器)读取并剖析了数据包。如果计算出的校验和是有效的,程序员通过发送一个 ACK 承认此数据包。如果校验和错误,程序员通过发送一个 NAK 来否定。当接收一个 ACK 后,发射器发送下一个数据包。如果传送者接收到 NAK,它重新发送相同的数据包。以这种方式传输,直到整个文件已被移交。程序控制器可能通过发送一个 CAN 来响应数据包,CAN 表明一个不可恢复的错误发生,而发射机应立即中止文件传输。如果程序员没有在有限的时间内响应到一个数据包,发送器将重新发送相同的数据包。发射器将继续重发,直到
28、接收到一个有效的反应,或者,超出文件传输被中止的时间。每个数据包接收和通过程序员验证后,数据包中包含的数据被加载到的 AT89C51 单片机控制器编程。编程后,数据从控制器读回并对接收的数据包进行验证。成功的审查表明,成功的程序设计,使程序员发送 ACK 给传送者。如果编程失败,程序员发送 CAN 向传送者发送信号中止文件传输。简单的 FTP 减少了 AT89C51 的程序在编程时使用的内存量。由于 AT89C51 的编程和擦除时间可以很容易地吸收,FTP 发送和等待的性质允许跨包延迟。对程序验证的支持是透明的,不需要明确的命令或结果代码,或转让的其他数据。上传到程序控制器的文件是用英特尔 M
29、CS- 51 软件开发包来创建的。在包中包括了 MCS - 51宏汇编,MCS - 51 单片机 Relocator 和连接器,以及一个有用的工具,OH。OH 将 8051 绝对目标文件转换为为等效的 ASCII 十六进制目标文件。远程配置在测试配置中的远程配置包括显示应用程序和程序员电路,如前所述,连接到一个与 Hayes兼容的普罗米修斯 1200 波特调制解调器。在正常操作时,应用程序执行其内部程序,而调制解调器和程序员监测来电电话线。通话被检测到并连接建立后,程序器强迫暂停其程序的执行。新的程序就被下载并嵌入到应用程序中的 AT89C51 的编程。当编程完成后,应用软件程序获准开始其新的
30、程序执行,而程序控制器返回监督下一个通话的电话线。程序控制输出无效时程序控制器上电,允许应用程序正常运行。在配置调制解调器接听来电后,程序控制器停止工作。是程序控制器不会影响到程序直到一个新的程序应用程序被下载。程序员通过发送控制在串行接口上的 ASCII 命令字符串来控制调制解调器,对此调制解调器响应海斯式调制解调器的 ASCII 数字代码。该软件是专为与海斯兼容使用的调制解调器,其中包括这里使用的 1200 普罗米修斯 ProModem。串行接口,程序员通过它连接到调制解调器,它支持两个握手信号,DTR 和 DSR。上电时,程序控制器判定 DTR,断定为 DTR 后调制解调器响应。如果调制
31、解调器不响应任何命令,包括命令挂断,程序控制器抬高 DTR 点位,强制调制解调器下降。当程序控制器停止工作后,监测调制解监听电话线,等待来电呼叫。当检测到输入,调制解调器响应并试图与输入建立通信。如果建立了连接,调制解调器发送一个代码,唤醒程序控制器。程序控制器验证连接的代码,并开始审查有效的数据包报头。传入数据包必须在少于 30 秒内到达,否则调制解调器挂断和程序控制器继续停止工作,等待下一次呼叫。如果来电挂断,在得到下一次呼叫之前,三十秒时间必须终止。在复位延迟时间传入是被忽略的。如果复位延迟时间结束之前收到一个有效的数据包报头,程序控制器将尝试读取和验证传入的数据包。在数据包的接收过程中
32、的任何时间,无效字符,奇偶校验错误或超时的时间内接待字符将导致部分数据包被宣布无效,并丢弃。两个数据包类型定义:数据和最终文件。数据包包含五个领域,除了包报头,是一个可变长度的数据字段。数据字段包含程序的数据在应用程序中被写入在 AT89C51 的控制器。负载地址字段中包含数据写入的地址。末端文件包中包含与数据包相同的领域的文件,但该数据字段是空的。这包类型对程序控制器具有特殊的意义,如下所述。任何包含有效文种的数据包,记录长度或校验和无效。程序数据在一个无效的数据包被丢弃的处理过程中被积累。编程器给传送者发送一个 NAK 作为信号数据包的接收和恢复为一个有效的数据包报头审查的警示信号。第一个
33、有效数据的接收引起编程器中断应用程序控制器。该控制器的中断响应放弃其正在运行的程序,并显示一条消息,表明程序已经被替代。如果这是由于接收了末端文件或者是电源触发从而接收的第一个有效的数据包,运用必要的控制信号清除在应用控制器内的记忆程序。然后编程器在程序模式中放置控制器。当接收到第一个和其后的有效数据程序包时,将它们分开,它们包含的数据被编程到程序包负载地址域中的地址中的应用控制器内。编程后,从控制器内将数据读回并与接收到的数据包中的数据进行比较。成功的核查表明,方案是成功的,导致编程器向传送者发送 ACK 信号。由于30 秒的复位延迟,编程器重新对有效的数据包报头进行测试。如果编程失败,编程
34、器向传送者发送信号 CAN 中止文件传输。调制解调器掉线,程序器继续休眠等待下一次呼叫。应用控制在程序模式中被保留,用以阻止它包含的不完整的或无效的程序。重要的是要注意,无效的数据包永远不会规划到应用程序控制器。这样做将要求错误被纠正之前,编程器中的记忆程序被彻底抹掉,造成先前所有数据的不可恢复。根据末端文件的接收,编程器向闲置的状态电源返回其控制输出,允许应用程序控制器,开始执行新的程序。然后编程器在三十秒延迟之下重新开始对一个数据包报进行审查。如果一个有效的数据包在 30 秒延迟之前接收,另一个只能被接受一个有效的末端文件而终止的程序循环开始执行。如果复位在收有效末端文件之前终止,那么调制
35、解调器会掉线,编程器停止工作,等待下一次传入。在这种情况下应用控制器被保留在程序设计模式,以防止它执行这个程序。要返回应用程序的正常运行,另一个传入必须被接收,一个有效的程序文件被上传,由末端文件包终止。Brief AT89C51 microcontroller programming circuit电子信息工程 111 班 周芬玲 指导教师:谭歆(陕西科技大学职业教育师范学院学 陕西 西安 710021)Microcontroller is also known as the micro-controller (Microcontroller Unit), the commonly used
36、 letters of the abbreviation MCU MCU, it was first used in the field of industrial control. SCM evolved by the only dedicated processor CPU chip. The first design concept by a large number of peripherals and CPU integrated in a single chip, the computer system is smaller, more easily integrated into
37、 complex and require strict control equipment on the volume. INTEL Z80 is the first processor designed in accordance with this idea, since then, the development of microcontroller and dedicated processor have grown apart.The single-chip, also known as single-chip microcontroller, it is not the compl
38、etion of a logical function of the chip, but a computer system integrated onto one chip. Equivalent to a mini-computer and computer, microcontroller only the lack of I / O devices. Speaking in general terms: a chip has become a computer. Its small size, light weight, inexpensive, and provide favorab
39、le conditions for learning, application and development. At the same time, learning to use the microcontroller is the best choice for the understanding of computer theory and structure.AT89C51 microcontroller DescriptionThe AT89C51 is a low-power, high-performance CMOS 8-bit microcontroller with 4K
40、bytes of in-system programmable Flash memory. The device is manufactured using Atmels high-density nonvolatile memory technology and is compatible with the indus- try-standard 80C51 instruction set and pinout. The on-chip Flash allows the program memory to be reprogrammed in-system or by a conventio
41、nal nonvolatile memory pro- grammer. By combining a versatile 8-bit CPU with in-system programmable Flash on a monolithic chip, the Atmel AT89S51 is a powerful microcontroller which provides a highly-flexible and cost-effective solution to many embedded control applications.The AT89C51 provides the
42、following standard features: 4K bytes of Flash, 128 bytes of RAM, 32 I/O lines, Watchdog timer, two data pointers, two 16-bit timer/counters, a five- vector two-level interrupt architecture, a full duplex serial port, on-chip oscillator, and clock circuitry. In addition, the AT89C51 is designed with
43、 static logic for operation down to zero frequency and supports two software selectable power saving modes. The Idle Mode stops the CPU while allowing the RAM, timer/counters, serial port, and interrupt system to continue functioning. The Power-down mode saves the RAM con- tents but freezes the osci
44、llator, disabling all other chip functions until the next external interrupt or hardware reset.The AT89C51 has the following characteristics: 40-pin, 4k Bytes Flash on-chip program memory, 128 bytes of random access data memory (RAM), 32 external bi-directional input / output (I/O) ports, five inter
45、rupt prioritylayer interrupt interrupt nesting, two 16-bit programmable timer counters, two full duplex serial port, watchdog (WDT) circuit, on-chip clock oscillator.In addition, the AT89C51 design and configuration of the oscillation frequency is 0Hz and supports two software selectable power savin
46、g modes. Idle mode, the CPU to suspend work, the RAM, timer counters, serial port, and interrupt system to continue to work, but freezes the oscillator power-down mode saves the RAM contents, disabling all other chip functions until the next interrupt or hardware reset. The chip also has a PDIP, TQF
47、P and PLCC three packages to suit the needs of different products.(1) the main features* Compatible with MCS-51 Products* 4K Bytes of In-System Programmable (ISP) Flash Memory Endurance: 1000 Write/Erase Cycles* 4.0V to 5.5V Operating Range* Fully Static Operation: 0 Hz to 33 MHz* Three-level Progra
48、m Memory Lock* 128 x 8-bit Internal RAM* 32 Programmable I/O Lines* Two 16-bit Timer/Counters* Six Interrupt Sources* Full Duplex UART Serial Channel* Low-power Idle and Power-down Modes* Interrupt Recovery from Power-down Mode* Watchdog Timer* Dual Data Pointer* Power-off Flag* Fast Programming Tim
49、e* Flexible ISP Programming (Byte and Page Mode(2)Pin DescriptionVCC: Supply voltage.GND: Ground.P0 port: P0 port is an 8-bit open drain bidirectional I / O port, each pin can absorb 8TTL gate current. When the port P1 pins for the first time to write, is defined as high-impedance input. P0 can be used for the external program data memory, it can be defined as the eighth bit of the data / address. Programming in FIASH, P0 port as the input port of the original code, when When FIASH verify the P0 output of the original code, P0 external must be pulled.P1 port: P1 port is an internal pul