本文根据AT89S52单片机具有的在系统编程功能,整合了一套成本低廉、取材容易、制作快捷、操作方便的单片机实验开发系统。该系统非常适合于课堂上或课堂外使用。
硬件电路
硬件电路分为单片机的最小系统和下载器两大部分。
最小系统原理:最小系统是没有外围器件及外设接口扩展的单片机系统。它是单片机应用系统的设计基础,包括最小系统结构选择、时钟系统设计和复位系统设计。通常情况下,单片机最小系统分三种结构:①总线型总线应用的最小系统结构,该结构由总线型单片机、复位电路、时钟电路、I/O口及并行扩展总线组成。②总线型非总线应用的最小系统结构,只有单片机、复位电路构成的最简单的电路,并行总线不用于外围扩展,可作为应用系统的I/O口使用。③非总线型单片机的最小系统结构。
这里介绍的最小系统属于第②种,由单片机AT89S52和ISP编程接口组成,其原理如图1所示。图中P0~P3口和CN104留给实验或实训时作为I/O口或连接扩展电路用。CON101是在下载或读取芯片内部程序时用的ISP编程接口,操作时,需要去掉跳线J101。(ISP即英文In-System Programmable,意为在系统编程。)
下载器:下载器由接口板和连接电缆组成。接口板的原理图见图2(a)。图中U201是8缓冲器74HC244电路,用作计算机并口和单片机的缓冲隔离。连接器CN202是通用的DB25针形插头,与上位机连接,进行通信;其中4、5脚控制U201芯片,在其低电平时允许数据正常传输,高电平时74HC244的输出呈高阻状态;6脚输出数据到单片机;7脚是时钟信号;9脚是输出复位信号;10脚是接收从单片机读出的数据。连接器CN201是标准的10针IDC插座,其各项功能见图2(b)。
下载电缆采用10芯扁平电缆,两头压有IDC插头。一端接下载器,另一端接最小系统板上的ISP口。
软件操作
在这个实验开发系统中,软件使用了keil c和程序下载软件SLISP。有兴趣仿真的读者可使用proteus软件。由于应用电路和程序在仿真环境与真实环境中运行,在某些情况下存在一定的差异,所以在这里不予推荐(所用两个软件可到相应网站上下载安装)。
keil c的基本操作:安装keil c软件后,电脑的桌面上会有图标显示。用鼠标左键双击该图标便可进入keil c的工作界面,如图3所示。该界面与Word界面类似,上边是菜单栏,接着是快捷按钮栏等。这里用到的部分菜单及快捷按钮的中文含义已标注在图3上;用到的功能只是创建一个项目或打开一个已有的项目,创建或打开一个源程序文本等,最后把它编译成需要的十六进制文件。
其操作步骤如下:
*新建项目或打开已有的项目
*新建文件或打开已有的文件
*目标文件选项设置
*建立目标文件,获得.HEX文件
程序读取与下载:已经安装有双龙电子下载软件的电脑,在其桌面上也有图标显示。同样用鼠标左键双击该图标便可进入MCU下载程序的工作界面,如图4所示。该界面是中文的,且比较清晰。
首次使用时将“通信参数设置及器件选择”设置成图中所示,即通信口设为并行通信口“LPT1”,速率设为“TURBO”加速,器件选择“AT89S52”。
拔去最小系统板上的跳线J101、J102、J103,插上AT89S52芯片;将下载线的接口板插入电脑的并口上,用连接电缆把最小系统与接口板连好,再在最小系统上接上+9V电源。注意“+”与“-”不能搞错。打开电源对最小系统供电,就可以读写芯片中的程序了。
如果在下载过程中出现错误,会在下面的.文本框中出现提示。找到原因后再进行重写时,需要先把芯片内原来的信息擦除掉,然后再写。
如果对原程序进行了修改,那么要重新进行编译,即点重建目标文件“Rebuild alI target files”按钮,生成新的.HEX文件;下载时还要重新加载刚生成的同一文件名的新.HEX文件。这样才能保证本次下载的是已修改的程序。
完成上面的操作后,关闭+9V电源,拔下连接电缆,插上跳线J101,接上扩展接口电路,就可以检查程序的运行情况,进行实验或开发了。
实训一例
用两个按钮分别控制继电器的吸合和释放。
基本要求:按一下开关S1,继电器J吸合;按一下按钮S2,继电器J释放。如果S2没有闭合,那么即使按S1,继电器J也不会吸合。
实现电路:利用单片机89S52的P3.6和P3.7口来控制P1.7的状态,使继电器的吸合或释放;当P3.6低电平时使P1.7也低电平,继电器吸合;当P3.7高电平时使P1.7也高电平,继电器释放。其原理如图5所示,电路可以用万能板搭建而成。
编程思路:首先取P3.7,判断其是否是“1”。是,将P1.7置“1”,返回;不是“1”,则取P3.6。取P3.6,判断其是否是“0”。是,将P1.7置“0”;不是“0”则返回。其流程见图6。
程序编制:按照流程图就不难编制出程序。程序可用“记事本”或在“KEIL C”中录入,并用文件名“rlcontrol.asm”保存。指令的具体含义请参见有关书籍。
程序调试:具体操作步骤如下:
①用“记事本”或在“KEIL C”中录入或编制程序,并用一个文件名,如“rlcontrol.asm”保存;
②打开“KEIL C”软件,新建一个项目。项目名也不妨为“rlcontrol”;
③打开已建立的文件“rlcontrol.asm”,并将该文件添加到“Source Group 1”中;
④在"Options for Target‘Target 1’”中的“Output”标签页上进行设置;
⑤点编译和建立目标文件,得到“rlcontrol.hex”文件;
⑥拔去最小系统板上的跳线J101、J102、J103,插上AT89S52芯片,将下载线的接口板插入电脑的并口上,把连接电缆把最小系统与接口板连好,再在最小系统上接上+9V电源;
⑦打开下载软件,并设置好有关参数,加载待写文件“rlcontrol.hex”,点“编程”按钮下载程序(必要时须先对芯片进行“擦写”);
⑧完成上面的操作后,关闭+9V电源,拔下连接电缆,插上跳线J101,接上扩展接口电路;
⑨供电验证程序,两个按钮的动作是否符合要求,不符合要求则进行修改;
⑩重复上述步骤直到实现要求的功能。