基于32位微处理器的液晶显示系统的设计和实现

发布者:RadiantBeauty最新更新时间:2015-04-20 来源: eechina关键字:32位  微处理器  液晶显示系统 手机看文章 扫描二维码
随时随地手机看文章
近年来随着低成本高性能32位微处理器的出现,越来越多的工程设计人员把目光投向32位嵌入式产品的开发中。目前ARM系列32位微处理器在低功耗移动通信设备方面占有绝对优势;Motorola的MC683xx系列和Cold Fire系列主要用于工控、智能化仪表和汽车电子等领域;SoC技术是系统开发越来越倾向于32位CPU为核心,32位微处理器日益显示出其巨大的优越性。显示器件是嵌入式系统进行人机交互的重要设备,液晶显示器具有体积小、微功耗、低辐射、性能可靠等优点,已经成为工程技术人员进行系统设计的首选。但目前常用的多种液晶显示控制器还仅是基于8 位总线并且管理显示存储器空间较小,在系统有大量高速实时数据的情况下就有些吃力,“显示瓶颈”有待解决。对此本文提出了一种基于16位总线的大规模点阵图形液晶显示控制器SED1353和32位微处理器相结合的液晶显示系统,有效地解决上述问题。   

SED1353图形液晶显示控制器简介及其接口原理   

SED1353图形液晶显示控制器作为计算机系统控制液晶显示模块的专用芯片,具有8 位/16位计算机总线接口;内置调色板,最大支持256种色彩或16级灰度的液晶显示屏;具有管理128KB显示存储器空间的能力,可支持最大分辨率为1024×1024点阵液晶显示模块,提供了比较宽的应用领域。   

SED1353是一种可以由微处理器管理显示存储器的液晶显示控制芯片,即微处理器可以采用访问外部存储器的方法直接对显示存储器和它的16个内部寄存器进行设置读取。相比由控制器管理显示存储器方式的液晶显示控制器(典型芯片如SED1335),SED1353的优点是显而易见的,它不需要反复写指令再写数据完成对显示存储器和内部寄存器的管理,控制效率大为提高。由于要分配一定地址空间给显示存储器,SED1353控制器的缺点是占系统资源比较多。微处理器在访问SED1353的内部寄存器时,地址总线分为三部分:A15~A10组合作为寄存器片选信号I/OCS;A9~A4作为基地址且需要与上电时的VD12~VD7 比较,相等才进行内部译码选通寄存器;A3~A0作为16个寄存器AUX[0~F]的地址。微处理器访问显示存储器时,地址总线分为两部分:A19~A17高位地址对应显示存储器的128KB地址空间,与VD15~VD13设置相等才内部译码选通显示存储器;A16等地址线组合作为显示存储器片选信号MEMCS# ,以对显示存储器单元进行操作。   

硬件系统设计   

MC68332与SED1353的接口电路设计   

MC68332通过地址总线、数据总线,CS8片选信号、数据传输宽度信号SIZ0、A0及读写控制R/W,外围器件接口应答信号DSACK1,同SED1353进行异步数据传送。SED1353的I/O地址空间分配为$200000~$23FFFF。其中SED1353的16个8位寄存器地址为$200000~$20000F ;显示存储器占用128KB地址空间,即$220000~$23FFFF。CS8允许的地址空间块大小设置为256KB,起始地址$200000。DSACD1指明外部外围器件宽度为16位;可访问管理/用户级空间;允许进行读写访问。故CS 8基址寄存器和选择寄存器编程为:CSBAR8=$2005;CSOR8=$7BF0。MC68332与SED1353的接口电路如图1 所示。图1 还给出了SED1353与液晶屏LM64P83L的接口电路。SED1353通过显示存储器的数据总线VD15~VD0的复位上电设置自己的I/O地址。设数值1表示该端接一个10kΩ电阻上拉至高电平,0表示不接上拉电阻,x表示任意。故设置VD15~VD13=001;VD12~VD4=000000xxx;其中VD3~VD0=1,表示16位数据总线、直接访问方式、M68000时序及总线高低字节交换。   

1.jpg 
  
地址译码GAL的设计   

当MC68332的字或长字数据传送到SED1353的I/O偶数地址(受对准限制)时,需要使BHE# 、AB0/UDS#同时低电平有效。单字节传输虽然不受对准限制,但单字节数据传送到SED1353的I/O奇数地址时(如访问SED1353内部8 位寄存器) ,需要使SED1353的BHE#低电平有效,AB0/UDS#高电平无效;此外,MC68332设置定义的CS8定义的地址空间包括了内部寄存器和显示存储器的地址空间,此时还不能将各自的片选信号分开。因此可通过可编程逻辑器件来解决这一问题,GAL将依据下列等式编程:   

IOCS#=!(!CS 8 &!A17 &!A16 &!A15 &!A14 &!A13&!A12&!A11 &!A10)   
MEMCS#=CS8   
BHE#=SIZ0&!A0   

软件设计   

MC68332的硬件初始化程序设计   

MC68332的复位向量和初始化程序驻留在ROM中,在系统复位后MC68332从异常情况向量表中取出向量后在管理方式下执行初始化程序来定义相关地址、常数及其他参数。首先进行硬件初始化,依次初始化全局寄存器、各模块和外部设备等。MC68332地址空间的分配如下:寻址空间的$000000~$0FFFFF分配为ROM存储区,$100000~$13FFFF为SRAM 存储区,$200000~$23FFFF为显示存储区,$240000~$FFDFFF分配给其他外设(如串行通信模块的MC68HC681等) 。通过设备BAR 寄存器,把片上RAM 定位在$FFE000~$FFE7FF。通过设置SIM 模块的MCR 寄存器,把$FFF000~$FFFFFF存储区作为模块寄存器区。硬件初始化完成后,MC68332通过设置用户堆栈指针地址USP、状态寄存器SR 以及程序计数器PC将控制权交给应用程序。应用程序一般工作在用户方式下。本文中液晶显示系统使用的液晶屏为SHARP公司的LM64P83L,STN单色双屏结构640×480点阵。限于篇幅,只列出SED1353硬件初始化程序清单。   [page]

SED1353初始化程序:   

INCLUDE SED1353.ASM   
INIT MOVE.B#$00,AUX00;设置为正常工作模式   
MOVE.B#$44,AUX01;设置关显示,双屏结构,不屏蔽XSCL,8 位LCD数据,16 位显存结构   
MOVE.B#$27,AUX02;设置显示域宽度LBCB8 :0=1×640/16-1=39(十进制)   
MOVE.B#$04,AUX03;设置正常运行方式,单色无灰度显示,1 位/像素   
MOVE.B#$EF,AUX04;设置扫描行数,TDLC7 :0=480/2-1=239(十进制)   
MOVE.B#$00,AUX05;使用默认值,每帧WF翻转一次   
MOVE.B#$00,AUX06;设置上半屏显示首址为$220000   
MOVE.B#$00,AUX07   
MOVE.B#$80,AUX08;设置下半屏显示首址为$224B00(使用连续地址)   
MOVE.B#$25,AUX09   
MOVE.B#$00,AUX0C;使用默认非显示周期   
MOVE.B#$00,AUX0D;不使用虚拟屏   
ORI.B#$90,AUX01;开显示和LCDE 使能不需要设置的寄存器会被自动旁路  

汉字显示程序的设计   

在对系统进行完正确的初始化后将ROM中的字模数据送到SED1353显示存储器,就可以使液晶显示屏显示出汉字。显示汉字需要指定其坐标位置,坐标对应该汉字模入口地址。在显示汉字界面前,首先清屏。由于本文中显示存储器结构为16位,所以X方向以字为单位(偶数地址对齐)。故规定显示区左上角坐标为(0,0) ,右下角坐标为(39,479)。每个汉字都有唯一的代码,所以在调用字模数据前需要对汉字的代码进行解码,对坐标进行解析。   

字模入口地址=Y坐标×80+X 坐标×2;字模首地址=汉字代码×32+字库首地址。   

以在坐标(30,148)处显示代码为24的16×16 汉字为例,程序如下:   

(1) 清屏子程序   
MOVE.L# $220000,A4 ;赋当前显示首址   
BRA CLRLCD ;调用清屏子程序   
CLRLCD CLR.LD3   
CLR.LD4   
MOVE.W#480,D3;需要清480 行   
LOOP1 MOVE.W#40,D4 ;每行40 个字   
LOOP2MOVE.W#$0000,(A4)+ ;清零   
SUB.W#1,D4 
BNE LOOP2 
SUB.W#1,D3   
BNE LOOP1 
RTS   

(2) 汉字显示子程序   
MOVE.L#0,A1 ;清A1,A2   
MOVE.L#0,A2 
CLR.LD1 ;清D1~D4   
CLR.LD2   
CLR.LD3   
CLR.LD4   
MOVE.B #30,D2;赋坐标值   
MOVE.W #148,D3   
BSR ALXY;调坐标解析子程序   
MOVE.LD3,A1 ;坐标的绝对地址送出   
MOVE.W#24,D4 ;赋代码值   
BSR DECODE ;调解码子程序   
MOVE.LD4,A2;字模首址送出   
LOOP MOVE.W(A2) +,(A1)   
ADD.L#$50,A1 ;字模数据写入换行   
SUB.B #1,D1   
BNE LOOP   
END   
DECODE MULU #32,D4   
ADD.W#TAB16,D4   
MOVE.B #16,D1 ;循环16 次 
RTS 
....   
ALXYMULU #$50,D3   
MULU #$2,D2   
ADD.WD2,D3   
ADD.L#$220000,D3   
RTS   
TAB16 …   
*****设“马”汉字代码为24 ******   
DC.W$0020,$3FF0,$0020,$0820;马   
DC.W$0820,$0820,$0820,$0824   
DC.W$0FFE,$0004,$0024,$FFF4   
DC.W$0004,$0004,$0028,$0010   
...   
  
结束语   

32位嵌入式处理器的软件开发以C语言为主,通常情况下用汇编语言编写与硬件有关的程序,高级语言C编写主程序实现某些复杂算法,若再配上实时多任务任务操作系统更是如虎添翼。本文所述方法可移植性强,稍作修改可应用于摩托罗拉MC68K系列嵌入式系统;选用的SED1353具有直接管理128K大容量显示缓冲区的能力,编程简单、显示速度快和执行效率高;可支持多种单色/彩色液晶显示屏,可以实现数据显示、绘制图表以及翻转等功能,具有良好的显示界面,提高了系统的可操作性,值得在智能化仪器仪表中推广。
关键字:32位  微处理器  液晶显示系统 引用地址:基于32位微处理器的液晶显示系统的设计和实现

上一篇:MMC卡的文件系统及其实现方法
下一篇:基于ARM9内核Processor外部NAND FLASH的控制实现

推荐阅读最新更新时间:2024-03-16 13:58

嵌入式微处理器MCF5249及其应用
摘要:文中介绍了MOTOROLA公司的嵌入式微处理器MCF5249的原理、特点和引脚功能,说明了基于该处理器和嵌入式操作系统UCLINUX的网络相机结构,给出了用MCF5249进行网络相机设计时的资源分配情况及电路设计注意事项。 关键词:MCF5249;嵌入式微处理器;JPEG 1 概述 MCF5249是motorola公司推出的32位嵌入式微处理器,该器件以ColdFire 32 位微处理机体系结构为基础,并带有96kB 的片内SRAM、8kB 指令高速缓存、两个独立UART 和16 位定时器以及一个PLL 时钟,同时还带有软件监视时钟、GPIO 线路、两个I2C接口、QSPI口、4通道DMA和一个非粘合性SDRAM 控
[应用]
仪表盘和车身控制的应用设计
近年来,在汽车性能方面,除了要求对诸如驾驶、转向和停车等驾驶功能加以改进外,还要求对安全性、舒适性和环保性等相关性能加以提高。虽然内置式微控制器最近为众多汽车系统所用,但是为了将来能够实现更安全、更舒适和更环保的系统,对它们进行性能和功能的改进将至关重要。 产品特性 面向更安全、更舒适且更环保的系统:富士通开发了内置“FR81S”专用32位高性能CPU内核的MB91770系列和MB91725系列新型微控制器,能够控制新一代汽车系统。仪表盘控制是MB91770系列的主要应用领域,而车身控制(空调、BCM等)则是MB91725系列的主要应用领域。 新型内置式高性能32位CPU内核“FR81S”:这款产品采用FR81S内核,提供了比
[嵌入式]
低成本、高性能,Silicon Labs PG22 32位MCU问市
Silicon Labs(亦称“芯科科技”)宣布推出EFM32PG22(PG22)32位微控制器(MCU),这是一款低成本、高性能的解决方案,拥有业界领先的低功耗、性能及安全性。凭借易于使用且高精度的模拟功能,PG22非常适合于快速开发尺寸受限且对低功耗运行有严苛要求的消费和工业应用。 Silicon Labs物联网副总裁Matt Saunders表示:“市场对大批量、低功耗物联网(IoT)产品的需求一直在快速增长。PG22是一款经过精心设计的32位MCU,其价格贴近8位MCU市场,在尺寸和代码方面与其对应的无线产品保持兼容。” PG22通过一系列独特的产品功能为市场提供领先的32位MCU性能,包括: · 超低功耗
[嵌入式]
低成本、高性能,Silicon Labs PG22 <font color='red'>32位</font>MCU问市
飞思卡尔推出工业级32位微控制器
飞思卡尔半导体(NYSE:FSL)推出业界首款基于ARM® Cortex™-M0+处理器的5V 32位MCU。全新Kinetis E系列MCU具有强大的系统电磁抗噪能力(过去只有8位和16位MCU具有这种能力),如白色家电 和工业应用,同时提供高效率和最佳代码密度。 全新的Kinetis E系列产品是洗碗机、冰箱、家庭和楼宇控制系统、电机控制风机、工业转换器以及通常在高噪声环境中运行的其他设备等应用的理想选择。利用这些器件的耐用设计和32位处理能力,系统设计人员可以只采用一个器件,而不是以前所需的多个MCU。此外,大间距封装选件和高静电放电保护性能支持单层板设计,减少其他电路保护组件的需求,从而降低系统成本。 飞
[工业控制]
飞思卡尔推出工业级<font color='red'>32位</font>微控制器
基于STM32F100VBT6的32位MCU开发设计方案
STM32F100VBT6采用ARM Cortex™-M3 32位RISC内核,工作频率24MHz,集成了高速嵌入式存储器(闪存高达128kB、SRAM高达8kB)以及各种增强外设和连接到两条APB总线的I/O。所有器件提供两个I2C、两个SPI、一个HDMI CEC和多达3个USART标致通信接口以及一个12位ADC、两个12位DAC和六个通用16位定时器和PWM定时器。主要用在控制和用户接口、医疗设备、PC和游戏机外设、GPS平台、工业应用、PLC、逆变器、打印机、视频通信和HVAC等。 图1 STM32F100xx系列方框图 STM32F100xx简介 低/中密度、基于ARM的高级32位MCU,带有16 kB ~128
[单片机]
ST–Freescale 携手推出双核32位车用MCU
车用半导体领先供应商意法半导体与飞思卡尔半导体,针对车用电子市场的各种功能性安全应用,携手推出新款双核微控制器(MCU)系列。这款32位器件,可协助工程设计人员解决各种复杂的安全概念这一难题,以满足当前和未来的安全规范。该双核微控制器系列包括诸多功能,将协助工程人员专注于应用设计,并简化安全概念开发与认证流程。 这一双核微控制器系列采用业界领先的32位Power Architecture®技术(意法半导体的产品型号是SPC56EL,飞思卡尔是MPC564xL),适合支持各种汽车安全应用,包括可提高车辆效率的电动助力转向装置(electric power steering),能改进动力与驾驶性能的主动式悬挂(activ
[汽车电子]
32位低功耗MCU的设计
1 前言 传统的低功耗MCU设计都是以8位MCU为主,因为8位内核逻辑门数相对较少,运行或泄露电流低,售价也相对低廉。但是,许多新兴的应用都需要比8位内核更大的处理效率。近年智能生活的抬头、物联网的建立,便携式消费性电子产品与无线功能需求越来越高、设计越来越复杂,要提高性能的同时又要兼顾低功耗,需要有一款高性能低功耗的主控MCU来作为平台。另一方面,工业上的智能化也在展开,如远程监控、数字化、网络化等。简单说来,就是人物连接(云端应用)、物物连接(物联网)需求越来越多,导致产品功能越来越复杂,计算量越来越高,2009年ARM发表了32位Cortex-M0内核,提供给MCU厂商一个强而有力的平台,加上工艺微缩技术的进步,嵌入式闪存工
[单片机]
<font color='red'>32位</font>低功耗MCU的设计
AMD推出代码裁减技术,用于下一代微处理器
AMD公司近日宣布推出一种代码裁减技术,计划2009年用于该公司的下一代微处理器。 SSEE5是AMD公司的86指令集的新扩展,该规范通过减少实现一个特殊结果所需要的指令数,打算最大化在平台上运行的各种应用的效率。 SSE在1999年推出,代表着流SIMD的扩展。单指令多数据(SIMD)是用于x86架构的指令集。这种最新的技术是为了提高软件性能而设计的,通过采用专门的指令,能够一次在多条数据上运行。AMD公司表示,SEE对于多核处理技术和专用协处理器的集成是重要的,但是,对于提高软件性能也一样重要。 SSE5增加了输入或操作数的数量,x86指令能够处理两或三条指令。AMD表示,这样的性能目前仅仅在某些RISC架构上才可能实现
[焦点新闻]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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