1、基于arm7的lcd显示电路仿真课程设计论文大学论文学 号 天津城建大学嵌入式系统及应用课程设计设计说明书基于ARM7的LCD显示电路仿真起止日期: 2013 年 10月 28日 至 2013 年 11月 8 日学生姓名班级10电信科1班成绩指导教师(签字)计算机与信息工程学院2013年 11 月 8 日目录 第一章 系统背景简介 11.1 嵌入式系统背景介绍 1第二章 芯片介绍 22.1芯片LPC2106简介 22.1.1 LPC2106的特性 22.2 芯片LM016L简介 32.2.1液晶显示原理 32.2.2 LCD相关参数 3第三章 软件选择 73.1 Proteus Version
2、 7.5简介 73.2 RealView MDK简介 73.2.1 RealView MDK的特点 7第四章 课程设计 94.1 电路设计 94.1.1 Proteus创建工程步骤 94.1.2 元件选择 104.1.3 电路效果图 124.2 程序设计 134.2.1 RealView MDK创建工程过程 134.2.2 功能函数 144.2.3 主函数 16第五章 设计结果 175.1 编译结果 175.2 设计效果 17参考文献 19附录 20第一章 系统背景简介1.1 嵌入式系统背景介绍近年来,随着计算机技术及集成电路技术的发展,嵌入式技术日渐普及,在通讯、网络、工控、医疗、电子等领域
3、发挥着越来越重要的作用。嵌入式系统无疑成为当前最热门最有发展前途的IT应用领域之一。液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。通过显示器同步显示元器件的状态可以更深刻地理解控制的原理。通过Proteus模拟ARM7芯片设计,可以增强我们的自学能力和思考能力,掌握科学研究的方法,提高信息检索的能力以及获取与时俱进知识的能力。同时,使我们深刻学习了ARM的相关知识,增强对实际电路的感性认识,提高了分析问题,处理问题的能力。运用Keil编译C语言,连接生成Hex文件,使用PROTEUS 7.8SP2仿真,选用ARM7 LPC2
4、106 芯片和LM016L,导入Hex文件,然后进行软件仿真调试。本学期我专业开设了嵌入式系统课程设计这门课程,是嵌入式系统课程的辅助教学课程。通过课程设计,进一步掌握嵌入式ARM的基本概念,结合实际的操作和设计,巩固课堂教学内容,此外也让我们进一步掌握嵌入式系统的基本概念、原理和技术,将理论与实际相结合,应用现有的仿真工具和嵌入式软件开发平台,规范、科学地完成一个小型LCD显示电路的设计与实现,把理论课与实验课所学内容统一起来,并在此基础上强化实践意识、提高其实际动手能力和创新能力。第二章 芯片介绍2.1芯片LPC2106简介LPC2106包含一个支持仿真的ARM7TDMI-S CPU、与片
5、内存储器控制器接口的ARM7 局部总线、与中断控制器接口的AMBA高性能总线(AHB)和连接片内外设功能的VLSI外设总线(VPB ,ARMAMBA 总线的兼容超集)。LPC2106将ARM7TDMI-S配置为小端(little-endian)字节顺序。 AHB外设分配了2M 字节的地址范围,它位于 4G字节ARM存储器空间的最顶端。每个 AHB外设都分配了16k 字节的地址空间。LPC2106的外设功能(中断控制器除外)都连接到VPB 总线。AHB到VPB 的桥接将VPB 总线与AHB总线相连。VPB 外设也分配了2M 字节的地址范围,从3.5GB 地址点开始。每个VPB 外设在VPB 地址
6、空间内都分配了16k 字节地址空间。2.1.1 LPC2106的特性LPC2106拥有以下多种特性:(1)ARM7TDMI-S处理器 (2)128k字节片内Flash程序存储器,具有ISP 和IAP 功能。 (3)Flash编程时间:1ms 可编程512 字节,扇区擦除或整片擦除只需400ms 。 (4)64/32/16K 字节静态RAM(LPC2106) (5)向量中断控制器 (6)仿真跟踪模块,支持实时跟踪 (7)RealMonitor模块支持实时调试 (8)标准ARM测试/ 调试接口,兼容现有工具 (9)极小封装:TQFP48 (77mm2) (10)双UART,其中一个带有完全的调制解
7、调器接口 (11)I2C 串行接口 (12)SPI 串行接口 (13)两个定时器,分别具有4 路捕获/ 比较通道 (14)多达6 路输出的PWM 单元 (15)实时时钟 (16)看门狗定时器 (17)通用I/O 口 (18)CPU 操作频率可达60MHz (19)双电源 CPU 操作电压范围:1.65V1.95V(1.8V 8.3%) I/O 电压范围:3.0V3.6V(3.3V 10%) (20)两个低功耗模式:空闲和掉电 (21)通过外部中断将处理器从掉电模式中唤醒 (22)外设功能可单独使能/ 禁止,实现功耗最优化 (23)片内晶振的操作频率范围:10MHz25MHz (24)片内PLL
8、 允许CPU 以最大速度运行,可以在超过整个晶振操作频率范围的情况下使用。由于拥有以上特性,LPC2106适用于internet 网关、串行通信协议转换器、访问控制、工业控制、医疗设备及其它各种类型的应用。2.2 芯片LM016L简介2.2.1液晶显示原理液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。2.2.2 LCD相关参数(1)LM016L LCD主要技术参数:显示容量: 162个字符
9、芯片工作电压: 4.55.5V工作电流: 2.0mA(5.0V)模块最佳工作电压: 5.0V字符尺寸: 2.954.35(WH)mm(2)引脚功能说明:LM016LLCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表1所示:表2-1 引脚接口说明表编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶
10、显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。(3)LM016LLCD的指令说
11、明及时序:LM016L液晶模块内部的控制器共有11条控制指令,如表2所示:表2-2 控制命令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容LM016L液晶模块的读写操作
12、、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置。 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令
13、 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址。 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。第三章 软件选择3.1 Proteus Version 7.5简介Proteus软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目
14、前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。在Proteus绘
15、制好原理图后,调入已编译好的目标代码文件:*.hex(或者*.axf),可以在Proteus的原理图中看到模拟的实物运行状态和过程。Proteus不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。3.2 RealView MDK简介RealView MDK(RealView Microcontroller Development
16、 Kit)开发套件源自德国Keil公司,被全球超过10万的嵌入式开发工程师验证和使用,是ARM公司目前最新推出的针对各种嵌入式处理器的软件开发工具。RealView MDK集成了业内最领先的技术,融合了中国多数软件开发工程师所需的特点和功能。包括Vision集成开发环境与 RealView编译器,支持ARM7、ARM9和最新的Cortex-M3核处理器,自动配置启动代码,集成Flash烧写模块,强大的Simulation设备模拟,性能分析等功能。3.2.1 RealView MDK的特点(1)自动生成启动代码:RealView MDK开发工具可以帮您自动生成完善的启动代码,并提供图形化的窗口,
17、随您轻松修改。无论对于初学者还是有经验的开发工程师,都能大大节省时间,提高开发效率。(2)提供软件模拟器:RealView MDK的设备模拟器可以仿真整个目标硬件,包括快速指令集仿真、外部 信号和I/O仿真、中断过程仿真、片内所有外围设备仿真等。开发工程师在无硬件的情况下即可开始软件开发和调试,使软硬件开发同步进行,大大缩短开发周期。而一般的ARM开发工具仅提供指令集模拟器,只能支持ARM内核模拟调试。(3)提供性能分析器:RealView MDK的性能分析器可以让工程师看得更远和更准,它辅助您查看代码覆盖情况,程序运行时间,函数调用次数等高端控制功能,指导您轻松的进行代码优化,成为嵌入式开发
18、高手。通常这些功能只有价值数千美元的昂贵的Trace工具才能提供。(4)支持Cortex-M3:RealView MDK支持的Cortex-M3核是ARM公司最新推出的针对微控制器应用的内核,它提供业领先的高性能和低成本的解决方案,未来几年将成为MCU应用的热点和主流。目前国内只有ARM公司的MDK和RVDS开发工具可以支持CortexM3芯片的应用开发。第四章 课程设计4.1 电路设计4.1.1 Proteus创建工程步骤打开ISIS 7 Professional软件,单击鼠标左键新建New File(From Default Template)如图4-1工程新建显示位置框图所示。图4-1
19、工程新建显示位置框图然后点击保存Save Design,如图4-2工程保存显示位置框图所示。图4-2工程保存显示位置框图弹出对话框,选择你已经建好的文件夹,在这里我的文件夹已经建好,起的名字叫LCD_DSN,然后再给项目起个名字也叫LCD_DSN,最后点击确定。如图4-3 保存位置选择框图所示图4-3保存位置选择框图4.1.2 元件选择现在就可以进行电路图的制作了。现在我们来画电路图,先点击左侧的Component Mode,如图4-4模块组件框图所示。图4-4模块组件框图然后双击下方空白处,就会弹出一个Pick Devices对话框,如图4-5元器件选择框图所示。图4-5元器件选择框图然后在
20、Keywords下的空格中搜索LM016L,在右边的窗口中双击相应的LM016L元器件,即可加入到元器件模板中。同理可加入LPC2106元器件。如图4-6元器件添加框图所示。图4-6元器件添加框图单击选中元器件LM016L,在右窗体中单击鼠标左键,确定元器件想要放的位置,然后再次单击鼠标左键。元器件即可出现在所想要放置的位置上。同理放置元器件LPC2106。完成后如图4-7元器件摆放显示框图所示。图4-7元器件摆放显示框图LM016L芯片可以用于显示两行,每行十六个字符,可以是字母、数字和简单日文。芯片工作电压:4.55.5V,工作电流:2.0mA(5.0V),模块最佳工作电压:5.0V,字符
21、尺寸:2.954.35(WH)mm。4.1.3 电路效果图系统电路图如图4-8系统电路图所示。图4-8 系统电路图电路元件LPC2106通过P0.0P0.10和LM016L连接起来。其中,P0.0P0.7是用来传送数据、地址和控制信号指令,至于什么时候传数据、地址和控制信号指令,用P0.8P0.10来进行选择。4.2 程序设计4.2.1 RealView MDK创建工程过程打开Keil uVision4软件,单击菜单项Project中的New uVision Project项,如图4-9工程新建指示框图所示。图4-9工程新建指示框图然后弹出对话窗Create New Project,选择已新建
22、好的文件夹,文件夹名为LCD_PRO,然后再建工程名为LCD_PRO,点击保存。如图4-10工程新建位置框图所示。图4-10工程新建位置框图然后弹出对话框Select Device For Target,选择飞利浦公司的LPC2106芯片,点击确认,并加载启动代码。如图4-11芯片仿真选择框图所示图4-11芯片仿真选择框图注意,在完成工程的建立以后,单击鼠标右键点工程,选择Options for Target LCDTarget,在弹出的对话框中,选择Output选项卡,将Create HEX file选中,并点击Select Folder for Object选择你生成的文件所要放置的目录中
23、。如图4-12选项设置框图所示。图4-12选项设置框图4.2.2 功能函数在程序中我使用了几个功能函数,函数如下:函数名称:ChkBusy(),函数主要功能:检查总线是否忙void ChkBusy() IODIR=0x700; /先设置方向使P0.8P0.10输出,使P0.0P0.7输入 while(1) /循环语句 IOCLR=rs; /选择 IOSET=rw; /选择读方式 IOSET=en; if(!(IOPIN & busy)break; IOCLR=en; IODIR=0x7ff;/*函数名称:WrOp(),函数功能为:写指令函数void WrOp(uint8 dat) ChkBus
24、y(); /检查LCD是否繁忙 IOCLR=rs; /全部清零 IOCLR=rw; /设置读写方式为读 IOCLR=0xff; /先清零 IOSET=dat; /再送数 IOSET=en; /使能,让置位寄存器开始工作 IOCLR=en; /使能,让清零寄存器开始工作函数名称:WrDat(),函数功能为:写数据函数void WrDat(uint8 dat) ChkBusy(); /检查LCD是否繁忙 IOSET=rs; /置位控制选择 IOCLR=rw; /清零寄存器选择读 IOCLR=0xff; /先清零 IOSET=dat; /再送数 IOSET=en; /使能,让置位寄存器开始工作 IO
25、CLR=en; /使能,让清零寄存器开始工作函数名称:lcd_init(),函数功能为:lcd初始化函数void lcd_init(void) WrOp(0x38); WrOp(0x06); /光标加1 WrOp(0x0c); /开显示函数名称:DisText(),函数功能为:显示文本函数void DisText(uint8 addr,uint8 *p) int a = 16; /定义一个变量 WrOp(0x80); /告诉LCD从0x80地址开始 while(a-)WrDat(0); /将数据重新刷一遍,清空 WrOp(addr); /告诉LCD要写数据的起始地址 while(*p !=0)
26、WrDat(*(p+); /从起始地址开始,将数据一个字符一个字符写入函数名称:time(),函数功能为:延时void time() int i = 100000; for(;i = 0; i-);4.2.3 主函数函数名称:main(),函数功能为:显示文本int main(void) int i; uint8 *p= helloworld, helloworld , helloworld , helloworld , helloworld , helloworld ,helloworld ; lcd_init(); IODIR=0x7ff; /设置为输出 IOCLR=0x7ff; whil
27、e(1) DisText(0x80,p0); for(i=0;i0x1ffff;i+); DisText(0x80,p1); for(i=0;i0x1ffff;i+); DisText(0x80,p2); for(i=0;i0x1ffff;i+); DisText(0x80,p3); for(i=0;i0x1ffff;i+); DisText(0x80,p4); for(i=0;i0x1ffff;i+); DisText(0x80,p5); for(i=0;i0x1ffff;i+); 第五章 设计结果5.1 编译结果下面是对于实验源程序的编译结果。如图5-1编译结果显示框图所示。图5-1编译结
28、果显示框图5.2 设计效果设计效果是字符串进行从左往右一个一个的先出现在屏幕上,并渐渐移动到最右端,然后再一个一个的消失。并再从右向左一个一个的出现,再移动到最左端,并消失。然后,如此反复进行。其效果如以下图5-2所示。图5-2 设计效果显示框图参考文献1周立功ARM嵌入式基础教程北京航空航天大学出版社2008年9月第2版2周润景PROTEUS在MCS-51&ARM7系统中的应用百例电子工业出版社.2006年10月第一版附录File: main.c* 功能:向LCD输出HelloWorld*/#include config.h#define rs (18)#define rw (19)#define en (110)#define busy (17)/* 名称:ChkBusy()* 功能:检查总线是否忙*/void ChkB
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1