AT89S52超简单的并口ISP下载线之DIY亲测成功
- 格式:doc
- 大小:477.50 KB
- 文档页数:5
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中将看门狗输出与复位脚用短路冒短接起来。
最小系统板做好了,接下来就是做根ISP下载线了。
否则程序怎么写到AT89S51芯片里呢?先来认识一下AT89S51上ISP(在线编程)功能脚的定义看上图的左边AT89S51引脚图的P1.5、P1.6、P1.7的第二功能分别为MOSI(主机发送从机接收)、MISO(主机接收从机发送)、SCK(时钟脉冲信号由主机发送)。
那什么时候才能启用第二功能呢?就是当复位脚RST接高电平一直处于复位状态时就可用第二功能了,所以在ISP下载板上有一条线接至AT89S51的第9脚(RST)上,就是在写程序前先发一个高电平将S51的RST脚设为复位态,然后就可通过MOSI、MISO向S51内写程序了。
看起来还是串行通信啊,呵呵。
把这四根线加上VCC和GND共六根线通过74HC373连接到PC 的并口,并配合软件Easy 51 Pro就可以下载HEX文件了。
见下图。
要特别注意搞清楚IC 的引脚是如何排列的-参考DATASHEET,哪是1脚哪是2脚-特别是第一排完了后,第二排从上面开始数还是下面开始数。
每个脚的功能是什么,IC的原理是什么,也要了然于胸。
ISP下载线电路的实质也就是将PC端下载软件送出的4路串行编程信号通过4个缓冲器整形为TTL信号然后交给AT89S51的ISP口。
我想其它如AVR的ISP也是这个道理吧。
配合的下载软件Easy 51Pro 2.0的工作界面:接法不同Easy 51Pro 2.0配置文件配置也不同,如果是默认的接法就不用改配置了。
官方有一个配套软件,它的接法就只能固定,不能自己随自己的接法而配置。
见附录的资料。
如果按照上图接线,那么配置文件EasyIsp配置就是;[引脚控制]MOSI=14MISO=15SCK=1RST=16LE=2OE=17R1=3R2=4[锁存控制(LE)]Enable=0Disable=1[输出控制(OE)]Enable=1Disable=0A VR的单片机都支持ISP(也就是引脚有那么几根功能脚),AT的带S的支持ISP,如AT89S52,STC则支持串口对串口下载(不过要断电、通电)。
自制STC8952/STC8951下载器AT89S52/AT89S51最小系统原理图STC89C52由于价格低,性价比高,烧录程序方便等优势,收到越来越多人的青睐。
下边是一个自制STC89C52最小系统/烧录器的原理图。
如有需要请看这里:/auction/item_detail.htm?item_num_id=89 88890168如有需要请看这里:/auction/item_detail.htm?item_num_id=89 88890168图分为6个部分:1. 最小系统的核心部分(CPU)2. 阻容复位电路3. USB供电电路,8*8自锁开关以及USB公头组成,加自锁开关是方便烧录程序使芯片断电再上电4. 电源指示电路,标识系统板是否上电5. ISP接口,方便AT89S52/AT89S51芯片烧录程序6. 串口通信电路,为STC89C52/C51收录程序,或者与PC机串口通信,或者显示调试信息STC89C52/STC89C51下载器图文教程一、下载器介绍如果只想学习下载方法请直接跳到第三节,这里的介绍只是为接下来的硬件连接做准备STC89C51/STC89C52符合8051的架构,与AT89S51/AT89S52等51芯片的指令完全兼容,并且具有价格适中,性能稳定,性价比高,程序烧录方便等特点,很适合初学者使用,同时也广泛应用于产品的开发。
STC系列的芯片采用串口通信的方式来烧录编译好的文件。
根据自己在开发中积累的经验,结合目前常用的几种烧录方式,设计了一种操作简单并且可以灵活扩展的STC下载器。
如果有需要的可以在这里购买/auction/item_detail.htm?item_num_id=3197118340套件地址:/auction/item_detail.htm?item_num_id=8988890168如下图:正面图背面图二、接口详细介绍J1--------串口 J2--------USB 供电接口 J3--------51或AVR 选择J4--------TTL下载线接口 J5--------片外RAM扩展接口 J6--------5V直流电源接口(内正外负)J7--------MAX使能跳线 K1--------电源开关 K2--------51复位按键K3--------ATMega16复位按键 Y1--------可更换的晶振 P1--------I/O口P0端口P1--------I/O口P1端口 P2--------I/O口P2端口 P3--------I/O口P3端口TTL以及外部RAM扩展接口ISP接口引脚定义所有IO口都采用双排引出,可以做为最小系统使用,兼容at89s52/s51等芯片;预留TTL接口,方便连接USB转TTL下载线;预留有ISP接口,可以接ISP下载器给AT89S52/S51烧录程序;支持AVR转51转接板;使用晶振座子,晶振可以根据自己的需要更换;使用USB供电;预留有标准电源接口,可以直接接5V直流电源使用。
具有ISP下载与串口通讯功能的下载线的制作时间:2012-06-11 15:05:42 来源:作者:在学习单片机和进行单片机产品开发过程中,我们通常使用仿真器作为调试程序的有力工具。
但仿真器价格昂贵,对于初学者和一般个人开发人员很难承受。
为此,我们选用了带ISP 功能的AT89S51/52 系列单片机,不需要仿真器也能很轻易地完成系统调试和开发。
所谓ISP,即In SystemProgrammerable 在线系统可编程。
也就是说,单片机可在系统应用板上进行擦除和编程,然后立即运行。
AT89S51/52 系列单片机的内部程序存储器采用Flash 存储器,可以反复擦写1000 次以上。
一、电路构成具有ISP 下载与串口通讯功能的下载线的电路如图1 所示。
该下载线成本低廉,元件易得,既可完成在线系统擦除与编程,又可以作为单片机与PC机的串口通讯接口,进行PC 机串口产品的开发。
图1 具有ISP下载与串口通讯功能的下载线的电路本电路中的核心元件是MAX232,起到PC 机的串口EIA 电平与单片机系统板的TTL 电平之间的电平转换作用,其内部有两套共四路独立的电平转换电路。
而单片机编程脚为⑥~⑨脚,其中⑨脚为复位脚,⑥~⑧脚为通讯脚;单片机串口通讯脚为⑩、脚。
这样需要转换电平的信号有五路,为此,我们增加了一个双刀双掷拨动开关作为“ISP 下载”和“串口收发”切换开关。
另外,在使用“ISP 下载”功能时,⑨脚必须是高电平+ 5V,而在单片机运行时,⑨脚应为低电平,所以我们在制作单片机系统板时必须要有手动复位电路。
在使用“ISP 下载”功能时,需要一直按下手动复位键,编程结束后,只要释放手动复位键,程序便立即运行,如图2 所示。
图2 复位电路这样,有了具有ISP 下载与串口通讯功能的下载线,我们在制作电路时只要安装一个7 针的插座,就可以调试和反复擦写程序了,同时也可以实现单片机与PC 机串口通讯的产品开发。
简单DIY Atmel 单片机并口下载线简单DIY Atmel 单片机并口下载线更新于:2012-06-25 19:10:22 文章出处:互联网关键字:Atmel 下载线DIY 很多单片机初学者都是选择STC 单片机来学习51 单片机,原因是STC 单片机的程序下载是通过串口下载的,下载电路简单,只需一根DB9 针串口线、一片MAX232 芯片和四个1uf 的电容即可。
但是高等院校的教材几乎都是以AT89C51/52 单片机(已经停产)或者AT89S51/52 单片机(AT89C51/52 的替代品)和其DATASHEET 作为教学内容。
以前,笔者为了学习AT89S8253 单片机曾购买了一个昂贵的通用编程器,回想起来很不划算。
为了让您理论联系实际学习单片机,降低学习成本,笔者在此与大家交流Atmel 单片机下载线的制作。
图1 是Atmel 官方并口下载线电路原理图的改进版(简化了官方下载线的电压检测电路,增加了电源滤波和电源指示电路)。
该下载线适用于AtmelAT89S系列和AT89LP 系列单片机在线编程,兼容软件有WSFISP(笔者的开发软件)和AtmelISP(Atmel 官方软件)。
电源滤波电路(C1、FB(磁珠)、C2、C3)的作用是消除电源的噪声干扰信号和开关电源本身自带的高次谐波和波纹,保证74HC244 输出的信号质量。
此外,因74HC244 芯片需要目标板DC5V 或DC3.3V 供电,所以特设电源指示电路(R9、LEDP)以便指示电源是否送到下载线上。
如果您是简单DIY 该下载线的话,电源滤波电路和电源指示电路可以不要。
其他电阻选择余量很大,R1、R7、R8 阻值可从1K-10K 欧姆选择;R2、R3、R4、R5、R6 阻值可从100-300 欧姆选择。
当然,不要这些电阻而直接连接也是可以的,但为了保护您的PC 机的并口安全,笔者强烈建议使用电阻连接!。
Easy 51Pro v2.0 制作及使用说明Easy 51Pro的第一个版本由于制作简单,操作方便一发布就受到了大家的热烈欢迎。
很多网友自制成功后已经感受到了ISP编程技术是如何的爽,看到他们这么爽我也感到无比的高兴和兴奋,这也成了我开发第2个版本的动力。
努力奋斗一个月终于设计出了第2版。
这个版本的设计目标:更好用,容易自制,容易扩充,更稳定,更灵活。
V2.0的新特性:支持hex文件了用户自己可以扩充器件重载的文件对话框,让你不必到处找文件热键支持,让你调试程序时效率更高灵活的程序设计,甚至可以让整套软件在其他编程器硬件上运行可以支持任何下载线,让你有更多选择设计了串行通讯超时程序,减少了掉线现象下载线,编程器都有相关的调试程序,让你制作时更轻松,提高了成功率开放源代码和详细的原理说明,用户可以根据自己的要求进行修改别看界面和上一个版本差不多,里面的东西可全部换了,使用还是一样。
点击“自动完成”后,就会一项一项的往下进行。
最优的设置就像上面这个图。
缓冲1会自动刷新上一次你打开的文件,所以你不必每烧一次芯片就去打开一次文件。
你也可以不点击“自动完成”,在该界面下“回车”就是的。
不在该界面下时可以用“热键”,所以每当编译完程序后,直接按热键就可以了(默认热键Ctrl+Shift+P)。
在调试中频繁烧片时这个功能显得很重要。
要把按钮设置成“自动”很简单,用“鼠标右键”点一下就可以了。
操作成功或失败会有不同的声音提示。
成功的声音提示可能会让你编程时更兴奋,效率更高。
如果你觉得声音听起来不爽,就在设置里“False”它吧。
这个下面有提示,一看就知道怎么做了吧。
有4个编程器选择。
Easy 51Pro串行编程器也是新设计的,原来的那个电路中12v/5v切换电路改成了12v/5v/0v切换电路,这样就可以烧AT89C2051了。
不过还要使用一对跳线或开关切换(详细内容在《自制Easy 51Pro串行编程器》)。
自制AVR单片机USB-ISP下载线现在的笔记本包括台式机都渐渐地舍弃了并口、串口;很多网友也跟我说,台式没有并口了,下载线没法用了,让我帮他想想办法。
看来做个USB-ISP下载线是势在必行了。
在网上搜了下,主要有两种方案,一种是用FT245串口芯片加ATMEGA8的方案,另一种是只用ATMEGA8进行USB串口协议的软件模拟和ISP下载全部完成。
据说第一种稳定,但成本高,电路复杂,不便自制。
我们还是本着低成本,简单易做的原则进行。
就用单个M8来做。
好!废话少说,干活。
在网上搜了一下找了个BUG少,易于自制的图。
在制做前首先要搞清楚几点,第一,这个USB下载线本身就是一AVR单片机,在制做完成后首先也得通过其它并或串口ISP下载线给它下载程序,这样它才能工作。
第二先得大概了解一下这个AVR单机机M8的基本资料。
这样才能对电路有个了解,从而便于调试。
因此,你原先用的并口ISP下载线在这里还得起着关键的作用,可别扔掉啊!我图示一下这个过程先:接下来按上述图的要求准备元件。
元件准备好后,先得检测下质量,电阻的阻值、发光管的极性、电容是否有短路。
要测试下两个稳压管的稳压值是否正确。
最最重要的是先把USB接口用延长线接到PC上,然后用万用表测一下正极在哪,做个标记,这样就能搞清楚了D+、D-的位置,也不会接反电源了。
免得焊好后发现错了极性反复焊,焊盘很容易脱落,也避免接反烧了元件。
(我开始用的是USB公头接口,后来发现在板子上吃不上劲,稍一用力很可能会松脱。
所以换成母口了)电路图我整理了一下,因为有的元件不需要,有的为了方便检查,避免漏连了线。
焊接过程就没什么好说的了,不是PCB板,是洞洞板的,在事先大概做个布局(布局原则就是减短引长度,跳线尽量少。
好像我做的跳线并不少哦!)然后就按照上面的电路图焊接,完成后如下图,感觉是不是还不错?再来张反面吧,有点惨不忍睹吧!在调试前也还得先弄清几个问题:第一、电源题:原先的并口下载线是靠S51板上来供电的,也就是说当你焊好你的USB-ISP板后给它装固件时,USB-ISP板得向原并口下载线供电,而固件装好后USB-ISP板就是靠PC的USB口向我们的USB-IS板供电了,而你以后的51实验板就不能向这个USB-ISP板供电了,否则PC和51实验板都向USB-ISP供电,那么电压不同就有可能烧坏PC口或元件的。
AT89S52单片机学习经验2号文件——AT89S52超简单的并口ISP下载线之DIY
AT89S52单片机学习经验2号文件
——AT89S52超简单的并口ISP下载线之DIY 经过五天的奋斗,我终于找到了一种对初学者来说超简单的并口ISP下载线制作方法。
(资源都来自网络,百度、Google 真是好东西啊!)
制作S51的ISP下载线,网络上有一堆资料,但到底哪个对自己适合呢?这是个大问题,对我这个初学者就犯了个很大的错误——一上来就想整难的(制作AT89S52的串口ISP下载线,这浪费我三天的时间啊)。
现在市面上买的ISP下载线一般都是并口或USB口的,串口的很少。
因为串口制作比并口难,下载速度较慢,网络上非常成熟的DIY方法很少,极易出问题。
而制作USB口的ISP下载线,目前来说就非常专业了,制作这个对初学者来比登天还难呀,网上资料极少!而并口线下载速度快,制作简单,资料很全。
废话不多说了,入正题。
我是按照网络上的资料,自己整理做的一根并口下载线(就一个针头并口,六根线,一个接插件)。
上图
我做这根下载线实际就花了30多分钟,调了半个小时。
当然之前,我还按照网友txz01的方法(方案见
/txz01/blog/item/11c1c85089cf1b608435246e.html)用74HC373做了一个并口下载线,但用软件Easy 51Pro v2.0宇宙版调试总读不出正确的特征字,而我用软件ISPtest测试并口是正常的,最小系统也是正常的(尽管当时只知道晶振正常,但是后来下载线做好后,最小系统可以用下载线来正确地烧写程序——哈哈,事后诸葛亮啊!以后,我会注意拿事实说话。
PS:想了想事后拿事实验证也是可以的)。
我估计是74HC373处有问题(以后有时间,我再测试一下看看)。
按上图,做好下载线后,就到了这关键的一步,软件调试。
我是在软件IsPlay v1.5.0.1上调试成功的。
(注:我在Easy 51Pro v2.0宇宙版和PonyProg2000软件上也测试过,发现调试不成功。
)
特别说明软件的具体设置完全参考引用王洪江同学(联系方式dianzijie0115@)的设置说明,非常感谢他先前的工作。
在下载程序前要先对软件设置以下才行,否则不能用的。
具体设置如下:
首先设置见图2:用记事本打开图中所示的ini文件,见图3:打开时有可能与此图的引脚配置不一样,以此管脚配置为准。
修改完要保存,一定要养成这个习惯,不管做什么都要边做边存盘。
接下来见图4:双击指定的图标打开后见图5:
在图5中首先点击程序设置(左下角),出现图6所示,把刚才修改过的ini文件(图3所示的)加载进去,确定。
又回到图5所示的界面,然后点击检测器件,见图7的所示的现象。
到这里大部分工作已经做完了,接下来就是生成hex文件,建议大家用keil软件,因为这是一个很成熟的单片机软件,支持差不多所有的单片机,具体怎么用keil生成hex文件这里就不多说了,可以去网上下载。
生成hex文件后就可以把该文件烧写到单片机里面。
个人小经验:
1、方案很重要,对初学者来说,尽量先做一个最简单的isp下载线方案(简单肯定有些弊病,我将在以后再进行
说明)。
哈哈,我做这个并口下载线是我知道的最简单的一个。
这点要狠狠地鼓励一下自己!也期待有高人给出更简单的方案。
2、在做下载线时要注意下载线不能太长,最好不超过1米,目的是抗干扰,太长会造成下载不成功,大家一定要引
起注意。
我做下载线长不到半米。
3、软件可以多试几个看看效果,你试就会发现各有各的优点。
比如:IsPlay软件比较专一,在并口下载方面可靠
性较优,而Easy 51Pro v2.0宇宙版和PonyProg2000软件都支持串并口isp下载,但界面设置麻烦些,并口的效果也
没IsPlay软件好。
但IsPlay和Easy 51Pro v2.0宇宙版软件没有好的并口测试(单独的IspTest也用起来不方便),最好下载前先测试一下你的并口是否接好,这点PonyProg2000做的很好,直接点软件就可以非常方便的测试出你的并口线是否接好。
(具体测试方法可以百度一下哦!)
附测试程序代码:
(程序功能就是让P1.0上的LED闪烁发光)
文件LED1.c
#include <at89x51.h>
void main(void)
{ unsigned char i,j,k;
while(1)
{
for(i=0;i<100;i++)
{
for(j=0;j<50;j++)
for(k=0;k<10;k++);
}
P1_0= !P1_0;
}
}。