编前:
大家知道,单片机能够通过程序和简单的电路来完成复杂的控制,从而令设计智能化,功能多样化,电路简单化,并可方便地修改或扩充功能。但是单片机电路不同于普通的电子电路,作为一个单片机爱好者或者初学者,要完成一个单片机电路的设计、制作、调试到最终的成品,还需要一些必要的辅助手段。随着计算机的普及化,这些都很容易实现。我们将用几篇文章向大家介绍目前最常用的3种单片机的编程器制作和仿真调试程序的使用。希望能够帮助广大的单片机初学者和爱好者建立一个基本的学习开发环境,能够方便地进行单片机电路的学习、设计。L
一、 51系列单片机编程器和调试软件
提到单片机,电子爱好者必然会想到51系列,51系列单片机源远流长,很多人都是从51系列单片机开始进入单片机世界的。目前用得比较多的是ATMEL的89C2051,这种芯片价格便宜(10元左右),内部有2K的FLASH程序区,可反复编程,体积小(20脚DIP封装),现成的应用电路也很多,最适合于初学者。
也许你以前已经在一些网站上找到过一些编程器的电路。不过从一些论坛上反映的消息来看,要么是制作不成功;要么是电路太复杂。比如ATMEL公司提供的编程器电路,虽然功能全面,但一般爱好者要做这么复杂的电路难度还真不小;要么是电路本身就是由单片机构成的,没有编程器的情况下,很难获得一块写好程序的单片机芯片;要么编程器的配套软件是DOS下的,还要来个命令+参数等等,使用麻烦。考虑到以上这些因素,我推荐一款电路给大家。这个编程器电路要与计算机相配合才能使用。编程器支持的芯片为ATMEL的AT89C1051、AT89C2051、AT89C4051。图1是这款编程器的电路原理图。它的优点是:
(1) 成本低廉:全部电路仅用3块数字集成电路,没有使用任何特殊的元器件。所有元器件都可在电子元件商店买到,如果没有活动集成电路插座,也可用普通的集成电路插座代替,成本会更低。
(2) 电路简单:电路中的元件很少,印板很容易自制,甚至可以用试验板焊接而成。
(3) 没有用到单片机芯片来控制时序。这样普通的用户在没有编程器的情况下也可以自制成功。
(4) 编程软件是Windows下的图形化界面,操作简便,使用者只要具备简单的电脑操作知识即可。
电源部分很简单。由外接电源提供+13~15V电压给编程器。电源电路(见图2)由三端稳压块78L12和78L05组成,它们分别提供12V的编程电压和5V的工作电压。
图1中的4个三极管组成控制电路,它们分别受并口①脚和的控制,根据程序合适的时候在待编程的89C2051芯片的①脚上加上+5V或者+12V电压。
图1中的DB25为25针插座。它通过一根并口电缆与计算机相连。25芯的并口电缆可以购买成品,也可自制,自制很简单,用2个25针或孔插头,用连线将2个插头的25芯一一对应焊接即可。
焊接完毕后,需要检测+5V和+12V电压,其偏差不得超过±0.5V。滤波电容可适当加大一些。为了测试编程器电路工作是否正常,需要先进行一些测试,在此过程中不要插入芯片。首先装入测试文件test.bin,进行编程操作,编程过程中测量活动插座①脚对地的电压值,正常值为12V左右,正负偏差0.5V以内。然后再执行读取操作,读取过程中再次测量活动插座①脚对地的电压值,正常值为5V左右。如果一切测试都通过,则编程器电路完成。
首先要用并口电缆把编程器和计算机的并口连接好。然后把外接电源的插头插在编程器上,这时编程器的电源指示灯应亮起,表示电源供电正常。接着就可启动编程器配套的软件进行编程操作了。
编程器的界面如图3所示。软件有两种语言选择,在language菜单下,一种是德语,一种是英语,通常可选择英语。稍后我们将对其进行汉化,以方便使用。
首先要将待编程的芯片插入编程器的活动插座,这里一定要注意芯片的引脚位置,不可插反。正确的位置是芯片的第①脚挨着活动插座的把手。然后压下活动插座的把手,将芯片锁紧。
第一步是选择芯片(见图4),在Processor菜单下选择芯片型号。
第二步是擦除芯片的数据。在对芯片编程之前,首先要确定芯片是空的,如果有数据,先要进行擦除(见图5)。擦除的方法是在Processor菜单下选择Clear memory only,在弹出的窗口中单击Erase按钮即可。
第三步是选择要写入芯片的程序文件。在File菜单下选择Select file for pro-gramming,在弹出的窗口中,有路径选择区,当你选择好文件后,单击OK按钮即可。如果想检查一下是否正确,可在File菜单下选择View selected file,会弹出一个窗口,窗口中有你所选中的文件的内容(见图6)。
第四步是将选择好的文件写入到芯片中。在Processor菜单中选择Program-ming,在弹出的编程窗口中有一个可选项lockbit on,这是lock位选择,如果选择打开的话,写入后,芯片中的程序将受到保护,也就是不能再读出芯片的内容,以防止被别人复制。但是仍可将程序全部擦除,且lock位也同时被擦除,这样可以重新使用。如果确认无误的话,可以单击Start按钮,开始编程(见图7)。

第五步检查程序是否正确写入。编程完毕后,我们可以再读一下芯片中的内容,以便确认无误。在Processor菜单下选择Readout,在弹出的窗口中,单击Start按钮,就开始读取芯片内容了(见图8)。如果芯片有lock位保护,则无法读取其内容。读出内容后,可以单击save file按钮将读出的数据保存在硬盘上,这时将弹出一个对话框,询问你要把文件保存到什么地方,输入路径、文件名即可。

6. 错误提示
如果软件在使用过程中提示Access line to the programming device defectively,则表示数据线连接可能不正常,你需要检查编程器到计算机的并口之间的连线是否连接好。
如果软件提示“The microcontroller can-not be programmed!”,则表示不能向单片机写入程序,你需要检查芯片在插座上的位置是否正确,引脚接触是否良好。编程器各部分电压是否正常。如果还不行就换台计算机试试。另外一种可能就是芯片本身是坏的。
程序的各种功能都设有快捷键,由ALT+相应的热键组成,热键是菜单中带下横线的字母。熟悉的话可以加快操作速度。编程器配套的程序可在http://ediy.yeah.net上下载。
二、 8051仿真调试软件:
DBG8051是一种8051系列单片机的软件仿真调试工具软件,它完全使用软件仿真8051单片机,不需要任何其他硬件进行仿真调试。DBG8051是运行在Win-dows环境下的软件,完全图像界面,十分友好,对于初学8051单片机的爱好者来说,很容易上手。这个软件可以仿真8051和8052(8051的内部RAM为128字节,8052的内部RAM为256字节),对于8051的汇编语言程序、内部RAM、外部RAM、寄存器、标志寄存器、I/O口都有直观的显示,并且你还可以使用鼠标方便地修改汇编语言指令、修改数据。你可以控制程序的运行情况,并可以直接产生各种中断,来对程序进行调试。图9为DBC8051软件界面。
下面介绍了该软件的使用方法:
1. 各个窗口介绍
(1) 代码窗口(见图10):
这里显示了反汇编以后的程序代码,在窗口的左边显示标号,中间显示代码的地址和指令的机器代码,右边显示了汇编代码。当前运行到的地址前有一个蓝色的小箭头。当前选择的指令显示为蓝底白字,在这个窗口中你可以用鼠标双击任意地址来在这个地址输入汇编语言指令。也可以使用滚动条来翻阅程序。
(2) EPROM存储器窗口(见图11):
这里显示的是8051内部程序的存储空间,显示格式为16进制列表,你可以在某个地址上双击鼠标来修改该地址的数据。修改数据后,代码窗口将自动进行反汇编并刷新显示。
(3) 寄存器窗口(见图12):
这里显示8051内部各个寄存器,这些寄存器的数值在程序执行时会动态改变,你可以用鼠标双击某个寄存器来修改这个寄存器的数值。
(4) 内部RAM窗口:
它显示8051的内部RAM,显示格式为16进制列表,你可以在某个地址上双击鼠标来修改该地址的数据。
(5) 端口窗口:
它显示8051的各个I/O端口状态和寄存器ACC、B、DPH、DPL的位状态,你可以用鼠标单击某位来改变该位的状态。
(6) 处理器状态窗口:
它显示当前指令指针和已经运行的指令周期数。
(7) 标志寄存器窗口:
它显示各个标志寄存器的状态,你可以用鼠标单击某个标志位来改变它的状态。
在各个窗口的标题上双击鼠标,可以改变窗口的状态,当窗口为活动状态(标记为一个绿色的对号),本窗口会刷新程序运行的结果,如果窗口为非活动状态(标记为一个红色的叉),则窗口不刷新程序运行的结果。但对于使用单步执行功能,还是会刷新所有的窗口。
2. 菜单各功能介绍
主菜单项有:工程、EPROM、RAM、内部RAM、标号/断点、运行、中断、设置、窗口、帮助。
(1) 工程菜单:可以控制单片机的复位、新工程、退出程序等功能。
(2) EPROM菜单:可以装入或保存8051的程序(BIN或HEX格式)。
(3) RAM菜单:可以装入或保存8051的外部RAM数据。
(4) 内部RAM菜单:可以装入或保存8051的内部RAM数据。
(5) 标号/断点菜单:用来设置或删除断点、读入以前保存的标号或断点、保存当前的标号或断点。“设置/删除断点”功能可在当前地址设置断点或删除断点。灵活运用这个功能你可以让程序在你需要的地址停止运行。
(6) 运行菜单:这里可以控制程序的执行:开始运行、运行到光标处、运行到某个地址、运行至RET/RETI指令、单步跟踪、单步执行等。在菜单项上显示有各个功能的热键,你也可以使用热键来控制程序的执行,这样更方便程序的调试。
(7) 中断菜单:这里可以直接选择激活某个中断,这样可以直接调试中断部分的程序。
(8) 设置菜单:设置系统的一些参数。并且可以设置内部RAM的大小,以适应8051或8052芯片功能。
(9) 窗口菜单:打开或关闭各个窗口。
(10) 帮助菜单:显示关于本软件的一些信息。
3. 一般调试过程
首先打开软件,使用EPROM菜单下的“读入”或“读入Inter HEX”功能装入程序,然后软件自动进行反汇编并在代码窗口显示反汇编后的代码。然后就可以使用运行菜单下的各个功能来控制程序的执行,并且可以在各个窗口看到执行的情况和数据,如果需要可以动态修改这些数据来调试程序。当完成程序的调试,可以使用EPROM、RAM、内部RAM菜单的功能来保存程序文件或内部数据。保存后的程序可以直接使用编程器写入芯片。
上面介绍的仿真调试程序可到
http://ediy.myetang.com/dpj/ediy_ 021.htm下载。
(电子DIY工作室)




