AT89C2051烧写器的制做与调试

合集下载

AT89C2051烧写器制做经验

AT89C2051烧写器制做经验

AT89C2051烧写器的制做与调试的经验采用的就是上面的图。

E51Pro V2.0宇宙版的软件。

我是分成两块板制作,一块就是MAX232电路,上图左下角。

网上买的贴片SO16 MA232,制板焊接,通电,12V电压端只有几伏,芯片发热,仔细检查电路没有什么问题,换另一块芯片,还是不行,一共换了5块,只有一块能输出12V,但是不稳定,有时行有时不行。

上网查,说是山寨的多,质量不过关。

又从另一家网购的DIP 16直插芯片,重新制板,电容按说明书全换成1UF 50V的独石,还是不行。

网上说电荷泵瞬间电流大,分析电源(手机充电器)可能不好,换另一个电源,又在16脚串联一只2R电阻,总算出来12V 电压了。

+9V、-9V也有了。

做电路其余部分的板子,焊接,按步骤调试。

12V又不对了。

看来MAX 232国产假货太多了。

于是用MC34063升压电路提供12V电压。

重新调试,12V 电压正常,三只三极管切换电路正常。

给AT89S51输入HEX 文件,安装上AT89S51(可用S52、STC89C 52等代替)、AT89C2051,DB9插到电脑串口上,提示找不到器件,检查电路,发现有焊接错的地方,因为为了省板,飞线多。

改正之后,能检测到元件,特征字1E 21 FF ,对了。

试着录入那个点亮LED 的程序的HEX 文件。

校验提示34个错误,反复几次都是如此。

百思不得其解,上网查也得不到答案。

陷入了迷茫------查看上位机软件中的缓存1、2,1是保存录入程序的16进制文件,2是从2051单片机中读出的数据。

最左边是地址,每行8个16进制代码。

发现只有头3个代码是一样的,往下都是FF,一直到0800这个地址,往后就不一样了,1中是源数据,2中则是FF 。

几十个数据都不一样。

本人编程知识有限。

唯有再三分析,上网查找资料,甚至研究了源程序代码,学习了HEX 文件结构,排徐各种可能,在一个安静的清晨,在手机页面上看了一篇文件,说是HEX 转换为BIN 文件有可能变得很大,突然意识到那个0800地址问题。

AT89CX051编程器的设计

AT89CX051编程器的设计

AT89CX051编程器的设计摘要本文给大家介绍一个实用的A T89CX051编程电路,编程器电路主要有监控电路、编程方式控制电路、与电脑通讯的接口电路、编程电压(VPP)控制电路和电源电路组成。

文章详细地说明了A T89CX051单片机编程时序,利用AT89C2051单片机和MAX232、74LS164构成了AT89CX051编程器。

关键字A T89C2051,MAX232,74LS164,Keil C51,VB1 概述AT89CX051 单片机体积小,外围引脚仅有20只,功能强,有15只可编程I/O口,价格低廉,零售价格不足十元,应用十分广泛,如现在使用的数字钟就是以它为主CPU。

要使用单片机,必不可少的一件东西,那就是编程器。

许多爱好者由于不具备专业的开发环境和编程器,且面对市场上多则几千元,少则几百元的编程器,很多人望而却步,从而无法进行单片机实验。

虽然现在很多单片机都带有ISP或IAP功能,能实现串行下载编程,但此款单片机没有串行下载编程功能。

本人借鉴其他编程器自制了个AT89CX051专用编程器。

这里给大家介绍一个AT89CX051编程电路,编程器电路主要有监控电路、编程方式控制电路、与电脑通讯的接口电路、编程电压(VPP)控制电路和电源电路组成。

监控芯片A T89C2051程序用C51语言编写,使用Keil开发环境,C语言具有可读性强、移植性好等优点。

电脑程序用VB编写,开发简单,是面向对象的可视编程。

利用A T89C2051单片机和MAX232,74LS164构成的AT89CX051编程器,完全满足要求。

2 硬件电路2.1 系统组成和工作原理此编程器主要有监控电路、编程方式控制电路、与电脑通讯的接口电路、编程电压(VPP)控制电路和电源电路组成。

如图1所示:图1 A T89CX051编程器框图AT89CX051单片机编程时序:1.接通电源(Vcc位+5V),置RST,XLAT1为低电平,延时至少10ms。

AT89C2051简明资料

AT89C2051简明资料

AT89C2051简明资料片内ROM------RAM------I/O口线-------中断源-------定时/计数器(个)2k(Flash)------128-----------15--------------5------------------2片内ROM寿命为1000次擦写周期,数据保存期达10年,宽电压工作范为2.7V-6V;全静态工作方式:0Hz-24MHz;两级程序存储器锁定位;128×8位片内RAM;15个可编程I/O口线;两个16位的定时/计数器;5个中断源;可编程串行通道;直接LED驱动输出;片内模拟量比较器;低功耗闲置与掉电保护模式。

信号引脚功能AT89C2051是一种20引脚的双列直插式IC芯片,引脚是单片机的硬件外特性,用户通过引脚连接外部器件就能组建单片机系统。

(1) P1口:它是8位双向口线,即P1.0-P1.7。

口引脚P1.0(12脚)和1.1(13脚)用于外部接口工作时,要求配置外部的上拉电阻;P1.2-P1.7内部设有上拉电阻,用于外部接口工作时由外部负载工作方式决定上否配置上拉电阻。

P1口带有输出缓冲器,可吸收20mA的电流并能直接驱动LED显示。

P1口的功能之一是在闪速编程和程序校验期间接收代码数据(即编程的数据输入口)。

(2) P3口:它是带有内部上拉电阻的7位双向口线,即P3.0-P3.5和P3.7。

P3.6因内部功能的需要,它虽是通用的I/O口引脚但不可访问。

P3口的其它特性与P1口相同,此外P3口还具有第二功能。

(3) 复位端RST(1脚):当1脚加“H”高电平时芯片内部的功能电路复位,此时I/O口引脚复位到“1”电平。

(4) XTAL1(5脚):振荡器外接晶振,内部时钟发生器输入。

(5) XTAL2(4脚):振荡器外接晶振、反向放大器输出。

(6) 电源端20脚(+2.7-6V)和10脚(地端)。

引脚的复用功能由上述对AT89C2051引脚介绍可见:P1口和P3口共占15个引脚,外加复位、振荡(时钟)和电源端等已把芯片的引脚全部占完。

AT89单片机烧写使用说明

AT89单片机烧写使用说明

AT89单片机烧写软件使用说明请注意:这是烧写AT系列的单片机说明,如果你要烧写STC系列单片机,请参考另外一个说明。

首先:确认编程器板上的红色拨码开关,4位应该全部断开状态(出厂默认设置)。

第二:把编程器的两个接口都接到电脑上。

可以看见红灯亮(如果不亮,请检查)第三:接着安装软件“AT89单片机烧写软件”,本软件支持Win9x/me/2000/XP,标准Window 操作界面。

安装软件后,回到桌面,运行其中的Easy 51Pro程序即可。

第四、软件使用程序启动后,会自动检测硬件及连接,状态框中显示“就绪”字样,表示编程器连接和设置均正常。

否则请检查硬件连接和端口设置。

可以按照下面设置端口,这里的端口一定要和你所连接的COM口对应。

(别的参数不要改变)意,如果编程器上的红灯亮了,表示芯片方向放置正确;否则请检查方向是否反了!!!)芯片放好后,就可以对芯片进行读写操作了,读写操作按下面的步骤进行:1、程序运行,请先选择器件(点下选框),再点检测,运气好的话可以检测到器件。

如果运气不好,可能检测不到器件,原因可能是●您的单片机特征字有点问题,可能性95%(只是有问题,并没有说坏)●编程器有问题,可能性5%检测不到也没关系,可以忽略这个功能。

请直接按照下面的说明操作,对芯片擦除、读、校验等操作。

2、用“打开文件”选择打开要编写的.HEX和.BIN文件3、用“保存文件”可以保存读出来的文件4、用“擦除器件”擦除芯片5、用“写器件”编程6、用“读器件”读取芯片中的程序,加密的读不出来7、用“校验数据”检查编程的正确与否8、用“自动完成”自动执行以上各步骤9、用“加密”选择加密的级数。

at89c2051编程器制作

at89c2051编程器制作
带校验编程
0x55,数据
数据
上位机首次发送0x55,数据,控制单片机收到数据后并传送给编程单片机,读取后发给上位机,由上位机判断两数据是否相同,不同循环此步
0x56,数据
数据
上位机对比两此数据后,发现数据正确,于是发送0x56,程序数据,控制单片机收到后立马写入数据并给一个脉冲给编程单片机的XTAL1引脚,让程序ROM地址加一,等待下一步的执行
首先写一段指令如下
MOV P1,#55H
MOV P1,#F0H
我们通过查指令表可以知道指令码为:75H 90H 55H 75H 90H F0H
我们将其编译,然后下载到单片机内,那么程序存储器ROM内存放的数据如下图所示:
第一步:单片机上电复位后PC指向0000H并取出75H(MOV)指令,由译码器分析这条指令是干嘛?有几个字节?发现这条75H(MOV)指令是传送指令,占用3个字节单元然就计算出PC下一步取指令的地方,0000H+3,并将指针放到那,然后继续执行传送指令的功能
date[0]=0x00;//清控数据
date[1]=0x00;//清控数据
}
if(date[0]==0x66&date[1]==0x44)//判断是否为芯片擦除命令
{
date_biaozhi=0;
date[0]=0x00;//清控数据
date[1]=0x00;//清控数据
write_end();//编程结束
第二步:由于编译器已经知道要干嘛了,它就自动的将0001H地址的数据55H取出,然后送到0002H地址内的RAM地址码90H(P0),第一步指令就完成了
第三步:由于PC指针指向了0000H+3,然后重复第一步的操作了,如此周而复始执行者指令

AT89C2051数字电子钟的设计

AT89C2051数字电子钟的设计

AT89C2051数字电子钟的设计一、设计任务与要求1.通过单片机技术使 LED 数码管输出显示时间。

2. 可通过按键设置闹钟功能,且停闹无须手工操作。

3. 提高计时精度,使计时误差最小。

4. 通过键盘 2 个键,从左到右依次标名为 SET,DOWN,UP,ENTER, 用来修改和设置系统时钟。

二、方案设计与论证其主要设计思想是:整个系统用单片机为中央控制器,由单片机执行采集时钟芯片的时间信号并通过显示模块来输出信号及相关的控制功能。

时钟芯片产生时钟信号,利用单片机的 I/O 口传给单片机;并通过 I/O 口实现 LCD 的显示。

系统设有 4 个按键可以对时间星期年月日进行调整,还可以设置闹钟。

本电路以一片AT89C2051 单片机为主体,其显示数据从P3.0-P3.7 口输出,P1 口输出对应的六位位选信号。

电子钟程序设计时使用了 T0 作为计时,T1 为调整时显示用。

只要对程序稍加更改,可以很容易的实现 8 路定时功能。

电子钟只用一个轻触式按键来完成所有的设置。

为了使闹钟音量足够大,采用了 PNP 型三极管 8550 来驱动蜂鸣器,驱动电阻用 1K 的,蜂鸣器为 5V 小型蜂鸣器。

若用 NPN 来驱动蜂鸣器音量要小一点。

LED 数码管位驱动用8850,电子钟采用自制的 3A 开关电源供电。

AT89C205 是一个低电压,高性能 CMOS 8 位单片机,片内含 2k bytes 的可反复擦写的只读 Flash 程序存储器和 128 bytes 的随机存取数据存储器(RAM),器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系统,片内置通用 8 位中央处理器和 Flash 存储单元,功能强大。

但它只有 20 个引脚,15 个双向输入/输出(I/O)端口,其中 P1 是一个完整的 8 位双向 I/O 口,两个外中断口,两个 16 位可编程定时计数器,两个全双向串行通信口,一个模拟比较放大器。

AT89C2051组成的时钟电路制作

AT89C2051组成的时钟电路制作

课时授课计划讲授新课我们以P0口作为LED的字段位驱动输出,秒的“进位”采用分值闪烁提示,亮0.5秒,熄0.5秒。

,P3.1—P3.3用于位驱动,使用动态扫描方式显示,每位LED的显示时间10—25ms之间均可,扫描频率不能太高,否则每位LED显示的时间过短,亮度太低,不易于观看,以肉眼不感觉到LED闪烁为宜。

为了直观,我们的驱动输出没有采用集成电路,而是使用了分立元件—三极管,但工作原理却是一致的。

这个电路结构决定LED采用共阳极的数码管,可以采用LQ5101BS普通的发光二极管,驱动三极管可采用易得的2SA1015和2SC1815等型号,当然也可使用象S9012,S9013,S9014,2N5401,2N5555等小功率三极管,其它器件没有特殊要求。

为便于实验,单片机AT89C2051可采用DIP20P插座,程序编制好后,调试无错,即可烧写到AT89C2051中,值得一提的是,AT89C2051是Flash程序存储器,程序可反复擦写,对于做实验是非常方便的。

二、全套元件讲授新课三、套件元件包(配电路图及说明)1、电路原理图:S1复位键,S2功能键,S3置数键。

接通电源,时钟显示0.00,秒点闪动,开始计时。

2、系统时钟电路振荡电路用于产生单片机工作所需要的时钟信号。

单片机内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2 。

在芯片的外部有XTAL1和XTAL2之间跨接的晶体振荡器和微调电容,共同构成了一个稳定的自激振荡器。

图中的C1、C2电容起着系统时钟频率微调和稳定的作用,因此,应正确选择参数(30±10 pF),并保证其对称性。

实验表明,这2个电容元件对闹钟的±走时误差有较大关系。

讲授新课AT89C2051管脚图:安装好的成品套件本课小结对AT89C205时钟电路制作过程写出体会,并写出实习小结。

课后作业写出程序并调试电路,实现电路功能。

AT89C2051制电子钟时钟源程序

AT89C2051制电子钟时钟源程序

AT89C2051制电子钟时钟源程序本程序来自于互联网,站长尚没试验,但是,该程序给出了详细的说明,相信对大家很有帮助!因此,站长向原作者表示真诚谢意!;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; AT89C2051时钟程序;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 定时器T0、T1溢出周期为50MS,T0为秒计数用,T1为调整时闪烁用,; P3.7为调整按钮,P1口为字符输出口,采用共阳显示管。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 中断入口程序;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ORG 0000H ;程序执行开始地址LJMP START ;跳到标号START执行ORG 0003H ;外中断0中断程序入口RETI ;外中断0中断返回ORG 000BH ;定时器T0中断程序入口LJMP INTT0 ;跳至INTTO执行ORG 0013H ;外中断1中断程序入口RETI ;外中断1中断返回ORG 001BH ;定时器T1中断程序入口LJMP INTT1 ;跳至INTT1执行ORG 0023H ;串行中断程序入口地址RETI ;串行中断程序返回;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 主程序;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;START: MOV R0,#70H ;清70H-7AH共11个内存单元MOV R7,#0BH ;CLEARDISP: MOV @R0,#00H ;INC R0 ;DJNZ R7,CLEARDISP ;MOV 20H,#00H ;清20H(标志用)MOV 7AH,#0AH ;放入"熄灭符"数据MOV TMOD,#11H ;设T0、T1为16位定时器MOV TL0,#0B0H ;50MS定时初值(T0计时用)MOV TH0,#3CH ;50MS定时初值MOV TL1,#0B0H ;50MS定时初值(T1闪烁定时用)MOV TH1,#3CH ;50MS定时初值SETB EA ;总中断开放SETB ET0 ;允许T0中断SETB TR0 ;开启T0定时器MOV R4,#14H ;1秒定时用初值(50MS×20)START1: LCALL DISPLAY ;调用显示子程序JNB P3.7,SETMM1 ;P3.7口为0时转时间调整程序SJMP START1 ;P3.7口为1时跳回START1SETMM1: LJMP SETMM ;转到时间调整程序SETMM; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 1秒计时程序;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;T0中断服务程序INTT0: PUSH ACC ;累加器入栈保护PUSH PSW ;状态字入栈保护CLR ET0 ;关T0中断允许CLR TR0 ;关闭定时器T0MOV A,#0B7H ;中断响应时间同步修正ADD A,TL0 ;低8位初值修正MOV TL0,A ;重装初值(低8位修正值)MOV A,#3CH ;高8位初值修正ADDC A,TH0 ;MOV TH0,A ;重装初值(高8位修正值)SETB TR0 ;开启定时器T0DJNZ R4, OUTT0 ;20次中断未到中断退出ADDSS: MOV R4,#14H ;20次中断到(1秒)重赋初值MOV R0,#71H ;指向秒计时单元(71H-72H)ACALL ADD1 ;调用加1程序(加1秒操作)MOV A,R3 ;秒数据放入A(R3为2位十进制数组合)CLR C ;清进位标志CJNE A,#60H,ADDMM ;ADDMM: JC OUTT0 ;小于60秒时中断退出ACALL CLR0 ;大于或等于60秒时对秒计时单元清0MOV R0,#77H ;指向分计时单元(76H-77H)ACALL ADD1 ;分计时单元加1分钟MOV A,R3 ;分数据放入ACLR C ;清进位标志CJNE A,#60H,ADDHH ;ADDHH: JC OUTT0 ;小于60分时中断退出ACALL CLR0 ;大于或等于60分时分计时单元清0MOV R0,#79H ;指向小时计时单元(78H-79H)ACALL ADD1 ;小时计时单元加1小时MOV A,R3 ;时数据放入ACLR C ;清进位标志CJNE A,#24H,HOUR ;HOUR: JC OUTT0 ;小于24小时中断退出ACALL CLR0 ;大于或等于24小时小时计时单元清0 OUTT0: MOV 72H,76H ;中断退出时将分、时计时单元数据移MOV 73H,77H ;入对应显示单元MOV 74H,78H ;MOV 75H,79H ;POP PSW ;恢复状态字(出栈)POP ACC ;恢复累加器SETB ET0 ;开放T0中断RETI ;中断返回; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 闪动调时程序;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;T1中断服务程序,用作时间调整时调整单元闪烁指示INTT1: PUSH ACC ;中断现场保护PUSH PSW ;MOV TL1, #0B0H ;装定时器T1定时初值MOV TH1, #3CH ;DJNZ R2,INTT1OUT ;0.3秒未到退出中断(50MS中断6次)MOV R2,#06H ;重装0.3秒定时用初值CPL 02H ;0.3秒定时到对闪烁标志取反JB 02H,FLASH1 ;02H位为1时显示单元"熄灭"MOV 72H,76H ;02H位为0时正常显示MOV 73H,77H ;MOV 74H,78H ;MOV 75H,79H ;INTT1OUT: POP PSW ;恢复现场POP ACC ;RETI ;中断退出FLASH1: JB 01H,FLASH2 ;01H位为1时,转小时熄灭控制MOV 72H,7AH ;01H位为0时,"熄灭符"数据放入分MOV 73H,7AH ;显示单元(72H-73H),将不显示分数据MOV 74H,78H ;MOV 75H,79H ;AJMP INTT1OUT ;转中断退出FLASH2: MOV 72H,76H ;01H位为1时,"熄灭符"数据放入小时MOV 73H,77H ;显示单元(74H-75H),小时数据将不显示MOV 74H,7AH ;MOV 75H,7AH ;AJMP INTT1OUT ;转中断退出; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 加1子程序;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ADD1: MOV A,@R0 ;取当前计时单元数据到ADEC R0 ;指向前一地址SWAP A ;A中数据高四位与低四位交换ORL A,@R0 ;前一地址中数据放入A中低四位ADD A,#01H ;A加1操作DA A ;十进制调整MOV R3,A ;移入R3寄存器ANL A,#0FH ;高四位变0MOV @R0,A ;放回前一地址单元MOV A,R3 ;取回R3中暂存数据INC R0 ;指向当前地址单元SWAP A ;A中数据高四位与低四位交换ANL A,#0FH ;高四位变0MOV @R0,A ;数据放入当削地址单元中RET ;子程序返回; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 清零程序;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;对计时单元复零用CLR0: CLR A ;清累加器MOV @R0,A ;清当前地址单元DEC R0 ;指向前一地址MOV @R0,A ;前一地址单元清0RET ;子程序返回; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 时钟调整程序;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;当调时按键按下时进入此程序SETMM: cLR ET0 ;关定时器T0中断CLR TR0 ;关闭定时器T0LCALL DL1S ;调用1秒延时程序JB P3.7,CLOSEDIS ;键按下时间小于1秒,关闭显示(省电)MOV R2,#06H ;进入调时状态,赋闪烁定时初值SETB ET1 ;允许T1中断SETB TR1 ;开启定时器T1SET2: JNB P3.7,SET1 ;P3.7口为0(键未释放),等待SETB 00H ;键释放,分调整闪烁标志置1 SET4: JB P3.7,SET3 ;等待键按下LCALL DL05S ;有键按下,延时0.5秒JNB P3.7,SETHH ;按下时间大于0.5秒转调小时状态MOV R0,#77H ;按下时间小于0.5秒加1分钟操作LCALL ADD1 ;调用加1子程序MOV A,R3 ;取调整单元数据CLR C ;清进位标志CJNE A,#60H,HHH ;调整单元数据与60比较HHH: JC SET4 ;调整单元数据小于60转SET4循环LCALL CLR0 ;调整单元数据大于或等于60时清0CLR C ;清进位标志AJMP SET4 ;跳转到SET4循环CLOSEDIS: SETB ET0 ;省电(LED不显示)状态。

AT89C2051时钟程序

AT89C2051时钟程序

之欧侯瑞魂创作;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; AT89C2051时钟程序 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 定时器T0、T1溢出周期为50MS,T0为秒计数用, T1为调整时闪烁用,; P3.7为调整按钮,P1口为字符输出口,采取共阳显示管。

; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 中断入口程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ORG 0000H ;程序执行开始地址LJMP START ;跳到标号START执行ORG 0003H ;外中断0中断程序入口RETI ;外中断0中断返回ORG 000BH ;定时器T0中断程序入口LJMP INTT0 ;跳至INTTO执行ORG 0013H ;外中断1中断程序入口RETI ;外中断1中断返回ORG 001BH ;定时器T1中断程序入口LJMP INTT1 ;跳至INTT1执行ORG 0023H ;串行中断程序入口地址RETI ;串行中断程序返回;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 主程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;START: MOV R0,#70H ;清70H-7AH共11个内存单元MOV R7,#0BH ;CLEARDISP: MOV @R0,#00H ;INC R0 ;DJNZ R7,CLEARDISP ;MOV 20H,#00H ;清20H(标记用)MOV 7AH,#0AH ;放入"熄灭符"数据MOV TMOD,#11H ;设T0、T1为16位定时器MOV TL0,#0B0H ;50MS定时初值(T0计时用)MOV TH0,#3CH ;50MS定时初值MOV TL1,#0B0H ;50MS定时初值(T1闪烁定时用)MOVTH1,#3CH ;50MS定时初值SETB EA ;总中断开放SETB ET0 ;允许T0中断SETB TR0 ;开启T0定时器MOV R4,#14H ;1秒定时用初值(50MS×20)START1: LCALL DISPLAY ;调用显示子程序SETMM1: LJMP SETMM ;转到时间调整程序SETMM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 1秒计时程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;T0中断服务程序INTT0: PUSH ACC ;累加器入栈呵护PUSH PSW ;状态字入栈呵护CLR ET0 ;关T0中断允许CLR TR0 ;关闭定时器T0MOV A,#0B7H ;中断响应时间同步修正ADD A,TL0 ;低8位初值修正MOV TL0,A ;重装初值(低8位修正值)MOV A,#3CH ;高8位初值修正ADDC A,TH0 ;MOV TH0,A ;重装初值(高8位修正值)SETB TR0 ;开启定时器T0DJNZ R4, OUTT0 ;20次中断未到中断退出ADDSS: MOV R4,#14H ;20次中断到(1秒)重赋初值MOV R0,#71H ;指向秒计时单元(71H-72H)ACALL ADD1 ;调用加1程序(加1秒操纵)MOV A,R3 ;秒数据放入A(R3为2位十进制数组合)CLR C ;清进位标记CJNE A,#60H,ADDMM ;ADDMM: JC OUTT0 ;小于60秒时中断退出ACALL CLR0 ;大于或等于60秒时对秒计时单元清0MOV R0,#77H ;指向分计时单元(76H-77H)ACALL ADD1 ;分计时单元加1分钟MOV A,R3 ;分数据放入ACLR C ;清进位标记CJNE A,#60H,ADDHH ;ADDHH: JC OUTT0 ;小于60分时中断退出ACALL CLR0 ;大于或等于60分时分计时单元清0MOV R0,#79H ;指向小时计时单元(78H-79H)ACALL ADD1 ;小时计时单元加1小时MOV A,R3 ;时数据放入ACLR C ;清进位标记CJNE A,#24H,HOUR ;HOUR: JC OUTT0 ;小于24小时中断退出ACALL CLR0 ;大于或等于24小时小时计时单元清0OUTT0: MOV 72H,76H ;中断退出时将分、时计时单元数据移MOV 73H,77H ;入对应显示单元MOV 74H,78H ;MOV 75H,79H ;POP PSW ;恢复状态字(出栈)POP ACC ;恢复累加器SETB ET0 ;开放T0中断RETI ;中断返回INTT1: PUSH ACC ;中断现场呵护PUSH PSW ;MOV TL1, #0B0H ;装定时器T1定时初值MOV TH1, #3CH ;DJNZ R2,INTT1OUT ;0.3秒未到退出中断(50MS中断6次)JB 02H,FLASH1 ;02H位为1时显示单元"熄灭"MOV 72H,76H ;02H位为0时正常显示MOV 73H,77H ;MOV 74H,78H ;MOV 75H,79H ;INTT1OUT: POP PSW ;恢复现场POP ACC ;RETI ;中断退出FLASH1: JB 01H,FLASH2 ;01H位为1时,转小时熄灭控制MOV 72H,7AH ;01H位为0时,"熄灭符"数据放入分MOV 73H,7AH ;显示单元(72H-73H),将不显示分数据MOV 74H,78H ;MOV 75H,79H ;AJMP INTT1OUT ;转中断退出FLASH2: MOV 72H,76H ;01H位为1时,"熄灭符"数据放入小时MOV 73H,77H ;显示单元(74H-75H),小时数据将不显示MOV 74H,7AH ;MOV 75H,7AH ;AJMP INTT1OUT ;转中断退出;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 加1子程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ADD1: MOV A,@R0 ;取当前计时单元数据到ADEC R0 ;指向前一地址SWAPA ;A中数据高四位与低四位交换ORL A,@R0 ;前一地址中数据放入A中低四位ADD A,#01H ;A加1操纵DA A ;十进制调整MOV R3,A ;移入R3寄存器ANL A,#0FH ;高四位变0MOV @R0,A ;放回前一地址单元MOV A,R3 ;取回R3中暂存数据INC R0 ;指向当前地址单元SWAP A ;A中数据高四位与低四位交换ANL A,#0FH ;高四位变0MOV @R0,A ;数据放入当削地址单元中RET ;子程序返回;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 清零程序 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;对计时单元复零用CLR0: CLR A ;清累加器MOV @R0,A ;清当前地址单元DEC R0 ;指向前一地址MOV @R0,A ;前一地址单元清0RET ;子程序返回;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 时钟调整程序 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;当调时按键按下时进入此程序SETMM: cLR ET0 ;关定时器T0中断CLR TR0 ;关闭定时器T0LCALL DL1S ;调用1秒延时程序JB P3.7,CLOSEDIS ;键按下时间小于1秒,关闭显示(省电)MOV R2,#06H ;进入调时状态,赋闪烁定时初值SETB ET1 ;允许T1中断SETB TR1 ;开启定时器T1SET2: JNB P3.7,SET1 ;P3.7口为0(键未释放),等待SETB 00H ;键释放,分调整闪烁标记置1SET4: JB P3.7,SET3 ;等待键按下LCALL ADD1 ;调用加1子程序MOV A,R3 ;取调整单元数据CLRC ;清进位标记CJNE A,#60H,HHH ;调整单元数据与60比较HHH: JC SET4 ;调整单元数据小于60转SET4循环LCALL CLR0 ;调整单元数据大于或等于60时清0CLR C ;清进位标记AJMP SET4 ;跳转到SET4循环CLOSEDIS: SETB ET0 ;省电(LED不显示)状态。

AT89C2051单片机及其引脚图的详细说明

AT89C2051单片机及其引脚图的详细说明

AT89C2051单片机及其引脚图的详细说明默认分类2011-02-07 11:40:41 阅读529 评论0字号:大中小订阅AT89C2051单片机是51系列单片机的一个成员,是8051单片机的简化版。

内部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微处理器,与Intel MCS-51系列单片机的指令和输出管脚相兼容。

由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89C2051构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统,省去了外部的RAM、ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。

AT89C2051是一个有20个引脚的芯片,引脚配置如图3所示。

与8051相比,AT89C2051减少了两个对外端口(即P0、P2口),使它最大可能地减少了对外引脚下,因而芯片尺寸有所减小。

AT89C2051芯片的20个引脚功能为:VCC 电源电压。

GND 接地。

RST 复位输入。

当RST变为高电平并保持2个机器周期时,所有I/O引脚复位至“1”。

XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2 来自反向振荡放大器的输出。

P1口8位双向I/O口。

引脚P1.2~P1.7提供内部上拉,当作为输入并被外部下拉为低电平时,它们将输出电流,这是因内部上拉的缘故。

P1.0和P1.1需要外部上拉,可用作片内精确模拟比较器的正向输入(AIN0)和反向输入(AIN1),P1口输出缓冲器能接收20mA电流,并能直接驱动LED显示器;P1口引脚写入“1”后,可用作输入。

在闪速编程与编程校验期间,P1口也可接收编码数据。

P3口引脚P3.0~P3.5与P3.7为7个带内部上拉的双向I/0引脚。

P3.6在内部已与片内比较器输出相连,不能作为通用I/O引脚访问。

P3口的输出缓冲器能接收20mA的灌电流;P3口写入“1”后,内部上拉,可用输入。

P3口也可用作特殊功能口,其功能见表1。

AT89C2051

AT89C2051

Features Array•Compatible with MCS-51™ Products•2K Bytes of Reprogrammable Flash Memory–Endurance: 1,000 Write/Erase Cycles• 2.7V to 6V Operating Range•Fully Static Operation: 0 Hz to 24 MHz•Two-Level Program Memory Lock•128 x 8-Bit Internal RAM•15 Programmable I/O Lines•Two 16-Bit Timer/Counters•Six Interrupt Sources•Programmable Serial UART Channel•Direct LED Drive Outputs•On-Chip Analog Comparator•Low Power Idle and Power Down ModesDescriptionThe AT89C2051 is a low-voltage, high-performance CMOS 8-bit microcomputer with 2K 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 MCS-51™ instruction set. By combining a versatile 8-bit CPU with Flash on a monolithic chip, the Atmel AT89C2051 is a pow-erful microcomputer which provides a highly flexible and cost effective solution to many embedded control applications.The AT89C2051 provides the following standard features: 2K Bytes of Flash, 128 bytes of RAM, 15 I/O lines, two 16-bit timer/counters, a five vector two-level interrupt architecture, a full duplex serial port, a precision analog comparator, on-chip oscillator and clock circuitry. In addition, the AT89C2051 is designed with static logic for opera-tion 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 nexthardware reset.Block DiagramAT89C2051Pin DescriptionV CCSupply voltage.GNDGround.Port 1Port 1 is an 8-bit bidirectional I/O port. Port pins P1.2 to P1.7 provide internal pullups. P1.0 and P1.1 require exter-nal pullups. P1.0 and P1.1 also serve as the positive input (AIN0) and the negative input (AIN1), respectively, of the on-chip precision analog comparator. The Port 1 output buffers can sink 20 mA and can drive LED displays directly. When 1s are written to Port 1 pins, they can be used as inputs. When pins P1.2 to P1.7 are used as inputs and are externally pulled low, they will source current (I IL) because of the internal pullups.Port 1 also receives code data during Flash programming and verification.Port 3Port 3 pins P3.0 to P3.5, P3.7 are seven bidirectional I/O pins with internal pullups. P3.6 is hard-wired as an input to the output of the on-chip comparator and is not accessible as a general purpose I/O pin. The Port 3 output buffers can sink 20 mA. 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 AT89C2051 as listed below:Port 3 also receives some control signals for Flash pro-gramming and verification.RSTReset input. All I/O pins are reset to 1s as soon as RST goes high. Holding the RST pin high for two machine cycles while the oscillator is running resets the device.Each machine cycle takes 12 oscillator or clock cycles. XTAL1Input to the inverting oscillator amplifier and input to the internal clock operating circuit. XTAL2Output from the inverting oscillator amplifier.Oscillator CharacteristicsXTAL1 and XTAL2 are the input and output, respectively, of an inverting amplifier which can be configured for use as an on-chip oscillator, as shown in Figure 1. 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 2. 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.Figure 1. Oscillator ConnectionsNote:C1, C2= 30 pF ± 10 pF for Crystals= 40 pF ± 10 pF for Ceramic Resonators Figure 2. External Clock Drive ConfigurationPort 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)Special Function RegistersA map of the on-chip memory area called the Special Func-tion Register (SFR) space is shown in the table below. 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.Table 1. AT89C2051 SFR Map and Reset Values0F8H0FFH0F0H B000000000F7H 0E8H0EFH0E0H ACC000000000E7H 0D8H0DFH0D0H PSW000000000D7H 0C8H0CFH 0C0H0C7H0B8H IPXXX000000BFH0B0H P3111111110B7H0A8H IE0XX000000AFH 0A0H0A7H98H SCON00000000SBUFXXXXXXXX9FH90H P11111111197H88H TCON00000000TMOD00000000TL000000000TL100000000TH000000000TH1000000008FH80H SP00000111DPL00000000DPH00000000PCON0XXX000087HAT89C2051Restrictions on Certain Instructions The AT89C2051 and is an economical and cost-effective member of Atmel’s growing family of microcontrollers. It contains 2K bytes of flash program memory. It is fully com-patible with the MCS-51 architecture, and can be pro-grammed using the MCS-51 instruction set. However, there are a few considerations one must keep in mind when utilizing certain instructions to program this device.All the instructions related to jumping or branching should be restricted such that the destination address falls within the physical program memory space of the device, which is 2K for the AT89C2051. This should be the responsibility of the software programmer. For example, LJMP 7E0H would be a valid instruction for the AT89C2051 (with 2K of mem-ory), whereas LJMP 900H would not.1. Branching instructions:LCALL, LJMP, ACALL, AJMP, SJMP, JMP @A+DPTR These unconditional branching instructions will execute correctly as long as the programmer keeps in mind that the destination branching address must fall within the physical boundaries of the program memory size (locations 00H to 7FFH for the 89C2051). Violating the physical space limits may cause unknown program behavior.CJNE [...], DJNZ [...], JB, JNB, JC, JNC, JBC, JZ, JNZ With these conditional branching instructions the same rule above applies. Again, violating the memory boundaries may cause erratic execution.For applications involving interrupts the normal interrupt service routine address locations of the 80C51 family archi-tecture have been preserved.2. MOVX-related instructions, Data Memory:The AT89C2051 contains 128 bytes of internal data mem-ory. Thus, in the AT89C2051 the stack depth is limited to 128 bytes, the amount of available RAM. External DATA memory access is not supported in this device, nor is exter-nal PROGRAM memory execution. Therefore, no MOVX [...] instructions should be included in the program.A typical 80C51 assembler will still assemble instructions, even if they are written in violation of the restrictions men-tioned above. It is the responsibility of the controller user to know the physical features and limitations of the device being used and adjust the instructions used correspond-ingly.Program Memory Lock BitsOn the chip are two lock bits which can be left unpro-grammed (U) or can be programmed (P) to obtain the addi-tional features listed in the table below:Lock Bit Protection Modes(1)Note: 1.The Lock Bits can only be erased with the Chip Erase operation.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.P1.0 and P1.1 should be set to ’0’ if no external pullups are used, or set to ’1’ if external pullups are used.It should be noted that when idle is terminated by a hard-ware reset, the device normally resumes program execu-tion, 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 is terminated by reset, the instruction following the one that invokes Idle should not be one that writes 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 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.P1.0 and P1.1 should be set to ’0’ if no external pullups are used, or set to ’1’ if external pullups are used.Program Lock BitsLB1LB2Protection Type1U U No program lock features.2P U Further programming of the Flashis disabled.3P P Same as mode 2, also verify isdisabled.Programming The FlashThe AT89C2051 is shipped with the 2K bytes of on-chip PEROM code memory array in the erased state (i.e., con-tents = FFH) and ready to be programmed. The code mem-ory array is programmed one byte at a time. Once the array is programmed, to re-program any non-blank byte, the entire memory array needs to be erased electrically. Internal Address Counter: The AT89C2051 contains an internal PEROM address counter which is always reset to 000H on the rising edge of RST and is advanced by apply-ing a positive going pulse to pin XTAL1.Programming Algorithm: To program the AT89C2051, the following sequence is recommended.1.Power-up sequence:Apply power between V CC and GND pinsSet RST and XTAL1 to GND2.Set pin RST to ’H’Set pin P3.2 to ’H’3.Apply the appropriate combination of ’H’ or ’L’ logiclevels to pins P3.3, P3.4, P3.5, P3.7 to select one of the programming operations shown in the PEROM Pro-gramming Modes table.To Program and Verify the Array:4.Apply data for Code byte at location 000H to P1.0 toP1.7.5.Raise RST to 12V to enable programming.6.Pulse P3.2 once to program a byte in the PEROM arrayor the lock bits. The byte-write cycle is self-timed and typically takes 1.2 ms.7.To verify the programmed data, lower RST from 12V tologic ’H’ level and set pins P3.3 to P3.7 to the appropiate levels. Output data can be read at the port P1 pins.8.To program a byte at the next address location, pulseXTAL1 pin once to advance the internal address counter.Apply new data to the port P1 pins.9.Repeat steps 5 through 8, changing data and advancingthe address counter for the entire 2K bytes array or until the end of the object file is reached.10.Power-off sequence:set XTAL1 to ’L’set RST to ’L’Turn V CC power offData Polling: The AT89C2051 features Data Polling to indicate 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 P1.7. Once the write cycle has been completed, true data is valid on all outputs, and the next cycle may begin. Data Polling may begin any time after a write cycle has been initiated.Ready/Busy: The Progress of byte programming can also pulled low after P3.2 goes High during programming to indi-cate BUSY. P3.1 is pulled High again when programming is done to indicate READY.Program Verify: If lock bits LB1 and LB2 have not been programmed code data can be read back via the data lines for verification:1.Reset the internal address counter to 000H by bringingRST from ’L’ to ’H’.2.Apply the appropriate control signals for Read Code dataand read the output data at the port P1 pins.3.Pulse pin XTAL1 once to advance the internal addresscounter.4.Read the next code data byte at the port P1 pins.5.Repeat steps 3 and 4 until the entire array is read.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 PEROM array (2K bytes) and the two Lock Bits are erased electrically by using the proper combination of control signals and by holding P3.2 low for 10 ms. The code array is written with all “1”s in the Chip Erase operation and must be executed before any non-blank memory byte can be re-programmed.Reading the Signature Bytes: The signature bytes are read by the same procedure as a normal verification of locations 000H, 001H, and 002H, except that P3.5 and P3.7 must be pulled to a logic low. The values returned are as follows.(000H) = 1EH indicates manufactured by Atmel(001H) = 21H indicates 89C2051Programming 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.AT89C2051Flash Programming ModesNotes:1.The internal PEROM address counter is reset to 000H on the rising edge of RST and is advanced by a positive pulse atXT AL 1 pin.2.Chip Erase requires a 10-ms PROG pulse.3.P3.1 is pulled Low during programming to indicate RDY/BSY .Figure 3. Programming the Flash Memory Figure 4. Verifying the Flash MemoryModeRST/VPP P3.2/PROGP3.3P3.4P3.5P3.7Write Code Data (1)(3)12VLHHHRead Code Data (1)H H L L H H Write LockBit - 112VHHHHBit - 212V H H L LChip Erase 12VH L L LRead Signature Byte H H L L L L(2)Flash Programming and Verification CharacteristicsT A = 0°C to 70°C, V CC = 5.0 ± 10%Note:1. Only used in 12-volt programming mode.Flash Programming and Verification WaveformsSymbol ParameterMin Max Units V PP Programming Enable Voltage 11.512.5V I PP Programming Enable Current 250µA t DVGL Data Setup to PROG Low 1.0µs t GHDX Data Hold After PROG 1.0µs t EHSH P3.4 (ENABLE) High to V PP 1.0µs t SHGL V PP Setup to PROG Low 10µs t GHSL V PP Hold After PROG 10µs t GLGH PROG Width1110µs t ELQV ENABLE Low to Data Valid 1.0µs t EHQZ Data Float After ENABLE 0 1.0µs t GHBL PROG High to BUSY Low 50ns t WC Byte Write Cycle Time2.0ms t BHIH RDY/BSY\ to Increment Clock Delay 1.0µs t IHIL Increment Clock High200nsAT89C2051Absolute Maximum Ratings*DC CharacteristicsT A = -40°C to 85°C, V CC = 2.0V to 6.0V (unless otherwise noted)Notes:1.Under steady state (non-transient) conditions, I OL must be externally limited as follows:Maximum I OL per port pin: 20 mAMaximum total I OL for all output pins: 80 mAIf I OL exceeds the test condition, V OL may exceed the related specification. Pins are not guaranteed to sink current greater than the listed test conditions.2.Minimum V CC for Power Down is 2V .Operating Temperature.................................-55°C to +125°C *NOTICE:Stresses beyond those listed under “Absolute Maximum Ratings” may cause permanent dam-age to the device. This is a stress rating only and functional operation of the device at these or any other conditions beyond those indicated in the operational sections of this specification is not implied. Exposure to absolute maximum rating conditions for extended periods may affect device reliability.Storage T emperature.....................................-65°C to +150°C Voltage on Any Pinwith Respect to Ground.....................................-1.0V to +7.0V Maximum Operating Voltage.............................................6.6V DC Output Current......................................................25.0 mASymbol Parameter ConditionMinMax Units V IL Input Low Voltage -0.50.2 V CC - 0.1V V IH Input High Voltage (Except XT AL1, RST)0.2 V CC + 0.9V CC + 0.5V V IH1Input High Voltage (XT AL1, RST)0.7 V CCV CC + 0.5V V OL Output Low Voltage (1)(Ports 1, 3)I OL = 20 mA, V CC = 5V I OL = 10 mA, V CC = 2.7V 0.5V V OHOutput High Voltage (Ports 1, 3)I OH = -80 µA, V CC = 5V ± 10% 2.4V I OH = -30 µA 0.75 V CC V I OH = -12 µA0.9 V CCV I IL Logical 0 Input Current (Ports 1, 3)V IN = 0.45V-50µA I TL Logical 1 to 0 T ransition Current (Ports 1, 3)V IN = 2V , V CC = 5V ± 10%-750µA I LI Input Leakage Current (Port P1.0, P1.1)0 < V IN < V CC ±10µA V OS Comparator Input Offset Voltage V CC = 5V20mV V CM Comparator Input Common Mode Voltage0V CC V RRST Reset Pulldown Resistor 50300K ΩC IO Pin Capacitance T est Freq. = 1 MHz, T A = 25°C 10pF I CCPower Supply CurrentActive Mode, 12 MHz, V CC = 6V/3V 15/5.5mA Idle Mode, 12 MHz, V CC = 6V/3VP1.0 & P1.1 = 0V or V CC5/1mA Power Down Mode (2)V CC = 6V P1.0 & P1.1 = 0V or V CC 100µA V CC = 3V P1.0 & P1.1 = 0V or V CC20µAExternal Clock Drive WaveformsExternal Clock DriveSymbol Parameter V CC = 2.7V to 6.0V V CC = 4.0V to 6.0V UnitsMin Max Min Max1/t CLCL Oscillator Frequency012024MHz t CLCL Clock Period83.341.6ns t CHCX High Time3015ns t CLCX Low Time3015ns t CLCH Rise Time2020ns t CHCL Fall Time2020nsAT89C20514-25Serial Port Timing: Shift Register Mode Test Conditions(V CC = 5.0V ± 20%; Load Capacitance = 80 pF)SymbolParameter12 MHz Osc Variable Oscillator UnitsMinMaxMin Maxt XLXL Serial Port Clock Cycle Time1.012t CLCL µs t QVXH Output Data Setup to Clock Rising Edge 70010t CLCL -133ns t XHQX Output Data Hold After Clock Rising Edge 502t CLCL -117ns t XHDX Input Data Hold After Clock Rising Edge 0ns t XHDVClock Rising Edge to Input Data Valid70010t CLCL -133nsShift Register Mode Timing WaveformsAC Testing Input/Output Waveforms (1)Note: 1.AC Inputs during testing are driven at V CC - 0.5V for a logic 1 and 0.45V for a logic 0. Timing measure-ments are made at V IH min. for a logic 1 and V IL max. for a logic 0.Float Waveforms (1)Note: 1.For timing purposes, a port pin is no longer float-ing when a 100 mV change from load voltage occurs. A port pin begins to float when 100 mV change frothe loaded V OH/V OL level occurs.AT89C20514-26Notes: 1.XT AL1 tied to GND for I CC (power down)2.P .1.0 and P1.1 = V CC or GND 3.Lock bits programmedAT89C20514-27Ordering InformationSpeed (MHz)Power Supply Ordering Code Package Operation Range 122.7V to 6.0VA T89C2051-12PC A T89C2051-12SC 20P320S Commercial (0°C to 70°C)A T89C2051-12PI A T89C2051-12SI 20P320S Industrial (-40°C to 85°C)A T89C2051-12P A A T89C2051-12SA20P320S Automotive (-40°C to 105°C)244.0V to 6.0VA T89C2051-24PC A T89C2051-24SC 20P320S Commercial (0°C to 70°C)A T89C2051-24PI A T89C2051-24SI20P320SIndustrial (-40°C to 85°C)Package Type20P320 Lead, 0.300” Wide, Plastic Dual In-line Package (PDIP)20S20 Lead, 0.300” Wide, Plastic Gull Wing Small Outline (SOIC)。

自制AT89C2051编程器,AT89C4051烧录器,ATMEL代理商,AT89C2051中文资料

自制AT89C2051编程器,AT89C4051烧录器,ATMEL代理商,AT89C2051中文资料

自制ATMEL AT89C2051编程器AT89C4051烧录器Easy-Downloader V1.1for ATMEL89C2051/4051Build your own a personal writer for programming HEX code into Flash based microcontroller AT89C2051(2k)and AT89C4051(4k).Simple hardware and Easy use software in DOS and Window version.Single-side and double side PCB files included.Acrobat files for PCB image.Introduction The first version of the Easy-Downloader was designed in1997to be used as a tool for my students on building her/his own microcontrollers circuit in the class"Designing Microprocessors System".The circuit features low-cost and easy use.The latest version V1.1was designed to be used with2051and the newest4051chips.There is no separated functions like other programmer e.g.,blank check,erase,write.Simply type say,c:\..>ez hello,the hex file"hello.hex"will then be programmed to the chip automatically.If the chip is not blank or the code is locked, it will erase first,then write and verify...that all.Hardware Figure1depicts a circuit diagram of the Easy-Downloader.As shown,the circuit uses a89C2051with writer.hex firmware,74LS3738-bit latch,DS275-like,7805,LM317and two transistors,2N2222A and2N2907A. The programming voltage control circuit is the same as recommended by ATMEL application note.It can be raised from0V,5V and12V by appropriated signal from P3.The8-bit latch,74LS373provides some signal for selecting the programming modes.A byte to be programmed or read back is sent/received through P1.Incrementing address is done by pulsing a positive pulse to XTAL pin.The circuit may be built using simple point-to-point soldering with a general purpose PCB(fish's egg like PCB)or making PCB shown above,the file is Protel PCB version2.76.The finished board should be tested without any chips;1)+5V supply,2)programming voltage0V,5V and12V by connecting the pin that control(P3.5and D)2N2222A and2N2907to+5V and/or GND.The adapter output should be approx.15Vdc100mA.Figure1:Circuit Diagram of Easy-Downloader V1.1Acrobat PCB FilesAs suggested by a friend from Romania,Puiu Chiselita,to provide PCB image in Acrobat file,so I have asked my friend,Jaroon Keawkhrua.He made within an hour,thanks again for providing us,the Acrobat PCB file. SoftwareFunctional Test Use a given programmer(or ready made Easy-Downloader)write the writer.hex into the2051chip. Put the programmed2051chip to the board.Invoke any communication software with9600baud,8-data bit,no parity.Connect DB-9to COM1,say,press enter key,the title"Easy-Downloader V1.1for ATMEL89C2051/4051" would be appeared on the screen.type>s2048(set byte counter to2k),then without the2051chip in ZIF,type>r (read2kB),on screen would show FFFFFFFFFFF...indicating corrected wiring for P1.If you put the chip having already program inside,r command will show the hex code with the number of byte set by s command.Try e command to erase the entire program!!All done.Figure2shows example of using Xtalk program to test the board.Figure2:Using Xtalk to test the boardNow try with"ez"the uploader program to help you more easy to write the hex file to the chip.Example of using ez is shown in Figure3.Have fun...Figure3:Example of using EZ program writes the writer.hex to2051chipFigure4:Example of Using EZ3and EZ3.1The EZ Uploader provides a simple means of sending HEX file to the writer board.To connect the board with EZ, click available COM port,COM1,say.After the EZ recognizes the chips,then click Send Hexfile,that all.Since there is no signature byte that indicates chip number and programming voltage,thus you have to choose the appropriated memory size either2051or4051manually,i.e.,2048or4096respectively.TipsHEX file extension Some Assembler or Compiler produce output hex file with.OBJ instead of.HEX.The EZ needs .HEX extension,just rename it...Expensive ZIF Socket Without expensive ZIF socket,you may use an ordinary socket instead,surely many times of pulling the chips may cause the far end leg of the2051chip broken.My student suggests me to insert one more socket to the2051chip.It works very nice.Even the programmer has ZIF,but your application board does not have. Better to insert one socket to strengthen the2051's leg.DC Adapter Any DC adapters,fixed or adjustable can be used,a bridge diode corrects polarity for the regulator IC eventually.Many adapters provide higher DC output than the value labeled,to ensure,check the proper programming voltage that must be in the range of11.5to12.5V.Putting Right PositionThe latest version does not include the protection circuit if putting wrong position,i.e.,GND-Vcc<-->Vcc-GND.Thus before put the chip into the programmer or your application board,back to see your thought,say I am putting the2051chip to the right position,then pick the chip,and place it...89C1051There's no problem with89C1051chip but ensure that the hex code must less than1024bytes(000H to3FFH).While verifying after erase it showed0to2048byte as the2051chip,it means twice reading,i.e.,000H-3FFH then000H-3FFH,the same physical address.When programming,the control chip will write and verify only the size of program.。

烧写器制作和使用

烧写器制作和使用

烧写器制作和使用一、烧录器各指示灯的功能及说明SLOT1、SLOT2、SLOT3、SLOT4:分别表示四个SOCKET中的FLASH。

SD:SD卡指示灯。

ERROR:错误指示灯,当ERROR灯亮时,则说明SLOT1、SLOT2、SLOT3、SLOT4中对应亮灯的FLASH 烧录错误。

DONE:烧录完成指示灯,当DONE灯亮时,说明未亮灯的FLASH成功烧录完成。

FLASH:烧录指示灯,此灯亮时,表明当前正在烧录。

USB/SYSTEM:USB接口指示灯,当要把烧录的文件放入烧录器时,按住MODE开机,指示灯亮,并弹出U 盘。

SYSTEM:二、烧写器BOOTROM的制作过程1,使用romboot_tool工具将romboot生成new_rom_boot,如图一,有关不同的FLASH 使用不同的参数见第四项:图一使用romboot_tool工具生成new_rom_boot2、点确定后生成new_rom_boot,将new_rom_boot改名为rom_boot。

接上USB连接线,按住板上MODE键,打开电源开关,电源指示灯亮,这时DONE灯会亮灭两次,USB/SYSTEM灯亮,并弹出U盘。

3、把要下载的rom_boot及PROGCODE两个文件复制下去。

a)这里的rom_boot是烧写到最终样机上的rom_boot,由要烧进目标板的FLASH的new_rom_boot直接改名成rom_boot得到。

如果还想烧写其它内容到FLASH也可把其它资源放进这个U盘中,U盘最大容量为15M;关机后,完成烧写器的制作。

三、烧写器工厂使用过程1、将要烧写的FLASH放入SOCKET中。

2、上电3、当done灯亮时表示烧写完成,如果error灯也亮说明烧写出错,查看SLOT灯,亮灯的SLOT 相对应的FLASH就烧写错误。

4、烧写完后关机。

5、重复第一步可继续烧下4块FLASH。

四. 目前支持的FLASHMLC FLASH 容量每块包含页数页大小(字节)HY27UT084G2M 512M 128 2048K9G8G08U0M 1G 128 2048K9L8G08UOM 1G 128 2048K9LAG08U0M 2G 128 2048TC58NVG2D4BXXXX 512M 128 2048TH58NVG3D4BXXXX 1G 128 2048TC58NVG2D4CXXXX 512M 128 2048TC58NVG3D4CXXXX 1G 128 2048TH58NVG4D4CXXXX 2G 128 2048SLC FLASHHY27UF084G2M 512M 64 2048MT29F4G08BABXX 512M 64 2048MT29F4G08AAAXX 512M 64 2048K9F4G08U0M 512M 64 2048K9F4G08U0A 512M 64 2048K9K4G08U0M 512M 64 2048K9K8G08UOM 1G 64 2048K9K8G08U0A 1G 64 2048。

AT89C2051单片机程序

AT89C2051单片机程序
{
count_time++; //时钟计时程序
if(count_time>=4020){
count_time=0;
second++;
if(second>=60){
second=0;
minute++;
if(minute>=60){
minute=0;
hour++;
if(hour>=24)hour=0;
P3_5=1;
P1|=0xff;
switch (program){
case 0: P1&=senen_seg[hour%10]; //时钟时的个位
break;
case 1: if(count_time>=2000) P1&=senen_seg[hour%10]; //校正时的个位
break;
x=3; //确认功能键2识别,返回3
key2_enter=0;
}
P3_0=1;
P1|=0xff;
switch (program){
case 0: P1&=senen_seg[hour/10]; //时钟时的个位
break;
case 1: if(count_time>=2000) P1&=senen_seg[hour/10]; //校正时的个位
if(count>=127) x=1; //确认功能键1为长按,返回1
else x=2; //确认功能键1为短按,返回2
key1_enter=0;
count=0;
}

20、AT89C2051烧写器的制做与调试

20、AT89C2051烧写器的制做与调试

20、AT89C2051烧写器的制做与调试2009-03-15 22:28现在都用S52了,还用C2051干嘛!价格也差不多。

但是C2051的体积要比S51、S52小很多,而且引脚只有20只,在一些简单的控制中,这些引脚已足够了,小的体积更具有优势些。

但目前好像还没有支持在线编程(ISP)的S2051。

因此试着做个C2051的编程器,更主要的是与大家分享一下在电路制做过程中硬件、软件的除错技巧,尽量做到一次成功的经验和方法。

在网上找了一番,图很多,大同小异。

上一张最通用的图:上图是可以烧写很多器件的电路,它的PCB板在网上也很容易找。

但因为是实验制做,没用PCB,就用万用板吧。

由于宽体的器件都有支持ISP的器件,所以我去掉了40脚宽体IC座,只留了个20脚窄体IC座用来烧写C2051,修改电路后电路图如下:元件清单如下:1/8w 4.7k 6 (一共6个)560r 3 (一共3个)2k2 14.7 欧姆 1 串联于供电电路起保护作用10k排阻 1 用于cpu p0口上拉1n4148 2 用于vpp高压供给(注意4148 的一头是黑色的)12v 1 用于vpp高压供给(注意12V 的一头是白色的不要搞混)4.7uf/50v 8 所有的电解都用同一个型号的,注意方向哦104 2 用于电源滤波22p 2 用于晶体电路11.0592 1 晶体2n5401 1 注意看型号和插入的方向,不要错!2n5551 2发光管 2 3mm白发红(用于电源指示和通信指示)(注意方向)db9 1 串口头20pin 卡座 1 烧写 2051等用40pin ic座 1 插入监控用89s5116pin ic座 1 插入 max232芯片usb座 1 供电用串口电缆 1 通信用usb 电缆 1 供电用At89s51 1 用于监控max232cpe 1 通信用集成电路pcb 1 电路板实际板子今天已做好,先秀一下吧。

接着再讲详细调试方法和步骤:(点击后看大图)这个电路对于初学者可能复杂了一点,它分为几个部分,如果你先将电路板规划好,然后把元件一次都焊上,再进行调试,成功的概率很小。

AT89C51系列单片机烧写器的设计与实现

AT89C51系列单片机烧写器的设计与实现

!6"6#;当 = 61 端保持高电平时,此间内部程序存储 器。在 -21"0 编程期间,此引脚也用于施加 (% > 编 。 程电源( >))) ($ 软件部分 首先在微机上采用 @ABC :’( 软件将实际控制电路 的程序编辑、编译、然后生成 # 4 DAE 文件。然后需 要运行 -21"0 /FGBH,将#4 DAE 文件烧写到单片机的 !./ 中。 其具体设置如图 % 。
at89c51系列单片机烧写器的设计与实现
!"#$%&’ 系列单片机烧写器的设计与实现
冉彦中% ,曹婧华% ,刘沛先! ( %& 吉林大学和平校区,吉林长春 %’""(! ;!& 解放军 !") 医院,吉林长春 %’""(! )
〔 中图分类号〕 *+’, , 〔 文献标识码〕 -, , 〔 文章编号〕 %""! $ !’#( ( !""# ) ". $ ""!/ $ "!
, , 〔 摘, 要〕 本文以 -*)01/% 单片机为例,介绍其电路和工作原理。 , , 〔 关键词〕 单片机;串行通信;2-3!’!
() 引言 对于自动化或计算机专业的学生来说,学习单片 机课程最有用的可能是编程器或烧写器,一台商业的 编程器至少要几百元,让学生或初学者难以承担。能 否自己做一个,既锻炼自己的动手能力,又能满足学 习和开发需要,是一个不错的选择。利用 +1 机的串 行口 142% 或 142! 与单片机的串行口进行串行通 信,将 +1 机的数据传送到单片机中。 +1 机串行口 给出的信号是一个 56!!’! 信号,它是一个基于 ’ 7 # 8 正电压、’ 7 # 8 负电压的脉冲链。这一信号必须 转化为一个 " 7 / 8 的脉冲链,以便单片机读取。中 间转换电路采用 2-3!’! 通信芯片来实现。 ’) 烧写器硬件连接 ’* ’) 电平转换 通信电平转换芯片 2-3!’! 56!’! 是目前异步串行通信中应用最广泛的标准 总线,适用于数据中断设备( 9*: 和数据通信设备 ( 9:1 ) :;- 56!!’!1 是 目 前 最 常 用 的 串 行 接 口 标 准,用于计算机与计算机之间,计算机与单片机的数 据通信。此标准的目的是定义数据终端设备( 9*: ) 之间的电气特性。 56!!’!1 提供了单片机与单片机、 单片机与 +1 机之间串 行 数 据 通 信 的 标 准 接 口。但 56!!’!1 规定的逻辑电平与单片机的逻辑电平是不一 致的。因此在应用中,必须把微处理器的信号电平 ( **; 电平) 转换为 56!!’!1 电平,或者对二者进行 逆转换。选用电平转换芯片 2-3!’! 来实现的。 ’* +) -*)01/% 单片机与 +1 机串行通信接口的硬件 电路 -*)01/% 单片机与 +1 机串行通信接口其接口电 路如图 % 所示。其工作电压取自电压( / 8 ) 电源。

AT89C2051中文DOC版

AT89C2051中文DOC版

AT89C2051AT89C2051是低电压,高性能CMOS 8位单片机,片内含2K字节可反复擦写的程序存储器和128字节的随机存取数据存储器,器件采用高密度,非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8为中央处理器和Flash存储单元,功能强大。

AT89C2051单片机可为您提供许多高性价比的应用场合。

主要性能参数:与MCS-51产品指令系统完全兼容2k字节可重擦写闪速存储器1000次擦写周期2.7——6V的工作电压范围全静态操作:0Hz——24MHz两级加密程序存储器128*8字节内部RAM15个可编程I/O口线两个16位定时/计数器6个中断源可编程串行UART通道可直接驱动LED的输出端口内置一个模拟比较器低功耗空闲和掉电模式1.功能特性概述:AT89C2051提供以下标准功能:2k字节Flash闪速存储器,128字节内部RAM,15个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,内置一个精密比较器,片内振荡器记时钟电路。

同时,AT89C2051可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。

空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。

掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。

2.引脚配置3.框图4.引脚功能说明Vcc:电源电压GND:地Port1:P1口是一组8位双向I/O,P1.2——P1.7提供内部上拉电阻,P1.0 和P1.1内部无上拉电阻,主要是考虑它们分别是内部精密比较器的同相输入端(AINO)和反向输入端(AINI),如果需要应在外部接上拉电阻,P1口输出缓冲器可吸收20 mA电流并可直接驱动LED。

当P1口引脚写入“1“时可作输入端。

当引脚P1.2 to——P1.7用作输入并被外部拉低时,它们将因内部的上拉电阻而输出电流(I IL)。

AT89C2051单片机编程器

AT89C2051单片机编程器

AT89C2051单片机编程器
杜开初
【期刊名称】《电子技术应用》
【年(卷),期】1997(023)007
【摘要】用普遍使用的51单片单板自制AT89C2051编程器,接口电路简单,实用,价廉,文中介绍了接口电路设计和软件设计。

【总页数】2页(P53-54)
【作者】杜开初
【作者单位】龙岩师专
【正文语种】中文
【中图分类】TP362.3
【相关文献】
1.AT89C2051/4051单片机编程器 [J], 吴汉清
2.读一篇文章,作一个单片机电路(二)——如何使用TOP851编程器将流水灯程序写入AT89C2051 [J], 黄亮
3.读一篇文章,作一个单片机电路(三)基于AT89C2051单片机的键控灯电路[J], 黄亮
4.AT89C2051编程器 [J], 杜开初
5.AT89C2051编程器的制作 [J], 王宏;刘文
因版权原因,仅展示原文概要,查看原文内容请购买。

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

printf("hello World!\n"); } } 这个程序就是打开单片机 S51 的串口,不断的送出字符串“hello World"。编译 成 HEX 文件,再用 ISP 将程序写进 S51 片内。然后插到 2051 烧写板上。将串口 线接到 PC 上。打开 PC,运行串口调试器:
将红圈画出位置的波特率设为 19200。确认为 COM1 口。然后将 2051 烧写器的电 源给上,我的 PC 串口调试器上立即就出现了“hello World”。
上图是可以烧写很多器件的电 路,它的 PCB 板在网上也很容易找。 但因为是实验制做,没用 PCB,就用 万用板吧。由于宽体的器件都有支持 ISP 的器件,所以我去掉了 40 脚宽体 IC 座,只留了个 20 脚窄体 IC 座用来 烧写 C2051,修改电路后电路图如下:
元件清单如下:
1/8w 4.7k 6 (一共 6 个)
16pin ic 座 1 插入 max232 芯片
usb 座
1 供电用
串口电缆 1 通信用
usb 电缆 1 供电用
At89s51 1 用于监控
max232cpe 1 通信用集成电路
pcb
1 电路板
实际板子今天已做好,先秀一下吧。接着再讲详细调试方法和步骤:
这个电路对于初学者可能复杂了一点,它分为几个部分,如果你先将电路板 规划好,然后把元件一次都焊上,再进行调试,成功的概率很小。那应该怎么做 呢?先规划一下元件的位置布局,然后分几个单元,一个单元做好后进行调试,
104
2 用于电源滤波
22p
2 用于晶体电路
11.0592 1 晶体
2n5401
1 注意看型号和插入的方向, 不要错!
2n5551
2
发光管
2 3mm 白发红(用于电源指示和通信指示)(注意方向)
9
1 串口头
20pin 卡座 1 烧写 2051 等用
40pin ic 座 1 插入监控用 89s51
正常后再进行下一个单元的制做调试。我的规划如下,先是电源部分包括那个电 源指示 LED:
先将 USB 座焊上,确认无短路后插上 USB 电源,用万用表找出 A、B 两点中 哪个是 5v 的正极,哪个是地。然后去掉电源将剩下的几个电容、电阻和 LED 焊 上,再确认无短路后接上电源,LED 应亮起。我是将 LED 的限流电阻改为了 2K, 因为我看它已够亮了。电流 1.5 毫安。实物如右边红色圈出的图。
这样,与 PC 的串口通讯就调试成功了。如果你没有出现正确结果,而上面几步 的调试又是正常的,那就是从 PC 串口端到你 S51 的接线有错误了。仔细检查你 的接线,会找到错误的。
上面几步都正常后,就是将这几步调试正常的电路整合了。将 12v 烧写控制 端 VPP 接到 2051 的第 1 脚,VO13、VO14 分别接到 S51 的第 13、14 脚。S51 的第 15 脚 VST 接到 2051 的第 9 脚。S51 的第 1 脚(P1.0)接到 2051 的第 11 脚。S51 的 5、6、7、8 分别接到 2051 的第 5、6、7、8 脚。S51 的 P0 口(第 32-39 脚) 分别接到 2051 座的第 12-19 脚。别忘了将 2051 座的电源,地接上。
下面就是 S51 部分的电路,如下图:
这部分电路包括 P0 口的上拉排阻和那个接收指示 LED 接在 S51 的 10 脚。别忘了 将 S51 的第 31 脚(EA / VP)也接电源+5v。先确认将 MAX232 的第 9 脚与 S51 第 10 脚的连接断开(因为 MAX232 在调试正常后 9 脚就输出+5v 高平会点亮接收指 示 LED,妨碍 S51 工作性能的检查)。检查电路无误后插上 S51 片子接上电源, 静态电流应在 9-12mA 左右。好!打开 KEIL 写个测试程序: #include <AT89X51.H> #define uchar unsigned char main(void) { uchar i,j,k; while(1)
S51 电路正常后,我们就要将刚才断开的 MAX232 的第 9 脚和 S51 的第 10 脚 焊上。这时我们再编个测试程序: #include<at89x51.h> #include<stdio.h>
void main(void) { SCON=0x50; TMOD=0x20; PCON=0x80; TCON=0x40; TH1=0xfd;//比特率 19200 TL1=0xfd; TI=1; TR1=1; while(1) {
AT89C2051 烧写器的制做与调试
现在都用 S52 了,还用 C2051 干嘛!价格也差不多。但是 C2051 的体积要比 S51、S52 小很多,而且引脚只有 20 只,在一些简单 的控制中,这些引脚已足够了,小的体积更具有优势些。但目前好像还没有支持在线编程(ISP)的 S2051。因此试着做个 C2051 的编 程器,更主要的是与大家分享一下在电路制做过程中硬件、软件的除错技巧,尽量做到一次成功的经验和方法。
{ for(i=0;i<1;i++) { for(j=0;j<255;j++) for(k=0;k<255;k++); } P3_0=~P3_0;
} }
这个程序就是让 S51 第 10 脚(P3.0)接的那个 LED 闪烁。能闪烁就说明晶 振起振,S51 电路工作正常了,编译,然后用 ISP 将这个程序写进 S51 片内,再 插到我们做好的 2051 烧写器上。接上电源,我的电路立即就正常工作了,LED 在闪烁。如果 LED 无反应,你就得检查你的 S51 电路是否连接正常,晶振是否焊 接正确等。
第二部分是 MAX232,包括那个+12v 电压稳压电路。MAX232 是 TTL 转 RS232 专用 IC。它内部提供了一个正 10v,和负 10v 的升压电路。我们正是利用了它的 升压电路又获得了个+12v 的电源。
我们先将 9 针串口焊上,但不接上 MAX232。在你规划的 MAX232 区,按上图 左侧电路将 MAX232 座和四个电容焊好。检查无短路后,插上 MAX232,接上电源, 在 A 点应能测到+9v-+10v 的电压。在 B 点应有-9v--10v 的电压,将 10 脚接地, 那 7 脚就应该是+10V。若 10 脚接+5v,那么 7 脚就变成-10v。这样 MAX232 就正 常了。将串口的 2 脚接 MAX232 的 7 脚。串口的 3 脚接 MAX232 的 8 脚。接上电将 MAX232 的 10 脚分别接地和+5v 看看串口的 2 脚是否跟刚才一样变化。以上的调 试正确后,将上图右边的 12V 稳压电路焊上。如下图:
好!检查无误后,接上电源再试一次串口通讯是否正常(以防在焊接后焊错 使 S51 不工作)后。拔下 S51,用 ISP 将那个 E51Pro.HEX 的驱动固件写进 S51,
再将它插到 40 脚 S51 座上,在 20 脚 IC 座上插上 AT89C2051,连好 PC 串口,PC 上运行那个 Easy 51Pro V2.0,然后将 2051 烧写器给上电源。在 PC 软件上先择 AT89C2051,点击检测器件,我的,1e 21 FF。然后试着打开一个 HEX 文件,点自 动完成,它就一路完成器件的检测、擦除、写入,校验等工作,如下图:
如果你的器件没找到,但前面的串口通迅等调试是正常的,那么你最后一步 的那些接线可能有误。仔细检查你的接线,及 C2051 座的电源、接地是否正常。
好了,掸一掸尘土,大功告成。终于可以闪到一边喝口茶凉快会儿去了!也 给点掌声啊!容易嘛?我。。。!
总结:养成逐步调试的习惯,对电路的一次成功是非常有益的。有了问题对
560r
3 (一共 3 个)
2k2
1
4.7 欧姆 1 串联于供电电路起保护作用
10k 排阻 1 用于 cpu p0 口上拉
1n4148
2 用于 vpp 高压供给 (注意 4148 的一头是黑色的)
12v
1 用于 vpp 高压供给 (注意 12V 的一头是白色的不要搞混)
4.7uf/50v 8 所有的电解都用同一个型号的, 注意方向哦
用万用表在稳压管两端应测得稳定的+12V 电压。这样你的这个串口转换和 12v 电源电路就调试正常了。
第三部分是 12V 烧写控制部分:电路和实物图如下:
这部分电路焊好后,接上第二部分调试正常的+12v 和电源+5V。先测量电路上+12v 接入点和电源电压+5v 是否正常确。再测量上图的 A 点也应该是+5v。然后你把 VO13 用导线接+5V,那么 A 点是+9v-+11v 就对了。好!断开 VO13,再将 V014 用导线接+5v,A 点应该是接近 0。这样 12V 烧写控制电路也调试正确了。
相关文档
最新文档