三、51单片机数字实验室的应用实例
运用Keil软件并结合数字外围器件只需在PC机上便可进行单片机实验(可称为数字实验室方式),下面以两个实例来说明运用Keil软件进行程序调试(软件模拟仿真)的过程。
例1:单片机(80C51)晶振频率为12MHz.利用TO方式0产生5ms的定时,在P1.O引脚上输出10ms的方波。
按前面所述方法步骤对源程序成功汇编、连接后按CTRl+F5键进入程序调试,再选择菜单Peripherals-I/O-Ports-Port1打开P1口参数窗口显示P1口状态,选择Peripherals-Timer-Timer0打开定时器TO窗口显示其参数;这里采用断点调试方式,在中断服务子程序第一行设置断点,出现红色标记,如下图所示。
点击调试工具栏上的Run(运行)按钮,程序执行到断点处停止,如连续点击运行则可从Portl窗口观察到P1.0引脚电平值的变化(1-0-1-…),而此时Regs(寄存器)窗口中的sec值即为定时时间(按5ms幅度递增,会有误差)。
显然该例需要实验者根据P1口(P1.0)的值来对输出的方波进行想象,并不直观。
例2:数字实验仿真板的应用:流水灯实验。
针对Keil的软件仿真器,有人提出了利用VC++编写动态链接库仿真单片机外围器件的思路和方法;另有人设计开发了几个外围器件数字实验仿真板,这些实验仿真板相当于是Keil uVersion2仿真环境下的dll插件。如键盘、LED显示实验仿真板( ledkey.dll)、带有数码管的实验仿真板( simboard.dll)等,见下图所示。
以ledkey仿真板为例,它采用Atme189C51单片机(含有4kBFLASHROM)作为主芯片,P1引脚上接8个发光二极管,P3.2-3.5引脚上接4个按钮开关。安装数字仿真实验板时只需将实验仿真板文件(+.dll)复制到Keil软件的KeihC51\Bin文件夹即可。在使用实验仿真板之前还需对工程进行设置,先选择工程管理窗口的Targetl.再选择Project-Option for Target 'Targetl’,打开对话框,选择Debug选项卡,在其左下角的Parameter文本框中输入“-d”和文件名,如使用ledkey.dll实验仿真板,就输入“-dledkey”(整个文本框内容为:-p51 -dledkey),然后点确定即可。进入程序调试后点击菜单Peripherals.就会看到多出一项“键盘LED仿真板(K)”,选择该项,就会出现下图所示ledkey实验仿真板界面。
流水灯实验是最常见的单片机实验之一,这里我们要实现用单片机控制下图1edkey仿真板上8个LED依次循环发光。应用Keil软件,按照步骤进入程序调试状态,并点击菜单Peripherals打开ledkey仿真板,然后运行程序,可通过观察仿真板上灯光的变化,检查程序的正确与否,非常形象生动,而不必再依靠对Pl口的值进行观察想象,有助于初学者对单片机基本知识的掌握和激发学习的热情。