1、Proteus软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12
2、/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。 1.1.2 RVDS简介RealView Development Suite(RVDS)是ARM公司继SDT与ADS1.2之后主推的新一代开发工具。RVDS集成的RVCT是业内公认的能够支持所有ARM处理器,并提供最好的执行性能的编译器。RealView Developer Suite 支持所有 ARM 系列核心,并与众多第三方实时操作系统及工具商合作简化开发流程。RVDS包含有四个模块:(1)IDE:RVDS中集成了Eclipse IDE,用于代
3、码的编辑和管理。支持语句高亮和多颜色显示,以工程的方式管理代码,支持第三方Eclipse功能插件。(2)RVCT:RVCT是业界最优秀的编译器,支持全系列的ARM和XSCALE架构,支持汇编、C和C+。(3)RVD:是RVDS中的调试软件,功能强大,支持Flash烧写和多核调试,支持多种调试手段,快速错误定位。(4)RVISS:是指令集仿真器,支持外设虚拟,可以使软件开发和硬件开发同步进行,同时可以分析代码性能,加快软件开发速度。RVDS具有代码小执行效率高、支持Linux操作系统、调试功能强大、可虚拟外设等优点,同时还具有内容丰富的在线文档。 1.1.3 芯片LPC2106简介LPC2106
4、/2105/2104 包含一个支持仿真的ARM7TDMI-S CPU、与片内存储器控制器接口的ARM7 局部总线、与中断控制器接口的AMBA高性能总线(AHB)和连接片内外设功能的VLSI外设总线(VPB ,ARMAMBA 总线的兼容超集)。LPC2106/2105/2104 将ARM7TDMI-S配置为小端(little-endian )字节顺序。AHB外设分配了2M 字节的地址范围,它位于 4G字节ARM存储器空间的最顶端。每个 AHB外设都分配了16k 字节的地址空间。LPC2106/2105/2104 的外设功能(中断控制器除外)都连接到VPB 总线。AHB到VPB 的桥接将VPB 总
5、线与AHB总线相连。VPB 外设也分配了2M 字节的地址范围,从3.5GB 地址点开始。每个VPB 外设在VPB 地址空间内都分配了16k 字节地址空间。它拥有以下特性: ARM7TDMI-S处理器 128k字节片内Flash程序存储器,具有ISP 和IAP 功能。 Flash编程时间:1ms 可编程512 字节,扇区擦除或整片擦除只需400ms 。 64/32/16K 字节静态RAM(LPC2106/2105/2104) 向量中断控制器 仿真跟踪模块,支持实时跟踪 RealMonitor模块支持实时调试 标准ARM测试/ 调试接口,兼容现有工具 极小封装:TQFP48 (77mm2) 双UA
6、RT,其中一个带有完全的调制解调器接口 I2C 串行接口 SPI 串行接口 两个定时器,分别具有4 路捕获/ 比较通道 多达6 路输出的PWM 单元 实时时钟 看门狗定时器 通用I/O 口 CPU 操作频率可达60MHz 双电源 CPU 操作电压范围:1.65V1.95V(1.8V 8.3%) I/O 电压范围:3.0V3.6V(3.3V 10%) 两个低功耗模式:空闲和掉电 通过外部中断将处理器从掉电模式中唤醒 外设功能可单独使能/ 禁止,实现功耗最优化 片内晶振的操作频率范围:10MHz25MHz 片内PLL 允许CPU 以最大速度运行,可以在超过整个晶振操作频率范围的情况下使用。由于拥有
7、以上特性,LPC2106适用于nternet 网关、串行通信协议转换器、访问控制、工业控制、医疗设备及其它各种类型的应用。 1.2 LCD显示原理和初始化流程图 1.2.1 LCD特点在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED数码管、液晶显示器。发光管和LED数码管比较常用,软硬件都比较简单,在前面章节已经介绍过,在此不作介绍,本章重点介绍字符型液晶显示器的应用。在单片机系统中应用晶液显示器作为输出
8、器件有以下几个优点: 显示质量高由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。 数字式接口液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。 体积小、重量轻液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。 功耗低相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。1. 液晶显示屏(LCD) 液晶屏(LCD:Liquid Crystal Display)主要用于显示
9、文本及图形信息。液晶显示屏具有轻薄、体积小、低耗电量、无辐射危险、平面直角显示以及影像稳定不闪烁等特点,因此在许多电子应用系统中,常使用液晶屏作为人机界面。 主要类型及性能参数:液晶显示屏按显示原理分为 STN和 TFT 两种:STN(Super Twisted Nematic,超扭曲向列)液晶屏 STN 液晶显示器与液晶材料、光线的干涉现象有关,因此显示的色调以淡绿色与橘色为主。STN 液晶显示器中,使用 X、Y 轴交叉的单纯电极驱动方式,即 X、Y 轴由垂直与水平方向的驱动电极构成,水平方向驱动电压控制显示部分为亮或暗,垂直方向的电极则负责驱动液晶分子的显示。STN 液晶显示屏加上彩色滤光
10、片,并将单色显示矩阵中的每一像素分成三个子像素,分别通过彩色滤光片显示红、绿、蓝三原色,也可以显示出色彩。单色液晶屏及灰度液晶屏都是 STN 液晶屏。TFT(Thin Film Transistor,薄膜晶体管)彩色液晶屏 随着液晶显示技术的不断发展和进步, TFT 液晶显示屏被广泛用于制作成电脑中的液晶显示设备。 TFT液晶显示屏既可在笔记本电脑上应用 (现在大多数笔记本电脑都使用 TFT显示屏),也常用于主流台式显示器。使用液晶显示屏时,主要考虑的参数有外形尺寸、分辨率、点宽、色彩模式等。以下是Embest Arm EduKit II实验板所选用的液晶屏(LRH9J515XA STN/BW
11、)主要参数:可视屏幕的尺寸及参数示意如图 5-1 所示:液晶屏外形如图 5-2 所示:驱动与显示 液晶屏的显示要求设计专门的驱动与显示控制电路。 驱动电路包括提供液晶屏的驱动电源和液晶分子偏置电压,以及液晶显示屏的驱动逻辑;显示控制部分可由专门的硬件电路组成,也可以采用集成电路(IC)模块,比如 EPSON 的视频驱动器等;还可以使用处理器外围 LCD 控制模块。实验板的驱动与显示系统包括 S3C44B0X 片内外设 LCD 控制器、液晶显示屏的驱动逻辑以及外围驱动电路。2. S3C44B0X LCD控制器 介绍 S3C44B0X 处理器集成了 LCD 控制器,支持 4 位单扫描、4 位双扫描
12、和 8 位单扫描工作方式。处理器使用内部 RAM区作为显示缓存,并支持屏幕水平和垂直滚动显示。数据的传送采用 DMA(直接内存访问)方式,以达到最小的延迟。根据实际硬件水平和垂直像素点数、传送数据位数、时间线和帧速率方式等进行编程以支持多种类型的液晶屏。可以支持的液晶类型有: 单色液晶 1. 4 级或 16 级灰度屏(基于时间抖动算法或帧速率控制-FRC) 2.256 色彩色液晶(STN 液晶) 显示控制 LCD 控制器主要提供液晶屏显示数据的传送、时钟和各种信号的产生与控制功能。S3C44B0X 处理器的 LCD 控制器主要部分框图如图 5-3 所示:(1) LCD控制器接口说明 (2) L
13、CD控制器信号时序 (3) 扫描模式支持 S3C44B0X 处理器 LCD 控制器扫描工作方式通过 DISMOD(LCDCON16:5)设置。 4 位单扫描 - 显示控制器扫描线从左上角位置进行数据显示。显示数据从 VD3:0获得;彩色液晶屏数据位代表 RGB色 4 位双扫描 - 显示控制器分别使用两个扫描线进行数据显示。0获得高扫描数据;VD7:4获得低扫描数据; 8 位单扫描 - 显示控制器扫描线从左上角位置进行数据显示。显示数据从 VD7:(4) 数据的存放与显示 液晶控制器传送的数据表示了一个像素的属性:4 级灰度屏用两个数据位;16 级灰度屏时使用 4 个数据位;RGB 彩色液晶屏使
14、用 8 个数据位(R7:5、G4:2、B1:0)。 显示缓存中存放的数据必须符合硬件及软件设置,即要注意字节对齐方式。在 4 位或 8 位单扫描方式时,数据的存放与显示如图 5-8 所示: 在 4 位双扫描方式时,数据的存放与显示如图 5-9 所示:(5) LCD控制器寄存器 S3C44B0X LCD处理器所包含的可编程控制寄存器共有 18 个。 表 5-4 LCD 控制器寄存器列表 注:以下实验说明中只是简单地介绍控制寄存器的含义,详细使用请参考 S3C44B0X 处理器数据手册。(6) LCD控制器主要参数设定 正确使用 S3C44B0X LCD控制器,必须设置控制器所有 18 个寄存器。
15、控制器信号 VFRME、VCLK、VLINE 和 VM要求配置控制寄存器 LCDCON1/2;液晶屏的显示与控制,以及数据的存取控制要求配置其他相关寄存器,详见以下说明。 设置 VM、VFRAME、VLINE VM信号通过改变液晶的行列电压的极性来控制像素的显示,VM速率可以配置LCDCON1 寄存器的 MMODE 位及 LCDCON2 寄存器的 MVAL7:0。 VM速率 = VLINE 速率 / ( 2 * MVAL) VFRAME 和 VLINE 信号可以根据液晶屏的尺寸及显示模式,配置 LCDCON2 寄存器的 HOZVAL和 LINEVAL值,即: HOZVAL = ( 水平尺寸 /
16、 VD 数据位) 1 彩色液晶屏时: 水平尺寸 = 3 * 水平像素点数; VD 数据位:=4 - 4 位单/双扫描模式; =8 - 8 位单扫描模式 LINEVAL = 垂直尺寸 1 单扫描模式 LINEVAL = (垂直尺寸/ 2) -1 双扫描模式 设定 VCLK VCLK 是 LCD 控制器的时钟信号, S3C44B0X 处理器在 66MHz 时钟频率时最高频率为 16.5MHz,这可以支持现在所有液晶屏类型。VCLK 的计算需要先计算数据传送速率,并由此设定的一个大于数据传送速率的值为 VCLKVA(LCDCON121:12)。数据传送速率 = 水平尺寸 x 垂直尺寸 x 帧速率 x
17、 模式值(MV) 表5-5 模式值 帧速率可由以下公式得到 VCLK(Hz) = MCLK / (CLKVAL x 2) LKVAL 大于数据传送速率且不小率(Hz) = ( (1/VCLK) x (HOZVAL+1)+(1/MCLK) x (WLH+WDLY+LINEBLANK) ) x ( LINEVAL+1) -1VCLK(Hz) = (HOZVAL+1) / (1 / (帧速率 x (LINEVAL+1) - (WLH+WDLY+LINEBLANK) / MCLK ) LINEBANK - 水平扫描信号 LINE 持续时间设置(MCLK 个数) LINEVAL - 显示屏的垂直尺寸 V
18、CLK 的计算还可以使用以下公式: 设定数据帧显示控制(LCDBASEU、LCDBASEL、PAGEWIDTH、OFFSIZE、 LCDBANK) (1) LCDBASEU设置显示扫描方式中的开始地址(单扫描方式)或高位缓存地址(双扫描方式);(2)LCDBASEL 是设置双扫描方式的低位缓存开始地址。可用以下计算公式:LCDBASEL = LCDBASEU + (PAGEWIDTH + OFFSIZE) x (LINEVAL +1) (3)PAGEWDTH 是显示存储区的可见帧宽度(半字数) (4) OFFSIZE 半字数。是显示存储区的前行最后半字和后行第一个半字之间的半字数 (5)LCD
19、BANK 是访问显示存储区的地址 A27:22值。ENVID=1 时该值不能改变。(7) 液晶屏的支持与设定 对于 4 级灰度屏(2 位数据),LCD 控制器通过设置 BULELUT15:0指定使用的灰度级, 并且从 04级使用 BULELUT 的4个数据位。16级灰度屏使用 BULELUT的每一位来表示灰度级别。使用 16 级灰度屏时,LCD 控制器参数设定可参考: 参考1 LCD 液晶屏:320*240;16 级灰度;单扫描模式 数据帧首地址 = 0xc300000; 偏移点数 = 2048 点( 512 个半字 );LINEVAL = 240 - 1 = 0xEF;PAGEWIDTH =
20、 320*4/16 = 0x50;OFFSIZE = 512 = 0x200;LCDBANK = 0xc300000 22 = 0x30;LCDBASEU = 0x100000 1 = 0x80000;LCDBASEL = 0x80000 + ( 0x50 + 0x200 ) * ( 0xef + 1 ) = 0xa2b00; 参考2 LCD 液晶屏:双扫描模式 LINEVAL = 120-1 = 0x77;LCDBASEL = 0x80000 + ( 0x50 + 0x200 ) * ( 0x77 + 1 ) = 0x91580;彩色屏的 LCD 控制器参数设定参考实验程序。五 实验设计 1
21、. 电路设计 进行液晶屏控制电路设计时必须提供电源驱动、偏压驱动以及 LCD 显示控制器。由于S3C44B0X 处理器本身自带 LCD 控制器,而且可以驱动实验板所选用的液晶屏,所以控制电路的设计可以省去显示控制电路,只需进行电源驱动和偏压驱动的电路设计即可。 液晶电路结构框图 引脚说明 表5-6 液晶屏管脚 控制电路设计 由前述可知实验板所选用的液晶屏的驱动电源是 21.5V,因此直接使用实验系统的 3V或 5V 电源时需要电压升压控制,实验系统采用的是 MAX629 电源管理模块,以提供液晶屏的驱动电源。偏压电源可由系统升压后的电源分压得到。以下是 S3CEV40实验板的电源驱动和偏压驱动
22、参考电路。 2. 软件程序设计 由于实验要求在液晶显示屏上显示包括矩形、字符和位图文件,所以实验程序设计主要包括三大部分。 设计思路 使用液晶屏显示最基本的是像素控制数据的使用,像素控制数据的存放与传送形式,决定了显示的效果。这也是所有显示控制的基本程序设计思想。图形显示可以直接使用像素控制函数实现;把像素控制数据按一定形式存放即可实现字符显示,比如 ASCII 字符、语言文字字符等。Embest ARM教学系统的像素控制函数按如下设计:位图文件显示 通过把位图文件转换成一定容量的显示数组,并按照一定的数据结构存放。与字符的显示一样,传送的数据需要设计软件控制程序。Embest ARM教学系统
23、位图显示的存放数据结构及控制程序:const INT8U g_ucBitmap = / 位图文件数据;位图显示(请参考样例程序) void bitmap_view320x240x256(UINT8T *pBuffer); 1.3 Proteus仿真电路 使用Proteus进行仿真电路设计,下面依次介绍仿真细节。 1.3.1 Proteus仿真元件清单元件名称规格型号单位数量ARM7芯片LPC2106片1LCD1602LM016L个瓷片电容CAP-ELEC电源+3.3V+1.8V电阻10K欧姆只2 1.3.2 Proteus仿真电路图截图 1.4 程序代码分模块介绍实验的C语言程序代码如下所示(
24、附注释):/main.c/* File: main.c* 功能:向LCD输出HelloWorld*/#include config.h#define rs (18)#define rw (19)#define en (110)#define busy (17)uint8 txt=HelloWorld;* 名称:ChkBusy()检查总线是否忙void ChkBusy() IODIR=0x700; while(1) IOCLR=rs; IOSET=rw; IOSET=en; if(!(IOPIN & busy)break; IOCLR=en; IODIR=0x7ff;WrOp()写函数void WrOp(uint8 dat) ChkBusy(); IOCLR=rs; /全部清零 IOCLR=rw; IOCLR=0xff; /先清零 IOSET=dat; /再送数 IOSET=en; IOCLR=en;WrDat()写数据函数void WrDat(uint8 dat) IOSET=rs;lcd_init()lcd初始化函数void lcd_init(void) WrOp(0x38); WrOp(0x06); /光标加1 WrOp(0x0c); /开显示/*
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1