EMU-ZONE 电子DIY

 
首页制作硬件资料开发资料购买
 
原创稿件 - 《无线电》 - PIC16F84单片机编程器的制作及PIC仿真调试软件的使用
PIC16F84单片机编程器的制作及PIC仿真调试软件的使用

注:请勿转载,如有需求请与刊登的杂志社联系.

  如果你打算来学习一下PIC系列单片机的相关知识,从PIC16F84入手是比较合适的。它是一款低价位的、内部程序区可反复编程的、支持在线串行编程的PIC单片机。现在,我们可以自己动手,花很少的钱来制作一款PIC16F84编程器,利用这个编程器来进行各种学习和实验。

电路如图1所示,由于是串行编程方式,所以电路很简单。

            
                         //图1

1.电源部分
  电源部分电路没有什么特别的,一共提供了两组电压输出。变压器输出经整流滤波后应在16V以上,这一部分也可由外接电源提供。16V经过三端稳压块7805输出一组+5V,为芯片提供正常的工作电压。另外还有一个三端稳压7808,它的输入端接16V,接地端接在7805的输出端上,也就是接+5V,所以7808输出端的输出电压为+13V。这个+13V是作为PIC16F84的编程电压。当然你可以用LM317来实现13V的输出。

  电源部分有两个发光二极管作为指示。一个加在+5V的输出端,是工作电压的指示,是绿色的。另一个在13V输出部分作为编程电压的指示,是黄色的。当电路通上电后,这两个发光管都会点亮。

2.控制部分
  由于是PIC单片机是串行编程,只需要连接5个引脚:电源、地、编程电压、时钟、数据,其中电源和编程电压需要单独的控制。这些引脚连接到了并口,由程序通过并口对它们进行控制。

  +5V和+13V的控制是通过三极管来完成的。对于Q2,当并口的第4脚D2输出低电平即逻辑0时,三极管导通,16F84的第14脚加上+5V。同样的,当并口的第5脚D3输出低电平即逻辑0时,Q1导通,16F84的第4脚加上+13V的编程电压。在16F84的第4脚加了一个红色的发光二极管,用于编程电压的指示,当16F84开始编程加上编程电压时,红色发光管会点亮。

D1用于向16F84输出一个时钟信号同步整个编程过程。D0则负责和16F84进行数据通讯。

  电路制作完成后,在不连接计算机的情况下,先用万用表检测+5V和+13V是否正常,其他部分不需要调整。图中的16F84的插座最好用ZIF插座。

二、软件部分

  软件的安装没有特殊的地方,下载程序压缩包后,将压缩包解压至任一目录下即可,双击目录下的WPICPROG16.exe即可运行该程序。

       
                          //图2

该程序可支持16C84、16F84、16F83三种芯片。程序为WINDOWS版的,操作很容易,功能也非常齐全。

       
                          //图3

  在首次使用该程序时,需要先对硬件进行设置。首先将编程器连接到计算机的并口(即打印口),接通编程器的电源。打开编程器软件。在菜单项OPTION下单击FIND PORT,程序会自动查找编程器所连接的端口,如果你的编程器没有连接到计算机的并口,或者编程器的电源没有打开,程序将找不到编程器硬件,程序的读写等功能将被禁止。在菜单项OPTION下单击HARDWARE,出现设置窗口,对于本编程器而言,默认的参数不需要调整。当退出该窗口,设置将自动保存在INI文件中。

下面介绍一下编程软件的使用方法

1.菜单项

File菜单
New(新建) :开始一个新的设计。
Open(打开) :打开一个文件,文件内容将显示在缓冲区中。
Save(保存) :保存缓冲区的内容。
Save as(保存为):将缓冲区内容另存为一个文件,可保存为hex文件或者asm文件。

Edit菜单
Copy(复制)、Cut(剪切)、Paste(粘贴)

Option菜单
Find port :查找硬件端口
Hardware :硬件设置

2.工具栏 提供了各种常用操作的快捷方式。

3.主窗口

在主窗口的上部是一个活页夹。它包括Buffer(缓冲区)、Hex file(十六进制文件)、Source code(源代码)三项。

Buffer(缓冲区):左边是程序区的内容,右边是数据区的内容,右下脚是ID号设置区。这些区域的内容可以直接进行编辑。

       
                         //图4

Hex file(十六进制文件):这是缓冲区数据的HEX文件。

        
                           //图5

Source code(源代码):你可以在这里看到程序反汇编后的源代码。

主窗口的中部

        
                          //图6

左边是几个常用操作的按钮:
Read PIC :读取芯片内容
Verify :效验,比较芯片的内容与缓冲区内容是否一致。
Erase :擦除,擦除芯片内容。
Write PIC :编程,将缓冲区内容写入芯片。
Disassemble:反汇编,反汇编后的内容将显示在Source code(源代码)区。

芯片选择区,可选择待编程的芯片的型号。
配置位选择区,包括Protect(代码包含)、WDT(看门狗状态)、PUT(上电延迟)。
振荡类型选择,可在XT、LP、HS、RC之间进行选择。

主窗口的最下面是状态栏,左边显示当前编程器所连接的端口号,右边显示各种操作的提示信息。

最后我们来看看实际对芯片编程的过程:

第一步,将编程器连接到计算机,打开编程器电源。打开计算机,启动编程软件。
第二步,打开待写入芯片的hex文件。选择芯片型号,选择配置位、振荡方式。
第三步,将待编程芯片插入编程器的ZIF插座(注意方向)。
第四步,单击Write PIC按钮,开始编程,如果芯片不是空的,则要先进行擦除。编程完成后单击Verify进行效验。


MPSIM调试软件:
--------------------
  MPSIM是一个DOS下的PIC单片机仿真调试软件,它不需要任何附加的硬件,你只需要一台电脑就可以进行PIC单片机的仿真调试,十分适合爱好者使用。他的调试方法类似于DOS的DEBUG调试软件,需要你手工输入命令来进行调试,如果你会使用DEBUG的话,会比较容易上手。

下面就是MPSIM的界面:

  
                        //图:Mpsim.gif

  其中标题行显示的是当前调试的程序名、数制的基数、MPSIM的版本、当前调试的PIC单片机型号和程序运行的时间等。显示区是由用户选择显示PIC引脚或寄存器的状态。操作区是由用户输入命令和显示调试的信息。


一、MPSIM的文件

为了使用好MPSIM,我们需要先知道MPSIM的一些文件的功能。

MPSIM.INI
  这是MPSIM软件的初始化命令文件,他内部包含了一系列命令,在进入MPSIM软件的时候会顺序执行MPSIM.INI文件的内容,用户可以改变这个文件的内容,来安装自己的需要进行初始化。

MPSIM.JRN
  这个文件里记录的是上次用户调试的过程,这样如果你需要在下次调试时重现上次调试过程,就可以利于这个文件,方式是在调试时使用“LJ”命令来调用调试记录文件。不过每次使用MPSIM时,这个文件都会被刷新,所以需要在上次调试后就把这个文件改名保存,然后在下次调用。

*.STI
  如果你需要在调试时输入信号,这就需要利用I/O口输入设置文件(*.STI),这个文件允许在调试过程中的任意一步设置输入I/O口的状态,这相当于设置这个I/O口的电平状态。这个文件需要在调试之前就编辑好,然后在调试时使用“ST 文件名”来调用这个文件,然后在执行程序时,输入I/O口的状态就会在你需要的时候改变了。我们现在看一下这个文件的内容,比如:

---------
STEP RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 ! 端口B引脚
3 0 0 0 0 1 0 0 1 ! 第3步输入
5 0 0 0 0 0 1 0 1 ! 第5步输入
65 0 0 0 0 1 0 1 0 ! 第65步输入
67 0 0 0 0 0 1 0 1 ! 第67步输入
127 0 0 0 1 1 0 1 1 ! 第127步输入
---------
“!”后的为注释

  我们可以看到,SETP下的数字就是步数,在这个步数时就设置相应的I/O口,步数规定为一个十进制的数值。RB7-RB0是需要改变的I/O口引脚名,RB7-RB0下的就是对应于这个步数的I/O口状态。


二、MPSIM常用的调试命令

AB 退出MPSIM软件,使用该命令退出时,MPSIM不会刷新MPSIM.JRN(调试记录文件)。
Q 退出MPSIM软件

AD 在显示区增加显示项目,这个命令一般用在MPSIM的初始化命令文件中,这样可以直接设置好显示区的内容。
命令格式:AD <项目> [,数制][,位数]
DV 删除显示项目
命令格式:DV <项目>

B 在指定的地址、指定的标号或寄存器满足一定条件的地方设置断点。
命令格式:B <地址|标号|寄存器表达�>
命令举例:B 100H ;在地址100H的地方设置断点
B START ;在标号START处设置断点
B F2>30 ;如果F2寄存器大于30则中断
BC 清除断点,如果不加参数则清除所有断点
命令格式:BC [地址|标号|寄存器]
DB 显示设置的所有的断点

E 从当前PC值或指定的地址执行程序,遇到断点或者按任意键将停止执行程序
命令格式:E [地址]
SS 单步执行当前PC或指定地址出的一条指令
TC 跟踪执行程序,也可以指定执行几条指令
命令格式:TC [指令数]
GO 程序复位并开始执行

DI 显示指定地址的程序
命令格式:DI <地址1> <,地址2>

DR 显示所有寄存器的内容
F 显示/修改寄存器,当显示出寄存器值后,可以直接输入一个新的数制来修改这个寄存器。
W 显示/修改W寄存器,修改方法同F命令。
SE 显示/修改I/O口状态,修改方法同F命令。
IA 显示/修改程序区,使用这个命令后,MPSIM会显示该地址的程序代码,这时你可以输入汇编语言指令来修改程序。
ZR 所有寄存器清零

LO 装入待调试程序文件
O 保存修改后的程序代码
GE 装入执行外部命令文件
ST 装入I/O口输入设置文件
LJ 装入并执行MPSIM.JRN文件

DW 打开/关闭看门狗(监视定时器WDT),参数E代表启用WDT,D代表关闭WDT
命令格式:DW <E|D>

P 选择调试的PIC单片机型号,型号的格式为一个数字,比如54代表PIC16C54。
H 帮助


三、MPSIM的一般调试方法

现在我使用MPSIM软件中附带的SAMPLE程序来说明调试方法:

1.首先进入MPSIM软件

2.输入命令“GE sample.ini”,这将装入并执行sample.ini文件,这个文件是我们要调试的程序的初始化命令文件,它完成了装入待调试程序文件、装入I/O口输入设置文件和设置调试环境的功能,我们可以看到这个文件的内容:
---------
LO SAMPLE ;装入SAMPLE.HEX程序文件和SAMPLE.LST程序列表文件
ST SAMPLE ;装入SAMPLE.STI I/O口输入设置文件
SR X ;设置数制基数为十六进制
ZP ;清除路径表
ZR ;所有寄存器清零
ZT ;程序运行时间计数器清零
RE ;程序运行时间计数器和执行步数计数器清零
P 54 ;选择调试的PIC单片机型号为54
NV ;清空显示区
AD mulcnd ;在显示区增加mulcnd标号内容的显示
AD mulplr
AD H_byte
AD L_byte
AD count
AD portb
AD RB7,B,1
AD RB6,B,1
AD RB5,B,1
AD RB4,B,1
AD RB3,B,1
AD RB2,B,1
AD RB1,B,1
AD RB0,B,1
RS ;处理器复位
---------
当然,我们也可以手工输入这些命令来完成设置工作。

3.现在我们就可以使用常用的SS单步执行、TC跟踪执行、B设置断点等命令调试程序了。

4.调试完成后,可以使用Q命令或AB命令退出MPSIM软件。

本文中提到的编程器软件和MPSIM仿真调试软件可以到:http://ediy.yeah.net下载。



 
 
【模拟器硬件DIY】版权所有 Copyright(C) 2000-2006 本站资料未经许可,请勿转载,如有需求,请联系