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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(基于嵌入式系统的LCD广告牌设计.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于嵌入式系统的LCD广告牌设计.docx

1、基于嵌入式系统的LCD广告牌设计电子信息工程学院嵌入式原理课程考核设计报告题目:基于嵌入式系统的LCD广告牌设计专业班级: 2014物联网工程2班姓名: 王一中 学号: 时间: 2016.112016.12 成 绩: 完成日期:2016年12月20日基于嵌入式系统的LCD广告牌设计1.设计目的与要求大街上绚丽多彩的液晶广告牌已经融入到我们生活中了,本学期学习了嵌入式系统原理与应用后,要求设计一个基于嵌入式系统的LCD1602广告牌,该设计要能满足以下要求:(1).在ARM7LPC2103核心板上设计一个LCD广告牌,能显示常见一些字符;(2).采用LCD1602液晶屏,要求能够滚动显示字符;(

2、3).在LCD1602液晶屏上电后第一行显示“Hello!”,第二行显示“Smilence_L”。之后从第一行左侧滚动移入“0123456789ABCDEFGHIGKLMN”,第二行左侧滚动移入“ABCDEFGHIJKLMN987654321”,然后从右侧滚动移出。(4).要求LCD1602液晶屏两行同时滚动显示,显示完后延时一段时间,能够循环显示。2.设计内容2设计内容(1)硬件电路设计及描述,画出电路原理图;(2)确定元器件及型号;(3)软件设计流程及描述;(重点内容)(4)源程序代码(有注释); (5)进行电路模拟仿真;3编写设计报告写出设计的全过程,附录中有图纸及源代码,有心得体会。4

3、答辩在规定时间内,完成叙述并回答问题。基于嵌入式系统的LCD广告牌设计摘要:随着科技的发展,ARM在社会各个方面的应用越来越广。ARM芯片广泛应用于无线产品、PDA、GPS、网络、消费电子产品、STB及智能卡。LPC2103是PHILIPS公司生产的基于ARM7TDMI的RISC微处理器,工作频率可达70MHZ。液晶显示是嵌入式系统中反映系统输入/输出的人机交互界面,液晶显示以其微功耗、体积小、显示内容丰富、模块化,接口电路简单等诸多优点得到广泛应用。我们在看重高性价比的情况下,利用LPC2103的通用I/O口来控制液晶显示屏的软硬件方法,实现了与LCD控制模块一样的功能。关键词:嵌入式系统、

4、LCD、GPIO、数据传输。1 引言嵌入式系统是嵌入到对象体系中的专用计算机系统。以嵌入式计算机为核心的嵌入式系统是继IT网络技术之后,又一个新的技术发展方向。本文以LPC2103为控制核心介绍和设计了一款基于的ARM嵌入式系统的LCD显示系统。该系统在功耗、体积、集成度、成本等都有较好的优势,具有一定的实用意义。由于LCD液晶显示器具有功耗低、体积小、重量轻、超薄等诸多其他显示器无法比拟的优点已广泛应用于各种智能型仪表和低功耗电子产品中。液晶显示器分为笔段式、字符点阵式和图形点阵式三种。前两种可显示数字、字符和符号等,而图形点阵式液晶显示器还可以显示汉字和任意图形,达到图文并茂的效果。其应用

5、已越来越广泛。本文以液晶显示器1602为例介绍了液晶显示器的基本原理及在ARM嵌入式系统下的程序设计。2 总体设计方案2.1 设计思路LCD1602广告牌设计采用ARM7微处理器为核心,采用RAM和UART分别存储和传输数据,实现了LPC2103与LCD1602之间的数据传输。首先进行lpc2103进行管脚配置,通过管脚连接模块PINSEL0,PINSEL1设置管脚连接GPIO,但要先进行复位,复位值为0x00000000。设置管脚方向IODIR,也就是输入或者输出,其中对应为1表示输出,为0表示输入。设置高低电平,相关寄存器采用IOSET/IOCLR,IOSET表示让引脚输出1,IOCLR表

6、示让引脚输出0。完成LPC2103管脚的配置后,才可以对它进行操作。液晶屏在LPC2103的控制下进行显示,需要先向液晶屏写入一些显示设置命令,然后再写入显示数据。向液晶屏写入显示设置命令时,先将管脚RS清0。当设置完成后,需要使管脚RS置1以写入显示数据。同时,R/W也接入低电平,数据从液晶屏的管脚DB0-DB7写入。当管脚RS和R/W设置好后,执行对管脚E清零,就会在管脚E上形成一个由高到低的跳变,这个跳变使得命令或显示数据从数据总线DB0-DB7进入液晶屏。在进行程序设计时,对液晶屏的操作设计到写数据和写命令的操作,我们可以将写数据、写命令以及液晶屏显示做成一个函数。我们将要显示的字符存

7、储在数据中,对液晶屏执行初始化操作后,通过调用这些函数,来完成LCD的显示。2.1.1 LCD广告牌显示流程 LCD1602液晶屏广告牌显示流程图如下2.2 程序流程图LCD广告牌设计程序流程图开始ARM微控制器管脚配置液晶屏初始化检测是否繁忙 是否写命令写数据 循环 显 示3 开发环境1.硬件:PC机一台,畅学ARM7LPC2103核心板一块;2.软件:Windows10系统,Keil uVision4、Proteus7.8、Launch LPC210x_ISP开发环境。4 设计原理分析4.1 LPC2103简介LPC2103 是基于一个支持实时仿真的32位ARM7的TDMI-S CPU的微

8、控制器,并带有32kB 嵌入的高速 Flash 存储器。128 位宽度的存储器接口和独特的加速结构使 32 位代码能够在最大时钟速率下运行。对中断服务程序和 DSP 算法中性能要求严格的应用,这增加的性能比在 Thumb 模式下的性能超出多达 30%。对代码规模有严格控制的应用,使用 16 位 Thumb 模式将代码规模降低超过 30%,而性能的损失却很小。较小的封装和很低的功耗使 LPC2103 特别适用于访问控制和 POS 机等小型应用中;由于内置了宽范围的串行通信接口(范围从多个 UART、SPI 和 SSP 到两条 I 2 C 总线)和 8kB 的片内 SRAM,它们也非常适合于通信网

9、关和协议转换器。高级性能还使这些器件适合用作数学协处理器。多个 32 位和 16 位定时器、1 个改良的 10 位 ADC、所有定时器上输出匹配的 PWM 特性、以及具有多达 13 个边沿或电平触发的外部中断管脚的32条高速 GPIO 线,使这些微控制器特别适用于工业控制和医疗系统中。(1).特性32 位 ARM7 TDMI-S 微控制器,超小 LQFP48 封装。8kB 的片内静态 RAM 和 8kB/16kB/32kB 的片内 Flash 程序存储器。128位宽度接口/加速器可实现高达 70 MHz 工作频率。通过片内 boot 装载程序实现在系统/在应用编程(ISP/IAP)。单个 Fl

10、ash 扇区或整片擦除时间为 100ms。256 字节编程时间为 1ms。嵌入式 ICERT通过片内 RealMonitor 软件提供实时调试。10 位 A/D 转换器提供 8 路模拟输入(每个通道的转换时间低至 2.44us),以及特定的结果寄存器来最大限度地减少中断开销。2 个 32 位定时器/外部事件计数器(带7路捕获和7路比较通道)。2 个 16 位定时器/外部事件计数器(带 3 路捕获和 7 路比较通道)。低功耗实时时钟(RTC)具有独立的电源和特定的 32kHz 时钟输入。多个串行接口,包括2个UART(16C550)、2 个高速 I 2 C 总线(400 kbit/s)、SPI

11、和具有缓冲作用和数据长度可变功能的 SSP。向量中断控制器(VIC),可配置优先级和向量地址。多达 32 个通用 I/O 口(可承受 5V 电压)。多达 13 个边沿或电平触发的外部中断管脚。通过一个可编程的片内 PLL(100us 的设置时间)可实现最大为 70MHz 的 CPU 操作频率,其具有 10MHz25MHz 的输入频率。片内集成振荡器与外部晶体的操作频率范围为 125MHz。低功耗模式包括空闲模式、掉电模式和带有效 RTC 的掉电模式。可通过个别使能/禁止外围功能和外围时钟分频来优化额外功耗。通过外部中断或 RTC 将处理器从掉电模式中唤醒。(2).结构简介LPC2103包含一个

12、支持仿真的 ARM7TDMI-S CPU,片内存储器控制器接口的ARM7局部总线,中断控制器接口的 AMBA 先进高性能总线(AHB)和连接片内外设功能的ARM 外设总线(APB,ARM AMBA 先进外设总线的兼容超集)。LPC2103 将 ARM7TDMI-S 处理器配置为小端字节顺序。AHB 外设分配了 2M 字节的地址范围,它位于 4G 字节 ARM 存储器空间的最顶端。每个AHB 外设都在 AHB 地址空间内分配了 16k 字节的地址空间。LPC2103 的外设功能(中断控制器除外)都连接到 APB 总线。AHB 到 APB 的桥将 APB 总线与 AHB 总线相连。APB 外设也分

13、配了 2M 字节的地址范围,从 3.5G 字节地址点开始。每个 APB 外设在 APB地址空间内都分配了 16k 字节地址空间。(3).LPC2103存储器系统片内Flash存储器系统:LPC2103含有32kB Flash 存储器系统。该存储器可用作代码和数据的存储。对FLASH存储器的编程可通过几种方法来实现:使用内置的串JTAG接口、使用在系统编程(ISP)和 UART、使用在应用编程(IAP)功能、使用IAP功能的应用程序也可以在应用程序运行时对 Flash 进行擦除和/或编程。片内静态 RAM(SRAM):片内静态RAM(SRAM)可用作代码和/或数据的存储,它支持32位的访问。LP

14、C2103含有8kB的静态 RAM。LPC2103 SRAM 可作为一个字节寻址的存储器访问。对存储器进行字和半字访问时将忽略地址对准,并访问被寻址的自然对准值(因此,对存储器进行字访问时将忽略地址位0和1,半字访问时将忽略地址位 0)。因此,有效的读写操作要求半字数据访问的地址线 0 为 0(地址以 0、2、4、6、8、A、C 和 E 结尾),字数据访问的地址线0和1都为0地址(以0、4、8 和 C 结尾)。该原则同样用于片外和片内存储器。SRAM 控制器包含一个回写缓冲区,它用于防止 CPU 在连续的写操作时停止运行。回写缓冲区总是保存着软件发送到 SRAM 的最后一个字节。该数据只有在软

15、件请求下一次写操作时才写入 SRAM(数据只有在软件执行另外一次写操作时被写入 SRAM)。如果发生芯片复位,实际的 SRAM 内容将不会反映最近一次的写请求(即:在一次“热”芯片复位后,SRAM 不会反映最后一次写入的内容)。任何在复位后检查 SRAM 内容的程序都必须注意这一点。通过对一个单元执行两次相同的写操作可保证复位后数据的写入。或者,也可通过在进入空闲或掉电模式前执行虚写(dummy write)操作来保证最后的数据在复位后被真正写入到SRAM。(4).晶体振荡器LPC2103板上振荡器电路仅支持 1MHz25MHz 的外部晶振。如果片内 PLL 系统或引导装载程序被使用,那么输入

16、时钟频率将被限制到 10MHz25MHz。LPC2103 的振荡器可工作在两种模式下:从属模式和振荡模式。从属模式下,输入时钟信号与一个 100pF 的电容(图 6 的 Cc,a 图)相连,其幅值至少为 200mVrms。该配置下的 X2 管脚不连接。如果选择从属模式,Fosc 信号(占空比为 50-50)的频率被限制在 1MHz50MHz。如果选择器件的振荡器模式为板上振荡模式,那么 Fosc 时钟限制在 1MHz30MHz。(5).外部中断输入LPC2103 含有3个外部中断输入(作为可选的管脚功能)。当组合管脚时,外部事件可作为3个独立的中断信号处理。外部中断输入可用于将处理器从掉电模式

17、中唤醒。此外,所有 10 个捕获输入还可以用作外部中断而无需将器件从掉电模式中唤醒。4.2 LCD1602显示电路“1602”代表该屏每行最多显示16个字符,能显示两行。显示能容可以是英文大小写字母、数字、标点符号、常用符号等。1602液晶屏上通常有16个管脚,其背面会看到驱动电路。在液晶屏的显示区域中还安装有光源器件,称之为液晶屏的背光,用来照亮显示屏。(1). LCD1602接口信号说明表:(2).LCD102原理图 (3).RAM地址映射区(4).LCD1602指令表命令代码(D7-D0)命令命令功能说明01H清屏清除液晶屏的显示数据02H归位光标、画面回到起始位置04H光标左移光标左移

18、1位05H画面右移显示画面右移06H光标右移光标向右移动一位07H画面左移画面向左移动08H关闭显示显示、光标、闪烁关闭0AH打开光标只打开光标,显示、闪烁关闭0CH打开显示只打开显示,闪烁、光标关闭0EH光标不闪烁打开光标,光标不闪烁0FH光标闪烁打开显示和光标、光标闪烁10H光标位置左移光标的位置向左移动14H光标位置右移光标位置向右移动18H整个画面左移整个显示画面向左移动1位1CH整个画面右移整个显示画面向右移动1位38H显示设定设定显示为2行,5*7的点阵80H光标回到第一行开头强制光标回到第一行开头C0H光标回到第二行开头强制光标回到第二行开头(5).LCD1602基本操作时序读状

19、态 输入:RS=L,R/W=H,E=H 输出:D0D7=状态字。读数据 输入: RS=H,R/W=H,E=H 输出:无。写指令 输入:RS=L,R/W=L,D0-D7=指令码,E=高脉冲 输出:D0-D7=数据。写数据 输入:RS=H,R/W=L,D0-D7=数据,E=高脉冲 输出:无。5 系统测试下面为实物效果图: 6 总结与体会作为一名物联网工程专业的大三学生,我觉得学好嵌入式是十分有意义的,而且是十分必要的。在已度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?如何把我们所学的专业基础课理论知识运用到实践中去呢?而传统的期末理

20、论考试无法让我们真正理解嵌入式系统,这次嵌入式系统的课程考核改革就为我们提供了良好的实践平台,将理论付诸于实践。在这次ARM嵌入式系统原理期末课程考核中,我设计的题目是基于嵌入式系统的LCD广告牌设计。通过这次设计,我对ARM嵌入式系统尤其是嵌入式系统程序设计有了初步的了解,同时知识面也进一步得到了扩展和加深。由于以前一直学的是51单片机,对于嵌入式的学习也只停留在理论上,甚至都没有见过真正的ARM芯片。刚开始做嵌入式作品时,我拿到一块ARM7-LPC2103核心板时也是一头雾水,翻开芯片手册,只感觉ARM的管脚配置和寄存器配置和我之前学过的51有很大差别,感觉似懂非懂。但既然拿到了板子就要把

21、嵌入式的作品做出来。在做本次嵌入式作品的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。我们是在做作品,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。其次,在这次课程设计中,我们运用到了以前所学的专业课知识,如:Proteus仿真、C语言、模拟和数字电路知识等,并且也熟悉了keil环境下开发ARM的过程。虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次嵌入式作品后的又一收获。要做好一个作

22、品,就必须做到:在设计程序之前,对所用微控制器的内部结构有一个系统的了解,知道该控制器内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路。要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计作品过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。虽然作品做出来了,但是从中学到的知识会让我受益终身。参考文献1 胡汉才单片机原理及系统设计M .北京:清华大学出版社,2012.2

23、王守中. 51单片机开发入门与典型实例M.北京:人民邮电出版社,2007.3 陈雪丽. 单片机原理及接口技术M.北京:化学工业出版社, 2005.4 薛均义,张彦斌.MCS-51系列单片微型计算机及其应用.西安:西安交通大学出版社,2008.5 唐颖,程菊花,任条娟.单片机原理与应用及C51程序设计M.北京:北京大学出版社,20116钟勇,范森海,王永辉.高速公路事故的诱因及预防对策J.公路交通科技.2010(6).7郑安国.我国高速公路交通事故的基本特点与预防对策J.公路交通科技学报.2012(4).8陈晓东.郑建祥汽车用微机可靠性试验研究J.汽车与电器.2009(增刊).9周立功.发展有限

24、公司.P89V51RD2器件手册.2013.3.附录1:电路图附录2:源代码设计#includelpc2103.h#define uchar unsigned char#define BUSY 111 #define RS 112#define RW 113#define EN 10;c-) for (b=38;b0;b-) for (a=130;a0;a-); void delay(uchar c) uchar a, b; for (;c0;c-) for (b=200;b0;b-) for (a=220;a0;a-); /*液晶屏繁忙检测*/void checkbusy() IODIR=0

25、x0000b000; /将P012,P013,P015设置为输出口 while(1) IOCLR|=RS; /RS管脚清零,选择命令 IOSET|=RW; /RW管脚置1,选择读 IOSET|=EN; /EN管脚置1,使能端打开 if(!(IOPIN & BUSY) /LCD1602的D0-D7中,D7=1为忙碌,0为空闲 break; else Delay10ms(1); IOCLR|=EN; IODIR=0x0000bff0; /设置P0.4-P0.13,及P015为输出/*写命令操作函数*/void lcd_wcom(uchar com) checkbusy(); /在写命令之前检测液晶

26、屏是否繁忙 IOCLR|=RS; /RS管脚清零,选择命令 IOCLR|=RW; /RW管脚清零,选择写操作 IOCLR|=0x00000ff0; /对D0-D7清零,防止因之前写入数据或命令产生干扰 Delay10ms(1); IOSET|=(com4); /对D0-D7写入命令 Delay10ms(1); IOSET|=EN; /EN管脚置1 Delay10ms(1); IOCLR|=EN; /EN管脚清零/*写数据操作函数*/void lcd_wdat(uchar dat) checkbusy(); /检测液晶屏是否繁忙 IOSET|=RS; /RS管脚置1 IOCLR|=RW; /RW

27、管脚清零 IOCLR|=0x00000ff0; /对D0-D7清零,防止因之前写入数据或命令产生干扰 Delay10ms(1); IOSET|=(dat4); /对D0-D7写入数据 Delay10ms(1); IOSET|=EN; /EN管脚置1 Delay10ms(1); IOCLR|=EN; /EN管脚清零/*液晶屏初始化*/void lcd_init() lcd_wcom(0x38); /显示设定,显示为两行,5*7点阵 lcd_wcom(0x0c); /打开显示 lcd_wcom(0x06); /光标右移/*滚动显示函数*/void riverlcd() uchar LA1=0x80

28、,LA2=0xc0,n=0; for(;n15 & n24) lcd_wcom(0x18); /写满16个字符后,整个画面左移,达到滚动显示效果 void main() uchar i=0; PINSEL0=0x00000000; /PINSEL0复位 PINSEL1=0x00000000; /PINSEL1复位 IODIR=0x0000bff0; /设置P0.4-P0.13,及P015为输出 Lcd_init(); /液晶屏初始化 lcd_wcom(0x85); /从第一行第六位开始显示 for(;i16;i+) if(i=6) lcd_wcom(0xc5); /从第二行第六位开始显示 lcd_wdat(helloi); delay(220); while(1) /循环滚动显示 delay(200); lcd_wcom(0x01); /清屏 delay(100); riverlcd(); /调用滚动显示函数

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

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