AT89C55

合集下载

利用AT89C55单片机实现工业和教学使用的PLC系统

利用AT89C55单片机实现工业和教学使用的PLC系统

利用AT89C55单片机实现工业和教学使用的PLC系统作者:王建明刘丽君来源:微计算机信息点击数:149 更新时间:2008-7-14您可以添加到网摘让更多人关注此文章:摘要: 可编程逻辑控制器(PLC)广泛应用于众多领域,为了推广PLC技术,设计了一个基于AT89C55单片机的PLC模块,集成了多路开关量I/O及模拟量输入以及高速开关量输入,成功应用于工程项目中,并投入实验室使用。

关键词: 可编程逻辑控制器;单片机;开关量;模拟量;监控随着高职教育的迅速发展,将PLC技术引进高职教学并作为一门较为重要的课程,在高职教育中已达成共识,是课程建设现代化的重要措施。

本文在研究A T89C55单片机后,以该单片机为核心设计了一个综合PLC系统,集成了多路开关量I/O及模拟量输入,并可以通过RS232/RS485与上位机进行通讯,已经作为若干高校的实验设备使用,并且,在要求较高的工程项目中也得到了具体的应用。

1 PLC的硬件功能设计该PLC的设计思想基于三菱PLC的操作语言,仿照三菱编程器的操作,利用AT89C55单片机作为主控芯片,辅以其它芯片完成相关功能,其逻辑图见图1所示。

为了达到教学目的,在设计思路上和常规的PLC有几个不同点:一是为了使学生更多地接触不同的输出方式并进行相关的实验,设计了两种输出形式,即8路继电器输出和4路晶体管输出,而且,继电器输出的端子中有四路没有公共端子,三个端子完全引出,由学生自由组合,可扩大控制范围;二是在输入上,除了16路开关量输入外,还设计了2路模拟量输入和高速开关量计数器输入;三是源代码开放,工科院校自控和计算机专业都开设单片机课程,由于条件所限,学生将实践和学习相结合的机会并不多,鉴于这种情况,将源代码开放,学生可以学习、补充、修改程序,既完善了PLC程序,又锻炼了教师和学生。

在大部分PLC中,例如,三菱[1]、欧姆龙和西门子等,上述功能一般由独立的模块来实现。

at89单片机的命名

at89单片机的命名

at89单片机的命名AT89单片机的命名源自其制造商Atmel公司的命名惯例。

AT代表Atmel,89代表系列编号,表示该系列单片机是基于8051架构的。

8051是一种经典的8位单片机架构,广泛应用于嵌入式系统和微控制器领域。

在AT89系列中,每个单片机都有一个具体的型号名称,例如AT89C51、AT89S52等。

这些型号名称中的字母和数字代表了不同的特性和功能。

下面我将从多个角度解释AT89单片机命名中的含义:1. AT,代表制造商Atmel,这是该系列单片机的品牌标识。

2. 89,代表8051系列的第八代产品。

8051系列是一种经典的8位单片机架构,从8051到8052,再到后来的89C51、89S52等型号,都是基于这一架构的。

3. C/S,代表单片机的类型。

C代表CMOS技术,S代表Flash存储器技术。

CMOS技术的单片机工作电压范围广,功耗低,适用于大多数应用场景;而Flash存储器技术的单片机可以实现可编程的程序存储,方便更新程序。

4. 数字,代表型号的具体特性和功能。

不同的数字代表不同的型号,每个型号都有其独特的特性和功能。

例如,AT89C51是一款具有4K字节Flash存储器的单片机,而AT89S52则是一款具有8K 字节Flash存储器和更多IO口的单片机。

总结起来,AT89单片机的命名采用了Atmel公司的命名惯例,其中的AT代表制造商,89代表8051系列的第八代产品,而后面的字母和数字则代表具体的型号、特性和功能。

这种命名方式使得用户可以根据自己的需求选择适合的单片机型号,从而满足不同的应用需求。

关于at89c 系列单片机的编程介绍

关于at89c 系列单片机的编程介绍

关于at89c 系列单片机的编程介绍全文共四篇示例,供读者参考第一篇示例:AT89C 系列单片机是由英特尔公司推出的一款经典的8 位单片机系列产品,其采用了Harvard结构,具有高性能和低能耗的特点,广泛应用于各种嵌入式系统中。

本文将介绍AT89C 系列单片机的编程方法,帮助读者了解如何利用这一款单片机完成各种任务。

AT89C 系列单片机的编程主要采用汇编语言进行编写,汇编语言是一种低级语言,可以直接控制单片机的硬件资源,具有高效性和灵活性。

在编程之前,首先要了解AT89C 系列单片机的数据存储和控制器的结构。

AT89C 系列单片机具有128字节的RAM,64K字节的闪存和大量的I/O端口,通过对这些资源的合理配置,可以实现各种功能。

在使用AT89C 系列单片机进行编程时,首先需要安装相应的开发工具,如Keil C51或者WinAVR等,这些工具可以帮助程序员完成编译、烧录、调试等操作。

接着,可以编写相应的汇编代码,对单片机进行控制,完成各种任务。

可以利用AT89C 系列单片机控制LED灯的亮灭、驱动电机的转动、读取传感器的数值等等。

在编程时,需要注意一些常见的问题,比如注意程序的效率和可靠性,避免死循环和内存溢出等情况的发生。

要注意单片机的时钟频率、中断优先级等设置,确保程序的正常运行。

对于AT89C 系列单片机来说,有些功能可能需要外接其他器件来实现,比如需要使用LCD显示器、AD转换器等,程序员需要对这些器件有一定的了解,才能编写出完整的代码。

在编程过程中,可以利用仿真器或者编程器来进行烧录和调试,确保程序的正确性。

可以使用调试工具来监控程序的执行过程,查看变量的数值、程序的执行路径等信息。

在程序测试完成后,可以将程序烧录到单片机中,进行实际的运行。

AT89C 系列单片机是一款功能强大的产品,具有广泛的应用范围,程序员可以利用其进行各种嵌入式系统的设计和开发。

通过合理的编程方法和技巧,可以充分发挥单片机的性能,实现更多的功能。

AT89C55

AT89C55

主要性能参数:·与MCS-51产品指令和引脚完全兼容·20K字节可重擦写Flash闪速存储器·1000次擦写周期·全静态擦写周期:0Hz—33Hz·三级加密程序存储器·256*8字节内部RAM·32个可编程I/O口线·三个16位定时/计数器·8个中断源·低功耗空闲和掉电模式功能特性概述:这个AT89C55的是一种低功耗,高性能8位CMOS单片机,具有20K字节可重擦写Flash闪速存储器,该设备是采用Atmel的高密度非易失性内存技术,并与业界标准80C51指令集和引脚兼容,片上闪存程序存储器可重新编程的系统或由传统的非易失性内存编程通过将通用的8位CPU与Flash在monolithicchip 芯片,奥特拉AT89C55的是一个强大的微型计算机提供了一个高度灵活和成本有效地解决许多嵌入式控制应用。

引脚配置:页脚内容1方框图:页脚内容2该AT89C55的标准提供了以下功能:20,000字节的闪存,256内存,32个字节/ O线,三个16位定时器/计数器,6向量两级中断结构,全双工串行端口,片上振荡器和时钟电路。

此外,AT89C55的目的是为降低到零频率静态逻辑,支持两种软件可选省电模式。

空闲模式停止的CPU,同时允许RAM工作,定时器/计数器,串行端口和中断系统继续运作。

运作。

在掉电模式保存RAM的内容,但冻结振荡器,禁用直到下一个硬件复位所有其他片上功能运作。

在掉电模式保存RAM的内容,但冻结振荡器,禁用直到下一个硬件复位所有其他片上功能。

引脚说明:Vcc:电源供电页脚内容3GND:地P0 口:P0口是一个8位漏极开路的双向I/O口。

作为输出口,每位能驱动8个TTL逻辑电平。

对P0端口写“1”时,引脚用作高阻抗输入。

当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。

在这种模式下,P0具有内部上拉电阻。

大学生电子设计竞赛设计报告-简易自动电阻测试仪

大学生电子设计竞赛设计报告-简易自动电阻测试仪

简易自动电阻测试仪(G题)设计报告参赛学校:常州机电职业技术学院作者:朱化吉冯海涛骆翠玲简易自动电阻测试仪摘要该简易自动电阻测试仪可实现对电阻的自动测试功能,具有自动电阻筛选功能,并能自动测量和显示电位器阻值随旋转角度变化的曲线。

根据选题要求,该测试仪以AT89C55为核心,结合键盘、显示、程控放大器、A/D、步进电机控制器等外围电路,较好地实现了要求的功能。

测量量程为100Ω、1kΩ、10k Ω、10MΩ四档。

测量准确度为±(1%读数+2 字)。

3 位数字显示(最大显示数为999),能自动显示小数点和单位,测量速率大于5 次/秒。

100Ω、1kΩ、10kΩ三档量程具有自动量程转换功能。

具有自动电阻筛选功能。

即在进行电阻筛选测量时,用户通过键盘输入要求的电阻值和筛选的误差值;测量时,仪器能在显示被测电阻阻值的同时,给出该电阻是否符合筛选要求的指示。

设计并制作了一个能自动测量和显示电位器阻值随旋转角度变化曲线的辅助装置,曲线各点的测量准确度为±(5%读数+2 字),全程测量时间不大于10 秒,测量点不少于15 点。

关键词:单片机,电阻测试仪,自动量程转换,自动电阻筛选1 方案的选择与论证图1对各模块的实现,分别有以下一些不同的设计方案:1.1 系统控制模块方案一:FPGA/CPLD方式。

即用FPGA/CPLD完成键盘设置、步进电机控制、显示电路的驱动、与电阻测量模块的接口等功能。

这种方案的优点在于系统结构紧凑、速度快,而且可以使用的I/O口线很多;缺点是FPGA的设计与调试与单片机相比比较繁琐,调试的效率比较低,不够灵活。

方案二:单片机方式。

使用单片机也可以完成键盘设置、步进电机控制、显示电路的驱动、与电阻测量模块的接口功能。

单片机算术运算功能强,软件编程灵活、自由度大,可以用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛,调试的效率也比较高。

基于AT89C55的16x16LED点阵汉字显示设计

基于AT89C55的16x16LED点阵汉字显示设计

重庆三峡学院课程设计报告书题目:基于AT89C55的16*16LED点阵汉字显示设计学院(系):年级专业:学号:学生姓名:指导教师:教师职称:完成日期2012年11月30日目录摘要 (3)第一章引言 (4)1.1 设计任务 (4)1.2 设计目的 (4)1.3 设计方案 (4)第二章硬件系统设计 (4)2.1AT89C55简介 (4)2.2原理电路 (5)2.3驱动电路 (6)2.4显示模块 (9)第三章软件系统设计 (10)3.1点阵显示主程序 (10)3.2点整显示子程序 (13)3.3电路仿真 (19)第四章实验结果与分析 (21)第五章总结 (21)致谢 (22)元件清单表 (22)参考目录 (22)基于AT89C55的16*16LED点阵汉字显示设计摘要:以单片机AT89C55芯片设计16*16LED点阵汉字显示设计,系统由控制模块、显示模块、驱动模块三大部分组成。

阐述了AT89C55的LED显示功能。

运用keil 软件进行编程与调试,利用Proteus 7 Professional软件进行绘制硬件电路图且进行仿真。

结果表明该电路可以正确显示汉字,具有移动显示效果。

具有很好的实用意义。

关键词:单片机、LED点阵显示、动态显示第一章引言1.1 设计任务1.基本要求:设计一个8*8或16*16的点阵控制系统,能够在显示器上显示任何想要的字符或图形。

具有一定的显示效果。

2.扩展要求:扩展为4个8*8或16*16LED点阵。

3.用keil软件进行编程与调试,利用Proteus 7 Professional软件进行绘制硬件电路图且进行仿真。

1.2 设计目的通过课程设计使学生较系统地掌握单片机控制系统设计的基本理论,熟练掌握51系列单片机的编程方法,学生在接近实际工作环境下,能够完成一个简单的单片机控制系统的设计。

设计一个16*16的点阵控制系统,能够在显示器上显示任何想要的字符或图形,有一定的动态显示效果。

at89单片机的命名 -回复

at89单片机的命名 -回复

at89单片机的命名-回复关于AT89单片机的命名AT89单片机是一种广泛应用于嵌入式系统的微控制器系列,由Atmel公司推出。

它在电子工程中具有重要的地位,被广泛用于各种领域的嵌入式系统开发。

AT89单片机的命名由多个部分组成,中括号中的内容为主题。

下面将一步一步解释这些部分的含义,以帮助您更好地理解AT89单片机的命名。

1. [AT]:这个部分代表Atmel公司的标识。

Atmel公司是一家专门从事半导体器件设计与制造的公司,拥有丰富的经验和先进的技术,因此其产品一直备受推崇。

2. [89]:这个部分代表AT89单片机系列的编号。

这个系列中的每个型号都以89开头,比如AT89C51、AT89S52等。

这里的89起到了区分不同系列的作用。

3. [C/S/F]:这个部分代表AT89单片机的型号系列。

字母C代表的是CMOS系列,字母S代表的是低功耗系列,字母F代表的是快速系列。

不同系列的单片机在性能和功耗上可能有所不同,用户可以根据自己的需求选择合适的型号。

4. [数字]:这个部分代表AT89单片机的具体型号。

每个型号都有一个唯一的数字标识,比如AT89C51是CMOS系列中的一种型号,AT89S52是低功耗系列中的一种型号。

用户可以根据自己的实际需求选择适合的型号。

AT89单片机的命名规则基本如上所述,通过这些标识和数字,用户可以快速定位和选择适合自己需求的单片机型号。

需要注意的是,AT89单片机是一种8位的单片机,其字长为8位,具有存储器、计时器、输入输出端口等功能。

AT89单片机在嵌入式系统的开发中有着广泛的应用。

它可以用于各种控制系统,比如家电控制、汽车电子、工业自动化等。

通过编程和外部电路的配合,AT89单片机可以实现不同的功能,满足不同系统的需求。

总结起来,AT89单片机的命名规则由Atmel公司的标识、系列编号、型号系列和具体型号组成。

这些标识和数字的组合可以帮助用户快速选择适合自己需求的单片机型号。

基于89C55WD单片机的32位高精度计时器

基于89C55WD单片机的32位高精度计时器
Key words:timer;time measurement;single-chip;optoeoupler;intermptⅧr∞
在一个全站仪动态测试装置中,要利用光电 传感器测定移动目标循环转动每次经过检测点的 准确时间差。当移动目标运动到光电传感器前 时,遮挡光电传感器光波,输出跳变的脉冲信号, 传人计时器计时。这里触发时间的准确捕获和测 定对于测试非常重要。装置中触发时间的捕获要 精确到1妒,移动目标经光电传感器产生的脉冲 频率最高约为100 Hz,而最低频率只有几mHz。 每个脉冲的到来时间要通过串行接口传人微机进 行分析和处理(为保证数据的准确,无须实时传 输,事后处理即可)。根据上述的要求设计了一种 基于AT89C55WD单片机的32位高精度计时器。
2”×0.542 534 7“s=35 555.554^8— 35.56 ms
可以看出,当脉冲间隔超过35.56 ills时,定 时器将产生溢出。显然.当脉冲频率为几mHz时, 16位定时器将不够用。这里,需将定时器扩展成 32位,当单片机内的16位定时器溢出时,激活溢 出中断。每产生一次溢出,在定时器溢出中断服务 程序中将对一个设定的16位寄存器加1。这样,定 时器就扩展成32位,最大计时时间达到
ofScience,Information啪nw跏w”哪Zhengzhou DANG Li·ruing‘,HE Fen92,DUAN Lin—linl,CHEN Chu-xian91
(1.Institute
450(101,China;
En"哪University,Zher,gzhou 2.Institute ofSurveyiW and Mapping,Information
用两个32位计时器杰替对连续脉冲信号的间隔时间进行测量。通过合理分配中断资源,保证了装置工作的

基于AT89C55的全自动便携式线束检测装置

基于AT89C55的全自动便携式线束检测装置

—]
信 号发送 端
测6 O根 一组 的线 束 , 外信 号 发送 端 口只有 8个 , 此
监 测 端 只有 8个 , 因此 发 送 端采 用 了分 时信 号 锁存 技术 . 接受 端采 用分 时 取样 和三 态信 号叠 加 技术 。
单片 机控 制 电路 如 图 3所示 , 中 7 H 7 7师 其 4 C3
该检 测 装 置 A 8 C 5芯 片作 为 主 MC T9 5 U,由 于
3 电 路 设 计
该 芯 片 编 程 简 单 , 价 比高 , 广 泛运 用 于 工业 控 性 被 制 力 领 域 , 虑 到该 监 测 机 的 通 用 性 , 设 表 中 的 考 预
员不 同的 报警 和 提示 , 而加 快 现场 检 测 人 员对 线 从
了一 种 采 用 单 片 机 设 计 的简 易 性 全 自动 线 束 检 测
装置 , 电路 设 计 简单 , 检测 导 线数 量 多 , 有 导 线错 具
误 报警 和 中文提 示 , 用 了 电池 和 变压 器 的双 重供 采
电模 式 , 特别 适合 车 间现场 进行 线束 检测 。
2 设 计 原 理
用 锁存 发射 端 的信 号 ,配 合 7 H 1 8选 码 电路 , 4 C3 可
以使 单 片机 控 制 6 4路输 出 ,如对 于检 测 速 度 没有
要 求 . 可 根 据 实 际需 要 继 续 扩 展 编码 信 号 , 收 也 接 端采 用 7 HC 4 4 2 5三 态缓 冲器 , 证 了 8位 口线 的信 保
确时 . 屏幕 显 示 连 线正 确 , 后 蜂 鸣器 长 鸣 一 声 , 然 当
VCC 3 U9 X X 0 X1 X2 X3 X 4 X5

基于AT89C55单片机的数控机床远程测控仪的研制

基于AT89C55单片机的数控机床远程测控仪的研制
2 . N u m e r i c a l C o n t m l I n s t i t u t e , X i h u a U n i v e s r i t y , C h e n g d u 6 1 0 0 3 9 , C h i n a )
Ab s t r a c t : A CNC ma c h i n e t o o l s r e mo t e me a s u r e . c o n t r o l i ns t r u me n t b a s e d o n AT 8 9C5 5 mi c r o c o n t r o l l e r i S d e .

5 6・
《 测控技 术) 2 0 1 3 年第 3 2卷第 5期
基于 A T 8 9 C 5 5单片机的数控机床远程测控仪 的研制
韩 兴 国 , 王 斌 武 ,邹 爱成 , 黎 亚 元
( 1 . 桂林航天工业 学院 机械工程系 , 广西 桂林 5 4 1 0 0 4 ; 2 . 西华大学 数控技术研究所 , 四川 成都 6 1 0 0 3 9 )
近2 0多年来 , 国内一些科研院所致力于研究适合 测 试 现场数 控 系统 ( 机床 ) 运 动 误 差 的快 速 、 精确 、 有 效的方法和机理 , 试图既避免使用费工费钱且难以溯 因 的双频激 光干 涉仪 等 仪器 , 又 能 以足够 的精 度精 确 掌握指 令运 动轨迹 与实 际执行 运动轨 迹 的差 异并 能溯 因¨ 。笔 者在 前 期 国 家 “ 十五” 科 技 攻 关 课 题— — “ 数控 系统 ( 机床 ) 运 行状 态综 合测 试技 术 以及 装 置 的 研究开发” 和 四川 省 科 技 厅 重 点 科 技 攻 关 项 目—— “ 数 控 系统 ( 机床 ) 运动精 度 动态测 试 技术 以及 装 置研

基于AT89C55和CAN总线的远程数据采集系统的设计

基于AT89C55和CAN总线的远程数据采集系统的设计

现 代控制系统 的发展 逐渐 向开放 式 、 分布式系统 发展, 即是一个集实 时数 据采集 、数据 处理与决策 于一体数据 控 制系统 。这样 的控 制系统采集 的数据准 确 、 及时 , 集成 了完 善的专 家系统 , 能够提供准确而又及时 的系 统的决策 。 本文 提 出一种基于 A 8 C 5和 C N总线 的开放 式 、分布 式数 T95 A 据采集系统 。 1 T95 A 8 C 5单片机与 C N总线 简介 A A 8C 5主 要完 成数 据 的采 集 ,且 利 用它 的丰 富 的 T95 2k 0 b闪存 资源 永久保存 实时 的测 量信 息、 史 的测 量数据 历 等关键结果 , 并通过控制 C N智能节 点实现数据 的远程传 A
维普资讯
20 年2月 O7
电 脑 学 习
第1 期
基于A 95 C 5和 C N总线的远程数据 采集系统 的设计 木 A
任 广永 ” 江晋剑 王远 志
摘 要 在 介 绍 了 C N 怠 线 特 性 的基 础 上 。 出 了一 种 基 于 A 8 C 5的远 程 数 据 采 集 系 统 的 设计 . 详 述 了其硬 件 结 构 。 A 提 T9 5 并
Ab t a t Af r i t d cn h h r ce s c f CAN b s a d A 9 5 ,te d sg f r moe d t c u st n s s m a sr c t nr u i g t e c a a tr t s o e o ii u n T8 C 5 h e in o e t aa a q ii o y t i e b— s d o h m s p o o e n t e i r p  ̄ d ti e al .
Ke wo d y r AT 9 5 8C 5 C AN B s u Da a Ac ust n S s m t q ii o y t i e

基于AT89C55的脉动真空灭菌器

基于AT89C55的脉动真空灭菌器
维普资讯
第0 Jnoi岛Uv o学cn eoy V.O3 26 o afna科et ie报 c l o.o 0 期 u n技y ho J・6 2年 月 7 麓 6 r 青d s fe ng 12. lQg i i SnaT o r大 c学 d uz nN 2o 7 O
( le eo o to n eto isEn ie rn ,Qig a ie st Colg fAutma in a d Elcr n c gn ei g n d o Unv riy o ce c n c n lg fS in e a d Te h oo y,Qig a 6 0 2,Chn ) n do2 6 4 ia
着燃 料 需 要 量 大 、 蒸锅 笨 重 、 度 难 以 控制 、 要 温 需
到一 个较 高 的真 空度 ( 动 下 限 ) 再 充 蒸 汽 到 设 脉 , 定正 压 ( 脉动 上 限 ) 如 此 一 负 一 正 的过 程 即为 一 , 次脉 动循 环 。经 过 几 次脉 动后 , 基本 抽 尽 器 体 内 的冷 空 气 , 着进 饱 和 蒸 汽 达 到 不 同灭 菌 物 品对 接 应 的 灭菌 温 度 , 始 累计 灭 菌 计 时 , 时结 束 后 , 开 计 抽 真 空干燥 , 灭菌物 品 达到较 好 的干燥 度 , 使 灭菌 后 可 直接使 用 , 从而 达到 很好 的灭 菌效 果 。
t r c nt o ft m p r t e,p e s e a d tm e,t e dr s i a e i l e o r lo e e a ur r s ur n i h e sng m t ra s,a pa a us,g a s p rt ls
wa e l ia l v swe e s e i z d a d d i d q ik y a d e f c i e y r ,c i c. n i

89C55中文资料

89C55中文资料

PDIPFeatures•Compatible with MCS-51™ Products•20K Bytes of In-System Reprogrammable Flash Memory–Endurance: 1,000 Write/Erase Cycles•Fully Static Operation: 0 Hz to 33 MHz•Three-Level Program Memory Lock•256 x 8-bit Internal RAM•32 Programmable I/O Lines•Three 16-bit Timer/Counters•Eight Interrupt Sources•Low Power Idle and Power Down ModesDescriptionThe AT89C55 is a low-power, high-performance CMOS 8-bit microcomputer with 20K bytes of Flash programmable and erasable read only memory. The device is manu-factured using Atmel’s high density nonvolatile memory technology and is compatible with the industry standard 80C51 instruction set and pinout. The on-chip Flash allows the program memory to be reprogrammed in-system or by a conventional nonvolatile memory programmer. By combining a versatile 8-bit CPU with Flash on a monolithic chip, the Atmel AT89C55 is a powerful microcomputer which provides a highly flexible and cost effective solution to many embedded control applications.Pin Configurations(continued)Block DiagramThe AT89C55 provides the following standard features: 20K bytes of Flash, 256-bytes of RAM, 32 I/O lines, three 16-bit timer/counters, a six-vector two-level interrupt archi-tecture, a full duplex serial port, on-chip oscillator, and clock circuitry. In addition, the AT89C55 is designed with static logic for operation down to zero frequency and sup-ports 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 oscillator, disabling all other chip func-tions until the next hardware reset. The low-voltage option saves power and operates with a 2.7-volt power supply. Pin DescriptionV CCSupply voltage.GNDGround.Port 0Port 0 is an 8-bit open drain bidirectional I/O port. As an output port, each pin can sink eight TTL inputs. When 1s are written to port 0 pins, the pins can be used as high-impedance inputs.Port 0 can also be configured to be the multiplexed low-order address/data bus during accesses to external pro-gram and data memory. In this mode, P0 has internal pul-lups.Port 0 also receives the code bytes during Flash program-ming and outputs the code bytes during program verifica-tion. External pullups are required during program verifica-tion.Port 1Port 1 is an 8-bit bidirectional I/O port with internal pullups. The Port 1 output buffers can sink/source four TTL inputs. When 1s are written to Port 1 pins, they are pulled high by the internal pullups and can be used as inputs. As inputs, Port 1 pins that are externally being pulled low will source current (I IL) because of the internal pullups.In addition, P1.0 and P1.1 can be configured to be the timer/counter 2 external count input (P1.0/T2) and the timer/counter 2 trigger input (P1.1/T2EX), respectively, as shown in the following table.Port 1 also receives the low-order address bytes during Flash programming and verification.Port 2Port 2 is an 8-bit bidirectional I/O port with internal pullups. The Port 2 output buffers can sink/source four TTL inputs. When 1s are written to Port 2 pins, they are pulled high by the internal pullups and can be used as inputs. As inputs, Port 2 pins that are externally being pulled low will source current (I IL) because of the internal pullups.Port 2 emits the high-order address byte during fetches from external program memory and during accesses to external data memory that use 16-bit addresses (MOVX @ DPTR). In this application, Port 2 uses strong internal pul-lups when emitting 1s. During accesses to external data memory that use 8-bit addresses (MOVX @ RI), Port 2 emits the contents of the P2 Special Function Register. Port 2 also receives the high-order address bits and some control signals during Flash programming and verification. Port 3Port 3 is an 8-bit bidirectional I/O port with internal pullups. The Port 3 output buffers can sink/source four TTL inputs. When 1s are written to Port 3 pins, they are pulled high by the internal pullups and can be used as inputs. As inputs, Port 3 pins that are externally being pulled low will source current (I IL) because of the pullups.Port 3 also serves the functions of various special features of the AT89C55, as shown in the following table.Port 3 also receives the highest-order address bit and some control signals for Flash programming and verifica-tion.RSTReset input. A high on this pin for two machine cycles while the oscillator is running resets the device.Port Pin Alternate FunctionsP1.0T2 (external count input to Timer/Counter 2), clock-outP1.1T2EX (Timer/Counter 2 capture/reloadtrigger and direction control)Port Pin Alternate FunctionsP3.0RXD (serial input port)P3.1TXD (serial output port)P3.2INT0 (external interrupt 0)P3.3INT1 (external interrupt 1)P3.4T0 (timer 0 external input)P3.5T1 (timer 1 external input)P3.6WR (external data memory write strobe)P3.7RD (external data memory read strobe)ALE/PROGAddress Latch Enable is an output pulse for latching the low byte of the address during accesses to external mem-ing Flash programming.In normal operation, ALE is emitted at a constant rate of 1/6 the oscillator frequency and may be used for external timing or clocking purposes. Note, however, that one ALE pulse is skipped during each access to external data mem-ory.If desired, ALE operation can be disabled by setting bit 0 of SFR location 8EH. With the bit set, ALE is active only dur-ing a MOVX or MOVC instruction. Otherwise, the pin is weakly pulled high. Setting the ALE-disable bit has no effect if the microcontroller is in external execution mode. PSENProgram Store Enable is the read strobe to external pro-gram memory.When the AT89C55 is executing code from external pro-gram memory, PSEN is activated twice each machine each access to external data memory.PPorder to enable the device to fetch code from external pro-gram memory locations starting at 0000H up to FFFFH. internally latched on reset.EA should be strapped to V CC for internal program execu-tions.This pin also receives the 12-volt programming enable volt-age (V PP) during 12-volt Flash programming.XTAL1Input to the inverting oscillator amplifier and input to the internal clock operating circuit.XTAL2Output from the inverting oscillator amplifier.Special Function RegistersA map of the on-chip memory area called the Special Function Register (SFR) space is shown in Table 1.Note that not all of the addresses are occupied, and unoc-cupied addresses may not be implemented on the chip. Read accesses to these addresses will in general return random data, and write accesses will have an indetermi-nate er software should not write 1s to these unlisted loca-tions, since they may be used in future products to invoke new features. In that case, the reset or inactive values of the new bits will always be 0.Timer 2 Registers Control and status bits are contained in registers T2CON (shown in Table 2) and T2MOD (shown in Table 4) for Timer 2. The register pair (RCAP2H, RCAP2L) are the Capture/Reload registers for Timer 2 in 16 bit capture mode or 16-bit auto-reload mode.Interrupt Registers The individual interrupt enable bits are in the IE register. Two priorities can be set for each of the six interrupt sources in the IP register.Data MemoryThe AT89C55 implements 256-bytes of on-chip RAM. The upper 128-bytes occupy a parallel address space to the Special Function Registers. That means the upper 128-bytes have the same addresses as the SFR space but are physically separate from SFR space.When an instruction accesses an internal location above address 7FH, the address mode used in the instruction specifies whether the CPU accesses the upper 128-bytes of RAM or the SFR space. Instructions that use direct addressing access SFR space.For example, the following direct addressing instruction accesses the SFR at location 0A0H (which is P2).MOV 0A0H, #dataInstructions that use indirect addressing access the upper 128-bytes of RAM. For example, the following indirect addressing instruction, where R0 contains 0A0H, accesses the data byte at address 0A0H, rather than P2 (whose address is 0A0H).MOV @R0, #dataNote that stack operations are examples of indirect addressing, so the upper 128-bytes of data RAM are avail-able as stack space.Table 1.AT89C55 SFR Map and Reset Values0F8H0FFH0F0HB000000000F7H0E8H0EFH0E0HACC000000000E7H0D8H0DFH0D0HPSW000000000D7H0C8HT2CON00000000T2MODXXXXXX00RCAP2L00000000RCAP2H00000000TL200000000TH2000000000CFH0C0H0C7H0B8HIPXX0000000BFH0B0HP3111111110B7H0A8HIE0X0000000AFH0A0HP2111111110A7H98HSCON00000000SBUFXXXXXXXX9FH90HP11111111197H88HTCON00000000TMOD00000000TL000000000TL100000000TH000000000TH1000000008FH80HP011111111SP00000111DPL00000000DPH00000000PCON0XXX000087HTable 2.T2CON—Timer/Counter 2 Control RegisterT2CON Address = 0C8H Reset Value = 0000 0000BBit AddressableTF2EXF2RCLK TCLK EXEN2TR2C/T2CP/RL2 Bit76543210Symbol FunctionTF2Timer 2 overflow flag set by a Timer 2 overflow and must be cleared by software. TF2 will not be set when either RCLK = 1 or TCLK = 1.EXF2Timer 2 external flag set when either a capture or reload is caused by a negative transition on T2EX and EXEN2 = 1.When Timer 2 interrupt is enabled, EXF2 = 1 will cause the CPU to vector to the Timer 2 interrupt routine. EXF2 mustbe cleared by software. EXF2 does not cause an interrupt in up/down counter mode (DCEN = 1).RCLK Receive clock enable. When set, causes the serial port to use Timer 2 overflow pulses for its receive clock in serial port Modes 1 and 3. RCLK = 0 causes Timer 1 overflow to be used for the receive clock.TCLK T ransmit clock enable. When set, causes the serial port to use Timer 2 overflow pulses for its transmit clock in serial port Modes 1 and 3. TCLK = 0 causes Timer 1 overflows to be used for the transmit clock.EXEN2Timer 2 external enable. When set, allows a capture or reload to occur as a result of a negative transition on T2EX if Timer 2 is not being used to clock the serial port. EXEN2 = 0 causes Timer 2 to ignore events at T2EX.TR2Start/Stop control for Timer 2. TR2 = 1 starts the timer.C/T2Timer or counter select for Timer 2. C/T2 = 0 for timer function. C/T2 = 1 for external event counter (falling edge triggered).CP/RL2Capture/Reload select. CP/RL2 = 1 causes captures to occur on negative transitions at T2EX if EXEN2 = 1. CP/RL2 =0 causes automatic reloads to occur when Timer 2 overflows or negative transitions occur at T2EX when EXEN2 = 1.When either RCLK or TCLK = 1, this bit is ignored and the timer is forced to auto-reload on Timer 2 overflow.Timer 0 and 1Timer 0 and Timer 1 in the AT89C55 operate the same way as Timer) and Timer 1 in the AT89C51 and AT89C52. For further information, see the Microcontroller Data Book, sec-tion titled, “Timer/Counters.”Timer 2Timer 2 is a 16 bit Timer/Counter that can operate as either a timer or an event counter. The type of operation is selected by bit C/T2 in the SFR T2CON (shown in Table 2). Timer 2 has three operating modes: capture, auto-reload (up or down counting), and baud rate generator. The modes are selected by bits in T2CON, as shown in Table 3. Timer 2 consists of two 8-bit registers, TH2 and TL2. In the Timer function, the TL2 register is incremented every machine cycle. Since a machine cycle consists of 12 oscil-lator periods, the count rate is 1/12 of the oscillator fre-quency.In the Counter function, the register is incremented in response to a 1-to-0 transition at its corresponding external input pin, T2. In this function, the external input is sampled during S5P2 of every machine cycle. When the samples show a high in one cycle and a low in the next cycle, the count is incremented. The new count value appears in the register during S3P1 of the cycle following the one in which the transition was detected. Since two machine cycles (24 oscillator periods) are required to recognize a 1-to-0 transi-tion, the maximum count rate is 1/24 of the oscillator fre-quency. To ensure that a given level is sampled at least once before it changes, the level should be held for at least one full machine cycle.Capture ModeIn the capture mode, two options are selected by bit EXEN2 in T2CON. If EXEN2 = 0, Timer 2 is a 16 bit timer or counter which upon overflow sets bit TF2 in T2CON. This bit can then be used to generate an interrupt. If EXEN2 = 1, Timer 2 performs the same operation, but a 1-to-0 transition at external input T2EX also causes the cur-rent value in TH2 and TL2 to be captured into RCAP2H and RCAP2L, respectively. In addition, the transition at T2EX causes bit EXF2 in T2CON to be set. The EXF2 bit, like TF2, can generate an interrupt. The capture mode is illus-trated in Figure 1.Auto-Reload (Up or Down Counter)Timer 2 can be programmed to count up or down when configured in its 16-bit auto-reload mode. This feature is invoked by the DCEN (Down Counter Enable) bit located in the SFR T2MOD (see Table 4). Upon reset, the DCEN bit is set to 0 so that timer 2 will default to count up. When DCEN is set, Timer 2 can count up or down, depending on the value of the T2EX pin.Figure 2 shows Timer 2 automatically counting up when DCEN = 0. In this mode, two options are selected by bit EXEN2 in T2CON. If EXEN2 = 0, Timer 2 counts up to 0FFFFH and then sets the TF2 bit upon overflow. The over-flow also causes the timer registers to be reloaded with the 16 bit value in RCAP2H and RCAP2L. The values in RCAP2H and RCAP2L are preset by software. If EXEN2 =Table 3. Timer 2 Operating ModesRCLK + TCLK CP/RL2TR2MODE00116 bit Auto-Reload01116 bit Capture1X1Baud Rate GeneratorX X0(Off)1, a 16 bit reload can be triggered either by an overflow or by a 1-to-0 transition at external input T2EX. This transition also sets the EXF2 bit. Both the TF2 and EXF2 bits can generate an interrupt if enabled.Setting the DCEN bit enables Timer 2 to count up or down,as shown in Figure 3. In this mode, the T2EX pin controls the direction of the count. A logic 1 at T2EX makes Timer 2count up. The timer will overflow at 0FFFFH and set the TF2 bit. This overflow also causes the 16 bit value inRCAP2H and RCAP2L to be reloaded into the timer regis-ters, TH2 and TL2, respectively.A logic 0 at T2EX makes Timer 2 count down. The timer underflows when TH2 and TL2 equal the values stored in RCAP2H and RCAP2L. The underflow sets the TF2 bit and causes 0FFFFH to be reloaded into the timer registers.The EXF2 bit toggles whenever Timer 2 overflows or underflows and can be used as a 17th bit of resolution. In this operating mode, EXF2 does not flag an interrupt.Figure 2. Timer 2 Auto Reload Mode (DCEN = 0)Table 4.T2MOD—Timer 2 Mode Control RegisterT2MOD Address = 0C9H Reset Value = XXXX XX00BNot Bit Addressable——————T20E DCEN Bit7654321Symbol Function —Not implemented, reserved for future use.T20E Timer 2 Output Enable bit.DCENWhen set, this bit allows Timer 2 to be configured as an up/down counter.Figure 3. Timer 2 Auto Reload Mode (DCEN = 1)Figure 4.Timer 2 in Baud Rate Generator ModeBaud Rate GeneratorTimer 2 is selected as the baud rate generator by setting TCLK and/or RCLK in T2CON (Table 2). Note that the baud rates for transmit and receive can be different if Timer 2 is used for the receiver or transmitter and Timer 1 is used forthe other function. Setting RCLK and/or TCLK puts Timer 2 into its baud rate generator mode, as shown in Figure 4. The baud rate generator mode is similar to the auto-reload mode, in that a rollover in TH2 causes the Timer 2 registers to be reloaded with the 16 bit value in registers RCAP2H and RCAP2L, which are preset by software.The baud rates in Modes 1 and 3 are determined by Timer 2’s overflow rate according to the following equation.The Timer can be configured for either timer or counter operation. In most applications, it is configured for timer Timer 2 when it is used as a baud rate generator. Normally, as a timer, it increments every machine cycle (at 1/12 the oscillator frequency). As a baud rate generator, however, it increments every state time (at 1/2 the oscillator fre-quency). The baud rate formula is given below.where (RCAP2H, RCAP2L) is the content of RCAP2H and RCAP2L taken as a 16 bit unsigned integer.Timer 2 as a baud rate generator is shown in Figure 4. This figure is valid only if RCLK or TCLK = 1 in T2CON. Note that a rollover in TH2 does not set TF2 and will not gener-ate an interrupt. Note too, that if EXEN2 is set, a 1-to-0 transition in T2EX will set EXF2 but will not cause a reload from (RCAP2H, RCAP2L) to (TH2, TL2). Thus when Timer 2 is in use as a baud rate generator, T2EX can be used as an extra external interrupt.Note that when Timer 2 is running (TR2 = 1) as a timer in the baud rate generator mode, TH2 or TL2 should not be read from or written to. Under these conditions, the Timer is incremented every state time, and the results of a read or write may not be accurate. The RCAP2 registers may be read but should not be written to, because a write might overlap a reload and cause write and/or reload errors. The timer should be turned off (clear TR2) before accessing the Timer 2 or RCAP2 registers.Modes 1 and 3 Baud RatesTimer 2 Overflow Rate16-----------------------------------------------------------=Modes 1 and 3Baud Rate---------------------------------------Oscillator Frequency32655536RCAP2H,RCAP2L)(–[]×--------------------------------------------------------------------------------------------------=Figure 5.Timer 2 in Clock-Out ModeProgrammable Clock OutA 50% duty cycle clock can be programmed to come out on P1.0, as shown in Figure 5. This pin, besides being a regu-lar I/O pin, has two alternate functions. It can be pro-grammed to input the external clock for Timer/Counter 2 or to output a 50% duty cycle clock ranging from 61 Hz to 4 MHz at a 16MHz operating frequency.To configure the Timer/Counter 2 as a clock generator, bit C/T2 (T2CON.1) must be cleared and bit T2OE (T2MOD.1) must be set. Bit TR2 (T2CON.2) starts and stops the timer. The clock-out frequency depends on the oscillator fre-quency and the reload value of Timer 2 capture registers (RCAP2H, TCAP2L), as shown in the following equation: In the clock-out mode, Timer 2 roll-overs will not generate an interrupt. This behavior is similar to when Timer 2 is used as a baud-rate generator. It is possible to use Timer 2 as a baud-rate generator and a clock generator simulta-neously. Note, however, that the baud-rate and clock-out frequencies cannot be determined independently from one another since they both use RCAP2H and RCAP2L.UARTThe UART in the AT89C55 operates the same way as the UART in the AT89C51 and AT89C52. For further informa-tion, see the Microcontroller Data Book, section titled,“Serial Interface.”InterruptsThe AT89C55 has a total of six interrupt vectors: two exter-ers 0, 1, and 2), and the serial port interrupt. These inter-rupts are all shown in Figure 6.Each of these interrupt sources can be individually enabled or disabled by setting or clearing a bit in Special Function Register IE. IE also contains a global disable bit, EA, which disables all interrupts at once.Note that Table 5 shows that bit position IE.6 is unimple-mented. In the AT89C51 and AT89LV51, bit position IE.5 is also unimplemented. User software should not write 1s to these bit positions, since they may be used in future AT89 products.Timer 2 interrupt is generated by the logical OR of bits TF2 and EXF2 in register T2CON. Neither of these flags is cleared by hardware when the service routine is vectored to. In fact, the service routine may have to determine whether it was TF2 or EXF2 that generated the interrupt, and that bit will have to be cleared in software.Table 5.Interrupt Enable (IE) RegisterFigure 6. Interrupt SourcesThe Timer 0 and Timer 1 flags, TF0 and TF1, are set at S5P2 of the cycle in which the timers overflow. The values are then polled by the circuitry in the next cycle. However,Clock-Out FrequencyOscillator Frequency4655536RCAP2H,RCAP2L)(–[]×----------------------------------------------------------------------------------------------=(MSB)(LSB)EA—ET2ES ET1EX1ET0EX0Enable Bit = 1 enables the interrupt.Enable Bit = 0 disables the interrupt.Symbol Position FunctionEA IE.7Disables all interrupts. If EA=0, nointerrupt is acknowledged. If EA =1, each interrupt source isindividually enabled or disabled bysetting or clearing its enable bit.—IE.6Reserved.ET2IE.5Timer 2 interrupt enable bit.ES IE.4Serial Port interrupt enable bit.ET1IE.3Timer 1 interrupt enable bit.EX1IE.2External interrupt 1 enable bit.ET0IE.1Timer 0 interrupt enable bit.EX0IE.0External interrupt 0 enable bit.User software should never write 1s to unimplemented bits,because they may be used in future AT89 products.the Timer 2 flag, TF2, is set at S2P2 and is polled in the same cycle in which the timer overflows. For further infor-mation, see the Microcontroller Data Book, section titled “Interrupts.”Oscillator CharacteristicsXTAL1 and XTAL2 are the input and output, respectively, of an inverting amplifier that can be configured for use as an on-chip oscillator, as shown in Figure 7. Either a quartz crystal or ceramic resonator may be used. To drive the device from an external clock source, XTAL2 should be left unconnected while XTAL1 is driven, as shown in Figure 8. There are no requirements on the duty cycle of the external clock signal, since the input to the internal clocking circuitry is through a divide-by-two flip-flop, but minimum and maxi-mum voltage high and low time specifications must be observed.Idle ModeIn idle mode, the CPU puts itself to sleep while all the on-chip peripherals remain active. The mode is invoked by software. The content of the on-chip RAM and all the spe-cial functions registers remain unchanged during this mode. The idle mode can be terminated by any enabled interrupt or by a hardware reset.Note that when idle mode is terminated by a hardware reset, the device normally resumes program execution from where it left off, up to two machine cycles before the internal reset algorithm takes control. On-chip hardware inhibits access to internal RAM in this event, but access to the port pins is not inhibited. To eliminate the possibility of an unexpected write to a port pin when idle mode is termi-nated by a reset, the instruction following the one that invokes idle mode should not write to a port pin or to exter-nal memory.Figure 7. Oscillator ConnectionsNote:C1,C2 = ± 30 pF for Crystals=±40 pF for Ceramic Resonators Figure 8. External Clock Drive ConfigurationStatus of External Pins During Idle and Power Down ModesMode Program Memory ALE PSEN PORT0PORT1PORT2PORT3 Idle Internal11Data Data Data Data Idle External11Float Data Address Data Power Down Internal00Data Data Data Data Power Down External00Float Data Data DataPower Down ModeIn the power down mode, the oscillator is stopped, and the instruction that invokes power down is the last instruction executed. The on-chip RAM and Special Function Regis-ters retain their values until the power down mode is termi-nated. The only exit from power down is a hardware reset. Reset redefines the SFRs but does not change the on-chip RAM. The reset should not be activated before V CC is restored to its normal operating level and must be held active long enough to allow the oscillator to restart and sta-bilize.Program Memory Lock BitsThe AT89C55 has three lock bits that can be left unpro-grammed (U) or can be programmed (P) to obtain the addi-tional features listed in the following table.When lock bit 1 is programmed, the logic level at the EA pin is sampled and latched during reset. If the device is pow-ered up without a reset, the latch initializes to a random value and holds that value until reset is activated. The at that pin in order for the device to function properly.Lock Bit Protection ModesProgramming the FlashThe AT89C55 is normally shipped with the on-chip Flash memory array in the erased state (that is, contents = FFH) and ready to be programmed. The programming interface accepts either a high-voltage (12-volt) or a low-voltage (V CC) program enable signal. The low voltage programming mode provides a convenient way to program the AT89C55 inside the user’s system, while the high-voltage program-ming mode is compatible with conventional third party Flash or EPROM programmers.The AT89C55 is shipped with either the high-voltage or low-voltage programming mode enabled. The respective top-side marking and device signature codes are listed in following table. The AT89C55 code memory array is programmed byte-by-byte in either programming mode. To program any non-blank byte in the on-chip Flash Memory, the entire memory must be erased using the Chip Erase Mode. Programming Algorithm: Before programming the AT89C55, the address, data and control signals should be set up according to the Flash programming mode table and Figures 9 and 10. To program the AT89C55, take the fol-lowing steps:1.Input the desired memory location on the address lines.2.Input the appropriate data byte on the data lines.3.Activate the correct combination of control signals.4.PP to 12V for the high-voltage programmingmode.5.Pulse ALE/PROG once to program a byte in the Flasharray or the lock bits. The byte-write cycle is self-timed and typically takes no more than 1.5 ms. Repeat steps1 through 5, changing the address and data for theentire array or until the end of the object file is reached.Program Lock BitsLB1LB2LB3Protection Type1U U U No program lock features.2P U U MOVC instructions executed from external program memory are disabled from fetching code bytes from internal memory, EA is sampled and latched on reset, and further programming of the Flash memory is disabled.3P P U Same as mode 2, but verify is also disabled.4P P P Same as mode 3, but external execution is also disabled.V PP = 12V V PP = 5VT op-Side Mark A T89C55A T89C55 xxxx xxxx-5 yyww yywwSignature (030H) = 1EH(030H) = 1EH (031H) = 55H(031H) = 55H (032H) = FFH(032H) = 05HData Polling: The AT89C55 features Data Polling to indi-cate the end of a write cycle. During a write cycle, an attempted read of the last byte written will result in the com-plement of the written data on PO.7. Once the write cycle has been completed, true data is valid on all outputs, and after a write cycle has been initiated.Ready/Busy: The progress of byte programming can also low after ALE goes high during programming to indicate BUSY. P3.4 is pulled high again when programming is done to indicate READY.Program Verify: If lock bits LB1 and LB2 have not been programmed, the programmed code data can be read back via the address and data lines for verification. The lock bits cannot be verified directly. Verification of the lock bits is achieved by observing that their features are enabled.Chip Erase: The entire Flash array is erased electrically by using the proper combination of control signals and by with all 1s. The chip erase operation must be executed before the code memory can be reprogrammed.Reading the Signature Bytes: The signature bytes are read by the same procedure as a normal verification of locations 030H, 031H, and 032H, except that P3.6 and P3.7 must be pulled to a logic low. The values returned are as follows.(030H) = 1EH indicates manufactured by Atmel (031H) = 55H indicates 89C55(032H) = FFH indicates 12V programming (032H) = 05H indicates 5V programmingProgramming InterfaceEvery code byte in the Flash array can be written, and the entire array can be erased, by using the appropriate combi-nation of control signals. The write operation cycle is self-timed and once initiated, will automatically time itself to completion.All major programming vendors offer worldwide support for the Atmel microcontroller series. Please contact your local programming vendor for the appropriate software revision.Figure 9. Programming the Flash Memory*Programming address line A14 (P3.0) is not the same as the external memory address line A14 (P2.6)Figure 10. Verifying the Flash Memory。

AT89C55

AT89C55

主要性能参数:·与MCS—51产品指令和引脚完全兼容·20K字节可重擦写Flash闪速存储器·1000次擦写周期·全静态擦写周期:0Hz—33Hz·三级加密程序存储器·256*8字节内部RAM·32个可编程I/O口线·三个16位定时/计数器·8个中断源·低功耗空闲和掉电模式功能特性概述:这个AT89C55的是一种低功耗,高性能8位CMOS单片机,具有20K字节可重擦写Flash闪速存储器,该设备是采用Atmel的高密度非易失性内存技术,并与业界标准80C51指令集和引脚兼容,片上闪存程序存储器可重新编程的系统或由传统的非易失性内存编程通过将通用的8位CPU与Flash在monolithicchip芯片,奥特拉AT89C55的是一个强大的微型计算机提供了一个高度灵活和成本有效地解决许多嵌入式控制应用.引脚配置:方框图:该AT89C55的标准提供了以下功能:20,000字节的闪存,256内存,32个字节/ O线,三个16位定时器/计数器,6向量两级中断结构,全双工串行端口,片上振荡器和时钟电路。

此外,A T89C55的目的是为降低到零频率静态逻辑,支持两种软件可选省电模式.空闲模式停止的CPU,同时允许RAM工作,定时器/计数器,串行端口和中断系统继续运作.运作。

在掉电模式保存RAM的内容,但冻结振荡器,禁用直到下一个硬件复位所有其他片上功能运作。

在掉电模式保存RAM的内容,但冻结振荡器,禁用直到下一个硬件复位所有其他片上功能。

引脚说明:Vcc:电源供电GND:地P0 口:P0口是一个8位漏极开路的双向I/O口.作为输出口,每位能驱动8个TTL逻辑电平。

对P0端口写“1"时,引脚用作高阻抗输入。

当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用.在这种模式下,P0具有内部上拉电阻.在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。

跟我来作EZ编程器(AT89C51 52 55)

跟我来作EZ编程器(AT89C51 52 55)

深圳石学军AT89C51是一款应用最为广泛的8051单片机,更重要的是他具有反复烧写(FLASH)的特性。

一般情况下可重复烧写1000次,这样为初学者试验提供了一个廉价的平台。

为了满足广大单片机爱好者动手的需要,本人利用半个月的时间,参考国外资料,实际设计制作成功一款简单的AT89C51/52/55单片机编程器。

由于单片机编程时序不同,这一款编程器仅仅支持ATMEL公司的AT89C51, AT89C52, AT89C55芯片,不支持华邦或飞利浦兼容芯片。

对于很多像我这样一些不算太年轻的从80年代组装7管半导体收音机入门的电子爱好者来说,面对单片机似乎显得有点怯场,但是事实上我以为他甚至比组装一个收音机更简单:以下是它的硬件电路图,稍微有一点耐心,完全可以用面包板搭焊。

为了方便大家制作,我把电路简化设计下:Q2, Q4以及周围的几个元件构成了电平转换电路,这样节省了1片max 232芯片,在要求不高的场合,这个电路在单片机通信中可以取代MAX232。

Q1, R2,R4,DW2,4个元件为编程器提供烧写用12V电压,其中,R4, R2构成了分压电路;平时,监控芯片89C51第13脚(P3.3)输出高电平,Q1导通,R2(1K)将DW2(12V)拉低,此时DW2电压由R4,R2 分压,大约3-5V 之间;当写程序时,监控芯片第13脚(P3.3)输出低电平,Q1截止,DW2(12V)直接送到被烧芯片的31脚,从而提供烧写电压。

ATMEL官方网站提供的编程器器烧写电压是用LM317调整得到的,并且用到了两个高精度电阻,电路复杂且成本高,该电路经过本人数百台的实验证明非常稳定可靠,下图是笔者设计组装成功的样品.电源变压器要求为15V的电源,例如常见的3-12V直流可调电源,注意其空载电压不要低于13V , 滤波应好一些,否则可能出现编程不可靠的情况。

监控芯片用IC座安装,另外找一个编程器烧写好监控程序EZ51.HEX后插入,方便调试。

AT89C55及其资源开发程序

AT89C55及其资源开发程序

AT89C55及其资源开发程序
王秀芝;栗霄立;王秀莲
【期刊名称】《微处理机》
【年(卷),期】2001(000)002
【摘要】简要介绍了AT89C55的主要功能及特点。

在应用单片机的实践中,总结了开发其硬rn件资源的经验,并将若干用于这些资源开发的实用程序或框图列举出来以飨读者。

%The paper simply introduces main function and characteristic of AT89C55. The writer presets application program and flow diagram on application experience for developing hardware sources.
【总页数】4页(P47-50)
【作者】王秀芝;栗霄立;王秀莲
【作者单位】中国医科大学;中国医科大学;中国医科大学
【正文语种】中文
【中图分类】TP3
【相关文献】
1.煤炭资源开发的战略环境评价程序初探 [J], 翟银波;李绍生
2.C语言程序设计交互式微课程资源开发应用 [J], 孙兆东;葛日波
3.“C语言程序设计”教学资源开发探索 [J], 胡春安;王俊岭
4.小学教师课程资源开发的问题、程序与策略 [J], 王盼;孔锴
5.体育课程资源开发原则、程序及效果评价 [J], 李传兵;许昌
因版权原因,仅展示原文概要,查看原文内容请购买。

关于at89c 系列单片机的编程介绍

关于at89c 系列单片机的编程介绍

关于at89c 系列单片机的编程介绍AT89C 系列单片机是一种常用的微控制器,广泛应用于各种嵌入式系统。

以下是关于AT89C 系列单片机的编程介绍:1. 编程语言:AT89C 系列单片机通常使用C 语言或汇编语言进行编程。

C 语言是一种高级编程语言,易于学习且具有可移植性,因此被广泛用于嵌入式系统开发。

汇编语言是一种低级编程语言,可以直接与硬件交互,适用于对性能要求较高的场合。

2. 开发环境:为了进行AT89C 系列单片机的编程,需要选择一个适合的开发环境。

常见的开发环境包括Keil C、IAR Embedded Workbench 等。

这些开发环境都支持C 语言和汇编语言的编辑、编译和调试。

3. 编程步骤:a. 确定硬件配置:在编程之前,需要确定单片机的型号、外设和连接的硬件配置。

b. 编写代码:使用C 语言或汇编语言编写程序代码。

c. 编译代码:将编写好的代码编译为目标文件或可执行文件。

d. 调试程序:将目标文件或可执行文件下载到单片机中进行调试,确保程序能够正常运行。

e. 烧录程序:调试完成后,将程序烧录到单片机的Flash 存储器中,以便单片机在运行时能够从Flash 中读取程序。

4. 注意事项:a. 单片机的工作电压和时钟频率需要符合规格要求。

b. 在编程时需要注意单片机的资源限制,如Flash 存储器的容量、RAM 的大小等。

c. 在编写程序时需要注意单片机的寄存器和外设的操作方式,以及数据格式和通信协议等。

d. 在调试程序时需要注意观察单片机的状态和输出结果,以便及时发现问题并进行修正。

总之,AT89C 系列单片机的编程需要掌握C 语言或汇编语言的基础知识,并熟悉单片机的硬件配置和外设操作方式。

通过不断实践和学习,可以逐步提高自己的编程水平和嵌入式系统开发能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

主要性能参数:·与MCS-51产品指令和引脚完全兼容·20K字节可重擦写Flash闪速存储器·1000次擦写周期·全静态擦写周期:0Hz—33Hz·三级加密程序存储器·256*8字节内部RAM·32个可编程I/O口线·三个16位定时/计数器·8个中断源·低功耗空闲和掉电模式功能特性概述:这个AT89C55的是一种低功耗,高性能8位CMOS单片机,具有20K字节可重擦写Flash 闪速存储器,该设备是采用Atmel的高密度非易失性内存技术,并与业界标准80C51指令集和引脚兼容,片上闪存程序存储器可重新编程的系统或由传统的非易失性内存编程通过将通用的8位CPU与Flash在monolithicchip芯片,奥特拉AT89C55的是一个强大的微型计算机提供了一个高度灵活和成本有效地解决许多嵌入式控制应用。

引脚配置:方框图:该AT89C55的标准提供了以下功能:20,000字节的闪存,256内存,32个字节/ O线,三个16位定时器/计数器,6向量两级中断结构,全双工串行端口,片上振荡器和时钟电路。

此外,AT89C55的目的是为降低到零频率静态逻辑,支持两种软件可选省电模式。

空闲模式停止的CPU,同时允许RAM工作,定时器/计数器,串行端口和中断系统继续运作。

运作。

在掉电模式保存RAM的内容,但冻结振荡器,禁用直到下一个硬件复位所有其他片上功能运作。

在掉电模式保存RAM的内容,但冻结振荡器,禁用直到下一个硬件复位所有其他片上功能。

引脚说明:Vcc:电源供电GND:地P0 口:P0口是一个8位漏极开路的双向I/O口。

作为输出口,每位能驱动8个TTL逻辑电平。

对P0端口写“1”时,引脚用作高阻抗输入。

当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。

在这种模式下,P0具有内部上拉电阻。

在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。

程序校验时,需要外部上拉电阻。

P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。

对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。

在flash编程和校验时,P1口接收低8位地址字节。

P2口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。

对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2 口送出高八位地址。

在这种应用中,P2 口使用很强的内部上拉发送1。

在使用8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。

在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个TTL 逻辑电平。

对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。

在flash编程和校验时,P3口也接收一些控制信号。

RST:复位输入。

关于这两个机器周期针高,而振荡器运行重置设备。

:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。

在flash编程时,此引脚()也用作编程输入脉冲。

在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。

然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。

如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。

这一位置“1”,ALE 仅在执行MOVX 或MOVC指令时有效。

否则,ALE 将被微弱拉高。

这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。

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

在此期间,当访问外部数据存储器,将跳过两次信号。

:外部访问允许。

欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),端必须保持低电平(接地)。

需注意的是:如果加密位被编程,复位时内部会锁存EA端状态。

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

Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。

XTAL1:振荡器反相放大器及内部时钟发生器的输入端。

XTAL2:振荡器反相放大器的输出端。

用户软件写入1秒不应该对这些非上市地点,因为它们可用于未来的产品援引新功能。

在这种情况下,重置或新位无效值将始终为0。

定时器2:控制和状态位载于登记T2CON(见表2)和T2MOD(见表4定时器2)。

登记册对(RCAP2H,RCAP2L的)是捕捉/定时器2装入寄存器的16位捕捉模式或16位自动重载模式。

中断寄存器:个别中断使能位在IE名册。

两个优先事项可以设定6个中断源的IP每册。

数据存储器:AT89C52有256个字节的内部RAM,高128个字节与特殊功能寄存器(SFR)地址是重叠的,也就是高128字节的RAM和特殊功能寄存器的地址的相同的,但物理上它们是分开的。

当一条指令访问7FH以上的内部地址单元时,指令中使用的寻址方式是不同的,也即寻址方式决定是访问高128字节RAM还是访问特殊功能寄存器。

如果指令是直接寻址方式则为访问特殊功能寄存器。

例如,下面的直接寻址指令访问特殊功能寄存器0A0H(即P2口)地址单元。

MOV 0A0H,#data间接寻址指令访问高128字节RAM,例如,下面的间接寻址中,R0的内容为0A0H,则访问数据字节地址为0A0H,而不是P2口(0A0H).MOV @R0,#data堆栈操作也是间接寻址方式,所以,高128位数据RAM亦可作为堆栈区使用。

表1 AT89S52 特殊寄存器映象及复位值表2 T2CON:定时器/计数器2控制寄存器定时器0和定时器1:AT89C52的定时器0和定时器1的工作方式与A T89C51相同。

定时器2:定时器2是一个16位定进/计数器。

它既可当定时器使用,也可作为外部事件计数器使用,其工作方式由特殊功能寄存器T2CON的C/T2位选择。

定时器2有三种工作方式:捕获方式,自动重装载(向上或向下计数)方式和波特率发生器方式,工作方式由T2CON的控制位来选择,如表3所示:定时器2由两个8位寄存器TH2和TL2组成,在定时器工作方式中,每个机器周期TL2寄存器的值加1,由于一个机器周期由12个振荡时钟构成,因此,计数速率的1/12.在计数工作方式时,当T2引脚上外部输入信号产生由1至9的下降沿时,寄存器的值加1,在这种工作方式下,每个机器周期的5SP2期间,对外部输入进行采样。

若在第一个机器周期中采到的值为1,而在下一个机器周期中采到的值为9,则在紧跟综着的下一个周期的S3P1期间寄存器加1.由于识别1至0的跳变需要2个机器周期(24个振荡周期),因此,最高计数速率为振荡频率的1/24.为确保采样的正确性,要求输入的电平在变化前至少保持一个完整周期的时间,以保证输入信号至少被采样一次。

表3 定时器2工作模式捕获方式:在捕获方式下,通过T2CON控制位EXEN2来选择两种方式。

如果EXEN2=0,定时器2是一个16位定时器或计数器,计数溢出时,对T2CON的溢出标志TF2置位,同时激活中断。

如果EXEN2=1,定时器2完成相同的操作,而当T2EX引脚外部输入信号发生1至0负跳变时,也出现TH2和TL2中的值分别被捕获到RCAP2H和RCAP2L中。

另外,T2EX 引脚信号的跳变使得T2CON中的EXF2置位,与TF2相仿,EXF2也会激活中断。

捕获方式如下表所示:图1 定时器2的捕捉模式表4 T2MOD-定时器2控制寄存器·自动重装载(向上或向下计数器)方式:当定时器2工作于16位自动重装载方式时,能对其编程为向上或向下计数方式,这个功能可通过特殊寄存器T2CON的DCEN位(允许向下计数)来选择的。

复位时,DCEN位置“0”,定时器2默认设置为向上计数。

当DCEN置位时,定时器2既可向上计数也可向下计数,这取决于T2EX引脚的值,参见下图,当DCEN=0时,定时器2自动设置为向上计数,在这种方式下,T2CON中的EXEN2控制位有两种选择,若EXEN2=0,定时器2为向上计数至0FFFFH溢出,置位TF2激活中断,同时把16位计数寄存器RCAP2H和RCAP2L 重装载,RCAP2H和RCAP2L的值可由软件预置,如果中断允许,同样产生中断。

切换的EXF2置位时,定时器2溢出位,可作为第17位使用。

在这种运营模式,没有标志位EXF2中断。

图3 定时器2自动重载(DCEN=1)图4 定时器2 波特率发生器模式·波特率发生器:当T2CON中的TCLK和RCLK置位时,定时/计数器2作为波特率发生器使用。

如果定时/计数器2作为发送器或接收器,其发送和接收的波特率可以是不同的,定时器1用于其它功能,如图7所示。

若RCLK和TCLK置位,则定时器2工作于波特率发生器方式。

波特率发生器的方式与自动重装载方式相仿,在此方式下,TH2翻转使定时器2的寄存器用RCAP2H和RCAP2L中的16位数值重新装载,该数值由软件设置。

在方式1和方式3中,波特率由定时器2的溢出速率根据下式确定:定时器既能工作于定时方式也能工作于计数方式,在大多数的应用中,是工作在定时方式(C/T2=0).定时器2作为波特率发生器时,与作为定时器的操作是不同的,通常作为定时器时,在每个状态时间(1/2振荡频率)寄存器的值加1。

波特率的计算公式如下:式中(RCAP2H,RCAP2L)是RCAP2H和RCAP2L中的16位无符号数。

定时器2作为波特率发生器使用的电路如图4所示。

T2CON中的RCLK或TCLK=1时,波特率工作方式才有效。

在波特率发生器工作方式中,TH2翻转不能使TF置们,故不能产生中断。

相关文档
最新文档