基于单片机C8051F120和FPGA器件实现嵌入式显示系统的设计

发布者:HeavenlyWhisper最新更新时间:2024-01-12 来源: elecfans关键字:单片机  C8051F120  FPGA器件 手机看文章 扫描二维码
随时随地手机看文章

嵌入式设备凭借其与使用者之间的亲和力、自然的人机交互界面,得到了迅速的发展,渗透到生活中的各个角落。本文介绍的设计方法是以高性能的8位单片机C8051F120作为核心处理器,SRAM作为系统的显存,FPGA实现时序转换,构建低温(-10℃)下嵌入式显示系统。通过PC机键盘和触摸屏实现界面操作,最终在液晶显示器上显示国标一/二级汉字、ASCII字符和65 536色的彩色图形和图片,并制作了简单的操作界面。


1 系统工作原理

显示汉字、英文字符和彩色图形的过程就是将字符和图形信息转换成液晶显示器可以显示的点阵信息。为了显示字符,可以将ASCII码字符点阵字库和按区位码排列的汉字点阵字库存储在单片机外接的Flash ROM中(构成点阵数据区),并且将程序中用到的字符以机内码的形式存储在Flash ROM中(构成文本数据区)。显示时,单片机将汉字机内码从文本数据区读出,转换成FlashROM中点阵数据区的字库地址,通过该地址读出字符的点阵数据,进一步转换成液晶显示器可显示的数据并送给后续电路处理和显示。这样在操作过程中可以显示包括国标一/二级汉字、大小写英文字符、标点和数字等多种字符。显示彩色图形的时候,由于图片的存储空间要求比较大,系统中没有足够的空间,可以将PC机内bmp格式的彩色图片经过格式转化以后,通过串口送给单片机实时处理并显示。


液晶显示器工作频率为4.5~6.8MHz,并且需要复杂的工作时序。考虑到单片机的工作速度和液晶显示器的工作频率,一方面,液晶显示器在工作频率下不断刷新才能工作,需要传送大量的显示数据和控制信息;另一方面,单片机要完成许多处理工作,即使工作在100MHz,也将成为系统运行速率的瓶颈。为了解决这个问题,再次加入一块SRAM作为显存,加入一块FPGA实现时序转换并控制和刷新液晶显示器。FP GA分时地读/写SRAM,FPGA在时钟的作用下,一半时间内(时钟信号为高电平时)从SRAM中读出数据,不断刷新液晶显示器;另一半时间内(时钟信号为低电平时),如果单片机有送来要显示的数据时,将此数据写入SRAM中。分时操作的使用,能在不间断地刷新液晶显示器的同时,接收并存储单片机的数据,使两方面的工作互不影响,不仅减轻单片机的工作负担,而且充分发挥了FPGA的性能。


选择附有触摸屏的液晶显永器,将触摸屏外接手写识别控制器,就可以增加手写识别功能,可提供友好的人机交互界面。由上述分析可以画出系统框图,如图1所示。

基于单片机C8051F120和FPGA器件实现嵌入式显示系统的设计

2 系统硬件设计

在本嵌入式显示系统中,采用了夏普公司型号为LQ0357DH01的液晶显示器,工作温度范围在-10~70℃,最低工作温度相对更低一些。


显示模块由一个彩色主动点阵式LCD模块和无定形硅TFT构成,因此可称为AD-TFT(Advanced TFT)。它由彩色TFT-LCD面板、IC驱动、FPC、背光、电阻式触摸屏和背部密封盒组成,但是模块不包括控制电路。显示屏工作频率为4.5~6.8 MHz,分辨率为240×320像素,色彩位深为18位。图形和文本能以262 11 4种颜色显示在240x 320点阵的显示屏上。但是考虑单片机的数据总线宽度为8位,为了简化操作过程,可将色彩深度确定为16位,单片机分两次发送每个像素的颜色数据。这样的简化操作也可以满足显示65 536色彩色图形的要求。


为了提高整个系统的运行速度,采用型号为C8051F120的高性能8位单片机作为处理器。C8051F120使用Silicon Labs公司的专利CIP-51微控制器内核。CIP-51与MCS-51指令集完全兼容,可以使用标准803x/805x的汇编器和编译器进行软件开发。C8051F120可稳定工作的最大系统时钟频率为100 MHz,峰值性能达到100MIPS。

Flash采用的是M29W400BB(512K×8位),它是一种可读、可擦除、可重复编程的Flash。FPGA采用Xilinx公司Spartan-II系列产品XC2S1 00。XC2S100是一款具有10万系统门的FPGA,在逻辑门数上能为系统提供足够的逻辑电路,144引脚封装形式的XC2S100可提供103个I/O端口,为系统器件提供足够的I/O口资源。


关于SRAM的选择,考虑到液晶显示器的分辨率为240×320像素,每个像素点可显示65 536色(16位),因此显存的大小至少为240×320× 2B=150 KB。加入一块512 KB的SRAM CY7C1041BV33作为显存即可。CY7C1041BV33可以工作在字(word)操作模式下,方便显示数据的存取,刷新液晶的过程中可将SRAM中的每个字与液晶的每个像素对应。


手写识别采用型号为ePH1200AQ的手写识别微控制器。ePH1200AQ硬件上集成了8位RISC微控制器、触摸屏驱动器、接口UART、4 KB SRAM、32K字编程ROM和512K字数据ROM;软件上则包含手写识别内核、字符集和笔迹收集软件。当微控制器与外部触摸屏相连接的时候,就可以组成手写识别应用产品,比如SMS、移动电话或者手写输入设备。


3 系统软件设计

系统软件包括单片机和FPGA两个部分。本文主要介绍单片机部分的软件设计。


单片机完成的功能包括循环查询两个串口是否接收到新的数据,当某个串口接收到新的数据时,便采取相应含义的操作。显示字符时,读出Flash ROM中的点阵数据,进行转换和处理后送给FPGA;显示图形时,按照没定的图形轨迹画出点。


单片机在主程序中循环查询两个串口是否接收到新的数据,当任意一个串口产生中断时,根据串口接收到数据的含义,采取相应的操作。主函数流程如图2所示。

基于单片机C8051F120和FPGA器件实现嵌入式显示系统的设计

3.1 字符显示原理

UCDOS软件中的文件HZK16与文件ASC16分别为1 6×1 6的国标汉字点阵文件和8×1 6的ASCII码点阵文件,以二进制格式存储。在文件HZK 16中,按汉字区位码从小到大依次存有国标区位码表中的所有汉字,每个汉字占用32个字节(16×16的汉字点阵),每个区为94个汉字。在文件ASC16中按ASCII码从小到大依次存有8×1 6的ASCII码点阵,每个ASCII码占用1 6个字节。

在PC机的文本文件中,汉字是以机内码的形式存储的,每个汉字占用两个字节。第一个字节为区码,为了与ASCII码区别,范围从十六进制的0A1H开始(小于80H的为ASCII码字符),对应区位码中区码的第一区;第二个字节为位码,范围也是从0A1H开始,对应某区中的第一个位码。这样,将汉字机内码减去0A0A0H就得该汉字的区位码。例如汉字“我”的机内码为十六进制的“CED2”,其中“CE”表示区码,“D2”表示位码。所以“我”的区位码为0CED2H-0A0A0H=2E32H。将区码和位码分别转换为十进制得汉字“我”的区位码为“4650”,即“房”的点阵位于第46区的第50个字的位置,相当于在文件HZK16中的位置为第32×[(46-1)×94+(50-1)]=67136 B以后的32个字节为“我”的显示点阵。

依次读出每个字节,每读出一个字节,并提取该字节中的每一位,如果某位是“1”,则给该位数据对应的像素点送入两个字节的字体颜色数据,如(0x0000,黑色);如果某位是“0”,则给该位数据对应的像素点送入两个字节的底色数据,如(0xffff,白色)。当发送完32个字节的点阵数据后(总共发送的颜色数据为32B×8dot×2B=512 B)液晶屏上便会显示底色为白色,字体颜色为黑色的汉字。汉字“我”的显示结果如图3所示。


液晶显示器的色彩深度为16位,每个像素可显示65 536色。SRAM工作在字(word)操作模式下,将SRAM中的每个字与液晶显示器的每个像素对应。比如将液晶显示器第一行第一列的点与SRAM的0x0000地址对应,第一行第二列的点与0x0001地址对应,依次类推。

3.2 通过PC机键盘进行界面操作

通过PC机键盘进行界面操作时,使用电脑软件将键盘的操作键值通过PC机串口发送给单片机串口0,单片机串口0每中断一次接收到一个字节的数据,接收到的数据可分为3种情况:数值大于0xA0时,说明该字节是某汉字两字节数据中的一个字节;数值为0x20~0x7f时,表示该字节是可打印的ASCII码字符;数值小于0x20时,表示该字节是不可打印的数值,可用这36个数值作为界面操作的控制命令字节。连续接收完两个数值大于0xA0数据时,就可以转换成某个汉字;每接收到一个数值为0x20~0x7f的数据时,就可以转换成某个ASCII码字符;每接收到一个数值小于0x20的数据时,就可以翻译成某个操作命令,进行相应的控制操作。图4为键盘接口操作中断流程。

基于单片机C8051F120和FPGA器件实现嵌入式显示系统的设计

3.3 通过触摸屏进行界面操作

通过触摸屏进行界面操作时,手写识别微控制器ePH1200AQ将手写的轨迹封包后发送到单片机的串口1。操作过程中的数据主要包括输入汉字时,识别输入的笔画,向单片机发送候选字;画图时,实时发送屏幕触点的坐标;触控时,发送触控点的坐标。ePH1200AQ的通信协议命令格式如表1所列。

基于单片机C8051F120和FPGA器件实现嵌入式显示系统的设计

表1中的识别型态命令(0x10)的识别型态定义值定义了可以识别的字集,包括汉字一/二级字库、大小写英文字母、数字、符号、预设手势、平假名和片假名。

ePH1200AQ与单片机串口1通信,发送的是命令封包,需要考虑封包的帧定位,确定封包的包头和包尾。表1中的命令格式中,封包长度最长的命令为“发送候选字阵列”命令(命令代码为0x18),ePH1200AQ发送的候选字个数最多为10个,每个候选字为两个字节的数据,该命令的最大长度为25字节,可创建一个具有25个元素的数组(uartl_RX_buffer[25])作为命令缓存。


结语

本文设计了一种以C8051F120作为核心处理器的嵌入式彩色图形显示系统,其突出的优点是实时性强、接口电路简单、可扩展性强。该系统集成度高,携带方便,实用性强,在很多领域都具有应用性,具有一定的研究和应用价值。


关键字:单片机  C8051F120  FPGA器件 引用地址:基于单片机C8051F120和FPGA器件实现嵌入式显示系统的设计

上一篇:18位AD7674与C8051F060之间并口通信的接口电路设计
下一篇:以C8051F020单片机为控制核心的一键多义按键管理程序的原理

推荐阅读最新更新时间:2024-11-03 03:15

微芯推32位单片机固件开发框架--MPLAB Harmony
美国微芯科技公司(以下简称“Microchip”)近日宣布推出一款业界最全面的32位单片机固件开发框架--MPLAB Harmony.该器件是第一款把许可、转售及支持Microchip和第三方中间件、驱动程序、函数库和实时操作系统集成于一体的产品。 总所周知,Microchip为全球领先的整合单片机、混合信号、模拟器件和闪存专利解决方案的供应商,其此次推出的这款最新创新产品具备了其独特的优势性能于一身。MPLAB Harmony所具备的优势性能主要体现在以下几个方面: (1)简化了包括全新PIC32MZ系列在内的所有32位MCU的开发过程,缩短了集成和上市所需的时间; (2)提供一个独立于实时操作系统的环境,提高了重复
[单片机]
51单片机扩展6264静态RAM程序
/******************** RAM6264的地址为0000~1FFF,共8K CS1接P2.7 CS2接VCC WE接WR OE接RD A8~A12接P2。0~P2.3 ********************/ #include reg51.h #include absacc.h unsigned char xdata *point=0x0000; unsigned char dat ; void delay1s(void) { unsigned char a,b,c; for(c=167;c 0;c--) for(b=171;b 0;b--) for(a=16;a 0;a-
[单片机]
触控温度计设计
  1. 内容简介   温度的量测应用非常的广泛,从农业上的气温观测,及日常防疫的体温量测至工业上的半导体制程,温度都是相当重要的一个指标及依据。本文主要是介绍HYCON HY16F188 Series芯片在温度量测上的应用,并透过Touch Key的界面进行操作。由于HY16F188芯片内部集成高精度 △ADC,且ADC输出频率最快可以到达10KHZ,藉由外部LCD驱动IC HY2613B完成显示。HY16F188用于温度上的量测,不需外接的感测组件即完成,达到周边电路简单且省电的应用。   2.原理说明   2.1量测原理   本应用的温度量测组件是采用,IC内部的绝对温度传感器TPS,绝对温度传感器由二极管(BJT)组成,其
[单片机]
触控温度计设计
基于AT89C51应用系统的串行通信设计
1 引 言 在红外成像技术的电力设备状态检测系统中,基于AT89C51单片机的应用系统,采用美国雷态公司的型号为3iLRL3的非接触式红外测温仪.该测温仪采用的是RS232C串行通信标准接口,该接口在很多通信设备中通用,目前与PC机的直接串行通信也是RS 232C接口。尽管RS232C性能指标并非很好,但还是有广泛的市场支持。串行通信技术在测控系统中占有很重要的地位,只用三根线.就可以方便的在2个数字设备之间进行信息的交换,实现全双工的传送数据,硬件成本低.而且通用性好。 2 串行通信的硬件设计 在所开发的系统中.红外测温仪将检测电力没备的工作和环境温度,通过RS 232C串口传给单片机,同时由单片机控制检测装置的在线工作组态
[应用]
STM32单片机TFTLCD显示实验:TFTLCD简介
STM32单片机TFTLCD显示实验学习笔记 1、TFTLCD模块接口图 以2.8寸的TFTLCD为例,采用16位的并方式与外界进行连接,模块接口图如下所示: 具有如下一些信号线: CS:TFTLCD片选信号 WR:向TFTLCD写入数据 RD:从TFTLCD读取数据 D :16位双向数据线 RST:硬复位TFTLCD,直接连接到stm32的复位引脚上 RS:命令/数据标志(0,读写命令;1,读写数据) 2、ILI9341控制器 ILI9341控制器是TFTLCD的驱动芯片,在16位的模式下,ILI9341采用RGB565格式储存颜色数据,下面为16位数据与显存的对应关系,最低5位代表蓝色,中间六位代表绿色,最高5位代
[单片机]
STM32<font color='red'>单片机</font>TFTLCD<font color='red'>显示</font>实验:TFTLCD简介
基于MSP430单片机的行驶车辆检测器的设计
利用环形线圈、MSP430F1121A单片机与输出接口,组成低功耗行驶车辆检测系统,并能根据用户预先设定的灵敏度、工作方式、输出方式进行车辆检测与信号输出。 还应用软件动态刷新基准的方法提高了检测的可靠性和准确性。实验表明:该系统具有结构简单、功耗低、调节方便等优点。 引言 近年来,车辆检测器作为交通信息采集的重要前端部分,越来越受到业内人士的关注。鉴于公路交通现代化管理和城市交通现代化管理的发展需要,对于行驶车辆的动态检测技术——车辆检测器的研制在国内外均已引起较大重视。车辆检测器以机动车辆为检测目标,检测车辆的通过或存在状况,其作用是为智能交通控制系统提供足够的信息以便进行最优的控制。 目
[单片机]
基于PWM功能的AVR单片机定时-计数器设计
  一、定时/计数器PWM设计要点   根据PWM((脉宽调制(PWM:(Pulse Width ModulaTION)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的模式))的特点,在使用ATmega128的定时/计数器设计输出PWM时应注意以下几点:   1.首先应根据实际的情况,确定需要输出的PWM频率范围,这个频率与控制的对象有关。如输出PWM波用于控制灯的亮度,由于人眼不能分辨42Hz以上的频率,所以PWM的频率应高于42Hz,否则人眼会察觉到灯的闪烁。   2.快速PWM可以的到比较高频率的PWM输出,但占空比的调节精度稍微差一些。此时计数器仅工作在单程正向计数方式,计数器的上限值决定PWM的频率,而
[单片机]
意法半导体STM32C0系列高能效微控制器性能大幅提升
新微控制器 STM32C071扩大闪存和 RAM容量,增加USB控制器,支持 TouchGFX图形软件,让终端产品变得更纤薄、小巧,更具竞争力 2024 年 10 月 16 日,中国——现在, STM32 开发人员可以在 STM32C0微控制器(MCU)上获得更多存储空间和更多功能,在资源有限和成本敏感的嵌入式应用中实现更先进的功能。 STM32C071 MCU配备高达128KB的闪存和 24KB 的 RAM ,还新增不需要外部晶振的USB从设备,支持TouchGFX图形软件。片上 USB控制器让设计人员轻松节省至少一个外部时钟和四个去耦电容,降低物料清单成本,简化 PCB元器件布局。此外,新产品只有一对电源线,这有助
[单片机]
意法半导体STM32C0系列高能效<font color='red'>微控制器</font>性能大幅提升
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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