采用C8051F020设计的嵌入式测试仪

发布者:Jinyu2022最新更新时间:2010-12-23 来源: 电子元器件应用关键字:C8051F020  液晶显示  矩阵键盘  字符显示 手机看文章 扫描二维码
随时随地手机看文章

  0 引言

  测控技术的不断发展,将嵌入式操作系统应用到测控领域,从而实现在线实时测试已经成为一种发展趋势,而且越来越多的工业现场对各种测试仪器的需求不断增高,希望测试仪器能够向在线实时测试方向发展。基于这些需求,本文给出了基于C8051F020控制的测试仪键盘显示部分的设计方案。在整个嵌入式测试系统中,本部分只是作为下位机,并通过RS485总线接口与上位机进行通信,从而将接收到的测试数据根据控制命令的要求在显示器中予以显示,同时将测试人员发送的各类请求信号回送给上位机以对测试数据进行一定的处理。

  1 系统硬件设计

  本系统的硬件由MCU模块(C8051F020)、电源模块、显示模块(OCM320240K)、矩阵键盘模块等四部分构成,其系统总体硬件设计框图如图1所示。其中,本设计中外扩的缓冲存储器和FLASH存储器。解决了高速数据接收与处理不匹配、字符库容量小的问题。
 

  1.1 MCU模块C8051F020

  C8051F020是美国Cygnal公司推出的高性能单片机,是完全集成的混合信号系统级芯片,它的出现彻底改变了人们对8051单片机速度慢、性能低的印象。C8051F020使用了Cygnal专利的高速、流水线结构以及与MCS-51指令集完全兼容的CIP-51微处理器内核。CIP-51在提升8051速度上采取了新的途径,该芯片在保持CISC结构及指令系统不变的情况下,可对指令运行实行流水作业,从而废除了机器周期的概念。它的指令以时钟周期为运行单位,平均每个时钟周期可执行1条单周期指令,从而大大提高了指令运行速度,是一种功能比较齐全的高速、高性能单片机。

  本系统设计选用此款单片机作为测试仪的MCU的最主要原因,一方面是由于CIP-51与MCS-51指令完全兼容,可使用标准的8051的汇编器、编译器及软件包进行软件开发,同时也很方便使用人员进行软件移植;另一方面可充分利用其丰富的通用数字端口资源,而不用地址/数据线复用,其外围电路的设计也可以大大简化。由于该芯片的低端口(P0、P1、P2、P3)既可按位寻址,也可按字节寻址,所以系统所需的控制信号都设计在低端口部分;而高端口(P4、P5、P6、P7)只能按字节寻址,故MCU与显示模块、存储器等模块的数据、地址总线均设计在高端口部分;C8051F020丰富的端口资源及其分配的灵活性是通过使用优先权交叉开关译码器实现的;而且所有引脚都采用5V电压.并都可以配置为漏极开路或推挽输出方式和弱上拉。

  1.2 液晶显示模块OCM320240K

  人类获取信息有80%来自视觉,且各种信息最终都通过信息显示来实现人机交换。由于液晶显示器件(LCD)具有低工作电压,微功耗,使用CMOS电路直接驱动,而且轻便易携带,因此,一经出现就倍受青睐,自然成为智能仪表等产品的首选显示器件。

  本系统中的单片机对液晶模块的控制采用间接控制方式。即不使用单片机的数据系统,而利用它的I/O口来实现与液晶模块的联系。设计时可将液晶模块的数据总线与单片机的P1口进行连接作为数据总线,另外三根时序控制信号线通常利用8051的P3口中未被使用的I/O口来控制。该访问方式不占用CPU的存储器空间,它的接口电路与时序无关,其时序完全靠软件编程来实现。

  图形点阵式液晶显模块OCM320240K的PCB板上含有完整的驱动器系统(内置SED1335液晶显示控制器),其接口系统则包含了驱动系统所需的控制信号和电源。它的行、列驱动器均采用KS0086,并由4个运算放大器组成液晶显示偏压电路。点阵液晶显示控制器SED1335通过其与单片机的接口及编程可实现对液晶显示器的文字、图形、菜单、翻页和内容的左右移动等功能。对输出到液晶显示器件电极上的电位信号进行相位、峰值、频率等参数的调制可以建立交流驱动电场,从而实现液晶显示。

  1.3 电源模块

  针对工业现场使用的便携式嵌入式测试仪,可考虑采用直流电源供电。本系统所需的三个电源分别为+5 V、+3.3 V、-23 V。其中+3.3 V是给C8051F020芯片供电。-23 V是液晶显示器所需的大负电压驱动电源,+5 V是驱动器和其它芯片的逻辑电源。电源模块的设计采用外部双电源供电,+8 V和-33 V直流电源经过稳压电路后可分别提供上述三种电压。具体电路设计如图2所示,其中在+5 V和+3.3 V的电源接口中连接的LED灯可作为电源指示灯,灯亮表示电源接通。电路中的电容则用于电源的滤波。

  1.4 矩阵键盘模块

  键盘模块的设计采用中断方式非编码8×8矩阵键盘,为了节省功耗,设计中选用了上拉电阻。按钮的行、列线分别接到MCU的P2、P3端口,INT0作为外部中断连接到MCU的P0.2端口。按键包含有0~9数字键、菜单显示的“确定”、“取消”、“上翻”、“下翻”等控制键及测试系统所需的其它基本功能键。

  1.5 外部扩展电路

  本设计中的外扩电路有两部分:其一是外扩了高速缓冲存储器,由于该测试仪通过RS485总线从上位机接收的数据可能是高速数据,而高速的总线数据和显示模块的处理速度可能不匹配,因而必须考虑采用外部扩展高速缓存来满足显示模块中64 KB显示RAM的要求也可将测试数据分屏显示。本文选用128 KB的SRAM芯片STC62WV1024;其二是外扩了一片FLASH存储器来为测试仪增加掉电保护功能,以便在突然断电情况下不丢失测试数据。更主要的目的是,由于显示模块中自带的用户自定义字符库CGRAM容量小,所以考虑将所建的国标基本字库存放在外扩的FLASH中,由MCU根据用户需要对其进行动态管理,同时不断完成所需显示字库的调入调出操作。这样既可满足大容量字库的要求,又能达到实时调度。本设计选用的是K9F2G08U芯片。

  2 显示模块的软件设计

  2.1 LCD初始化

  液晶显示器的显示功能之所以强大,除了其本身具备一定的硬件显示功能外,更重要的是通过软件设计来实现各种显示功能,包括基本显示和由基本显示组合而成的扩展功能显示。但在使用之前,一般都必须根据液晶显示模块的特性选择初始化参数,以对其进行初始化,初始化流程如图3所示,其具体的初始化代码如下:

  2.2 汉字显示

  SED1335通过字符代码来确定字符库中字符首地址,并将相应的字模数据送到液晶显示模块。在液晶屏上出现该字符的16×16点阵块实际上就是文本显示RAM中的一个字节所对应的显示屏上的16×16点阵。通过SED1335显示存储器内用户自定义的字符库CGRAM。用户可在相应的单元写入相应的字符代码,然后通过对子程序的调用即可实现汉字显示,下面是显示汉字“欢迎使用”的部分程序代码:

由于CGRAM容量有限,故可考虑将用户自定义的国标基本字符库放在外扩的FLASH中,然后由MCU根据测试数据类型和用户需求不停地从FLASH字库中动态调入所需字库并暂存在CGRAM中。通过显示模块自定义字库的扩展,可使OCM320240K的显示功能更加完善和强大。从而更适合于各种领域的显示。

  2.3 菜单显示

  液晶模块的菜单显示设计应尽量与普通微机上的菜单结构保持一致(即呈树形拓扑结构),以适应操作人员的操作习惯。本设计中的菜单显示是在键盘的配合下实现的。为了简化操作,键盘中与菜单显示有关的控制键一般只设置“确定”、“取消”、“上翻”、“下翻”等基本功能,通过这几个按键即可操作菜单显示程序和命令执行程序,其键盘响应及菜单显示流程如图4所示。操作时,按下“确定”键,屏幕将显示下一级菜单;而按下“上翻”、“下翻”键,闪烁光标将在同一级菜单的各个菜单项间移动,以表示当前选中的菜单。对各级菜单进行编号时,可以设置两个变量mn、ln来分别表示当前的菜单号和光标所在的行(第一行为0,以此类推)。在程序初始化时,mn=0、ln=0;用“确定”键可则可改变菜单编号(mn=mn×2+ln),“取消”键改变菜单编号(mn=[mn/2]),“上翻”、“下翻”键可改变光标位置(ln=ln±1)。如12号菜单就是5号菜单光标位置处于第三行(ln=2)时按“确定”键得到的,其编号为5×2+2=12。确定菜单编号和光标位置后,再调用显示程序(或函数执行程序)即可显示新一级菜单并重新设置光标位置。其例程代码如下:

  3 结束语

  在完成了软硬件设计之后,即可对于本设计的电路板进行调试,以实现其显示功能。目前,本系统与上位机的级联调试还在进行之中。此外,考虑到触摸屏使用的日益广泛,本系统在电路设计中还考虑了与带触摸屏控制器(ADS7843)的显示模块DV320240F的接口,以便于今后根据需要增加触摸功能。

关键字:C8051F020  液晶显示  矩阵键盘  字符显示 引用地址:采用C8051F020设计的嵌入式测试仪

上一篇:基于AFS600的太阳能热水器通用控制器设计
下一篇:基于C8051F的OLED控制电路的设计

推荐阅读最新更新时间:2024-03-16 12:31

MSP430与液晶显示器的串行接口方案
摘要:针对利用微控制器(MCU)控制液晶显示驱动器(LCD)的应用开发实例,提出一种采用串行方式来设计微控制器和液晶显示驱动器之间接口的方案。该方案是在现有点阵式液晶显示屏上附加一个MCU,通过程序设计利用MCU的I/O端口去模拟I2C串行总线,从而实现利用MCU去控制LCD的目的;同时介绍一种在图符液晶显示系统中显示动态曲线的技术和实现方法。 关键词:液晶显示驱动器 I2C串行总线 MSP430 1 概述 点阵式液晶与外部的硬件接口简单,能以点阵或图形方式显示出各种信息,因此在电子设计中得到广泛应用。但是,对它的接口设计必须遵循一定的硬件和时序规范,不同的液晶显示驱动器,可能需要采用不同的接口方式和控制指令才能够实现所需
[单片机]
基于HMS30C7202处理器和CAN总线实现客车液晶显示系统的设计
混合动力汽车HEV(Hybrid-Electric Vehicle)在解决能源利用和环境保护上具有广阔的前景,目前在国内的研制尚处于起步阶段。由于涉及到两套系统(发动机与电动机)的协调工作、发动机的动力性能的控制、降低能源消耗以及污染气体排放等问题,需要对客车的内部参数进行实时观测,以详细了解它的运行状态。因此,一款能够直观地显示客车运行状态的仪表是必不可少的。对于这样一个集内燃机动力和电动机动力为一体的高复杂的系统,若要显示其内部大量的状态参数,仅依靠传统的传感器来传递信息显然是不切实际的,因此充分利用其内部现有的CAN(Controller Area Network)通讯网络,开发一款CAN通讯接口的液晶显示系统尤为重要。
[单片机]
基于HMS30C7202处理器和CAN总线实现客车<font color='red'>液晶显示</font>系统的设计
液晶显示用的CMOS驱动电路原理图
液晶显示用的 CMOS驱动电路 原理图:
[模拟电子]
<font color='red'>液晶显示</font>用的CMOS驱动电路原理图
永州液晶显示面板OPEN CELL生产线项目 建设开启“春忙”模式
永州新闻网讯(通讯员 冯丽萍 杨辉) 入春多喜雨,项目开工忙。3月30日,在冷水滩高科技工业园智能装备产业园内,永州液晶显示面板OPEN CELL生产线项目现场,作业机器轰鸣声不断传来,工人们在冒雨施工。 “开工仅十多天,各项工作进度良好,正在新建和装修百级无尘车间2万平方米,力争今年8月投产。”液晶显示面板生产线项目负责人介绍,作为省级重点产业项目,该项目总建筑面积约207亩,总投资额25亿元。项目建成投产后,预计可实现年工业产值22亿元,年贡献税收8000万元,年加工贸易进出口额8000万美元。 草长莺飞三月天,首善之区项目丰。3月2日,冷水滩区六大产业项目集中开工,总投资37.3亿元,涉及智能装备、电子、机械、服装等
[半导体设计/制造]
STM32矩阵键盘输入通过串口三输出
配置矩阵键盘输入 //PA0~PA3为推挽式输出 //PA4~PA7为上拉输入 //PA9- RXD PA10- TXD void KEY44_Init(void) { //PA0~PA3为推挽式输出 GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 |GPIO_Pin_1 |GPIO_Pin_2 |GPIO_Pin_3 ; GPIO_InitStructure.GPIO_Speed = GPIO_S
[单片机]
基于Nios嵌入式软核处理器的液晶显示屏的设计方案
0引言 LCD液晶显示满足嵌入式系统日益提高的要求,特别在工业控制和消费电子领域,具有稳定可靠、成本低、功耗小、控制驱动方便、接口简单易用、模块化结构紧凑、体积小和重量轻等优点。NiosⅡ是一种可配置的16/32位RISC处理器,它结合丰富的外设专用指令和硬件加速单元可以低成本地提供极度灵活和功能强大的SOPC系统,开发者根据实际需要自行整合。Altera公司所有主流FPGA器件都支持NiosⅡ。将LCD驱动与NiosⅡ相结合可以得到一个扩展性强、通用的IP核,从而解决不同型号液晶屏之间的驱动差异问题。 1 NiosⅡ软核处理器和SOPC 设计NiosⅡ核用占用不到一半的FPGA资源,可计算增加1倍以上的信息。NiosⅡ嵌入式处
[单片机]
基于Nios嵌入式软核处理器的<font color='red'>液晶显示</font>屏的设计方案
stm32驱动段式lcd液晶显示--非使用1621驱动芯片驱动
说明:库文件版本:3.5.0 1.先说一下概念:(类似于数码管) LCD的驱动不像LED那样,加上电压(LED实际上是电流驱动)就可以长期显示的。 LCD驱动必须使用交流电压驱动才能保持稳定的显示,如果在LCD上加上稳定的直流电压,不但不能正常显示,时间久了还会损坏LCD。 一段LCD由背电极和段电极组成,需要显示时,在背电极和段电极之间加上合适的交流电压(通常使用方波)。 为了调节对比度,可以调节方波中每半个周期中显示的时间(即占空比)来实现 通常,为了节约驱动口,将多个背电极连在一起,形成公共背电极端:COM。 另外,再将属于不同COM的段电极连接在一起,形成公共段电极端:SEG。当在某个COM和某
[单片机]
stm32驱动段式lcd<font color='red'>液晶显示</font>--非使用1621驱动芯片驱动
基于C8051F410的矩阵键盘设计
这个也是在暑假电子设计竞赛培训时自己做的,运行结果还可以。 引脚是交叉的,因为用的是P2口,硬件设计时P2的0,2,4,6为行,1,3,5,7为纵(错了就反过来)。 因为从示例程序复制了不少东西,所以有些量是不用的,大家自己斟酌吧。 // 键盘程序,通过P2口接4*4键盘,用扫描法得键值 // 最后通过串口发送该键值。 // EDIT by lineter #include c8051f410.h // SFR declarations #include stdio.h #define SYSCLK 24500000 // SYSCLK frequency in Hz #defin
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved