ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:237.26KB ,
资源ID:22160372      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22160372.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(完美升级版基于ARM7的LCD显示电路仿真毕业论文Word文档格式.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

完美升级版基于ARM7的LCD显示电路仿真毕业论文Word文档格式.docx

1、近年来,随着计算机技术及集成电路技术的发展,嵌入式技术日渐普及,在通讯、网络、工控、医疗、电子等领域发挥着越来越重要的作用。嵌入式系统无疑成为当前最热门最有发展前途的IT应用领域之一。液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。通过显示器同步显示元器件的状态可以更深刻地理解控制的原理。通过Proteus模拟ARM7芯片设计,可以增强我们的自学能力和思考能力,掌握科学研究的方法,提高信息检索的能力以及获取与时俱进知识的能力。同时,使我们深刻学习了ARM的相关知识,增强对实际电路的感性认识,提高了分析问题,处理问题的能力。运用

2、Keil编译C语言,连接生成Hex文件,使用PROTEUS 7.8SP2仿真,选用ARM7 LPC2106 芯片和LM016L,导入Hex文件,然后进行软件仿真调试。本学期我专业开设了嵌入式系统课程设计这门课程,是嵌入式系统课程的辅助教学课程。通过课程设计,进一步掌握嵌入式ARM的基本概念,结合实际的操作和设计,巩固课堂教学内容,此外也让我们进一步掌握嵌入式系统的基本概念、原理和技术,将理论与实际相结合,应用现有的仿真工具和嵌入式软件开发平台,规范、科学地完成一个小型LCD显示电路的设计与实现,把理论课与实验课所学内容统一起来,并在此基础上强化实践意识、提高其实际动手能力和创新能力。第二章 芯

3、片介绍2.1芯片LPC2106简介LPC2106包含一个支持仿真的ARM7TDMI-S CPU、与片内存储器控制器接口的ARM7 局部总线、与中断控制器接口的AMBA高性能总线(AHB)和连接片内外设功能的VLSI外设总线(VPB ,ARMAMBA 总线的兼容超集)。LPC2106将ARM7TDMI-S配置为小端(little-endian)字节顺序。 AHB外设分配了2M 字节的地址范围,它位于 4G字节ARM存储器空间的最顶端。每个 AHB外设都分配了16k 字节的地址空间。LPC2106的外设功能(中断控制器除外)都连接到VPB 总线。AHB到VPB 的桥接将VPB 总线与AHB总线相连

4、。VPB 外设也分配了2M 字节的地址范围,从3.5GB 地址点开始。每个VPB 外设在VPB 地址空间内都分配了16k 字节地址空间。2.1.1 LPC2106的特性LPC2106拥有以下多种特性:(1)ARM7TDMI-S处理器 (2)128k字节片内Flash程序存储器,具有ISP 和IAP 功能。(3)Flash编程时间:1ms 可编程512 字节,扇区擦除或整片擦除只需400ms 。(4)643216K 字节静态RAM(LPC2106) (5)向量中断控制器 (6)仿真跟踪模块,支持实时跟踪 (7)RealMonitor模块支持实时调试 (8)标准ARM测试 调试接口,兼容现有工具

5、(9)极小封装:TQFP48 (77mm2) (10)双UART,其中一个带有完全的调制解调器接口 (11)I2C 串行接口 (12)SPI 串行接口 (13)两个定时器,分别具有4 路捕获 比较通道 (14)多达6 路输出的PWM 单元 (15)实时时钟 (16)看门狗定时器 (17)通用IO 口 (18)CPU 操作频率可达60MHz (19)双电源 CPU 操作电压范围:1.65V1.95V(1.8V 8.3%) IO 电压范围:3.0V3.6V(3.3V 10%) (20)两个低功耗模式:空闲和掉电 (21)通过外部中断将处理器从掉电模式中唤醒 (22)外设功能可单独使能 禁止,实现功

6、耗最优化 (23)片内晶振的操作频率范围:10MHz25MHz (24)片内PLL 允许CPU 以最大速度运行,可以在超过整个晶振操作频率范围的情况下使用。由于拥有以上特性,LPC2106适用于internet 网关、串行通信协议转换器、访问控制、工业控制、医疗设备及其它各种类型的应用。2.2 芯片LM016L简介2.2.1液晶显示原理液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。2.2.

7、2 LCD相关参数(1)LM016L LCD主要技术参数:显示容量: 162个字符芯片工作电压: 4.55.5V工作电流: 2.0mA(5.0V)模块最佳工作电压: 5.0V字符尺寸: 2.954.35(WH)mm(2)引脚功能说明:LM016LLCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表1所示:表2-1 引脚接口说明表编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D33VL液晶显示偏压11D44RS数据命令选择12D55RW读写选择13D66E使能信号14D77D015BLA背光源正极8D116BLK背光源负极第1脚:VSS为地电源。第2脚:VDD

8、接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。(3)L

9、M016LLCD的指令说明及时序:LM016L液晶模块内部的控制器共有11条控制指令,如表2所示:表2-2 控制命令表序号指令清显示光标返回*置输入模式IDS显示开关控制DCB光标或字符移位SCRL置功能DLNF置字符发生存贮器地址字符发生存贮器地址置数据存贮器地址显示数据存贮器地址读忙标志或地址BF计数器地址写数到CGRAM或DDRAM)要写的数据内容从CGRAM或DDRAM读数读出的数据内容LM016L液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。

10、指令3:光标和显示模式设置。 ID:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 SC:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器

11、RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址。 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。第三章 软件选择3.1 Proteus Version 7.5简介Proteus软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的ED

12、A工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、IAR、Keil和MPLAB等多种编译器。在Proteus绘制好原理图后,调入已编译好的目标代码文件:*.,如图4-2工程保存显示位置框图所示。图4-2工程保存显示位置框图弹出对话框,选择你已经建好的文件夹,在这里我的文件夹已经建好,起的名字叫LCD_DSN,然后再给项目起个名字也叫LCD_DSN,最后点击确定。如图4-3 保存位置选择框图所示图4-3保

13、存位置选择框图4.1.2 元件选择现在就可以进行电路图的制作了。现在我们来画电路图,先点击左侧的Component Mode,如图4-4模块组件框图所示。图4-4模块组件框图然后双击下方空白处,就会弹出一个Pick Devices对话框,如图4-5元器件选择框图所示。图4-5元器件选择框图然后在Keywords下的空格中搜索LM016L,在右边的窗口中双击相应的LM016L元器件,即可加入到元器件模板中。同理可加入LPC2106元器件。如图4-6元器件添加框图所示。图4-6元器件添加框图单击选中元器件LM016L,在右窗体中单击鼠标左键,确定元器件想要放的位置,然后再次单击鼠标左键。元器件即可

14、出现在所想要放置的位置上。同理放置元器件LPC2106。完成后如图4-7元器件摆放显示框图所示。图4-7元器件摆放显示框图LM016L芯片可以用于显示两行,每行十六个字符,可以是字母、数字和简单日文。4.55.5V,工作电流:2.0mA(5.0V),模块最佳工作电压:5.0V,字符尺寸:2.95H)mm。4.1.3 电路效果图系统电路图如图4-8系统电路图所示。图4-8 系统电路图电路元件LPC2106通过P0.0P0.10和LM016L连接起来。其中,P0.0P0.7是用来传送数据、地址和控制信号指令,至于什么时候传数据、地址和控制信号指令,用P0.8P0.10来进行选择。4.2 程序设计4

15、.2.1 RealView MDK创建工程过程打开Keil uVision4软件,单击菜单项Project中的New uVision Project项,如图4-9工程新建指示框图所示。图4-9工程新建指示框图然后弹出对话窗Create New Project,选择已新建好的文件夹,文件夹名为LCD_PRO,然后再建工程名为LCD_PRO,点击保存。如图4-10工程新建位置框图所示。图4-10工程新建位置框图然后弹出对话框Select Device For Target,选择飞利浦公司的LPC2106芯片,点击确认,并加载启动代码。如图4-11芯片仿真选择框图所示图4-11芯片仿真选择框图注意,

16、在完成工程的建立以后,单击鼠标右键点工程,选择Options for Target LCDTarget,在弹出的对话框中,选择Output选项卡,将Create HEX file选中,并点击Select Folder for Object选择你生成的文件所要放置的目录中。如图4-12选项设置框图所示。图4-12选项设置框图4.2.2 功能函数在程序中我使用了几个功能函数,函数如下:函数名称:ChkBusy(),函数主要功能:检查总线是否忙void ChkBusy() IODIR=0x700; 先设置方向使P0.8P0.10输出,使P0.0P0.7输入 while(1) 循环语句 IOCLR=r

17、s; 选择 IOSET=rw; 选择读方式 IOSET=en; if(!(IOPIN & busy)break; IOCLR=en; IODIR=0x7ff;*WrOp(),函数功能为:写指令函数void WrOp(uint8 dat) ChkBusy(); 检查LCD是否繁忙 全部清零 IOCLR=rw; 设置读写方式为读 IOCLR=0xff; 先清零 IOSET=dat; 再送数 使能,让置位寄存器开始工作 使能,让清零寄存器开始工作WrDat(),函数功能为:写数据函数void WrDat(uint8 dat) IOSET=rs; 置位控制选择 清零寄存器选择读lcd_init(),函

18、数功能为: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 !=)WrDat(*(p+); 从起始地址开始,将数据一个字符一个字符写入time(),函数功能为:延时vo

19、id time() int i = 100000; for(;i = 0; i-);4.2.3 主函数main(),函数功能为:显示文本int main(void) int i; uint8 *p= .c* 功能:向LCD输出HelloWorld#include config. (110)#define busy (17)* 名称:ChkBusy()void ChkBusy() while(1) WrOp()void WrOp(uint8 dat) ChkBusy(); IOCLR=rs; IOCLR=rw; IOCLR=0xff; IOSET=dat; IOSET=en; IOCLR=en;

20、WrDat()void WrDat(uint8 dat) IOSET=rs;lcd_init()void lcd_init(void) WrOp(0x38); WrOp(0x06); WrOp(0x0c);DisText()void DisText(uint8 addr,uint8 *p) WrOp(addr); while(*p !main() int i,j,a; ,10783; lcd_init(); 设置为输出 IOCLR=0x7ff; for(j=0;j13;j+) WrDat(*pj); for(i=0;i0x08fff;i+); WrOp(0x01); WrOp(0x04); WrOp(0x8f); WrDat(*p12-j); for(i=0; for(a=0;a15;a+) WrOp(0x1c); *DisText(0x80,p0); for(i=0;0x1ffff; DisText(0x80,p1); DisText(0x80,p2); DisText(0x80,p3); DisText(0x80,p4); DisText(0x80,p5);0x1fff

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1