李云鹤,晏振鸣(1.茂名学院广东茂名525000;2.中国联通湖北分公司运行维护部湖北武汉437000)近年来,单片机结合专用集成电路和精简指令集计算机技术,发展成嵌入式处理器,适用于数据、数值分析、信号处理、智能机器人以及图像处理等高技术领域。单片机应用系统通常需要显示运行状态和运行结果,并且对处理的结果常转换为模拟信号,以驱动相应的执行机构。在许多情况下,还需要进行数字量、开关量的直接控制。这些构成单片机系统
李云鹤,晏振鸣
(1.茂名学院 广东茂名 525000;2.中国联通湖北分公司 运行维护部 湖北 武汉 437000)
近年来,单片机结合专用集成电路和精简指令集计算机技术,发展成嵌入式处理器,适用于数据、数值分析、信号处理、智能机器人以及图像处理等高技术领域。单片机应用系统通常需要显示运行状态和运行结果,并且对处理的结果常转换为模拟信号,以驱动相应的执行机构。在许多情况下,还需要进行数字量、开关量的直接控制。这些构成单片机系统的输出通道。现在市面上最具代表性的典型机种有Intel公司的MCS-51系列、Motorola公司的MCS-6805系列及其派生的各种产品,51系列中P89C51RA2BN单片机内部有8 kB的程序存储器,引脚与普通51单片机完全兼容,容易操作使用。
1 单片机最小系统的集约设计
采用P89C51RA2BN单片机设计的最小系统电路如图1所示。
由图1中可知,单片机和外部的复位电路、振荡电路构成单片机工作的最小电路系统。在P0口加上拉电阻排,可以既用P0口作数据口也可以用作普通I/O口。跳线J6作为ISP下载时让单片机系统进入到ISP状态的硬件电路,发光二极管做为实验板的电源指示。P89C51RA2BN单片机通过P3.0和P3.1口(也就是串行口)下载程序到片内FLASH ROM,可以实现一个电路既用于下载程序也可以用来作串行口通信,非常适合嵌入式系统应用。
2 开关信号输出模块的集约设计
2.1 二极管组成的流水灯典型电路
鉴于51单片机的高电平输出驱动能力不强,不可以驱动一个发光二极管发光,而低电平输出驱动能力却比较大,各个发光二极管都是共阳接法。流水灯控制是单片机实验板开关信号输出控制的一个经典电路,可以通过灯的亮灭来观察单片机I/O口的状态。
2.2 开关信号输出控制蜂鸣器电路设计
蜂鸣器作为一个发声器件,由于其控制电压低,控制简单等原因,常用于各种电子仪器的报警信号,比如计算机主板上就有蜂鸣器提示计算机的工作状态。本实验板上的蜂鸣器采用5 V的直流蜂鸣器,可以发出响亮的鸣叫声。
2.3 开关信号输出控制继电器电路的设计
本设计的开关信号输出是用单片机控制一个继电器的动作,因为开关信号输出一个最普遍的应用就是继电器的控制。继电器选用一个通用的单刀双掷开关5 V继电器。其第1,2脚为输入线圈,第3,4脚为常开开关端,第4,5脚为常闭开关端。因为继电器的吸合电流比较大,不适合直接用单片机的I/O口驱动,所以设计中采用一个三极管9012来驱动。采用三极管的基极限流电阻,可以防止电流过大。加上一个续流二极管,可以吸收继电器线圈释放时的反向电动势。因为当继电器吸合时电流从VCC经过三极管、继电器线圈到地。继电器从吸合的状态释放时,线圈会产生一个反向的电动势,此时三极管是截止的,线圈构成回路释放能量。如果没有二极管,反向的电动势有可能会使三极管击穿损坏。另外使用一个发光二极管,用来指示继电器的状态。当继电器吸仓的时候电流从VCC经过三极管到GND,发光二极管发光。
3 显示输出的集约型改进
显示输出根据显示的种类分有液晶显示(LCD)、LED数码管显示、LED点阵显示。LED数码管显示器有显示亮度高,操作简单的特点,液晶显示器有显示内容丰富、功率低的特点。LED点阵显示则兼容2种显示器的显示亮度高和显示内容丰富的优点。
3.1 液晶显示(LCD)电路的设计
液晶显示模块与单片机的连接方式有2种:一种是直接访问(总线方式),另一种是间接控制方式。直接访问方式就是将液晶显示模块的接口或I/O设备直接挂在单片机总线上,单片机以访问I/O设备的方式控制液晶显示模块的工作。间接控制方式就是单片机通过自身的或系统的并行接口与液晶显示模块连接,单片机通过对这些接口的操作,实现对液晶显示模块的控制。间接控制方式的特点是电路简单,可以省略单片机外围的数字逻辑电路,控制时序由软件产生。为LCD的程序流程如图2所示。
液晶显示电路采用1602字符点阵液晶显示和12864图形点阵液晶显示器。该电路采用总线接法,这样做的好处是可以把液晶显示器当作一个外部的存储单元来操作。RW为读写控制线,高电平是读低电平是写,RS为命令和数据控制线,高电平是命令,低电平是数据,E使能信号端,当E有一个高电平时液晶模块使能。这样要对液晶模块访问时,只要把RW,RS设置好再把数据或命令送到外部RAM的任一个地址即可,或把外部RAM的任何地址的数读进。因为产生一次读或者写外部RAM都会使单片机RD,WR两个引脚的其中之一产生一个低电平,经过与非门74LS00后产生一个高电平使液晶显示器使能,如图3所示:
12864图形点阵液晶显示器有20个引脚,而且引脚跟1602字符液晶显示器兼容,所以驱动电路可以采用与1602的驱动电路共用的方法。因为两个液晶显示器不同时使用,这样可以节省元件,减少布线的难度,又可以分别使用两种液晶显示器。
3.2 数码管显示电路的设计
基于集约设计的考虑,本设计采用2个3位的LED数码管接成1个6位的LED数码管显示电路。这样设计的思想是这个实验板既可以做一般的显示电路实验,也可以做数字钟的实验(可以显示时分秒)。由于单片机的I/O口输出驱动能力比较弱,所以每一位数字都采用1个三极管9013驱动。而且在接到P0口的那些LED数据口要在P0口加一个小阻值的电阻排,才可以让P0口输出的段码驱动数码管。
3.3 LED点阵电路的改进设计
比较大多数系统板,行驱动器选择74LS164移位方式的话,在送出显示数据后再送行选择码时会让相邻行的LED也会点亮,出现显示模糊的情况。此处选择2个74LS138接成一个4线译16线的译码器来选择行。LED点阵驱动电路的设计采用单个16×16的LED点阵,因为LED点阵达到16×16的话就可以在点阵里面显示分辩比较高的汉字的,这样可以丰富LED的显示效果。列驱动仍采用2个8位的移位寄存器74LS164接成1个16位的移位寄存器,第一个74LS164的Q7输出接到了第二个的数据输入口,这样经过16个串行时钟周期就可以将一个16位的显示码送到了列驱动器。采用串行的目的就是一可以增大每个线的驱动能力,还有就是节省I/O口。经过这样的设计之后就可以只用2个I/O口就把显示码送到了列驱动器端。一个10 kΩ的电阻接到三极管9012的基极。三极管在此作为一个开关的驱动作用,当16线译码器输出低电平时,对应的三极管会导通将电源接到点阵的输入端,若对应的列驱动器输出列是低电平时就会让行和列交叉的那个发光二极管点亮。
经过上述集约和改进,本设计综合2种主流显示的特点,将3种显示器都集成到系统板上。
4 模拟信号输出模块的改进设计
D/A转换器可以将单片机处理过的数字信号转换为模拟信号输出,利用这个模拟信号就可以对一些外部设备进行控制。为了简化电路设计和节省I/O口,采用串行D/A转换芯片TLC5615。它有标准的SPI接口,一个数据线DATA、一个时钟线SCLK和一个片选信号引脚CS。正是通过这个接口使该器件和单片机接口通信,所以采用串行的D/A芯片可以大减少单片机I/O口的使用。TLC5615的REFIN引脚是D/A转换参考电压输入端,通过电阻R1和R2的分压提供参考电压。OUT引脚是D/A转换后的模拟电压输出端口,可以把被控制的器件接到此端口上实现均匀控制,如图4所示:
5 结 语
在上述设计过程中,元器件的选择和电路的改进,都是以串行取代并行为原则,大多数的芯片采用串行接口。在整个输出通道中,对液晶显示、LED数码管显示、LED点阵显示进行了集约和改进设计,对开关量输出、模拟量输出进行了改进设计。通过简单廉价的电子元器件,就可以方便地做出集约型系统板。经过改进后集约设计的系统板,实际使用效果良好。系统的各项功能符合设计要求,与市面上同类系统板相比、性价比高、且操作简单、方便易用。该系统板为单电源供电,成本低,非常适用于单片机的嵌入式系统应用。