
本文介绍了如何使用高性能8位单片机C8051F120作为核心处理器来接收和处理PC键盘和触摸屏的操作信息,并将其转换为可显示的液晶显示器(TFT)点矩阵数据;使用SRAM作为视频存储器,FPGA接收单片机发送的显示数据,控制视频存储器的读写操作,生成液晶显示器的工作序列,最后完成嵌入式设计方案. 在液晶显示器上显示字符和65,536个彩形. 重点介绍核心处理单元C8051F120的软件设计.
嵌入式设备凭借与用户的亲和力和自然的人机交互界面而迅速发展,并已渗透到生活的每个角落. 本文介绍的设计方法基于高性能的8位单片机C8051F120作为核心处理器,SRAM作为系统的视频存储器以及FPGA以实现时序转换,从而在低温下构建嵌入式显示系统( -10℃). 通过PC键盘和触摸屏实现界面操作,最后在液晶显示器上显示国家标准的一/两个汉字,ASCII字符和65,536色的彩形和图片,并制作了简单的操作界面.
1系统工作原理
显示汉字,英文字符和彩形的过程是将字符和图形信息转换为可以在液晶显示器上显示的点阵信息. 为了显示字符,可以将根据位置代码排列的ASCII码字符点矩阵字体库和汉字点矩阵字体库存储在微控制器的外部Flash ROM中(构成点矩阵数据区),并且程序中使用的字符可以存储在机器内部代码中. 表格存储在Flash ROM中(构成文本数据区域). 显示时,单片机从文本数据区读取汉字机内部代码,并将其转换为Flash ROM中点矩阵数据区的字体库地址. 通过该地址读取字符的点阵数据,并将其进一步转换为可以在液晶显示器上显示的数据. 将其发送到后续电路进行处理和显示. 这样,在操作过程中可以显示多种字符,包括国家标准的一/两个汉字,大写和小写英文字符,标点符号和数字. 在显示彩形时,由于图片的存储空间要求相对较大,因此系统中没有足够的空间. 格式转换后,可以将PC中bmp格式的彩片发送到MCU进行实时处理,并通过串口进行显示.
液晶显示器的工作频率为4.5〜6.8 MHz,需要复杂的工作程序. 考虑到单片机的工作速度和液晶显示器的工作频率,一方面,液晶显示器只能在工作频率下工作,这就需要传输大量的显示数据,并且控制信息;另一方面,单片机必须完成许多处理工作,即使工作在100 MHz,也将成为系统工作速率的瓶颈. 为了解决该问题,再次添加了一块SRAM作为显示存储器,并添加了一块FPGA来实现定时转换以及控制和刷新液晶显示器. FPGA以分时方式读写SRAM. 在时钟的作用下,FPGA在一半的时间内(当时钟信号为高电平时)从SRAM读取数据,并不断刷新LCD. 在另一半时间(当时钟信号为低电平时)),如果微控制器已发送要显示的数据,则将该数据写入SRAM. 分时操作的使用可以在连续刷新液晶显示的同时接收和存储单片机的数据,使两个方面的工作互不影响,不仅减轻了单片机的工作量芯片的微机,也充分发挥了FPGA的性能.

图1系统框图

选择带有触摸屏的LCD,并将触摸屏连接到外部手写识别控制器,以添加手写识别功能并提供友好的人机交互界面. 通过以上分析,可以得出系统框图,如图1所示.
2系统硬件设计
在此嵌入式显示系统中,使用了Sharp的LCD型号LQ0357DH01. 工作温度范围为-10至70°C,最低工作温度相对较低.
显示模块由彩色有源点矩阵LCD模块和非晶硅TFT组成,因此可以称为ADTFT(高级TFT). 它由彩色TFT LCD面板,IC驱动器,FPC,背光,电阻式触摸屏和背面密封盒组成,但该模块不包含控制电路. 显示屏的工作频率为4.5-6.8 MHz,分辨率为240×320像素,色位深度为18位. 图形和文本可以262114种颜色显示在240×320点矩阵显示器上. 但是,考虑到单片机的数据总线宽度是8位,为了简化操作过程,可以将色深确定为16位,并且单片机将每个像素的色彩数据发送两次. . 这种简化的操作还可以满足显示65,536个彩形的要求.
为了提高整个系统的运行速度,使用型号为C8051F120的高性能8位微控制器作为处理器. C8051F120使用Silicon Labs的专利CIP51微控制器内核. CIP51和MCS51指令集完全兼容,并且标准803x / 805x汇编器和编译器可用于软件开发. C8051F120可以在100 MHz的最大系统时钟频率和100 MIPS的峰值性能下稳定运行. 该闪存使用M29W400BB(512K×8位),这是一种可读,可擦除和可重新编程的闪存. FPGA使用Xilinx SpartanII系列产品XC2S100. XC2S100是具有100,000个系统门的FPGA,就逻辑门数量而言,它可以为系统提供足够的逻辑电路. 144针封装XC2S100可提供103个I / O端口,为系统设备提供足够的I / O端口资源.
关于SRAM的选择,考虑到液晶显示器的分辨率为240×320像素,每个像素可以显示65,536色(16位),因此视频存储器的大小至少为240×320×2B = 150 KB. 添加一个512 KB SRAM CY7C1041BV33作为视频存储器. CY7C1041BV33可以在字操作模式下工作,以方便显示数据的访问. 在刷新液晶的过程中,SRAM中的每个字都可以对应于液晶的每个像素.
手写识别使用ePH1200AQ型号的手写识别微控制器. ePH1200AQ硬件集成了一个8位RISC微控制器,触摸屏驱动器,接口UART,4 KB SRAM,32K字编程ROM和512K字数据ROM. 该软件包含手写识别内核,字符集和手写收集软件. 当微控制器连接到外部触摸屏时,它可以形成手写识别应用程序,例如SMS,移动电话或手写输入设备.

3系统软件设计
系统软件包括两部分: 单片机和FPGA. 本文主要介绍微控制器的软件设计.

图2主要功能过程
单片机执行的功能包括循环查询两个串行端口是否已接收到新数据. 当某个串行端口接收到新数据时,它将采取相应的操作. 显示字符时,读取Flash ROM中的点阵数据,进行转换和处理后发送给FPGA;显示图形时,请根据设置的图形轨迹绘制点.
单片机周期性地查询两个串行端口是否在主程序中接收到新数据. 当任何串行端口产生中断时,它将根据串行端口接收到的数据的含义采取相应的措施. 主要功能过程如图2所示.
3.1字符显示原理

UCDOS软件中的文件HZK16和ASC16是16×16国家标准汉字点矩阵文件和8×16 ASCII码点矩阵文件,它们以二进制格式存储. 在文件HZK16中,国家标准区号表中的所有汉字都按照汉字区号从小到大的顺序存储. 每个汉字占用32个字节(16×16汉字点阵),每个区域包含94个汉字. 在文件ASC16中,一个8×16的ASCII码点矩阵以ASCII码从小到大的顺序存储,每个ASCII码占用16个字节.
在PC的文本文件中,汉字以内部代码的形式存储,每个汉字占用两个字节. 第一个字节是区域代码. 为了与ASCII代码区分开,范围从十六进制的0A1H(ASCII代码字符小于80H)开始,与区域代码中区域代码的第一个区域相对应;第二个字节是位代码,范围也从0A1H开始,对应于某个区域中的第一个位代码. 这样,从汉字机的内部码中减去0A0A0H即可得到汉字的位置码. 例如,汉字“ I”的内部代码以十六进制表示为“ CED2”,其中“ CE”表示区号,“ D2”表示位码. 因此,区域代码“ I”为0CED2H-0A0A0H = 2E32H. 将区号和位码转换为十进制,汉字“ I”的区号为“ 4650”,即“芳”的点阵位于第46区. 50个字符的位置等效于文件HZK16中的位置,因为32nd [[(46-1)×94 +(50-1)] = 67136)B后面的32个字节是“ I”的显示点矩阵.
依次读取每个字节,读取每个字节,然后提取字节中的每个位. 如果某位为“ 1”,则发送两个像素到相应的像素字节的字体颜色数据,例如(0x0000,黑色);如果某位为“ 0”,则将两个字节的背景颜色数据发送到与该位数据相对应的像素,例如(0xffff,白色). 发送32字节的点矩阵数据(发送的总颜色数据为32B×8dot×2B = 512 B)后,LCD屏幕将显示带有白色背景和黑色字体的汉字. 汉字“ I”的显示结果如图3所示.

图3汉字“我”的显示结果
LCD监视器的色深为16位,每个像素可以显示65,536种颜色. SRAM在字操作模式下工作,并且SRAM中的每个字对应于液晶显示器的每个像素. 例如,LCD的第一行和第一列中的点对应于SRAM的0x0000地址,第一行和第二列中的点对应于0x0001地址,依此类推.
3.2通过PC键盘进行接口操作

通过PC键盘执行接口操作时,请使用计算机软件将键盘操作键值通过PC串行端口发送到MCU串行端口0. MCU串行端口0每次中断接收一个字节的数据,接收到的数据可分为三种情况: 值大于0xA0时,表示该字节是汉字两字节数据之一. 当值为0x20〜0x7f时,表示该字节为可打印的ASCII码字符;该值小于0x20时,表示该字节是不可打印的值,并且这36个值可以用作接口操作的控制命令字节. 连续接收到两个大于0xA0的数据后,可以将其转换为中文字符;每次接收到值为0x20〜0x7f的数据时,都可以将其转换为ASCII码字符. 每次接收到小于0x20的值的数据时,可以将其转换为某个操作命令以执行相应的控制操作. 图4显示了键盘接口操作的中断流程.

图4键盘界面操作的中断过程
3.3通过触摸屏进行界面操作
通过触摸屏操作界面时,手写识别微控制器ePH1200AQ将打包手写轨迹并将其发送到单片机的串行端口. 1.操作过程中的数据主要包括输入汉字时的输入笔划,并将候选字符发送到单片机. 绘制时,实时在屏幕上发送触摸点的坐标;触摸时,发送触摸点的坐标. 表1列出了ePH1200AQ的通信协议命令格式.

表1 ePH1200AQ通信协议命令格式
表1中的识别类型命令(0x10)的识别类型定义值定义了可以识别的字符集,包括第一/第二个汉字库,大写和小写英文字母,数字,符号,预设手势,与和平. 假名和片假名.
ePH1200AQ与单片机的串行端口1通信,并发送命令包. 需要考虑数据包的帧定位,并确定数据包的标头和结尾. 在表1的命令格式中,具有最长数据包长度的命令是“发送候选字数组”命令(命令代码为0x18). ePH1200AQ发送的候选字数最多为10个,每个候选字为2个字节. 该命令的最大长度为25个字节,可以创建一个包含25个元素的数组(uart1_RX_buffer [25])作为命令缓冲区.
结论
本文设计了一个以C8051F120为核心处理器的嵌入式彩形显示系统. 它的突出优点是强大的实时性能,简单的接口电路和强大的可伸缩性. 该系统高度集成,易于携带,实用性强. 具有广泛的应用前景,具有一定的研究和应用价值.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-305871-1.html
后来震撼到我了