单片机应用技术是当前的热门技术,各中专、高职高专院校和普通高校都开设了这门课。掌握该技术,不仅是自己的技术水准得到提升,而且使就业面得到拓宽。单片机应用技术但这是门操作性很强的课,对于学生来说光靠课堂上的教学是远不够的,除了在课堂上要求学生掌握基本概念,了解单片机扩展接口电路的设计方法和设计编制程序的流程之外,只有通过课外大量的实际操作,才能掌握单片机应用系统的设计步骤,学会开发单片机应用系统基本方法。学生是这样,那么对于在岗的各位电子和电气爱好者来说,就更应该这样。在学习中关键在于多练习、多操作。
出于这样的目的,我们根据AT89S52单片机具有的在系统编程功能,整合了一套成本低廉、取材容易、制作快捷、操作方便的单片机学习的实验开发系统。该系统非常适合于不同技术层次的爱好者使用,是一款自学单片机应用技术的利器。现介绍给大家,供广大读者自己制作,如遇困难可通过QQ:664160461在线交流。
1. 硬件电路
硬件电路分为单片机的最小系统和下载器两大部分。
1.1 最小系统原理
最小系统是没有外围器件及外设接口扩展的单片机系统。它是单片机应用系统的设计基础,它包括最小系统结构选择、时钟系统设计和复位系统设计。通常情况下,单片机最小系统分三种结构:①总线型总线应用的最小系统结构,该结构由总线型单片机、复位电路、时钟电路、I/O口、及并行扩展总线组成。②总线型非总线应用的最小系统结构,只有单片机、复位电路构成的最简单的电路,并行总线不用于外围扩展,可作为应用系统的I/O口使用。③非总线型单片机的最小系统结构。
这里介绍的最小系统属于第②种,由单片机AT89S52和ISP编程接口组成,其原理如图1所示。图中P0~P3口和CN104留给实验或实训时作为I/O口或连接扩展电路用。CON101是在下载或读取芯片内部程序时用的ISP编程接口,在操作是须去掉跳线J101。ISP即英文In-System Programmable,意为在系统编程。
图1 最小系统原理
1.2 下载器
下载器由接口板和连接电缆组成。接口板的原理图见图2(a)。图中U201是8缓冲器74HC244电路,用来作计算机并口和单片机的缓冲隔离。连接器CN202是通用的DB25针形插头,与上位机连接,进行通信;其中4、5脚控制U201芯片,在其低电平时允许数据正常传输,高电平时74HC244的输出呈高阻状态;6脚输出数据到单片机;7脚是时钟信号;9脚是输出复位信号;10脚是接收从单片机读出的数据。连接器CN201是标准的10针IDC插座,其各针功能见图图2(b)。
下载电缆采用10芯扁平电缆,两头压有IDC插头。一端接下载器,另一端接最小系统板上的ISP口。
图2(a) 接口板原理
图2(b) CN201功能
2.软件操作
在这个实验开发系统中软件使用了keil c和程序下载软件SLISP。所用两个软件可到相应网站上下载安装。
3. 实训示例
用两个按钮分别控制继电器的吸合和释放
3.1 基本要求:按一下开关S1,继电器J吸合;按一下按钮S2,继电器J释放。如果S2没有闭合,那么即使按S1,继电器J也不会吸合。
3.2 实现电路:利用单片机89S52的P3.6和P3.7口来控制P1.7的状态,使继电器的吸合或释放;当P3.6低电平时使P1.7也低电平,继电器吸合;当P3.7高电平时使P1.7也高电平,继电器释放。其原理如图3所示,电路可以用万能板搭建而成。
图3 继电器控制原理
3.3 编程思路:
首先取P3.7,判断其是否是“1”。是,将P1.7置“1”,返回;不是“1”,则取P3.6。取P3.6,判断其是否是“0”。是,将P1.7置“0”;不是“0”则返回。其流程见图4。
图4 继电器控制程序流程
3.4 程序编制:按照流程图就不难编制出程序。程序可用“记事本”或在“KEIL C”中录入,并用文件名“rlcontrol.asm”保存。指令的具体含义请参见有关书籍。
程序 说明
ORG 0000H ;设置下面程序的起始地址
SJMP MAIN ;跳转到标号是“MAIN”的地址
ORG 0040H ;设置下面程序的起始地址
MAIN:MOV SP,#60H ;将堆栈指针设初值为“60H”(十六进制数60)
MOV P3,#0FFH ;对P3口置“1”
START:MOV P3,#0FFH ;对P3口置“1”
MOV C,P3.7 ;取P3.7,送进位位
JNC L1 ;进位位是“0”转移到L1
SETB P1.7 ;进位位是“1”,P1.7置“1”
AJMP START ;返回到开始
L1: MOV C,P3.6 ;取P3.6,送进位位
JC L2 ;进位位是“1”转移到L2
CLR P1.7 ;进位位是“0”,P1.7置“0”
L2: AJMP START ;返回到开始
END
3.5 程序调试
具体操作步骤如下:
①用“记事本”或在“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,接上扩展接口电路。
⑨上电验证程序,两个按钮的动作是否符合要求,不符合要求则进行修改。
⑩重复上述步骤直到实现要求的功能。
4. 结束语
本文介绍的51单片机实验开发器,由于成本低每个自学者可以做到人手一套;与相关资料配套使用效果更佳。有兴趣的学习者可发邮件到邮箱chenzhu_167@ yahoo.cn。
参考文献:
[1]孙涵芳,徐爱卿.单片机的原理与应用[M].北京:北京航空航天大学出版社,1988.
[2]余永权.ATMEL 89 系列单片机应用技术[M].北京:北京航空航天大学出版社,2002.
[3]AT89S52DATASHEET.,Atmel Corporation 2005.
[4]陈洁.自制单片机实验开发器[J].中学科技2000,(4):40-41; 2000,(5):38-39; 2000,(6):38-39
[5]周立功.单片机实验与实践[M].北京:北京航空航天大学出版社,2004.