自己动手制作一个MCS-51编程器

来源 :电子世界 | 被引量 : 0次 | 上传用户:qqqq920644875
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  MCS-51单片机能够通过编程、烧录从而成为特定用途的芯片。单片机的编程一般是使用编译软件把.asm或.a51文件编译成.hex或.bin文件,然后使用专门的编程器烧录到单片机或者外接的可编程ROM中。本文介绍一种在没有编程器的情况下,烧录简单的单片机程序,进而自制一个通过计算机直接烧录多种芯片的实用编程器。如果你想自己制作一个编程器,或者你对手工烧录芯片有兴趣的话,那就照本文介绍的方法试试吧。
  1. 硬件原理 图1是手工烧录器的硬件电路图。这一电路是进行手工烧录的最简电路,同时将被作为成型后的编程器的一部分。电路中的89C51芯片选用40脚的零阻力插座接入,当然也可以使用普通的DIP-40插座,只是这样拔插芯片会麻烦一点。电路采用了一般编程器的电路原理,CD4040芯片是12位的二进制计数器,这里用作89C51编程状态的地址输入。当CD4040芯片的RST端输入一高电平时,计数器清零,此时对应的89C51内的闪存地址为“0000”,之后,每向CLK端输入一个低电平,地址就增加“1”,一直可增加到“0FFF”,正好可以编完89C51内4K字节闪存空间。数据输入端采用8位DIP微动开关进行手工输入,89C51的P0.0~P0.7为数据输入端口,当某一引脚未接地,则输入数据为“1”,接地则输入为“0”。P2.6脚为芯片编程/擦除选择,编程时应接低电平。P3.6、P3.7也是芯片编程/擦除选择,编程和检验时均接高电平。P2.7脚为闪存器的读写选择,写入时(烧录)接高电平,读出时(检验)接低电平。另外,测试用表笔可以用来检查地址、数据端口各位数据,端口为“1”即高电平时,LED发光,端口为“0”即低电平时,LED不发光。
  当烧录过程中不慎写入错误数据时,则应该进行整片擦除,从头开始。进行擦除时,要先把89C51置于擦除状态,即P2.6接高电平,P2.7、P3.6、P3.7都接低电平,然后按下“写入”按钮10ms以上,芯片即被整片擦除,片内所有地址单元均重新置为FF,可以重新置为编程状态,从头开始烧录。
  2. 手工烧录 现以本刊的网站上给出的一段与计算机进行串行通讯的简单程序作为例子,讲一下需要在单片机端烧录的简单程序。例子中的第二列是单片机闪存器的地址编号,第三列即是对应地址单元要烧录的数据。
  进行烧录前,需要特别注意你的单片机系统晶振是否为12MHz,如不是则应按本刊第11期文章《如何在单片机上调试Hex文件的程序》里介绍的公式“256-晶振频率×2SMOD÷32÷12÷波特率”,计算对应的重装载数,修改相关的数据,以使计算机端和单片机端能使用相同波特率正常通讯。另外,你应根据RAM使用的实际地址值进行设定。
  手工烧录需要细心和耐心,只要有一个地址单元的数据需要改正时,89C51都要求将芯片内整个存储器擦除,然后从头进行。编程之前首先应读懂例子中的编程数据,.a51单片机程序经过编译后生成的.lis文件,第一列为行号,第二列为地址编号,第三列为程序所对应的代码数据,第四列则是源程序语句(包含语句后的注释)。我们把需烧录的内容(即第三列的代码数据)依次写入第二列编号所对应的地址单元,手工烧录的工作即告完成。
  


  代码数据和地址编号均用十六进制数表示,每位十六进制数代表的是四位二进制数,即由0或1组成的四位数。每个十六进制数码表示的二进制数如下:
  0 0000 1 0001 2 0010 3 0011 4 0100 5 0101
  6 0110 7 0111 8 1000 9 1001 A 1010 B 1011C 1100 D 1101 E 1110 F 1111
  地址编码有四位,转换成二进制数即为16位。实际上由于89C51内的闪存器仅有4K字节(212),所以只需取后面的12位,即把地址编码的后3位十六进制数转换出来即可,如第一行的地址编码0000,在烧录时取000,即转换为0000 0000 0000。每一地址单元可存储一字节的代码数据,即8位二进制数,对应两位十六进制数。如地址单元0000应写入的代码数据为01,(注意:文件中第一行无数据),烧录时转换为0000 0001。后面两位71,应写入0001单元,转换为0111 0001。接下来的0002单元无数据,烧录时可跳过。接下来的0003单元则在第四行,应写入的数据代码为02,……依此类推。需注意的是,不是每一单元都有数据,烧录时跳过无数据的地址单元,即相应单元不进行写入操作。另外,每行中数据代码最多三字节,最少的一字节,依次写入连续的地址单元中,不会与下一行的地址单元冲突重合。
  理解了数据代码后,就可以开始烧录了。首先要将89C51置于编程状态,即P2.6接低电平,P2.7、P3.6、P3.7接高电平,J1接口插上外接12V电源。请注意,手工编程需要细心和耐心,尽量一次烧录完成,不要出差错。按“清零”按钮,使CD4040输出地址编码从高位到低位为0000 0000 0000,可以用接LED的表笔从高位到低位逐位检查一次。无误后在DIP微动开关上表示出对应的代码数据0000 0001,从高位到低位,打开接地的位为0,不开的位为1。无误后,按一下“写入”按钮,0000地址单元即已烧录。按“加1”按钮,地址编码加1,从高位到低位为0000 0000 0001。可再用接LED的表笔从高位到低位逐位检查一次。无误后,在DIP微动开关上表示出对应的代码数据0111 0001。无误后,按一下“写入”按钮,0001地址单元即已烧录。按“加1”按钮,地址编码加1,由于0002这一单元无数据代码可跳过,即再按“加1”按钮,直接到0003地址单元,可用接LED的表笔从高位到低位逐位检查一次。无误后,写入对应数据代码,方法同上。不需每次都用表笔检查地址编码,但有无代码数据的单元跳过或感觉地址计数有误时,应检查一遍,及时对编程错误采取对应措施。否则,错一处就还得整片擦除,从头开始。
  

 
   出错的处理方式有两条。如果是漏写了一个单元,则可以先把地址清零,一路跳过已编程的单元,到漏写的单元,继续后面的编程。如果写入了错误数据或对应地址单元写入了别的单元的数据,则应该进行整片擦除,从头开始。进行擦除时,把89C51置于擦除状态,即P26接高电平,P2.7、P3.6、P3.7都接低电平,然后按下“写入”按钮10ms以上,芯片即被整片擦除,片内所有地址单元均重新置为FF,可以从头开始烧录。
  3. 使用电脑烧录 利用本刊第11期《如何在单片机上调试Hex文件的程序》一文介绍的调试电路和程序来实现上面手工烧录过程中的高低电平控制,就可以实现计算机对芯片的直接烧录,一个自制的编程器就成型了。下面,以《如何在单片机上调试Hex文件的程序》一文中介绍的电路为调试电路,本文介绍的电路为烧录电路,把两部分相应的引脚按图2进行连接。
  调试电路工作的前提是89C51中已经烧录了前一部分已经提到的串口通讯必需的源程序,并已插入到调试电路的对应IC插座,可以接收计算机端发送的.Hex程序代码并运行它。
  连接完成后,把烧录控制程序shaolu.hex发送到调试电路的RAM中,并运行。这样,当计算机端再发送新的 .Hex文件时,烧录控制程序即会把这一.Hex文件内容烧录到烧录电路端的89C51芯片中。以后的的烧录都将通过这一途径进行,更长的程序简简单单通过计算机几步即可完成。烧录控制程序的工作流程如图3。读者可自行编写,也可到本刊网站下载。除了烧录功能,烧录控制程序shaolu.hex还带有对89C51闪存器的检验和整片擦除功能。使用方法是,当shaolu.hex在单片机端的RAM区运行后,在计算机端的程序窗口中发送“02 A5”命令(详细方法见程序的帮助),单片机即会读出并发回烧录芯片的闪存器内容,计算机端就能看到闪存器,通过适当对比,就可以知道烧录的数据是否正确无误。结束时,单片机端会发回结束标记“AE”,可以判断闪存器内容已全部发回。发送“03 A5”命令,即可对89C51闪存器整片擦除。擦除结束,单片机端也会发回结束标记“AE”。另外,发送“04 A5”命令,则会退出烧录控制程序,回到原来调试控制状态。
  


  当一片新的89C51烧录完成后即可替换原先的芯片,实现系统的更新。编程器可实现的功能也会更多,电路适当改进后还能实现更多型号芯片的烧录。总之,以手工编程的第一片芯片为起点,编程器的功能可以在芯片替换的过程中越来越完善。鉴于89C51芯片有一定的寿命,读者在重新烧录芯片前最好先调试运行,确信无误后再进行烧录操作。
  4. 硬件实施 一般情况下,元件采购比较容易一些,电路板则需专门到厂家专门定做,单片制作是很不合算的。通过实践,我发现单片机电路还有一种比较简单的实施方式。
  单片机的电路中有许多总线,总线排列都有一定的顺序。因此,电路板的线路排列就很有规律,而且可以比较简单。下面就介绍笔者常用的一种用单面覆铜板制作单片机硬件电路板的简单方法。
  以本文中的电路图为例,首先把芯片、DIP微动开关对应的IC插座放在覆铜板的有铜面上,插座的引脚用尖嘴钳折向插座两边(如图4)。放置时,尽量使用IC插座,其余元件也要留出位置,要使尽可能多的需连接的引脚对齐。确定放置位置后即可开始划线,用刻印章用的刻刀把IC插座对应的引脚线路刻成平行的直线条。一般DIP插座引脚间的距离为0.24cm,划线时每厘米四等分,即每隔0.25cm划一道线,把划线处覆铜刻去即可满足要求。IC插座的正中纵向把平行线条断开,不连接线条也都断开。其余元件也依次刻好引脚线。其它应连接线路则用漆包线两头去漆后焊接的方式连接,IC插座和其它元件也同时焊接。焊接完毕,用万用表检查一遍线路连接是否无误,相邻线路间有无短路,有无虚焊。全部无误后,适当固定板上的漆包线。电路板即告完成,把元件插入对应插座,即可使用。
  如前所述,建议把调试电路和烧录电路综合后再制作电路板,以减少两电路间连接的麻烦。综合后的电路图不再给出,相信读者可自行绘出。综合后的电路在进行手工烧录时,调试电路部分的芯片最好先不要插上,以免影响手工烧录的进行。
其他文献
【摘要】网站的价值体现在将更多的产品和服务提供给更多的使用者。本文以西南林业大学图书馆网站为例,结合网络流量分析工具的应用,可视化地揭示网站受访情况,分析并提出网站优化的依据和途径。  【关键词】流量分析;图书馆;网站优化  随着信息技术的发展,需要存储和传播的信息量越来越大,信息的种类和形式也越来越丰富,传统图书馆的机制显然不能满足这些需要。因此,数字图书馆运运而生。数字图书馆是一个数字化信息的
期刊
很多学生朋友都有GBA,同时学生也是电子词典的主要消费人群;既有电子词典又有GBA的人不在少数。  其实GBA上有一个简单易用的英汉电子词典,一般性的查找词汇解释完全可以满足,这就是Wordboy,大家可以到该软件开发者的网站上找到并下载,软件的当前版本为1.5版(http://www.guangzhiyi.com/gslib/down.htm)。该软件的发布是直接以ROM文件的形式发布的,只要把
期刊
【摘要】本文主要论述了利用可编程逻辑器件FPGA进行测频计数和实施控制实现频率计的设计过程。该频率计利用等精度的设计方法,克服了基于传统测频原理的频率计的测量精度随被测信号频率的变化而变化的缺点。  【关键词】频率计;FPGA;等精度  1.引言  在测量技术中,使用比较广泛的是对宽频率范围的时间和宽的频率测量技术。而数字式的频率和时间的测量技术具有精度高,读数方便等优点,因而成为当前普遍使用的时
期刊
GBA运行的软件都装在卡带中,卡带中一般有专门用来存放软件的ROM和保存游戏进度的RAM,以及为RAM提供电源的电池。可以说卡带对于GBA就像是计算机的硬盘一样,没有硬盘的个人计算机什么也干不成,至少现在是这样。  市场上销售的GBA游戏卡带都是预先写好ROM的,不能更改,除非是合集的游戏,否则玩不同的游戏就要更换不同的卡带。因此后来便出现了使用可擦写ROM的Flash卡带和烧录器,玩家通过设备把
期刊
电子图书从几年前出现以来始终是一个热点话题,国内市场上一直都不断有各种各样的电子书阅读器出现,例如金博览、翰林等等,这些硬件阅读器有的曾经销路不错,但后来最终无声无息,也有的只能一直摆在店面里做陈列品了。  这些国内专用电子书阅读器没能在市场上长盛的原因很多,其中价格昂贵、功能单一是最重要的一条。翰林电子书就是一个典型的例子,售价高达2000多元,却只有单色显示屏,看书只能认TXT文本,无法图文混
期刊
【摘要】介绍了DDS的基本工作原理,针对传统DDS存在的主要问题,提出了基于流水线结构的累加器和基于波形对称的ROM优化设计,并在开发软件Quartus II上仿真,验证了优化设计的正确性。不仅提高了系统的运算速度,而且也节省了硬件资源。  【关键词】FPGA;DDS;流水线结构;仿真  1.引言  随着科技的飞速发展,对信号发生器的要求越来越高,传统分立式模拟电路来难满足[1]。直接数字频率合成
期刊
有很多场所对转速的精度要求较高,譬如,某些精密仪器、精密机床等。那末,怎样解决转速精度问题呢?除选用硬度特性较好的电动机外,电动机控制系统也是应该考虑的问题。比如,生产中常采用的滑差电动机调速系统、变频变压调速系统等。本文介绍的8098单片机直流电机调速系统,就是一种经济实用的电动机控制系统。  整个电路组成框图如图1所示,其中晶振单元、复位单元、程序存储与地址、数据分割单元是保证8098系统能够
期刊
【摘要】对熔化池的燃烧系统的作用及工作原理进行简要的说明,提出了燃烧系统的设计方法,同时详细说明了控制系统使用方法及管路安装方面的注意事项。  【关键词】熔化池;燃烧盘;阀位控制器;流量计  1.引言  在TFT基板玻璃生产中,熔化池加热方式采用电加热与燃气加热并存的模式,燃气加热系统在烤窑期间提供烤窑的热源,烤窑结束后,电加热系统开始启用,燃烧系统成为辅助加热,主要用来进行一些工艺温度和炉压大小
期刊
【摘要】针对机电一体化专业涵盖技术领域广、学生泛学而不专,以及学生学习能力和学习目标参差不齐,提出了专业分层次化教学模式的解决方案。根据行业需求进行专业方向分层,通过编制班级进行课程体系分层、合理设置理实教学权重比,利用任务小组进行教学内容和目标的分层,能够克服学生个体差异基本实现因材施教的效果。  【关键词】高职;机电一体化;分层次;专业开发  随着综合素质人才社会需求量的增加,机电一体化专业备
期刊
在电子消费品、通讯及工业电子等应用领域,许多看似不相关的设计常常有许多相似之处,比如几乎每个系统都有这几个部分组成:处理器、数据存储介质及应用专用电路,如广播、电视中用到的数字调谐器、信号处理器,或支持语音拨号的电话中需要的DTMF发生器等。而它们之间的数据传递通常都有距离短、流量小、突发性等特点,如何利用这些共性,使电路的设计简单而性能稳定呢?本文介绍由Philips公司提出的I2C总线很好地解
期刊