AT89C52单片机资料手册
AT89S52 单片机开发板实验手册 说明书
AT89S52单片机开发板实验手册概述:AT89S52多功能单片机开发板特点:1. 板载资源丰富,常见的控制对象基本已经包括.2. 采用在系统方式(ISP)编程,通过下载电路下载程序,不用烧录器即可下载程序,调试方便.3. 可由直流稳压电源或通过USB数据线供电.按键保持的电源开关,连接线路时只用按一下即可断开电源.扩展了若干个电源接口,板上电源可以外接给其他电路板使用.4. 所有板上资源均用排针引出,可方便用ARM,DSP或其他控制器控制.5. 红外发射/接收 ,PS/2接口接入键盘,时钟芯片,数字温度计测温等模块的程序编成了子函数,已经模块化,工程应用需要时可以直接调用.6. 配套光盘提供程序,常用软件(编译软件,烧录软件,字模提取,串口上位机软件,C语言所有库函数等),视频教程(主要为计算机屏幕操作的录像),开发板用户手册,原理图,器件 Datasheet等.配套提供的所有程序均可直接运行,注释已经尽量详细,能满足从单片机 入门到进阶的需要.7. 基于以上各模块,提供了综合应用的实例,即:可通过PC机键盘或通过红外发射进行控制的电子万年历等.(具体见实验介绍).本开发板含有如下功能模块:01. 流水灯 (控制8个超亮LED闪烁)02. 方波,PWM信号输出03. 按键中断04. 四位数码管动态显示05. 计数脉冲信号并显示06. 报警与音乐演奏07. 4×4键盘扩展08. 看门狗+上电自动复位+手动复位+电源监控09. 128*64点阵式液晶显示 (可显示画面和文字等)10. RS232串行通讯 (单片机通过串口与PC机进行通讯,板上数码管和上位机软件均可显示通讯的数据,提供上位机软件)11. 红外信号发射与接收 (单片机控制红外二极管发射红外信号并接收信号,也可以通过遥控器发射,单片机控制接收信号并处理)12. 温度测量13. I2C接口的E2PROM (AT24C08,8K容量,可用于断电时存储数据等场合,单片机软件模拟I2C总线协议与之通讯)14. 时钟芯片 (扩展时钟芯片以获取年/月/日,当前时间,星期等信息)15. PS2接口 (可外接PC机的键盘做系统的输入)16. 可通过键盘/红外遥控控制的电子万年历 (液晶屏显示年/月/日,当前时间,星期,闹铃定闹的时间,倒计时状态等;可以修改闹铃时间和倒计时的起始时间;可显示环境温度;可通过PS/2接口接入键盘或通过红外发射来校正时间,开/关闹铃等.)实验注意事项:1. 板上扩展有两个电源接口(接线柱),正负极已经标出,外接时极性不能接反.2. 通电时,最好不要用手拿着电路板,防止短路;接线时最好断开电源(开关为J1).3. 调试出现故障注意查看复位电路是否接入(最好直接接上上电自动复位电路(即J14中将上电自动复位端和复位端用短路冒短接,接好后还可以通过S17手动复位),看门狗复位可以在后面再接入).4. 下载程序时单片机P1.5,P1.6,P1.7三个脚禁止接到功能模块,否则会影响程序下载.程序比较大时,5K,6K或以上的代码时,下载可能比较慢,如果下载失败,一般重试一次即可成功下载.5. 由于并口的影响,断开电源时可能发光LED也有微弱发光,为正常现象.6. 程序以光盘中程序目录下的为准.7. 数码管和液晶不能同时接入系统,否则任一部分都不能正常使用.编程软件和烧录软件等的使用见视频教程.如有疑问可到论坛发帖.实验目录(Ⅰ)基本实验1. 流水灯-------------------------------------------------------------------------------------------42. 方波-PWM信号输出 --------------------------------------------------------------------------63. 按键中断----------------------------------------------------------------------------------------84. 四位数码管动态显示-------------------------------------------------------------------------105. 计数脉冲信号并显示-------------------------------------------------------------------------126. 报警与音乐演奏-------------------------------------------------------------------------------137. 4×4键盘扩展----------------------------------------------------------------------------------138. 看门狗+上电自动复位+手动复位+电源监控----------------------------------------------149. 128*64点阵式液晶显示 ------------------------------------------------------------------1410. RS232串行通讯------------------------------------------------------------------------------1511. 红外信号发射与接收-------------------------------------------------------------------------1612. 温度测量---------------------------------------------------------------------------------------2313. I2C接口的E2PROM--------------------------------------------------------------------------2314. 时钟芯片---------------------------------------------------------------------------------------2415. PS2接口---------------------------------------------------------------------------------------24(Ⅱ)综合实验16. 可调式电子万年历-------------------------------------------------------25 综合应用的实例会不断添加,敬请关注我们的网站.(Ⅰ)基本实验1.流水灯实验内容:利用单片机I/O口输出高低变化的电平,控制流水灯按程序设置的功能闪烁.接线说明J7接入单片机P0口.注意:单片机端口有两种操作方式,一种是写端口,如 P0=0xff; 另一种是读端口,如if(P0==0xff) ,即读I/O口P0的状态,值为0xff 时满足条件.程序清单:/***************************************************************函数功能: 控制8个流水灯闪烁接线说明: 流水灯接线柱接到P0口学习内容: 单片机IO口(输入/输出)的应用整理时间: 2006-10 ****************************************************************/#include<reg52.h>delay(int k); //延时函数预定义main(){int i;int data1=0x7f;int data2=0xfe;while(1){int abb=0xfe; //变量abb赋初值for(i=0;i<8;i++){P0=abb;delay(1000); //延时1秒abb=abb<<1; //8个灯依次点亮}P0=0xff; //8个灯均灭delay(1000);abb=0x7f;for(i=0;i<8;i++){P0=abb;delay(1000);abb=abb>>1; //8个灯换个方向依次点亮}P0=0xff; //8个灯均灭delay(1000);P0=0x00; //8个灯均灭delay(1000);P0=0xff; //8个灯均灭delay(1000);}}delay(int k) //延时函数,大致延时K毫秒{int d,n;for(d=0;d<k;d++){for(n=0;n<125;n++){;} //由经验值,12M晶振时大概的延时时间(延时1ms) }}2.方波输出<1>. 利用板上NE555组成振荡器产生方波.占空比及周期可以通过相关电阻,电容的数值计算得出.(线路已经接好,上电后L2即开始闪烁)<2>. 通过单片机定时器产生方波通过设定定时器的定时值,计数值满时溢出产生中断,在中断服务程序中使相应管脚输出电平反相,从而产生方波信号.接线说明:单片机P1.2接到流水灯上(J7)的任意一个程序清单:/*********************************************************************** 函数功能: 利用内部定时器输出方波控制流水灯接线说明: P1.2接到流水灯上(J7)的任意一个学习内容: 单片机内部定时器/计数器的应用编程思想: 单片机内部定时器最大定时值不超过一秒, 可以用累加的方式增加定时时间整理时间: 2006-10 ***********************************************************************/ #include <reg52.h>int time=0;sbit P1_2=P1^2; //定义控制脚void timeout1() interrupt 1 using 2 //定时器0的中断服务程序{if(++time==100) //延时100*10ms(即1秒)时输出反向{P1_2=~P1_2;time=0;}TH0=(65536-10000)/256; //重装数据,延时10msTL0=(65536-10000)%256;TR0=1;}main(){TMOD=TMOD&0xf0|0x01; //定时器0工作在方式1EA=1;ET0=1;TH0=(65536-10000)/256; //延时10msTL0=(65536-10000)%256;TR0=1;while(1){;}}<3>.单片机输出PWM波形输出PWM信号的原理与产生方波大致一样.设定一个数组,存入不同的延时值,定时器装入初值,溢出后产生中断,在中断服务取出数组中的定时值赋给定时器的数据寄存器 , 从而产生PWM波形.高低电平的维持时间有数组的值决定.接线说明:单片机I/O口P1.0接到流水灯上的任意一个.程序清单:/*******************************************************************函数功能: 利用内部定时器输出PWM信号控制流水灯接线说明: P1.0接到流水灯上的任意一个学习内容: 单片机内部定时器/计数器的应用编程思想: 输出低电平1000微秒,高电平15000微秒(12M的晶振时),可应用于电力电子技术中升压斩波电路等做IGBT的触发信号等.整理时间: 2006-10 *******************************************************************/#include <reg52.h>sbit P1_0=P1^0; //定义变量P1_0代表I/O口P1口的0脚bit i=0;int tab[2]={1000,15000};void timeserver() interrupt 3 using 3 //定时器1中断服务程序{P1_0=~P1_0; //输出取反i=~i;TH1=(65536-tab[i])/256;TL1=(65536-tab[i])%256;TR1=1;}main(){P1_0=0;TMOD=TMOD&0x0f|0x10; //不改变定时器0的工作状态,定时器1工作于方式1 TH1=(65536-tab[i])/256; //定时器存入初值TL1=(65536-tab[i])%256;EA=1; //CPU开中断TR1=1; //定时器1开始工作while(1){;} //等待定时器中断}3.按键中断通过设定单片机中断的形式,如下降沿产生中断或低电平产生中断.按键输入低电平到相应中断输入管脚,单片机识别出中断信号,如果CPU和相应外部中断使能有效(即EA---CPU中断使能位,EX0,EX1---外部中断使能位),则进入中断服务程序.接线说明:中断按键的线路已经连接好,不用另外接线. 数码管用跳线冒接入(即AA连接到P0.0,BB 连接到P0.1依次接入,CON1…CON4分别接到P2.7……P2.4)程序清单:/****************************************************************函数功能: 利用内部中断控制数码管显示接线说明: 数码管用跳线冒接入学习内容: 单片机中断(外部)的应用编程思想: 单片机识别出中断0或中断1就转向中断服务程序整理时间: 2006-10 *****************************************************************/#include <reg52.h>bit flag1=0,flag2=0;void service_int1() interrupt 0 //外部中断0的中断服务程序,0为中断源序号,2为//使用的寄存器(可更改){flag1=1; //允许数码管显示数据}void service_int2() interrupt 2 //外部中断1的中断服务程序{flag2=1; //允许数码管显示数据}void delay() //延时程序{int j;for(j=32400;j>0;j--){;}}void main(){EX0=1; //开外部中断EX1=1;EA=1; //开CPU中断P0=0x00;P2=0xff;IP=0x04; //设置中断优先级,外部中断0的级别设为最高,外部中断1和其他中断同级//不设优先级则按单片机硬件决定while(1){P0=0x00;P2=0xff;if(flag1==1){P0=0xd5; //显示 3P2=0x00;flag1=0;delay();}if(flag2==1){P0=0xdb; //显示 6P2=0x00;flag2=0; //清除显示使能delay();}}}4. 四位数码管动态显示数码管每个显示数字共用数据线(8根线),每个分别有一个使能管脚,显示数据采用隐消的编程方法,即每一位显示一段时间再轮换.接线说明:数码管用跳线冒接入(即AA连接到P0.0,BB连接到P0.1依次接入,CON1…CON4分别接到P2.7……P2.4).数码管何液晶不能同时接入系统,否则任一部分都不能正常使用.程序清单:/************************************************************************* 函数功能: 数码管数值动态显示接线说明: 用跳线冒接入数码管学习内容: 常用的输出显示器件的编程应用编程思想: 用隐消的方法实现数码管的动态显示,显示部分整理成库文件,方便以后直接应用整理时间: 2006-10 *************************************************************************/ #include <reg52.h>#include <LED8888.h> //调用封装好的显示库函数main(){int j,k;k=1286; //显示值,实现数值累加显示while(1){for(j=1;j<70;j++){Led(k); //数码显示}k+=1;}}以下为 LED8888.hchar shuju[10]={0x5f,0x44,0x9d,0xd5,0xc6,0xd3,0xdb,0x45,0xdf,0xd7}; //数码管显示数字0-9void led8888_Delay(int j) //延时函数{int m;for(m=0;m<j;m++){i;intfor(i=0; i<300; i++){;} //约1ms}}void Led(int k){if(k>999){P2=P2&0x7f; //P2.7输出低电平,选通千位数P0=shuju[k/1000]; //取千位数led8888_Delay(2); //延时P2=P2|0xff; //销隐}if(k>99){P2=P2&0xbf; //P2.6输出低电平,选通百位数P0=shuju[k%1000/100]+0x20; //取出百位数,点亮数码管百位后的那一点led8888_Delay(2); //延时P2=P2|0xff; //销隐}if(k>9){P2=P2&0xdf; //P2.5输出低电平,选通十位数P0=shuju[k%100/10]; //取十位数led8888_Delay(2); //延时P2=P2|0xff; //销隐}if(k>=0){P2=P2&0xef;P0=shuju[k%10]; //取出个位数led8888_Delay(2);P2=P2|0xff;}}5. 计数脉冲信号并显示利用单片机计数器功能,计数外部输入的脉冲信号,计算得出频率值.接线说明:FIN接入单片机I/O口P3.5.数码管接入程序清单:/********************************************************************** 函数功能: 计数外部(555电路)的脉冲接线说明: FIN接入单片机I/O口P3.5.学习内容: 单片机内部定时器/计数器的应用整理时间: 2006-10 **********************************************************************/ #include <reg52.h>#include <LED8888.h>int count=0; //显示值赋初值main(){TMOD=0x55; //计数器1工作在方式1TL1=(65536-5)%256; //设置初值,计数4次后产生定时/计数器中断TH1=(65536-5)/256;TR1=1; //启动计数器EA=1; //开CPU中断,不开中断也行,没有用到计数器中断 ET1=1;while(1){count=TL1; //显示当前计数值Led(count);}}6. 报警与音乐演奏通过单片机内部定时器,输出频率改变的信号给讯响器电路,并改变节拍即可产生音乐.程序参见光盘部分.接线说明:NC接到单片机I/O口P1.27. 4×4键盘扩展原理:采用矩阵扫描的形式, 识别按键,然后转入相应处理,程序参见光盘部分.接线说明:接线柱J16接到单片机P1口.(J16的第一个脚对应接P1.0),数码管接入.8. 看门狗+上电自动复位电路+手动复位电路+电源监控外部看门狗: 采用MAX813L,程序跑飞时可以强制复位,相当于一个定时器,有一个设定的计数值,计数没有溢出之前将其计数值清零,然后重新计数,这个过程即:”喂狗”,如果在计数溢出之前没有清零,则计数器溢出,从而产生强制复位信号.工业控制干扰大的场合必用看门狗电路防止出现意外事故.附带功能:电源检测功能,当电源电压低于门限值时相关引脚电平跳变,可以输入到单片机中断口,使单片机保存数据等. 程序参见光盘部分.接线说明:NF接到P3.2,NG接到P1.4,J14中将看门狗输出与复位脚用短路冒短接起来。
STC89C52单片机用户手册
STC89C52单片机用户手册一、概述STC89C52 单片机是一款高性能、低功耗的 8 位微控制器,具有丰富的片内资源和强大的功能,广泛应用于各种电子设备和控制系统中。
二、主要特点1、增强型 8051 内核,指令代码完全兼容传统 8051 单片机。
2、工作电压范围宽,可在 38V 55V 之间正常工作。
3、片内集成 8K 字节的 Flash 程序存储器,可反复擦写 1000 次以上。
4、 512 字节的片内数据存储器(RAM)。
5、拥有 32 个可编程的 I/O 口,方便连接外部设备。
6、 3 个 16 位定时器/计数器,可用于定时、计数和脉冲宽度测量等功能。
7、 8 个中断源,包括 2 个外部中断、3 个定时器中断和 2 个串行口中断,具有两级中断优先级。
8、全双工串行通信接口(UART),可方便地与其他设备进行通信。
三、引脚功能1、 VCC:电源正极,接+5V 电源。
2、 GND:电源地。
3、 P0 口:8 位漏极开路双向 I/O 口,作为地址/数据总线分时复用口。
4、 P1 口:8 位准双向 I/O 口,具有内部上拉电阻。
5、 P2 口:8 位准双向 I/O 口,作为高 8 位地址总线。
6、 P3 口:8 位准双向 I/O 口,具有第二功能。
例如,P30 为串行输入口(RXD),P31 为串行输出口(TXD)等。
四、存储结构1、程序存储器STC89C52 单片机的程序存储器空间为 8K 字节,地址范围为0000H 1FFFH。
用于存放用户编写的程序代码。
2、数据存储器数据存储器分为内部数据存储器和外部数据存储器。
内部数据存储器包括低 128 字节的 RAM(地址范围为 00H 7FH)和高 128 字节的特殊功能寄存器(SFR,地址范围为 80H FFH)。
外部数据存储器最大可扩展至 64K 字节。
五、时钟与复位1、时钟电路STC89C52 单片机可以使用内部时钟和外部时钟。
内部时钟通过在XTAL1 和 XTAL2 引脚之间连接晶振和电容来产生时钟信号。
51单片机AT89C52中文资料
51单片机AT89C52中文资料--------------------------------------------------------------------------------51单片机AT89C52中文资料AT89C52 ATMEL公司生产的低电压,高性能CMOS 8位单片机.片内含8K byTES的可反复擦写的只读程序存储器(PEROM)和256 byTES 。
的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052 产品引脚兼容,片内置通用8位中央处理器(CPU )和FLASH由存储单元,功能强大AT89C52单片适用于许多较为复杂控制应用场合。
主要性能参数:与Mcs-51产品指令和引脚完全兼容。
8字节可重擦写FLASH闪速存储器1000 次擦写周期全静态操作:0HZ-24MHZ三级加密程序存储器256X8字节内部RAM32个可编程I/0口线3个16 位定时/计数器8个中断源可编程串行UART通道低功耗空闲和掉电模式内部结构图AT89C52内部框图功能特性:AT89C52 提供以下标准功能:8字节FLASH闪速存储器,256字竹内部RAM , 32个I/O口线,3个16 位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89c52可降至OHz的静态逻辑操作,并支持两种软件可选的节电上作模式。
空闲方式停止CPU 的工作,但允许RAM,定时/计数器.串行通信口及中断系统继续工作。
掉电方式保存RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位.功能引脚说明:Vcc:电源电压GND:地P0:P0口是一组8位漏极开路型双向1/O 口,也即地址/数据总线复用口。
作为输出口用时.每位能吸收电流的方式驱动8个TTL 逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用。
AT89C52中文资料
AT89C52中文资料AT89C52的中文资料AT89C52是美国Atmel公司生产的低电压、高性能CMOS 8位单片机,片内含8KB的可反复檫写的程序存储器和12B的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内配置通用8位中央处理器(CPU)和Flash存储单元,功能强大的AT89C52单片机可灵活应用于各种控制领域。
AT89C52单片机属于AT89C51单片机的增强型,与Intel 公司的80C52在引脚排列、硬件组成、工作特点和指令系统等方面兼容。
其主要工作特性是:片内程序存储器内含8KB的Flash程序存储器,可擦写寿命为1000次;片内数据存储器内含256字节的RAM;具有32根可编程I/O口线;具有3个可编程定时器;中断系统是具有8个中断源、6个中断矢量、2个级优先权的中断结构;串行口是具有一个全双工的可编程串行通信口;具有一个数据指针DPTR;低功耗工作模式有空闲模式和掉电模式;具有可编程的3级程序锁定位;AT89C52工作电源电压为5(1+0.2)V,且典型值为5V;AT89C52最高工作频率为24MHz。
单片机正常工作时,都需要有一个时钟电路和一个复位电路。
本设计中选择了内部时钟方式和按键电平复位电路,来构成单片机的最小电路。
如图3.1所示。
功能特性描述AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。
使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
89C52引脚图
3.1 单片机芯片AT89C52介绍3.1.1 AT89C52功能介绍3.1.2 AT89C52芯片图(如图2)及引脚介绍(1)引脚功能电源引脚——VCC正常运行和编程校验时为5V电源,VSS为接地端。
I/O总线——P0.0-P0.7(P0口),P1.0-P1.7(P1口),P2.0-P2.7(P2口),P3.0-P3.7(P3口)若图片无法显示请联系站长QQ3710167为输入/输出引线。
时钟——XTAL1:片内振荡器反相放大器的输入端。
XTAL2:片内振荡器反相器的输出端,也是内部时钟发生器的输入端。
控制总线——ALE/PROG:地址锁存允许/编程信号线。
当CPU访问外部存储器时,ALE 用来锁存P0输出的地址信号的低8位。
它的频率为振荡频率的1/6。
在对8751编程时,此引脚输入编程脉冲信号。
PSEN:外接程序存储器读选通信号。
EA/VPP:访问内部程序存储器的控制信号。
当EA=1时,CPU从片内ROM读取指令;EA=0时,CPU从片外ROM读取指令。
此外,当对8751内部EPROM编程时,21V 编程电源由此端输入。
RST/VPD:复位输入信号。
当该引脚上出现2个机器周期以上的高电平时,可实现复位操作。
此引脚为掉电保护后备电源之输入引脚。
AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash 只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。
AT89C52单片机介绍知识讲解
AT89C52单片机介绍在众多的单片机系列中,AT89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系列可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,也适用于常规编程。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89C52为众多嵌入式控制应用系统提供高灵活、超高效的解决方案。
AT89C52具有以下标准功能:8K字节Flash,256字节RAM,32位I/O口线,3个16位定时器/计数器,一个响亮2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89C52可降至0HZ静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
AT89C52单片机为很多嵌入式控制系统提供了一种灵活性高且廉价的方案。
故此选用AT89C52单片机。
1 AT89C52单片机1.1 AT89C52单片机的硬件结构如图3-1所示,为AT89C52的硬件结构图。
AT89C52单片机的内部结构与MCS-51系列单片机的构成基本相同。
CPU是由运算器和控制器所构成的。
运算器主要用来对操作数进行算术、逻辑运算和位操作的。
控制器是单片机的指挥控制部件,主要任务的识别指令,并根据指令的性质控制单片机各功能部件,从而保证单片机各部分能自动而协调地工作。
它的程序存储器为8K字节可重擦写Flash闪速存储器,闪烁存储器允许在线+5V电擦除、电写入或使用编程器对其重复编程。
数据存储器比51系列的单片机相比大了许多为256字节RAM。
AT89C52单片机的指令系统和引脚功能与MCS-51的完全兼容。
图 3-1 单片机89C52结构框图1.2 主要性能参数• 8K字节可重擦写Flash闪速存储器• 1000次可擦写周期•全静态操作:0Hz-24MHz•三级加密程序存储器• 256×8字节内部RAM• 32个可编程I/O口线• 3个16位定时/计数器• 8个中断源•可编程串行UART通道•低功耗空闲和掉电模式图 3-2 AT89C52外部引脚图1.3 AT89C52管脚说明VCC:电源GND:接地P0口:P0口是一个8位漏级开路的双向I/O口。
at89c52
AT89C52概述AT89C52是一款高性能的8位单片机,由Atmel公司生产。
它是AT89系列单片机中的一员,采用MCS-51指令集架构,并使用快速闪存储存程序。
AT89C52具有丰富的外设,包括多个输入输出引脚、计时器、串口通信接口等,广泛应用于嵌入式系统、通信设备、工业控制等领域。
主要特性•采用CMOS技术,工作电压范围广泛(2.4V至5.5V)•具有8KB的内部闪存,用于存储程序和数据•提供256字节的内部RAM,可用于数据存储•包含三个计时器/计数器,可用于定时/计数功能•集成两个串口通信接口,方便与外部设备进行数据交互•支持多种中断方式,提供更好的系统响应能力•可编程输入/输出引脚,可用于连接外部设备引脚描述AT89C52具有40个引脚,以下是一些重要引脚的描述:1.P1.0至P1.7: 8位并行输入/输出引脚,可根据需要进行配置。
在配置为输入时,可以连接外部设备并读取输入值;在配置为输出时,可以向外部设备发送数据。
2.P2.0至P2.7: 8位并行输入/输出引脚,也可以根据需要进行配置。
3.P3.0至P3.7: 8位并行输入/输出引脚,同时具有更多功能,包括与外部存储器的数据和地址传输,以及与LCD显示器的连接等。
4.RST: 复位引脚,将其拉低时可以重启单片机。
5.EA/VPP: 外部访问使能/编程电压引脚,可用于提供外部程序存储器的访问或编程电压。
6.XTAL1/XTAL2: 外部晶振引脚,接入适当的晶振电路以提供时钟信号。
闪存编程AT89C52的程序存储在内部闪存中。
要编程AT89C52,可以使用专用的编程器,通过并行端口或串行端口将目标程序下载到芯片中。
编程AT89C52的一般步骤如下:1.选择所需的编程器,并连接到AT89C52的编程接口。
2.打开编程器软件,并选择正确的单片机型号。
3.导入目标程序文件,该文件应该是以二进制格式存储的。
4.配置编程器选项,包括芯片复位方式、编程电压等。
AT89C52单片机介绍
AT89C52单片机介绍n to AT89C52 MicrocontrollerAmong the many microcontroller series。
AT89C52 is a low-power。
high-performance CMOS 8-bit microcontroller with 8K programmable Flash memory in the series。
Manufactured using Atmel's high-density non-volatile memory technology。
it is fully compatible with the industrial 80C51 product ns and pins。
The on-chip Flash allows for system programmable memory and is also suitable for nal programming。
With a nimble 8-bit CPU and system programmable Flash on a single chip。
the AT89C52 ___.The AT89C52 has the following standard features: 8K bytes of Flash。
256 bytes of RAM。
32-bit I/O lines。
three 16-bit timers/counters。
a loud 2-level interrupt structure。
full-duplex serial port。
on-chip oscillator and clock circuit。
In n。
theAT89C52 can be ced to 0Hz static logic n and supports two are-selectable power-saving modes。
AT89C52单片机简介
AT89C52是51系列单片机的一个型号,它是ATMEL公司死产的.之阳早格格创做AT89C52是一个矮电压,下本能CMOS 8位单片机,片内含8k bytes的可反复揩写的Flash只读步调死存器战256 bytes的随机存与数据死存器(RAM),器件采与ATMEL公司的下稀度、非易得性死存技能死产,兼容尺度MCS-51指令系统,片内置通用8位中央处理器战Flash死存单元,功能强盛的AT89C52单片机可为您提供许多较搀纯系统统制应用场合.AT89C52有40个引足,32其中部单背输进/输出(I/O)端心,共时内含2其中中断心,3个16位可编程定时计数器,2个齐单工串止通疑心,2个读写心线,AT89C52不妨依照惯例要领举止编程,但是不不妨正在线编程(S系列的才支援正在线编程).其将通用的微处理器战Flash死存器分离正在所有,特天是可反复揩写的Flash死存器可灵验天落矮开垦成本.兼容MCS51指令系统 · 8k可反复揩写(>1000次)Flash ROM· 32个单背I/O心 · 256x8bit里里RAM· 3个16位可编程定时/计数器中断 ·时钟频次0-24MHz· 2个串止中断 ·可编程UART串止通讲· 2其中部中断源 ·共6其中断源· 2个读写中断心线 · 3级加稀位·矮功耗空闲战掉电模式 ·硬件树立睡眠战唤醉功能AT89C52P为40 足单列曲插启拆的8 位通用微处理器,采与工业尺度的C51内核,正在里里功能及管足排布上与通用的8xc52 相共,其主要用于会散安排时的功能统制.功能包罗对于会散主IC 里里寄存器、数据RAM及中部交心等功能部件的初初化,会散安排统制,会散尝试图统制,白中遥控旗号IR的交支解码及与主板CPU通疑等.主要管足有:XTAL1(19 足)战XTAL2(18 足)为振荡器输进输出端心,中交12MHz 晶振.RST/Vpd(9 足)为复位输进端心,中交电阻电容组成的复位电路.VCC(40 足)战VSS(20 足)为供电端心,分别交+5V电源的正背端.P0~P3 为可编程通用I/O 足,其功能用途由硬件定义,正在本安排中,P0 端心(32~39 足)被定义为N1 功能统制端心,分别与N1的相映功能管足贯串交,13 足定义为IR输进端,10 足战11足定义为I2C总线统制端心,分别连交N1的SDAS(18足)战SCLS(19足)端心,12 足、27 足及28 足定义为握脚旗号功能端心,连交主板CPU 的相映功能端,用于目前制式的检测及会散安排状态加进的统制功能.P0 心P0 心是一组8 位漏极开路型单背I/O 心,也即天点/数据总线复用心.动做输出心用时,每位能吸支电流的办法启动8 个TTL逻辑门电路,对于端心P0 写“1”时,可动做下阻抗输进端用.正在考察中部数据死存器或者步调死存器时,那组心线分时变换天点(矮8 位)战数据总线复用,正在考察功夫激活里里上推电阻.正在Flash 编程时,P0 心交支指令字节,而正在步调校验时,输出指令字节,校验时,央供中交上推电阻.P1 心P1 是一个戴里里上推电阻的8 位单背I/O 心, P1 的输出慢冲级可启动(吸支或者输出电流)4 个TTL 逻辑门电路.对于端心写“1”,通过里里的上推电阻把端心推到下电仄,此时可做输出心.做输出心使用时,果为里里存留上推电阻,某个引足被中部旗号推矮时会输出一个电流(IIL).与AT89C51 分歧之处是,P1.0 战P1.1 还可分别动做定时/计数器2 的中部计数输进(P1.0/T2)战输进(P1.1/T2EX),拜睹表1.Flash 编程战步调校验功夫,P1 交支矮8 位天点.P2 心P2 是一个戴有里里上推电阻的8 位单背I/O 心,P2 的输出慢冲级可启动(吸支或者输出电流)4 个TTL 逻辑门电路.对于端心P2 写“1”,通过里里的上推电阻把端心推到下电仄,此时可做输出心,做输出心使用时,果为里里存留上推电阻,某个引足被中部旗号推矮时会输出一个电流(IIL).正在考察中部步调死存器或者16 位天点的中部数据死存器(比圆真止MOVX @DPTR 指令)时,P2 心支出下8 位天点数据.正在考察8 位天点的中部数据死存器(如真止MOVX @RI 指令)时,P2 心输出P2 锁存器的真质.Flash 编程或者校验时,P2亦交支下位天点战一些统制旗号.P3 心P3 心是一组戴有里里上推电阻的8 位单背I/O 心.P3 心输出慢冲级可启动(吸支或者输出电流)4 个TTL 逻辑门电路.对于P3 心写进“1”时,它们被里里上推电阻推下并可动做输进端心.此时,被中部推矮的P3 心将用上推电阻输出电流(IIL).P3 心除了动做普遍的I/O 心线中,更要害的用途是它的第二功能P3 心还交支一些用于Flash 闪速死存器编程战步调校验的统制旗号.RST复位输进.当振荡器处事时,RST引足出现二个呆板周期以上下电仄将使单片机复位.ALE/PROG当考察中部步调死存器或者数据死存器时,ALE(天点锁存允许)输出脉冲用于锁存天点的矮8 位字节.普遍情况下,ALE 仍以时钟振荡频次的1/6 输出牢固的脉冲旗号,果此它可对于中输出时钟或者用于定时脚段.要注意的是:每当考察中部数据死存器时将跳过一个ALE 脉冲.对于Flash 死存器编程功夫,该引足还用于输进编程脉冲(PROG).如有需要,可通过对于特殊功能寄存器(SFR)区中的8EH 单元的D0 位子位,可克制ALE 支配.该位子位后,惟有一条MOVX 战MOVC指令才搞将ALE 激活.别的,该引足会被微小推下,单片机真止中部步调时,应树立ALE 克制位无效.PSEN步调储藏允许(PSEN)输出是中部步调死存器的读选通旗号,当AT89C52 由中部步调死存器与指令(或者数据)时,每个呆板周期二次PSEN 灵验,即输出二个脉冲.正在此功夫,当考察中部数据死存器,将跳过二次PSEN 旗号.EA/VPP中部考察允许.欲使CPU 仅考察中部步调死存器(天点为0000H—FFFFH),EA 端必须脆持矮电仄(交天).需注意的是:如果加稀位LB1 被编程,复位时里里会锁存EA 端状态.如EA端为下电仄(交Vcc端),CPU 则真止里里步调死存器中的指令.Flash 死存器编程时,该引足加上+12V 的编程允许电源Vpp,天然那必须是该器件是使用12V 编程电压Vpp.XTAL1振荡器反相搁大器的及里里时钟爆收器的输进端.XTAL2振荡器反相搁大器的输出端.特殊功能寄存器正在AT89C52 片内死存器中,80H-FFH 共128 个单元为特殊功能寄存器(SFE),SFR 的天点空间映象如表2 所示.并不是所有的天点皆被定义,从80H—FFH 共128 个字节惟有一部分被定义,另有相称一部分不定义.对于不定义的单元读写将是无效的,读出的数值将不决定,而写进的数据也将拾得.不该将数据“1”写进已定义的单元,由于那些单元正在将去的产品中大概给予新的功能,正在那种情况下,复位后那些单元数值经常“0”.AT89C52除了与AT89C51所有的定时/计数器0 战定时/计数器1 中,还减少了一个定时/计数器2.定时/计数器2 的统制战状态位位于T2CON(拜睹表3)T2MOD(拜睹表4),寄存器对于(RCAO2H、RCAP2L)是定时器2 正在16 位捕获办法或者16 位自动沉拆载办法下的捕获/自动沉拆载寄存器.数据死存器AT89C52 有256 个字节的里里RAM,80H-FFH 下128 个字节与特殊功能寄存器(SFR)天点是沉叠的,也便是下128字节的RAM 战特殊功能寄存器的天点是相共的,但是物理上它们是合并的.当一条指令考察7FH 以上的里里天点单元时,指令中使用的觅址办法是分歧的,也即觅址办法决断是考察下128 字节RAM 仍旧考察特殊功能寄存器.如果指令是曲交觅址办法则为考察特殊功能寄存器.比圆,底下的曲交觅址指令考察特殊功能寄存器0A0H(即P2 心)天点单元.MOV 0A0H,#data间交觅址指令考察下128 字节RAM,比圆,底下的间交觅址指令中,R0 的真质为0A0H,则考察数据字节天点为0A0H,而不是P2 心(0A0H).MOV @R0,#data堆栈支配也是间交觅址办法,所以,下128 位数据RAM 亦可动做堆栈区使用.·定时器0战定时器1:AT89C52的定时器0战定时器1 的处事办法与AT89C51 相共.定时器2定时器2 是一个16 位定时/计数器.它既可当定时器使用,也可动做中部事变计数器使用,其处事办法由特殊功能寄存器T2CON(如表3)的C/T2 位采用.定时器2 有三种处事办法:捕获办法,自动沉拆载(进与或者背下计数)办法战波特率爆收器办法,处事办法由T2CON 的统制位去采用.定时器2 由二个8 位寄存器TH2 战TL2 组成,正在定时器处事办法中,每个呆板周期TL2 寄存器的值加1,由于一个机器周期由12 个振荡时钟形成,果此,计数速率为振荡频次的1/12.正在计数处事办法时,当T2 引足上中部输进旗号爆收由1 至0 的下落沿时,寄存器的值加1,正在那种处事办法下,每个呆板周期的5SP2 功夫,对于中部输进举止采样.若正在第一个呆板周期中采到的值为1,而正在下一个呆板周期中采到的值为0,则正在紧跟着的下一个周期的S3P1 功夫寄存器加1.由于辨别1 至0 的跳变需要2 个呆板周期(24 个振荡周期),果此,最下计数速率为振荡频次的1/24.为保证采样的精确性,央供输进的电仄正在变更前起码脆持一个完备周期的时间,以包管输进旗号起码被采样一次.捕获办法正在捕获办法下,通过T2CON 统制位EXEN2 去采用二种办法.如果EXEN2=0,定时器2 是一个16 位定时器或者计数器,计数溢出时,对于T2CON 的溢出标记TF2 置位,共时激活中断.如果EXEN2=1,定时器2 完毕相共的支配,而当T2EX 引足中部输进旗号爆收1 至0 背跳变时,也出现TH2 战TL2 中的值分别被捕获到RCAP2H 战RCAP2L 中.其余,T2EX 引足旗号的跳变使得T2CON 中的EXF2 置位,与TF2 相仿,EXF2 也会激活中断.捕获办法如图4 所示.自动沉拆载(进与或者背下计数器)办法当定时器2处事于16位自动沉拆载办法时,能对于其编程为进与或者背下计数办法,那个功能可通过特殊功能寄存器T2CON(睹表5)的DCEN 位(允许背下计数)去采用的.复位时,DCEN 位子“0”,定时器2 默认树立为进与计数.当DCEN置位时,定时器2 既可进与计数也可背下计数,那与决于T2EX 引足的值,拜睹图5,当DCEN=0 时,定时器2 自动树立为进与计数,正在那种办法下,T2CON 中的EXEN2 统制位有二种采用,若EXEN2=0,定时器2 为进与计数至0FFFFH 溢出,置位TF2 激活中断,共时把16 位计数寄存器RCAP2H 战RCAP2L沉拆载,RCAP2H 战RCAP2L 的值可由硬件预置.若EXEN2=1,定时器2 的16 位沉拆载由溢出或者中部输进端T2EX 从1 至0 的下落沿触收.那个脉冲使EXF2 置位,如果中断允许,共样爆收中断.定时器2 的中断出心天点是:002BH ——0032H .当DCEN=1 时,允许定时器2 进与或者背下计数,如图6 所示.那种办法下,T2EX 引足统制计数器目标.T2EX 引足为逻辑“1”时,定时器进与计数,当计数0FFFFH 进与溢出时,置位TF2,共时把16 位计数寄存器RCAP2H 战RCAP2L 沉拆载到TH2 战TL2 中. T2EX 引足为逻辑“0”时,定时器2 背下计数,当TH2 战TL2 中的数值等于RCAP2H 战RCAP2L中的值时,计数溢出,置位TF2,共时将0FFFFH 数值沉新拆进定时寄存器中.当定时/计数器2 进与溢出或者背下溢出时,置位EXF2 位.波特率爆收器当T2CON(表3)中的TCLK 战RCLK 置位时,定时/计数器2 动做波特率爆收器使用.如果定时/计数器2 动做收支器或者交支器,其收支战交支的波特率不妨是分歧的,定时器1 用于其余功能,如图7 所示.若RCLK 战TCLK 置位,则定时器2处事于波特率爆收器办法.波特率爆收器的办法与自动沉拆载办法相仿,正在此办法下,TH2 翻转使定时器2 的寄存器用RCAP2H 战RCAP2L 中的16位数值沉新拆载,该数值由硬件树立.正在办法1 战办法3 中,波特率由定时器2 的溢出速率根据下式决定:办法1战3的波特率=定时器的溢出率/16定时器既能处事于定时办法也能处事于计数办法,正在大普遍的应用中,是处事正在定时办法(C/T2=0).定时器2 动做波特率爆收器时,与动做定时器的支配是分歧的,常常动做定时器时,正在每个呆板周期(1/12 振荡频次)寄存器的值加1,而动做波特率爆收器使用时,正在每个状态时间(1/2 振荡频次)寄存器的值加1.波特率的估计公式如下:办法1战3的波特率=振荡频次/{32*[65536-(RCP2H,RCP2L)]}式中(RCAP2H,RCAP2L)是RCAP2H 战RCAP2L 中的16 位无标记数.定时器2 动做波特率爆收器使用的电路如图7 所示.T2CON 中的RCLK 或者TCLK=1 时,波特率处事办法才灵验.正在波特率爆收器处事办法中,TH2 翻转不克不迭使TF2 置位,故而不爆收中断.但是若EXEN2 置位,且T2EX 端爆收由1 至0 的背跳变,则会使EXF2 置位,此时本去不克不迭将(RCAP2H,RCAP2L)的真质沉新拆进TH2 战TL2 中.所以,当定时器2 做为波特率爆收器使用时,T2EX 可动做附加的中部中断源去使用.需要注意的是,当定时器2 处事于波特率器时,动做定时器运止(TR2=1)时,本去不克不迭考察TH2 战TL2.果为此时每个状态时间定时器皆市加1,对于其读写将得到一个不决定的数值.然而,对于RCAP2 则可读而不可写,果为写进支配将是沉新拆载,写进支配大概令写战/或者沉拆载堕落.正在考察定时器2或者RCAP2 寄存器之前,应将定时器关关(扫除TR2).可编程时钟输出定时器2 可通过编程从P1.0 输出一个占空比为50%的时钟旗号,如图8 所示.P1.0 引足除了是一个尺度的I/O 心中,还不妨通过编程使其动做定时/计数器2 的中部时钟输进战输出占空比50%的时钟脉冲.当时钟振荡频次为16MHz 时,输出时钟频次范畴为61Hz—4MHz.当树立定时/计数器2 为时钟爆收器时,C/T2(T2CON .1)=0,T2OE (T2MOD.1) =1,必须由TR2(T2CON.2)开用或者停止定时器.时钟输出频次与决于振荡频次战定时器2 捕获寄存器(RCAP2H,RCAP2L)的沉新拆载值,公式如下:输出时钟频次=振荡器频次/{4*[65536-(RCP2H,RCP2L)]}正在时钟输出办法下,定时器2 的翻转不会爆收中断,那个个性与动做波特率爆收器使用时相仿.定时器2 动做波特率爆收器使用时,还可动做时钟爆收器使用,但是需要注意的是波特率战时钟输出频次不克不迭合并决定,那是果为它们共使用RCAP2L战RCAP2L.UART AT89C52的UART 处事办法与AT89C51 处事办法相共.中断AT89C52 公有6 其中断背量:二其中中断(INT0 战INT1),3 个定时器中断(定时器0、1、2)战串止心中断.所有那些中断源如图9 所示.那些中断源可通太过别树立博用寄存器IE 的置位或者浑0 去统制每一其中断的允许或者克制.IE 也有一个总克制位EA,它能统制所有中断的允许或者克制.注意表5 中的IE.6 为死存位,正在AT89C51 中IE.5 也是死存位.步调员不该将“1”写进那些位,它们是将去AT89 系列产品动做扩展用的.定时器2 的中断是由T2CON 中的TF2 战EXF2 逻辑或者爆收的,当转背中断服务步调时,那些标记位不克不迭被硬件扫除,究竟上,服务步调需决定是TF2 或者EXF2 爆收中断,而由硬件扫除中断标记位.定时器0 战定时器1 的标记位TF0 战TF1 正在定时器溢出那个呆板周期的S5P2 状态置位,而会正在下一个呆板周期才查询到该中断标记.然而,定时器2 的标记位TF2 正在定时器溢出的那个呆板周期的S2P2 状态置位,并正在共一个呆板周期内查询到该标记.时钟振荡器AT89C52 中有一个用于形成里里振荡器的下删益反相搁大器,引足XTAL1 战XTAL2 分别是该搁大器的输进端战输出端.那个搁大器与动做反馈元件的片中石英晶体或者陶瓷谐振器所有形成自激振荡器,振荡电路拜睹图10.中交石英晶体(或者陶瓷谐振器)及电容C1、C2 交正在搁大器的反馈回路中形成并联振荡电路.对于中交电容C1、C2 虽然不格中庄重的央供,但是电容容量的大小会沉微做用振荡频次的下矮、振荡器处事的宁静性、起振的易易步调及温度宁静性,如果使用石英晶体,咱们推荐电容使用30pF±10pF,而如使用陶瓷谐振器修议采用40pF±10F.用户也不妨采与中部时钟.采与中部时钟的电路如图10 左图所示.那种情况下,中部时钟脉冲交到XTAL1 端,即里里时钟爆收器的输进端,XTAL2 则悬空.由于中部时钟旗号是通过一个2 分频触收器后动做里里时钟旗号的,所以对于中部时钟旗号的占空比不特殊央供,但是最小下电仄持绝时间战最大的矮电仄持绝时间应切合产品技能条件的央供.空闲节电模式正在空闲处事模式状态, CPU 自己处于睡眠状态而所有片内的中设仍脆持激活状态,那种办法由硬件爆收.此时,共时将片内RAM 战所有特殊功能寄存器的真质冻结.空闲模式可由所有允许的中断哀供或者硬件复位末止.由硬件复位末止空闲状态只需二个呆板周期灵验复位旗号,正在此状态下,片内硬件克制考察里里RAM,但是不妨考察端心引足,当用复位末止空闲办法时,为预防大概对于端心爆收不料写进,激活空闲模式的那条指令后一条指令不该是一条对于端心或者中部死存器的写进指令.掉电模式正在掉电模式下,振荡器停止处事,加进掉电模式的指令是末尾一条被真止的指令,片内RAM 战特殊功能寄存器的真质正在末止掉电模式前被冻结.退出掉电模式的唯一要领是硬件复位,复位后将沉新定义局部特殊功能寄存器,但是不改变RAM中的真质,正在Vcc回复到仄常处事电仄前,复位应无效,且必须脆持一定时间以使振荡器沉开用并宁静处事.步调死存器的加稀AT89C52 有3 个步调加稀位,可对于芯片上的3 个加稀位LB1、LB2、LB3 举止编程(P)或者不编程(U)去得到.当加稀位LB1 被编程时,正在复位功夫,EA 端的逻辑电仄被采样并锁存,如果单片机上电后背去不复位,则锁存起的初初值是一个随机数,且那个随机数会背去死存到真真复位为止.为使单片机能仄常处事,被锁存的EA电仄值必须与该引足目前的逻辑电仄普遍.别的,加稀位只可通过整片揩除的要领扫除.Flash死存器的编程AT89C52单片机里里有8k字节的Flash PEROM,那个Flash 死存阵列出厂时已处于揩除状态(即所有死存单元的真质均为FFH),用户随时可对于其举止编程.编程交心可交支下电压(+12V)或者矮电压(Vcc)的允许编程旗号.矮电压编程模式切合于用户正在线编程系统,而下电压编程模式可与通用EPROM 编程器兼容.AT89C52 单片机中,有些属于矮电压编程办法,而有些则是下电压编程办法,用户可从芯片上的型号战读与芯片内的签字字节赢得该疑息.AT89C52 的步调死存器阵列是采与字节写进办法编程的,屡屡写进一个字节,要对于所有芯片内的PEROM 步调死存器写进一个非空字节,必须使用片揩除的办法将所有死存器的真质扫除.编程要领编程前,须按表9 战图11 所示树立佳天点、数据及统制旗号, AT89C52 编程要领如下:1.正在天点线上加上要编程单元的天点旗号.2.正在数据线上加上要写进的数据字节.3.激活相映的统制旗号.4.正在下电压编程办法时,将EA/Vpp 端加上+12V 编程电压.5.每对于Flash 死存阵列写进一个字节或者每写进一个步调加稀位,加上一个ALE/PROG 编程脉冲.每个字节写进周期是自己定时的,常常约为1.5ms.沉复1—5 步调,改变编程单元的天点战写进的数据,曲到局部文献编程中断.数据查询AT89C52 单片机用Data Palling 表示一个写周期中断为个性,正在一个写周期中,如需读与末尾写进的一个字节,则出的数据的最下位(P0.7)是本去写进字节最下位的反码.写周期完毕后,所输出的数据是灵验的数据,即可加进下一个字节的写周期,写周期开初后,Data Palling 大概随时灵验.Ready/Busy:字节编程的进度可通过“RDY/BSY 输出旗号监测,编程功夫,ALE 形成下电仄“H”后,P3.4(RDY/BSY)端电仄被推矮,表示正正在编程状态(闲状态).编程完毕后,P3.4 形成下电仄表示准备便绪状态.·步调校验:如果加稀位LB1、LB2 不举止编程,则代码数据可通过天点战数据线读回本编写的数据,采与如图12的电路.加稀位不可曲交校验,加稀位的校验可通过对于死存器的校验战写进状态去考证.芯片揩除:利用统制旗号的精确推拢(表6)并脆持ALE/PROG 引足10mS 的矮电仄脉冲宽度即可将PEROM 阵列(4k字节)战三个加稀位整片揩除,代码阵列正在片揩除支配中将所有非空单元写进“1”,那步调需再编程之前举止.·读片内签字字节:AT89C52 单片机内有3 个签字字节,天点为030H、031H 战032H.用于声明该器件的厂商、型号战编程电压.读AT89C52 签字字节需将P3.6 战P3.7 置逻辑矮电仄,读签字字节的历程战单元030H、031H 及032H 的仄常校验相仿,只返回值意思如下:(030H)=1EH 声明产品由ATMEL公司制制.(031H)=52H 声明为AT89C52 单片机.(032H)=FFH 声明为12V 编程电压.(032H)=05H 声明为5V 编程电压.。
AT89C52单片机介绍
AT89C52单片机介绍
AT89C52是Atmel公司生产的一款经典的8位单片机。
它采用MCS-51系列内核,具有高性能、低功耗和强大的外设功能。
AT89C52是AT89C51的改进版本,具有更高的运行速度和更大的存储空间。
首先,AT89C52采用了高性能的CMOS技术,工作频率高达40MHz,可以实现高效的数据处理和实时控制。
与普通的单片机相比,它具有更快的响应速度和更高的运算能力,可以满足复杂控制系统的要求。
其次,AT89C52具有8KB的内部闪存程序存储器,可以存储用户编写的程序代码。
它还具有256字节的RAM内存和128个IO口,可用于连接各种外部设备和传感器。
此外,AT89C52还支持多种通信接口,如UART、SPI和I2C,方便与其他设备进行数据交换和通信。
此外,AT89C52还具有丰富的开发资源和工具支持。
Atmel公司提供了一套完整的开发套件,包括编译器、调试器和仿真器等,为用户提供方便和高效的开发环境。
并且,AT89C52的软件编程接口也非常友好,可以使用C语言或汇编语言进行编程,灵活性很高。
总之,AT89C52是一款功能强大、性能稳定的8位单片机。
它具有高速运算能力、丰富的外设功能和灵活的IO口控制。
它可以广泛应用于各种控制系统、仪器仪表、家电和智能设备等领域。
同时,它的开发环境和编程接口也很友好,为用户提供了方便和高效的开发工具。
AT89C52 DATASHEETS 中文版
AT89C52 DatasheetsFeatures• Compatible with MCS-51™ Products• 8K Bytes of In-System Reprogrammable Flash Memory–Endurance: 1,000 Write/Erase Cycles• Fully Static Operation: 0 Hz to 24 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• Programmable Serial Channel• Low Power Idle and Power Down ModesDescriptionThe AT89C52 is a low-power, high-performance CMOS 8-bit microcomputer with 8K bytes of Flash programmable and erasable read only memory (PEROM). The device is manufactured using Atmel’s high density nonvolatile memory technology and is compatible with the industry standard 80C51 and 80C52 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 AT89C52 is a powerful microcomputer which provides a highly flexible and cost effective solution to many embedded control applications.The AT89C52 provides the following standard features: 8K bytes of Flash, 256 bytes of RAM,32 I/O lines, three 16-bit timer/counters, a six-vector two-level interrupt architecture,a full duplex serial port, on-chip oscillator, and clock circuitry.In addition, the AT89C52 is designed with 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 contents but freezes the oscillator, disabling all other chip functions until the next hardware reset.Pin DescriptionVCCSupply 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 highimpedance inputs. Port 0 can also be configured to be the multiplexed loworder address/data bus during accesses to external program and data memory. In this mode, P0 has internal pullups.Port 0 also receives the code bytes during Flash programming and outputs the code bytes during program verification. External pullups are required during program verification.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 (IIL) 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 thetimer/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 (IIL) 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. In this application, Port 2 uses strong internal pull-ups when emitting 1s. During accesses to external data memory that use 8-bit addresses, 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 (IIL) because of the pullups. Port 3 also serves the functions of various special features of the AT89C51, as shown in the following table.Port 3 also receives some control signals for Flash programming and verification.RSTReset input. A high on this pin for two machine cycles while the oscillator is running resets the device.ALE/PROGAddress Latch Enable is an output pulse for latching the low byte of the address during accesses to external memory.This pin is also the program pulse input (PROG) duringFlash programming.In normal operation, ALE is emitted at a constant rate of 1/6 the oscillator frequency and may be used for external timingor clocking purposes. Note, however, that one ALE pulse is skipped during each access to external data memory.If desired, ALE operation can be disabled by setting bit 0 of SFR location 8EH. With the bit set, ALE is active only during 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 program memory.When the AT89C52 is executing code from external program memory, PSEN is activated twice each machine cycle, except that two PSEN activations are skipped during each access to external data memory. External Access Enable. EA must be strapped to GND in order to enable the device to fetch code from external program memory locations starting at 0000H up to FFFFH.Note, however, that if lock bit 1 is programmed, EA will be internally latched on reset.EA should be strapped to VCC for internal program executions.This pin also receives the 12-volt programming enable voltage(VPP) during Flash programming when 12-volt programmingis selected.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 unoccupied 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 indeterminate er software should not write 1s to these unlisted locations,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 AT89C52 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 addressinginstruction accesses the SFR at location 0A0H (which is P2).Instructions 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).Note that stack operations are examples of indirect addressing, so the upper 128 bytes of data RAM are available as stack space.Timer 0 and 1Timer 0 and Timer 1 in the AT89C52 operate the same way as Timer 0 and Timer 1 in the AT89C51.Timer 2Timer 2 is a 16-bit Timer/Counter that can operate as either a timer or an event counter. The type of operation isselected 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 oscillator periods, the count rate is 1/12 of the oscillator frequency.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 transition, the maximum count rate is 1/24 of the oscillator frequency.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 current 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 illustrated 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 overflow also causes the timer registers to be reloaded with the 16-bit value in RCAP2H and RCAP2L. The values in Timer in Capture ModeRCAP2H and RCAP2L are preset by software. If EXEN2 = 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 enablesTimer 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 2 count up. The timer will overflow at 0FFFFH and set the TF2 bit. This overflow also causes the 16-bit value in RCAP2H and RCAP2L to be reloaded into the timer registers, 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.Baud 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 for the 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 registersto 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 TimerThe Timer can be configured for either timer or counter operation. In most applications, it is configured for timer operation (CP/T2 = 0). The timer operation is different for 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 frequency).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 generate 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. Programmable 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 regular I/O pin, has two alternate functions. It can be programmedto 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 16 MHz 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 frequency and the reload value of Timer 2 capture registers (RCAP2H, RCAP2L),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 simultaneously. 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 AT89C52 operates the same way as the UART in the AT89C51.InterruptsThe AT89C52 has a total of six interrupt vectors: two external interrupts (INT0 and INT1), three timer interrupts (Timers 0, 1, and 2), and the serial port interrupt. These interrupts 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 unimplemented. In the AT89C51, 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. The 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,the Timer 2 flag, TF2, is set at S2P2 and is polled in the same cycle in which the timer overflows.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 maximum voltage high and low time specifications must be observed.Idle ModeIn idle mode, the CPU puts itself to sleep while all the onchip peripherals remain active. The mode is invoked by software. The content of the on-chip RAM and all the special 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 terminated by a reset, the instruction following the one that invokes idle mode should not write to a port pin or to external memory.Power 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 Registersretain their values until the power down mode is terminated. 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 VCC is restored to its normal operating level and must be held active long enough to allow the oscillator to restart and stabilize.Program Memory Lock BitsThe AT89C52 has three lock bits that can be left unprogrammed (U) or can be programmed (P)to obtain the additional 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 powered up without a reset, the latch initializes to a random value and holds that value until reset is activated. The latched value of EA must agree with the current logic level at that pin in order for the device to function properly.Programming the FlashThe AT89C52 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 (VCC) program enable signal. The low voltage programming mode provides a convenient way to program the AT89C52 ins ide the user’s system, while the high-voltage programming mode is compatible with conventional thirdparty Flash or EPROM programmers. The AT89C52 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 the following table. The AT89C52 code memory array is programmed byte-bybyte in either programming mode. To program any nonblank byte in the on-chip Flash Memory, the entire memory must be erased using the Chip Erase Mode.AT89C52数据手册AT89C51主要性能指数:1.与MCS-51产品指令和引脚完全相同2.8K字节可重擦写Flash闪速存储器3.1000次擦写周期4.全静态操作:0Hz-24Hz5.三级加密程序存储器6.256×8字节内部RAM7.32个可编程I/O口线8.3个16位定时器/计数器9.8个中断源10.可编程串行UART通道11.低功耗空闲和掉电模式功能特性概述:AT89C52提供以下标准功能:8K字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
51单片机AT89C52中文资料
51单片机AT89C52中文资料--------------------------------------------------------------------------------51单片机AT89C52中文资料AT89C52 ATMEL公司生产的低电压,高性能CMOS 8位单片机.片含8K byTES的可反复擦写的只读程序存储器(PEROM)和256 byTES 。
的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052 产品引脚兼容,片置通用8位中央处理器(CPU )和FLASH由存储单元,功能强大AT89C52单片适用于许多较为复杂控制应用场合。
主要性能参数:与Mcs-51产品指令和引脚完全兼容。
8字节可重擦写FLASH闪速存储器1000 次擦写周期全静态操作:0HZ-24MHZ三级加密程序存储器256X8字节部RAM32个可编程I/0口线3个16 位定时/计数器8个中断源可编程串行UART通道低功耗空闲和掉电模式部结构图AT89C52部框图功能特性:AT89C52 提供以下标准功能:8字节FLASH闪速存储器,256字竹部RAM , 32个I/O口线,3个16 位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片振荡器及时钟电路。
同时,AT89c52可降至OHz的静态逻辑操作,并支持两种软件可选的节电上作模式。
空闲方式停止CPU 的工作,但允许RAM,定时/计数器.串行通信口及中断系统继续工作。
掉电方式保存RAM 中的容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位.功能引脚说明:Vcc:电源电压GND:地P0:P0口是一组8位漏极开路型双向1/O 口,也即地址/数据总线复用口。
作为输出口用时.每位能吸收电流的方式驱动8个TTL 逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用。
at89c52单片机介绍
at89c52中文资料介绍AT89C52 ATMEL公司生产的低电压,高性能CMOS 8位单片机.片内含8K byTES的可反复擦写的只读程序存储器(PEROM)和256 byTES 。
的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052 产品引脚兼容,片内置通用8位中央处理器(CPU )和FLASH 由存储单元,功能强大AT89C52单片适用于许多较为复杂控制应用场合。
主要性能参数:与Mcs-51产品指令和引脚完全兼容。
8字节可重擦写FLASH闪速存储器1000 次擦写周期全静态操作:0HZ-24MHZ三级加密程序存储器256X8字节内部RAM32个可编程I/0口线3个16 位定时/计数器8个中断源可编程串行UART通道低功耗空闲和掉电模式AT89C52内部框图功能特性:AT89C52 提供以下标准功能:8字节FLASH闪速存储器,256字竹内部RAM , 32个I/O口线,3个16 位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89c52可降至OHz的静态逻辑操作,并支持两种软件可选的节电上作模式。
空闲方式停止CPU 的工作,但允许RAM,定时/计数器.串行通信口及中断系统继续工作。
掉电方式保存RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位.功能引脚说明:Vcc:电源电压GND:地P0:P0口是一组8位漏极开路型双向1/O 口,也即地址/数据总线复用口。
作为输出口用时.每位能吸收电流的方式驱动8个TTL 逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在FLASH由编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
AT89C52中文资料
A T89C52中文资料电子驿站http:// E-mail: support@A T89C52是美国A TMEL公司生产的低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的只读程序存储器(PEROM)和256 bytes的随机存取数据存储器(RAM),器件采用A TMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大A T89C52单片机适合于许多较为复杂控制应用场合。
主要性能参数:·与MCS-51产品指令和引脚完全兼容·8k字节可重擦写Flash闪速存储器·1000次擦写周期·全静态操作:0Hz-24MHz·三级加密程序存储器·256×8字节内部RAM·32个可编程I/O口线·3个16位定时/计数器·8个中断源·可编程串行UART通道·低功耗空闲和掉电模式功能特性概述:A T89C52提供以下标准功能:8k字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,A T89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
AT89C52方框图·P0口:P0口是一组8位漏极开路型双向I /O 口,也即地址/数据总线复用口。
作为输出口用时,每位能吸收电流的方式驱动8个TTL 逻辑门电路,对端口P0写“l ”时,可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
AT89C52单片机交通灯设计1
AT89C52单片机交通灯设计1AT89C52单片机交通灯设计1引言:交通灯是城市道路交通管理的重要组成部分,它将交通流量控制在适当的范围内,确保交通安全和交通效率。
本文将详细介绍AT89C52单片机交通灯设计的原理和实现过程。
一、设计原理:AT89C52单片机是一种常见的8位单片机,具有高度可编程的特性。
交通灯设计的基本原理是通过控制不同颜色的灯光的亮灭来指示交通的状态。
在设计中,我们将使用AT89C52单片机控制红、黄、绿三种颜色的LED灯的亮灭,以实现红灯停、黄灯等待和绿灯行的功能。
二、硬件设计:1.AT89C52单片机:作为控制中心,负责控制交通灯的状态。
2.LED灯:红黄绿三种颜色的LED灯分别表示红灯、黄灯和绿灯。
3.电阻:用于限流,防止LED灯烧坏。
4.开关:用于手动控制交通灯的状态,模拟实际交通情况。
三、软件设计:1.程序框图:交通灯设计的程序可以分为红灯、黄灯、绿灯三个状态,基本流程图如下所示:```流程图┌───────────────────┐│初始化程序││├─────┐│红灯亮│││├─────┐│红灯亮││││││││红灯灭││││││││黄灯亮││││││││黄灯灭││││││││绿灯亮││││││││绿灯灭││││├──►│││重复│││││└───────────────────┘││││▼```2.程序编写:(1)首先定义端口,将LED灯的引脚连接到AT89C52单片机的端口上。
(2)在主函数中,设置红灯亮的状态,即将红灯的引脚设置为高电平。
(3)使用延时函数,使红灯亮一段时间后再灭。
(4)设置黄灯亮的状态,即将黄灯的引脚设置为高电平。
(5)使用延时函数,使黄灯亮一段时间后再灭。
(6)设置绿灯亮的状态,即将绿灯的引脚设置为高电平。
(7)使用延时函数,使绿灯亮一段时间后再灭。
(8)进入重复步骤,循环运行。
四、调试与测试:五、总结:1.AT89C52单片机数据手册2.《单片机原理与应用》。
AT89C52单片机介绍知识讲解
AT89C52单片机介绍在众多的单片机系列中,AT89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系列可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,也适用于常规编程。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89C52为众多嵌入式控制应用系统提供高灵活、超高效的解决方案。
AT89C52具有以下标准功能:8K字节Flash,256字节RAM,32位I/O口线,3个16位定时器/计数器,一个响亮2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89C52可降至0HZ静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
AT89C52单片机为很多嵌入式控制系统提供了一种灵活性高且廉价的方案。
故此选用AT89C52单片机。
1 AT89C52单片机1.1 AT89C52单片机的硬件结构如图3-1所示,为AT89C52的硬件结构图。
AT89C52单片机的内部结构与MCS-51系列单片机的构成基本相同。
CPU是由运算器和控制器所构成的。
运算器主要用来对操作数进行算术、逻辑运算和位操作的。
控制器是单片机的指挥控制部件,主要任务的识别指令,并根据指令的性质控制单片机各功能部件,从而保证单片机各部分能自动而协调地工作。
它的程序存储器为8K字节可重擦写Flash闪速存储器,闪烁存储器允许在线+5V电擦除、电写入或使用编程器对其重复编程。
数据存储器比51系列的单片机相比大了许多为256字节RAM。
AT89C52单片机的指令系统和引脚功能与MCS-51的完全兼容。
图 3-1 单片机89C52结构框图1.2 主要性能参数• 8K字节可重擦写Flash闪速存储器• 1000次可擦写周期•全静态操作:0Hz-24MHz•三级加密程序存储器• 256×8字节内部RAM• 32个可编程I/O口线• 3个16位定时/计数器• 8个中断源•可编程串行UART通道•低功耗空闲和掉电模式图 3-2 AT89C52外部引脚图1.3 AT89C52管脚说明VCC:电源GND:接地P0口:P0口是一个8位漏级开路的双向I/O口。
AT89C52单片机简介
AT89C52是51系列单片机的一个型号,它是ATMEL公司临盆的.AT89C52是一个低电压,高机能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采取ATMEL公司的高密度.非易掉性存储技巧临盆,兼容尺度MCS-51指令体系,片内置通用8位中心处理器和Flash存储单元,功效壮大的AT89C52单片机可为您供给很多较庞杂体系掌握运用处合.AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中止口,3个16位可编程准时计数器,2个全双工串行通讯口,2个读写口线,AT89C52可以按照通例办法进行编程,但不成以在线编程(S系列的才支撑在线编程).其将通用的微处理器和Flash存储器联合在一路,特别是可反复擦写的Flash存储器可有用地降低开辟成本.兼容MCS51指令体系· 8k可反复擦写(>1000次)Flash ROM · 32个双向I/O口· 256x8bit内部RAM· 3个16位可编程准时/计数器中止· 时钟频率0-24MHz· 2个串行中止· 可编程UART串行通道· 2个外部中止源· 共6个中止源· 2个读写中止口线· 3级加密位· 低功耗余暇和掉落电模式· 软件设置睡眠和叫醒功效AT89C52P为40 脚双列直插封装的8 位通用微处理器,采取工业尺度的C51内核,在内部功效及管脚排布上与通用的8xc52 雷同,其重要用于会聚调剂时的功效掌握.功效包含对会聚主IC 内部存放器.数据RAM及外部接口等功效部件的初始化,会聚调剂掌握,会聚测试图掌握,红外遥控旌旗灯号IR的接收解码及与主板CPU通讯等.重要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振.RST/Vpd(9 脚)为复位输入端口,外接电阻电容构成的复位电路.VCC(40 脚)和VSS(20 脚)为供电端口,分离接+5V电源的正负端.P0~P3 为可编程通用I/O 脚,其功效用处由软件界说,在本设计中,P0 端口(32~39 脚)被界说为N1 功效掌握端口,分离与N1的响应功效管脚相衔接,13 脚界说为IR输入端,10 脚和11脚界说为I2C总线掌握端口,分离衔接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚.27 脚及28 脚界说为握手旌旗灯号功效端口,衔接主板CPU 的响应功效端,用于当前制式的检测及会聚调剂状况进入的掌握功效.P0 口P0 口是一组8 位漏极开路型双向I/O 口, 也即地址/数据总线复用口.作为输出口用时,每位能接收电流的方法驱动8 个TTL逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用.在拜访外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在拜访时代激活内部上拉电阻.在Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,请求外接上拉电阻.P1 口P1 是一个带内部上拉电阻的8 位双向I/O 口, P1 的输出缓冲级可驱动(接收或输出电流)4 个TTL 逻辑门电路.对端口写“1”,经由过程内部的上拉电阻把端口拉到高电平,此时可作输进口.作输进口运用时,因为内部消失上拉电阻,某个引脚被外部旌旗灯号拉低时会输出一个电流(IIL).与AT89C51 不合之处是,P1.0 和P1.1 还可分离作为准时/计数器2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),拜见表1.Flash 编程和程序校验时代,P1 接收低8 位地址.P2 口P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(接收或输出电流)4 个TTL 逻辑门电路.对端口P2 写“1”,经由过程内部的上拉电阻把端口拉到高电平,此时可作输进口,作输进口运用时,因为内部消失上拉电阻,某个引脚被外部旌旗灯号拉低时会输出一个电流(IIL).在拜访外部程序存储器或16 位地址的外部数据存储器(例如履行MOVX @DPTR 指令)时,P2 口送出高8 位地址数据.在拜访8 位地址的外部数据存储器(如履行MOVX @RI 指令)时,P2 口输出P2 锁存器的内容.Flash 编程或校验时,P2亦接收高位地址和一些掌握旌旗灯号.P3 口P3 口是一组带有内部上拉电阻的8 位双向I/O 口.P3 口输出缓冲级可驱动(接收或输出电流)4 个TTL 逻辑门电路.对P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口.此时,被外部拉低的P3 口将用上拉电阻输出电流(IIL).P3 口除了作为一般的I/O 口线外,更重要的用处是它的第二功效P3 口还接收一些用于Flash 闪速存储器编程和程序校验的掌握旌旗灯号.RST复位输入.当振荡器工作时,RST引脚消失两个机械周期以上高电平将使单片机复位.ALE/PROG当拜访外部程序存储器或数据存储器时,ALE(地址锁存许可)输出脉冲用于锁存地址的低8 位字节.一般情形下,ALE 仍以时钟振荡频率的1/6 输出固定的脉冲旌旗灯号,是以它可对外输出时钟或用于准时目标.要留意的是:每当拜访外部数据存储器时将跳过一个ALE 脉冲.对Flash 存储器编程时代,该引脚还用于输入编程脉冲(PROG).若有须要,可经由过程对特别功效存放器(SFR)区中的8EH 单元的D0 地位位,可制止ALE 操纵.该地位位后,只有一条MOVX 和MOVC指令才干将ALE 激活.此外,该引脚会被微弱拉高,单片机履行外部程序时,应设置ALE 制止位无效.PSEN程序储存许可(PSEN)输出是外部程序存储器的读选通讯号,当AT89C52 由外部程序存储器取指令(或数据)时,每个机械周期两次PSEN 有用,即输出两个脉冲.在此时代,当拜访外部数据存储器,将跳过两次PSEN旌旗灯号.EA/VPP外部拜访许可.欲使CPU 仅拜访外部程序存储器(地址为0000H—FFFFH),EA 端必须保持低电平(接地).需留意的是:假如加密位LB1 被编程,复位时内部会锁存EA端状况.如EA端为高电平(接Vcc端),CPU 则履行内部程序存储器中的指令.Flash 存储器编程时,该引脚加上+12V 的编程许可电源Vpp,当然这必须是该器件是运用12V 编程电压Vpp.XTAL1振荡器反相放大器的及内部时钟产生器的输入端.XTAL2振荡器反相放大器的输出端.特别功效存放器在AT89C52 片内存储器中,80H-FFH 共128 个单元为特别功效存放器(SFE),SFR 的地址空间映象如表2 所示.并不是所有的地址都被界说,从80H—FFH 共128 个字节只有一部分被界说,还有相当一部分没有界说.对没有界说的单元读写将是无效的,读出的数值将不肯定,而写入的数据也将丧掉.不该将数据“1”写入未界说的单元,因为这些单元在未来的产品中可能付与新的功效,在这种情形下,复位后这些单元数值老是“0”.AT89C52除了与AT89C51所有的准时/计数器0 和准时/计数器1 外,还增长了一个准时/计数器2.准时/计数器2 的掌握和状况位位于T2CON(拜见表3)T2MOD(拜见表4),存放器对(RCAO2H.RCAP2L)是准时器2 在16 位捕获方法或16 位主动重装载方法下的捕获/主动重装载存放器.数据存储器AT89C52 有256 个字节的内部RAM,80H-FFH 高128 个字节与特别功效存放器(SFR)地址是重叠的,也就是高128字节的RAM 和特别功效存放器的地址是雷同的,但物理上它们是离开的.当一条指令拜访7FH 以上的内部地址单元时,指令中运用的寻址方法是不合的,也即寻址方法决议是拜访高128 字节RAM 照样拜访特别功效存放器.假如指令是直接寻址方法则为拜访特别功效存放器.例如,下面的直接寻址指令拜访特别功效存放器0A0H(即P2 口)地址单元.MOV 0A0H,#data间接寻址指令拜访高128 字节RAM,例如,下面的间接寻址指令中,R0 的内容为0A0H,则拜访数据字节地址为0A0H,而不是P2 口(0A0H).MOV @R0,#data客栈操纵也是间接寻址方法,所以,高128 位数据RAM 亦可作为客栈区运用.·准时器0和准时器1:AT89C52的准时器0和准时器1 的工作方法与AT89C51 雷同.准时器2准时器2 是一个16 位准时/计数器.它既可当准时器运用,也可作为外部事宜计数器运用,其工作方法由特别功效寄存器T2CON(如表3)的C/T2 位选择.准时器2 有三种工作方法:捕获方法,主动重装载(向上或向下计数)方法和波特率产生器方法,工作方法由T2CON 的掌握位来选择.准时器2 由两个8 位存放器TH2 和TL2 构成,在准时器工作方法中,每个机械周期TL2 存放器的值加1,因为一个机器周期由12 个振荡时钟构成,是以,计数速度为振荡频率的1/12.在计数工作方法时,当T2 引脚上外部输入旌旗灯号产生由1 至0 的降低沿时,存放器的值加1,在这种工作方法下,每个机械周期的5SP2 时代,对外部输入进行采样.若在第一个机械周期中采到的值为1,而鄙人一个机械周期中采到的值为0,则在紧跟着的下一个周期的S3P1 时代存放器加1.因为辨认1 至0 的跳变须要2 个机械周期(24 个振荡周期),是以,最高计数速度为振荡频率的1/24.为确保采样的准确性,请求输入的电平在变更前至少保持一个完全周期的时光,以包管输入旌旗灯号至少被采样一次.捕获方法在捕获方法下,经由过程T2CON 掌握位EXEN2 来选择两种方法.假如EXEN2=0,准时器2 是一个16 位准时器或计数器,计数溢出时,对T2CON 的溢出标记TF2 置位,同时激活中止.假如EXEN2=1,准时器2 完成雷同的操纵,而当T2EX 引脚外部输入旌旗灯号产生1 至0 负跳变时,也消失TH2 和TL2 中的值分离被捕获到RCAP2H 和RCAP2L 中.别的,T2EX 引脚旌旗灯号的跳变使得T2CON 中的EXF2 置位,与TF2 相仿,EXF2 也会激活中止.捕获方法如图4 所示.主动重装载(向上或向下计数器)方法当准时器2工作于16位主动重装载方法时,能对其编程为向上或向下计数方法,这个功效可经由过程特别功效存放器T2CON(见表5)的DCEN 位(许可向下计数)来选择的.复位时,DCEN 地位“0”,准时器2 默认设置为向上计数.当DCEN 置位时,准时器2 既可向上计数也可向下计数,这取决于T2EX 引脚的值,拜见图5,当DCEN=0 时,准时器2 主动设置为向上计数,在这种方法下,T2CON 中的EXEN2 掌握位有两种选择,若EXEN2=0,准时器2 为向上计数至0FFFFH 溢出,置位TF2 激活中止,同时把16 位计数存放器RCAP2H和RCAP2L重装载,RCAP2H 和RCAP2L 的值可由软件预置.若EXEN2=1,准时器2 的16 位重装载由溢出或外部输入端T2EX 从1 至0 的降低沿触发.这个脉冲使EXF2 置位,假如中止许可,同样产生中止.准时器2 的中止进口地址是:002BH ——0032H .当DCEN=1 时,许可准时器2 向上或向下计数,如图6 所示.这种方法下,T2EX 引脚掌握计数器偏向.T2EX 引脚为逻辑“1”时,准时器向上计数,当计数0FFFFH 向上溢出时,置位TF2,同时把16 位计数存放器RCAP2H 和RCAP2L 重装载到TH2 和TL2 中. T2EX 引脚为逻辑“0”时,准时器2 向下计数,当TH2 和TL2 中的数值等于RCAP2H 和RCAP2L 中的值时,计数溢出,置位TF2,同时将0FFFFH 数值从新装入准时存放器中.当准时/计数器2 向上溢出或向下溢出时,置位EXF2 位.波特率产生器当T2CON(表3)中的TCLK 和RCLK 置位时,准时/计数器2 作为波特率产生器运用.假如准时/计数器2 作为发送器或接收器,其发送和接收的波特率可所以不合的,准时器1 用于其它功效,如图7 所示.若RCLK 和TCLK 置位,则准时器2工作于波特率产生器方法.波特率产生器的方法与主动重装载方法相仿,在此方法下,TH2 翻转使准时器2 的存放器用RCAP2H 和RCAP2L 中的16位数值从新装载,该数值由软件设置.在方法1 和方法3 中,波特率由准时器2 的溢出速度依据下式肯定:方法1和3的波特率=准时器的溢出率/16准时器既能工作于准时方法也能工作于计数方法,在大多半的运用中,是工作在准时方法(C/T2=0).准时器2 作为波特率产生器时,与作为准时器的操纵是不合的,平日作为准时器时,在每个机械周期(1/12 振荡频率)存放器的值加1,而作为波特率产生器运用时,在每个状况时光(1/2 振荡频率)存放器的值加1.波特率的盘算公式如下:方法1和3的波特率=振荡频率/{32*[65536-(RCP2H,RCP2L)]}式中(RCAP2H,RCAP2L)是RCAP2H 和RCAP2L中的16 位无符号数.准时器2 作为波特率产生器运用的电路如图7 所示.T2CON 中的RCLK 或TCLK=1 时,波特率工作方法才有用.在波特率产生器工作方法中,TH2 翻转不克不及使TF2 置位,故而不产生中止.但若EXEN2 置位,且T2EX 端产生由1 至0 的负跳变,则会使EXF2 置位,此时其实不克不及将(RCAP2H,RCAP2L)的内容从新装入TH2 和TL2 中.所以,当准时器2 作为波特率产生器运用时,T2EX 可作为附加的外部中止源来运用.须要留意的是,当准时器2 工作于波特率器时,作为定时器运行(TR2=1)时,其实不克不及拜访TH2 和TL2.因为此时每个状况时光准时器都邑加1,对其读写将得到一个不肯定的数值.然而,对RCAP2 则可读而不成写,因为写入操纵将是从新装载,写入操纵可能令写和/或重装载出错.在拜访准时器2或RCAP2 存放器之前,应将准时器封闭(消除TR2).可编程时钟输出准时器2 可经由过程编程从P1.0 输出一个占空比为50%的时钟旌旗灯号,如图8 所示.P1.0 引脚除了是一个尺度的I/O 口外,还可以经由过程编程使其作为准时/计数器2 的外部时钟输入和输出占空比50%的时钟脉冲.当时钟振荡频率为16MHz 时,输出时钟频率规模为61Hz—4MHz.当设置准时/计数器2 为时钟产生器时,C/T2(T2CON .1)=0,T2OE (T2MOD.1) =1,必须由TR2(T2CON.2)启动或停滞准时器.时钟输出频率取决于振荡频率和准时器2 捕获存放器(RCAP2H,RCAP2L)的从新装载值,公式如下:输出时钟频率=振荡器频率/{4*[65536-(RCP2H,RCP2L)]}在时钟输出方法下,准时器2 的翻转不会产生中止,这个特点与作为波特率产生器运用时相仿.准时器2 作为波特率产生器运用时,还可作为时钟产生器运用,但须要留意的是波特率和时钟输出频率不克不及离开肯定,这是因为它们同运用RCAP2L和RCAP2L.UART AT89C52的UART 工作方法与AT89C51 工作方法雷同.中止AT89C52 共有6 个中止向量:两个外中止(INT0 和INT1),3 个准时器中止(准时器0.1.2)和串行口中止.所有这些中止源如图9 所示.这些中止源可经由过程火离设置专用存放器IE 的置位或清0 来掌握每一个中止的许可或制止.IE 也有一个总制止位EA,它能掌握所有中止的许可或制止.留意表5 中的IE.6 为保存位,在AT89C51 中IE.5 也是保存位.程序员不该将“1”写入这些位,它们是未来AT89 系列产品作为扩大用的.准时器2 的中止是由T2CON 中的TF2 和EXF2 逻辑或产生的,当转向中止办事程序时,这些标记位不克不及被硬件消除,事实上,办事程序需肯定是TF2 或EXF2 产生中止,而由软件消除中止标记位.准时器0 和准时器1 的标记位TF0 和TF1 在准时器溢出谁人机械周期的S5P2 状况置位,而会鄙人一个机械周期才查询到该中止标记.然而,准时器2 的标记位TF2 在准时器溢出的谁人机械周期的S2P2 状况置位,并在统一个机械周期内查询到该标记.时钟振荡器AT89C52 中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1 和XTAL2 分离是该放大器的输入端和输出端.这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一路构成自激振荡器,振荡电路拜见图10.外接石英晶体(或陶瓷谐振器)及电容C1.C2 接在放大器的反馈回路中构成并联振荡电路.对外接电容C1.C2 固然没有十分严厉的请求,但电容容量的大小会稍微影响振荡频率的高下.振荡器工作的稳固性.起振的难易程序及温度稳固性,假如运用石英晶体,我们推举电容运用30pF±10pF,而如运用陶瓷谐振器建议选择40pF±10F.用户也可以采取外部时钟.采取外部时钟的电路如图10 右图所示.这种情形下,外部时钟脉冲接到XTAL1 端,即内部时钟产生器的输入端,XTAL2 则悬空.因为外部时钟旌旗灯号是经由过程一个2 分频触发器后作为内部时钟旌旗灯号的,所以对外部时钟旌旗灯号的占空比没有特别请求,但最小高电平中断时光和最大的低电平中断时光应相符产品技巧前提的请求.余暇节电模式在余暇工作模式状况, CPU 自身处于睡眠状况而所有片内的外设仍保持激活状况,这种方法由软件产生.此时,同时将片内RAM 和所有特别功效存放器的内容冻结.余暇模式可由任何许可的中止请求或硬件复位终止.由硬件复位终止余暇状况只需两个机械周期有用复位旌旗灯号,在此状况下,片内硬件制止拜访内部RAM,但可以拜访端口引脚,当用复位终止余暇方法时,为防止可能对端口产生不测写入,激活余暇模式的那条指令后一条指令不该是一条对端口或外部存储器的写入指令.掉落电模式在掉落电模式下,振荡器停滞工作,进入掉落电模式的指令是最后一条被履行的指令,片内RAM 和特别功效存放器的内容在终止掉落电模式前被冻结.退出掉落电模式的独一办法是硬件复位,复位后将从新界说全体特别功效存放器,但不转变RAM中的内容,在Vcc恢复到正常工作电平前,复位应无效,且必须保持一准时光以使振荡重视启动并稳固工作.程序存储器的加密AT89C52 有3 个程序加密位,可对芯片上的3 个加密位LB1.LB2.LB3 进行编程(P)或不编程(U)来得到.当加密位LB1 被编程时,在复位时代,EA 端的逻辑电平被采样并锁存,假如单片机上电后一向没有复位,则锁存起的初始值是一个随机数,且这个随机数会一向保管到真正复位为止.为使单片机能正常工作,被锁存的EA 电平值必须与该引脚当前的逻辑电平一致.此外,加密位只能经由过程整片擦除的办法消除.Flash存储器的编程AT89C52单片机内部有8k字节的Flash PEROM,这个Flash 存储阵列出厂时已处于擦除状况(即所有存储单元的内容均为FFH),用户随时可对其进行编程.编程接口可接收高电压(+12V)或低电压(Vcc)的许可编程旌旗灯号.低电压编程模式合适于用户在线编程体系,而高电压编程模式可与通用EPROM 编程器兼容.AT89C52 单片机中,有些属于低电压编程方法,而有些则是高电压编程方法,用户可从芯片上的型号和读取芯片内的签名字节获得该信息.AT89C52 的程序存储器阵列是采取字节写入方法编程的,每次写入一个字节,要对全部芯片内的PEROM 程序存储器写入一个非空字节,必须运用片擦除的方法将全部存储器的内容消除.编程办法编程前,须按表9 和图11 所示设置好地址.数据及掌握旌旗灯号, AT89C52 编程办法如下:1.在地址线上加上要编程单元的地址旌旗灯号.2.在数据线上加上要写入的数据字节.3.激活响应的掌握旌旗灯号.4.在高电压编程方法时,将EA/Vpp 端加上+12V 编程电压.5.每对Flash 存储阵列写入一个字节或每写入一个程序加密位,加上一个ALE/PROG 编程脉冲.每个字节写入周期是自身准时的,平日约为1.5ms.反复1—5 步调,转变编程单元的地址和写入的数据,直到全体文件编程停滞.数据查询AT89C52 单片机用Data Palling 暗示一个写周期停滞为特点,在一个写周期中,如需读取最后写入的一个字节,则出的数据的最高位(P0.7)是本来写入字节最高位的反码.写周期完成后,所输出的数据是有用的数据,即可进入下一个字节的写周期,写周期开端后,Data Palling 可能随时有用.Ready/Busy:字节编程的进度可经由过程“RDY/BSY 输出旌旗灯号监测,编程时代,ALE 变成高电平“H”后,P3.4(RDY/BSY)端电平被拉低,暗示正在编程状况(忙状况).编程完成后,P3.4 变成高电平暗示预备停当状况.·程序校验:假如加密位LB1.LB2 没有进行编程,则代码数据可经由过程地址和数据线读回原编写的数据,采取如图12的电路.加密位不成直接校验,加密位的校验可经由过程对存储器的校验和写入状况来验证.芯片擦除:运用掌握旌旗灯号的准确组合(表6)并保持ALE/PROG 引脚10mS 的低电平脉冲宽度即可将PEROM 阵列(4k 字节)和三个加密位整片擦除,代码阵列在片擦除操纵中将任何非空单元写入“1”,这步调需再编程之进步行.·读片内签名字节:AT89C52 单片机内有3 个签名字节,地址为030H.031H 和032H.用于声明该器件的厂商.型号和编程电压.读AT89C52 签名字节需将P3.6 和P3.7 置逻辑低电平,读签名字节的进程和单元030H.031H 及032H 的正常校验相仿,只返回值意义如下:(030H)=1EH 声明产品由ATMEL公司制作.(031H)=52H 声明为AT89C52 单片机.(032H)=FFH 声明为12V 编程电压.(032H)=05H 声明为5V 编程电压.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
! " #$% &'( )*+,- ./ 012 34567 89:;< =>( ?@AB ! C D EF GHIJKLM NOPQ(RHD S TUVWXY12D Z[ \] Z[ ^ _ ! `a _ bc !d$ e_ fghi?jkle_mnopq>r`st 7cu v wc xy "# z{|}~ h & [ o o J bc !d$ pq>r`7?j56 o ? < st o ^&o Ye_ &$0 834!9: m;<§¨¨¨mz{~ ¨¬®¯°¬±i²)®³´·®· ¸ pq DÀ !9:D ÁÂÃÄÄ ¼ÅÆÇÈɨ`ɨ` eÊ ËÌÍvÎnf¹º»` ÏÐÈÑ!$%Òa (` MÓÔ`(cÕ Ö× Ø ÙÚ _ |}Û vÜÝ`ɨ §c M ÞßÓàÝ(áâãä^$% å cæÊ`açcèéÈÑ !$%Òa (áâã«êëì ^íî Þá ¸ c `ï×34Z[ðá ñòcÓÔ34Z[ñòc óäïíî Þ` e_ô ^íî Þ nf ! ` ÓÔõöi ÙÚÖ×åÓÔ Ø$_ |}Û vÜÝ` >÷ ^ íî ÞøÝ`î ùúc Óà` Óà`û(cüM ^ áíîÞý_9:þä^rÿî c ÓÔe_ Ø% &0 w A ' ! ' ç Mbc!d$ ä^d$Óà ' ! !Óà ' ! (¸ ! ñò«ê ï× ÈÑ` e_ô ^íî Þ nf ! ` ÓÔõöi ÙÚÖ×åÓÔ Ø$_ |}Û vÜÝ` >÷ ^ íî ÞøÝ`î ùúc Óà` Óà`û(cüM ^ áíî Þý_9:þä^rÿî c ÓÔe_ Ø% &áâãä^ å ÈÑ ä^$% q )( *+ 34c ` Ô ÈÑ$ %áâã ÈÑ ä^$% q )( * 34c `ÓÔ < ¸ åñòc ï× ÈÑ!e OPrÿ` ` eÊô ^íî Þ nf ! ` `ÓÔõöi ÙÚÖ×åÓÔ Ø$_ |}Û vÜ ` à c þ ^íî Þî MÓàÝ`úcþä^î ` (íî ÞÓÔ Ø¹É·` Me ¹º»`aä ¡ ( D Yúä ` ï×e (I \] ¸ ! ñò OPrÿÓà st o c 9:Ô h_ ª«Xí ù ûâãä^ å$% c ÈÑ JÓÔ ö(I ÈÑ Z[e Y Xcust ! ÓÔ!b örÿüú ÜäÓÔcuå(Ibc" #$ Õ âãä^$% c %÷e_ öÜ¢£¤¥¦ ¸ «ê&9: (IÓภöɵ»Å' >÷ÜS(D ) *¢µ+? ,¬ C Ǩ = ¶-,~ & = . e/°»Ã0!°»Ã1342 ¶-,ëìúä&9: þ34î qä^ c Q5=¶-, 67J ,ÓÔ ä^ >rÿ 8ä^ #34å$ %cÕ_ ª«h© , 7ÐÓÔh_ öáú«ê âãä^$% %÷h© ,rÿä^âã J9û :âãä^ ÈÑM " " Ý'; ùïÈ<#$ =²) - þ¸ c ^ Ý>{ÝM ùï)..Ý ? q ^ ? 34¸ c&9:²í/ ) ¸ J ¼)00 @æ'; & & û( )¸ )00st AB F 7 ^cu C ÓàÝst AB F ÓÔÝDDDD S(D )á ? " "E _ CMS(D ) ÈÑ êFG+ ÈÑHþb I J " "E _Z[ e^çþb I A e^çK b IÜK b I C 67 Ô $L M bð à $%Ï N-Q $% àO b I C8Iæ Cá P 8? QRS D áæ Y .æ C$LÒ¶¾ T1³® 0¶¾ T1³§ bcºd$ ¨!bcºd$ §ä U² e_bcºd$ ®bcºd$ ® O P!>{ I¾®1»Æ ·¾®°»Ç ¯) ܵ1¶»®¬µ1¶É®- bc ®á§´ VW 姴XÚ¡YZ Y VWºXÚ¡YZ)DDDD?j)_?j¼ _?j[\i ) OP]?j ) ? _?j¼ Õe_ bM _[\ i$%_Z[ ^ " " _Z[0S(D ) ÈÑ ¡^ Ï_ Z[ !S(D ) ÈÑ A w `Bí çÍe/34âã1 "Xí ^ÈÑ Cc34?û( aÑ w ÏÐaÑ b b âã Z[ âãS(D ) =34 ïaÑ ?MâãS(D )Y c ïaÑ34âãS(D ) "Ð `ÈÑ C) "23êïaÑ34âã Z[ Y c êïaÑ34? <M "?âã$%Z[ÈÑM "ð ` ") * 23de~ Ï êïaÑ X $% M de+û(bc !bcbc !bc o 0 A wbcbc e_ bc!d$ f bc û(Ï Mä^g&d$ û( o 8S(D ) , ! h bc ± o VW XÚ¡YZ fíåfYd$ !iS C o 8 , OP P h $bc 8h_ ) " ! Êjábc o ?Õ_ ª« ) L² 8Ie_ ª«8 _stcul jüúd$]Mst !ád$o c 9:íä^Óàrÿ 8 y Yx k c) L² áæ o YÕ_ ª« «êÜä^Óàl q'm ná e_ ª«?' L M ðáYe_ ª«?' L M?áopq Ye_ª« «ê) ² 8I r y %s< _ ª« $_stª«üút d$]Mst ! $M M 'm uM óÓà ùásvw y x e_ yª« cêX zÓàrÿy xþ'm e©VWáVW Y>÷ ,OP ( , P h h = ( , 4 bc e_ bc åd$ d${ÔcÜ , {Ô1| = wcëì?j = ( , 4 bc jA w ~ ð (9:ä^ÓàrÿC y }%s cÏÔ " ! ? Lç þVW "! ?~ä (9 :rÿ %sû ,? ( = 0 A ( Ï ëì?j VW $DDDD XÚ¡YZ fíåfYd$bc o I XÚ¡YZ c Ü ¸ MfíåfYd$ æ_D >÷S(D ) , + , JfYd$P h c+ , = bc 5=Mfíd$ + ,= c bc f fíd$Ï fYd$æ#b I (9: L + ,4 c bc XÚ5=Mfíd$áæ Y ,? ( , OP h h n ( , 4 bc Mfíd$y "{Ô= ëì?j wcø d$) "! ¡YZ "! L 8 & = n ( , 4 bc ¡YZ8{Ôåä^ÓàÝ (J y Yx k Cæ_ öû ( = =?j J w m ?jÇ1,Æ §c Jbc ®fíåfYd$ ´ æ Y¾®,09:OPd$ f¾®,09:M| }§c bc fíd$ d$¨¢¢¢¢¬fí{Ôc= ¾¢®wcø d$) "! ¡Y Z " ! ? (9:M|} c bc fYd$ " ! ? $L I "!? L c d${Ô= wc "$L¡SYàbc) ?bc!d$ fí{ÔåfY{Ôc= (DDDD i S C¾®1»Æ ·? ¾1- !µ1- = c bcºd$ ® M i S C û( =bcºd$ ® M C åï× C !ï× i S X w bc §(I D nµ1- !¾1- = ?bc ®o I i S CDDDDi S C 0XÚ¡YZ A áú Y¾¬® èûbc ® ) (µ1¶É®¬!µ1¶É®-? §´ $L¡SYZ&$L8 &5=á §! ·D?i S 8bc ® {Ô] %Y M bbc f o Ibc Ï o Id$ áFK$ Q(? o ábc 1º¾® ¨bc ® M iS C c0 Mbc ~ w > Mbc cáÕ_ ª«§º§®st ) L²§ð M i S C û(cáÕ_>{cꧺ®st ) L²§i S d Y? " "! ? 6 ÿ$bc M i S C û( v 1 ,? 5å 54 c i S o 2 7ái S C o ? " è û = ð ?j n ( , = (Ý 8 y }%s? û ( = úc " <¡SYà " ! ? X bc M i S C û(c ( M ² ä^?j¼Pû(< #$ bc o I i S c Mb c q 4 c âã " ! üMúcÕ_>{cêbc H ² Ü e_ M b$LDDDD@ðܵ1¶É®? ð üM à~ ¡SYZ à~ 4 !ºå¡YZÔ áâãbc ®åµ1¶É®) w Q bc ¾µ®¸ cuÓÔbc >÷¸ J ' ÓÔe_ M 6 curÿ ' 9: e_12 ! `ä X>÷¸ û Mbc!d$ ä^cuÓà!ÓÔ 6 cu ö cust M "#cÓÔcu M "#$ "#5=bc!d$ Mcu C c ! , ' 4 +' 4 ';8 ,'Úå bc cuÓÔ #b Ist !bc VW) " ¡SYZL YácuÓÔ Y bc è ?jæ_S 0 M i S C û(c A bc M i S C û(c Mcu C û( < #$ i S!cuÓÔ çÍM bæ üM wû(!DDDD¶¾ T1³® ½¶µ¾o 0¶¾ T1³§o A w?jE _?jfg h_ä?j , ! , _bc ?j bc !pq`?jæ ?j¼æ ?j¼ >÷ç 5= () = å P OPÕe_?j Jå Ï e_Ò OP ?j Jå#$ ? ' M á ? ' Ï Q àæ P 5 8 M ¡(bc ?j 8 ,? ! ( |}å èf?j¢£ cæ 1| þ & g¤í¢£ <M b å ( ?jð8 & ?j1|bc !bc 1| ! ábc {Ô¥_ ª« >{= ð áYe_ ª«2¦§ &?j1|@ðbc 1| ábc {Ô ¥_ ª« >{= áwe_ ª« ¦§ &1|DDDD cust¶¾ T1³®? e_(Il j ^st U¨ AB F 9:0¾¶-§!0¾¶-®ç &B F ÓàÝ!ÓÔÝæ_B F 0 M ©C& 䪫¬å®¯°s e±l jXëst st v §¨ä磌¬å®¯°s 7 < ïáB F ©²v?l j ³st vÜäï < ´@K µç¶· ó <<g F¸ ¹3º»st st o ¼b ±s ½, 7¾*¼b =û(ª«¬¿ ÀÁ <û( 0 0 ð û(®¯°s Âà h$ 0 §¨¢(ÄÏ X'(ä^cu'(ä^cu v §¨Å æ Yä^cu öï 0¾¶-§ÝÐ ^ cu C ÓàÝ0¾¶-®?Æ8Iä^curÿ >÷e_ ç C. M ^curÿ XÜä^curÿ K S( ó t¸ ù cê!t F ù cêQ H 8.//& óDDDD [á o >{ XÇAIÈÉ>{ð ä5 ëì>{æ 8 & úc wc ! S(D ) <Êk 8ËÌ J ?jÍóå & Î8 & Î >{ <h_ ª« 7 rÿáú>{Y & âã ^µ¶° XâãÝ`9: ( Î c MÏÐ ÜÝ` $ä àëì ¥/34.e/34 Q e/ÜÝ`åä^ à34DDDDá Y st o là 34 t.e/þ q 34 !S(D ) <áÎ wþÊkÑÔ Òe Ó & . ¡S b I m^S(D ) Ôs ? <á)..Õ u o ùw Q67 '; ebcêXûst ¡ Ú ¼bo ! Y_Ý`9:>{²)_ ²) ÜÖ í _²) - - - l q¸ å ¸ P 1D# ? O¸ ¸²) -קþ¸ cá «ê,¶Ý |} ùþ'm = í .e K ? ± ØÙL e_" $ æ_" $ e Úu M Mû u o þ ,¶ ùL';0&9 : w |} ùeÛúä²) >÷y Ó¸^ Z[ æ_ Ü ÔÝcÞAI >{Ð C <ßM "(Ä"c Ü l q¸ ¸ ï` ï× / )å ).. J¸ rÿ ¸GHI(Äáa¸ 56ð ¸ 0>( ¸ ;<? àI ¸ ð ? ¸ (Ä JÖ í Îÿ! #Ö áâZ[W &rãÜ '(Z[ à ¸ Õ© àe_Z[ Üy_Ö àe_+ Z[';û( y_ <DDDD¸ Ó¸ w;ä ! 5=åÈÑ$%7OPrÿ ¸ Ó YDáÈÑaí²í ¸ C ÈÑrÿDá$%aí²í à $%Z[DëìA Q OPrÿ$Dá ¸ c !)00ݲí/ )¸DÕÜ Ü àe_Z[åÕ àe_ ²) ²íe_ ! 7¸ öÕ_Z[ ફ XÇbc > æM ' 8 ¡ çèÔs¸ C ÈÑ! à $% m^é&¸ kê$%¦§(+ 9:; e_ ª«kêMSëáe_ ª«? < #t. à e_Z[? Ô $% t '1 ìP àZ[t í ª« j. ÓÔ $% 7 $%Ð làYe_Z[ ª« ª«ÍÙ.+ 9:; "c 7Z[¸ l* >÷ +<!- <ÓÔrÿîï¸ «ê s M ù". '$ +<!- <Ý ùþî uḠ>{ð>{¸ j. '$s M ù 2ñ_ò>{ñò =²) - - K l q¸ ?óí$% >÷ÈÑ!$%a ²ì¸ $%'( v²) ïñò²) ñò >÷Ü ñò! à>{PòzDDDDÖ ô(OPrÿ uMÊH ! 79: 8 ù öõ*Ð Ü $ Z[!±_²) y óíÜ á ~ ? ËÌ+ C à æçè<ö¸ wl qáâZ[ _áâZ[ÈÑM " "! "(I÷Â& & ÝøÎÿ!¸ áâZ[< ' ! '1=|} ù áâZ[ ÷ ! C " "7 " u ñòA ù²L$I Y"4 "÷ 88 Pú"4 "÷ÂM"4 "÷ÂM )¸"4 "÷ÂM )¸¸ ! ñòc ¸ ! $ ¸! Ìû $"Ø $"üØSáXYo /& ` ! 7 , }Z <M 0 ýÓÔ`}Z <M 0 ä^ !$% $。