新闻  |   论坛  |   博客  |   在线研讨会
可在系统编程的智能键盘和数码管显示系统
yanqin | 2009-04-17 16:10:43    阅读:895   发布文章

  对智能仪器系统中的在系统编程(ISP)技术及其在仪器系统中在线缟程的实现、应用前景等进行了分析。介绍了P89C669相对于传统51系列单片机的增强特性,并给出P89C669快闪存储器的ISP实现电路和具体方法。结合实际介绍了一种可以在系统编程的智能键盘、数码管显示系统。

    在使用传统的单片机开发应用系统时,通常需要对单片机片内资源进行扩展以满足系统的功能要求。这就增加了系统的开发难度和开发成本,更重要的是由于扩展使硬件结构变得复杂而降低了系统的可靠性。随着技术的进步,可以采用新型技术弥补以上不足。

    P89C669是基于PHILIPS半导体新51MX(存储器扩展)内核的首类Flash微控制器代表,它包含96KB的Flash程序存储器、2KB的数据SRAM、一个可编程计数器阵列(PCA)、可配置成不同时间范围的看门狗定时器(通过SFR的位设置)和两个增强型UART。

    PHILLIPS半导体的51MX内核是一种加速的80C51结构,指令执行速度2倍于标准的80C51器件。5IMX的线性地址经扩展后可支持高达8MB的程序存储器和8MB的数据存储器;兼容80C251的全部程序代码,使设计者可继续使用80C5l的开发工具,无需移植到一个新的、不习惯的结构上;保留了80C51总线的兼容性,使80C51接口外围电路和专用集成电路(ASIC)得以继续使用。

    P89C669提供更强大的功能,大大提高了系统性能并降低了系统开销。结合增强的特性,P89C669利用嵌入式存储器来管理存储器的扩展,摒除了软件平台的使用。扩展的程序存储器便于设计者利用高级语言(如C语言)来编写更复杂的程序代码.而不必再努力将程序长度限制在传统的64KB范围内。

    这些特性将大大提高64KB范围内的C语言代码的执行效率。P89C669包含一个非易失性Flash程序存储器,可用于并行编程以及串行在系统编程和在应用中编程。ISP允许用户在微控制器正在使用时下载新的代码。而且可利用ROM中的默认串行装载程序(引导装载程序)通过UART来实现,或者使用Flash的装载程序。这就大大地提高了系统软件更新的效率和可靠性;在应用中编程意味着微控制器可在系统中取新程序代码和对自身进行重编程,以实现调制解调器连接范围内的沅程编程。

    显示和键盘控制是智能应用系统最常用的组成模块。zlg7289A是一片具有串行接口的可同时驱动8位共阴式数码管(或64只独立LED)的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,单片即可完成LED显示及键盘接口的全部功能。

  1系统实现的功能
   

   (1)在智能仪器应用过程中需要对应用系统软件功能更新时,不必把P89C669微控制器从系统中取出,可以直接通过串行接口对其编程,实现系统软件的在系统编程进行更新。
   (2)由CPU控制的zlg7289A显示、键盘接口芯片可以实现由键盘输入对数码管(LED)的灵活控制,显示常用字母和数值,方便地嵌入各种智能仪器系统中用于显示仪器的相关信息。

   2系统功能的实现方案

   2.1ISP技术筒介
   

    智能仪器系统是基于单片机技术的,是典型的嵌入式系统。因此,单片机技术的发展对智能仪器的发展起着重要的作用;同样,智能仪器系统的发展也对单片机的发展提出了更高的要求。快闪存储器比普通的EPROM存储器的改进之处是不仅可以读,而且可以用软件快速地擦除和写入,使得ISP技术成为现实。ISP技术(即在系统内可编程技术),是指电路板上的空白器件可以编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程。

   2.2在系统编程的实现
   

   P89C669的在系统编程通过标准RS-232C串口来完成。它是一种内嵌的在线可编程技术,只需要增加少量的电路板面积和元件,所以只要微机配备了RS-232C串口,就可以直接通过下载电缆来完成程序的下载,使用非常方便。具备ISP功能的智能仪器系统和普通智能仪器系统的设计没太大的区别,仅仅在RS-232C串口的设计上做一下小的变动即可,ISP用到5个管脚:TXD、PXD、Vss、Vcc和Vpp,对于P89C669来说,Vpp=5V即可。在系统编程硬件电路如图1所示。

   由于P89C669编程状态和正常运行状态的某些管脚定义不一样,因此在系统上可以设置一个双刀双置开关,当此开关位于上端时,为正常运行状态,此时的串行口为正常运行方式,其管脚如下连接:Vpp接+5V;/PSEN和ALE均浮空;当双刀双置开关位于下端时,P89C669便退出正常运行方式,进入ISP运行状态,程序计数器切人固件空间为ISP做好准备。此时的管脚如下连接:Vpp接+5V,/PSEN接高电平(参考电平为5V),A1E浮空。

   2.3显示、键盘功能的实现
   

   z1g7289A内部含有译码器可直接接受BCD码或16进制码,并同时具有两种译码方式;而且还具有多种控制指令如消隐、闪烁、左移、右移、段寻址等;此外zlg7289A具有片选信号,因此稍作扩展可方便地实现多于8位的显示或多于64键的键盘接口。
   (1)zlg7289A引脚说明如表l所示。

    (2)串行接口通信。zlg7289A采用串行方式与微处理器通信。串行方式通信时,串行数据从DATA引脚送入芯片并由CLK端同步,当片选信号变为低电平后,DATA引脚上的数据在CLK引脚的上升沿被写入zlg7289A的缓冲寄存器。

    (3)指令类型。zlg7289A的指令结构有3种类型:①不带数据的纯指令,其宽度为8位,即微处理器需发送8个CLK脉冲。②带有数据的指令,其宽度为16位,即微处理器需发送16个CLK脉冲。③读取键盘数据指令宽度为16位,前8位为微处理器发送到zlg7289A的指令,后8位为zlg7289A返回的键盘代码。执行此指令时zlg7289A的DATA端在第9个CLK脉冲的上升沿变为输出状态并于第16个脉冲的下降沿恢复为输入状态,等待接收下一个指令。

    (4)硬件连接方案。
   

  ①本系统采用P89C669微处理器作为zlg7289的中央处理器,这种微处理器有4个双向口。通常情况下,PO口和P2口作为地址和数据总线使用,因而采用P1的4个引脚P1.O、P1.1、P1.2、P1.3分别控制zlg7289的/CS、/KEY、DIO和CLK引脚。
    ②数码管常用的连接方式有:共阳式连接和共阴式连接。根据zlg7289的内部特性,数码管采用共阴式连接。系统显示和键盘控制的硬件连接如图2所示。

  (5)硬件连接的注意事项
   

   ①zlg7289A连接共阴式数码管,应用中无需用到的数码管和键盘可以不连接。省去的数码管和对数码管设置的消隐属
性均不会影响键盘的使用。
   

   ②如果不用键盘则系统电路中连接到键盘的8只lOkΩ电阻和8只100kΩ下拉电阻均可以省去。如果使用了键盘,则电路中以上2只电阻均不得省略。除非不接数码管,否则串人DP及SG―SA连线的8只电阻均不能省去。
   

  ③实际应用中,8只下拉电阻和8条键盘连接位选线DIG0~DIG7的8只位选电阻应遵从一定的比例关系,下拉电阻应大于位选电阻的5倍而小于其50倍。典型值应为10倍,下拉电阻的取值范围是10~100kΩ,位选电阻的取值范围是1一lOkΩ。
   

  ④在不影响显示的前提下,下拉电阻应尽可能地取较小的值。这样可以提高键盘部分的抗干扰能力。由于采用循环扫描的工作方式,如果采用普通的数码管亮度有可能不够,则应采用高亮度或超高亮型号的数码管或者另加驱动电路来解决这个问题。
   

   ⑤数码管的尺寸不宜选得过大,一般字符高度不超过1英寸。如使用大型的数码管应使用适当的驱动电路。
   

  ⑥zlg7289A需要一外接晶体振荡电路供系统工作,其典型值分别为:F=16MHz,C=15pF。如果芯片无法正常工作,请首先检查此振荡电路。在印刷电路板布线时,所有元件尤其是振荡电路的元件应尽量靠近zlg7289A,并尽量使电路连线最短。
   

  ⑦zlg7289A的RESET复位端在一般应用情况下可以直接和VCC相连,在需要较高可靠性的情况下可以连接一外部复位电路或直接由MCU控制。
   

   ⑧在上电或RESET端由低电平变为高电平后,zlg7289A大约要经过18~25ms的时间才会进入正常工作状态。
   

  ⑨程序中尽可能地减少CPU对zlg7289A的访问次数,可使程序更有效率。因为芯片直接驱动LED数码管显示电流较大且为动态扫描方式,如果该部分电路电源连线较细较长可能会引入较大的电源噪声干扰。若在电源的正负极并人一个47~220μF的电容可以提高电路抗干扰的能力。
   

   ⑩如果有两个键同时按下,zlg7289A将只能给出其中一个键的代码,因此zlg7289A不适于应用在需要两个或两个以上键同时按下的场合。

  3结论与展望
   

  以上所描述的在系统编程电路图中,将P89C669的P1.0~P1.3与显示、键盘组成部件的电路图中,将zlg7289A芯片的串行控制口线连接到一起后便形成了完整的可在系统编程的键盘、数码管显示系统。该系统显示模块结构简单,只用zlg7289单片即可完成键盘、数码管显示控制的全部功能。该系统可以用于现有各种智能仪器的实时数据显示,而且根据实际要求运用ISP技术可以进行系统在线升级。

  由于P89C669中含有快闪存储器,存储空间可达96KB,因而避免了扩展片外的程序存储器,降低了系统开发和改进的工作量,更重要的是提高了系统工作的可靠性。

 


 

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客