找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3212|回复: 0
收起左侧

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

[复制链接]
ID:328014 发表于 2018-6-30 04:24 | 显示全部楼层 |阅读模式
电子信息工程学院
《嵌入式原理》课程考核
设计报告
题目:基于嵌入式系统的LCD广告牌设计


专业班级: 2014物联网工程2






基于嵌入式系统的LCD广告牌设计
1.设计目的与要求

大街上绚丽多彩的液晶广告牌已经融入到我们生活中了,本学期学习了《嵌入式系统原理与应用》后,要求设计一个基于嵌入式系统的LCD1602广告牌,该设计要能满足以下要求:

(1).在ARM7—LPC2103核心板上设计一个LCD广告牌,能显示常见一些字符;

(2).采用LCD1602液晶屏,要求能够滚动显示字符;

(3).在LCD1602液晶屏上电后第一行显示“Hello!”,第二行显示“Smilence_L”。之后从第一行左侧滚动移入“0123456789ABCDEFGHIGKLMN”,第二行左侧滚动移入“ABCDEFGHIJKLMN987654321”,然后从右侧滚动移出。

(4).要求LCD1602液晶屏两行同时滚动显示,显示完后延时一段时间,能够循环显示。

2.设计内容

2.设计内容
(1)硬件电路设计及描述,画出电路原理图;
(2)确定元器件及型号;
(3)软件设计流程及描述;(重点内容)
(4)源程序代码(有注释);
(5)进行电路模拟仿真;
3.编写设计报告
写出设计的全过程,附录中有图纸及源代码,有心得体会。
4.答辩

在规定时间内,完成叙述并回答问题。





目录


摘要

1 引言

2 总体设计方案

2.1 设计思路

2.2 程序流程图

3 开发环境

4 设计原理分析

4.1 LPC2103简介

4.2 LCD1602显示电路

5 系统测试

6 总结与体会

参考文献

附录1:电路图

附录2:源代码设计

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


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


1 引言

嵌入式系统是嵌入到对象体系中的专用计算机系统。以嵌入式计算机为核心的嵌入式系统是继IT网络技术之后,又一个新的技术发展方向。本文以LPC2103为控制核心介绍和设计了一款基于的ARM嵌入式系统的LCD显示系统。该系统在功耗、体积、集成度、成本等都有较好的优势,具有一定的实用意义。

由于LCD液晶显示器具有功耗低、体积小、重量轻、超薄等诸多其他显示器无法比拟的优点已广泛应用于各种智能型仪表和低功耗电子产品中。液晶显示器分为笔段式、字符点阵式和图形点阵式三种。前两种可显示数字、字符和符号等,而图形点阵式液晶显示器还可以显示汉字和任意图形,达到图文并茂的效果。其应用已越来越广泛。本文以液晶显示器1602为例介绍了液晶显示器的基本原理及在ARM嵌入式系统下的程序设计。

2 总体设计方案
2.1 设计思路

LCD1602广告牌设计采用ARM7微处理器为核心,采用RAM和UART分别存储和传输数据,实现了LPC2103与LCD1602之间的数据传输。首先进行lpc2103进行管脚配置,通过管脚连接模块PINSEL0,PINSEL1设置管脚连接GPIO,但要先进行复位,复位值为0x00000000。设置管脚方向IODIR,也就是输入或者输出,其中对应为1表示输出,为0表示输入。设置高低电平,相关寄存器采用IOSET/IOCLR,IOSET表示让引脚输出1,IOCLR表示让引脚输出0。完成LPC2103管脚的配置后,才可以对它进行操作。

液晶屏在LPC2103的控制下进行显示,需要先向液晶屏写入一些显示设置命令,然后再写入显示数据。向液晶屏写入显示设置命令时,先将管脚RS清0。当设置完成后,需要使管脚RS置1以写入显示数据。同时,R/W也接入低电平,数据从液晶屏的管脚DB0-DB7写入。当管脚RS和R/W设置好后,执行对管脚E清零,就会在管脚E上形成一个由高到低的跳变,这个跳变使得命令或显示数据从数据总线DB0-DB7进入液晶屏。

在进行程序设计时,对液晶屏的操作设计到写数据和写命令的操作,我们可以将写数据、写命令以及液晶屏显示做成一个函数。我们将要显示的字符存储在数据中,对液晶屏执行初始化操作后,通过调用这些函数,来完成LCD的显示

2.1.1 LCD广告牌显示流程

      LCD1602液晶屏广告牌显示流程图如下

2.2 程序流程图

LCD广告牌设计程序流程图



3 开发环境

1.硬件:PC机一台,畅学ARM7—LPC2103核心板一块;

2.软件:WINDOWS10系统,KEIL UVISION4、PROTEUS7.8、LAUNCH LPC210X_ISP开发环境。

4 设计原理分析4.1 LPC2103简介

LPC2103 是基于一个支持实时仿真的32位ARM7的TDMI-S CPU的微控制器,并带有32kB 嵌入的高速 Flash 存储器。128 位宽度的存储器接口和独特的加速结构使 32 位代码能够在最大时钟速率下运行。对中断服务程序和 DSP 算法中性能要求严格的应用,这增加的性能比在 Thumb 模式下的性能超出多达 30%。对代码规模有严格控制的应用,使用 16 位 Thumb 模式将代码规模降低超过 30%,而性能的损失却很小。

较小的封装和很低的功耗使 LPC2103 特别适用于访问控制和 POS 机等小型应用中;由于内置了宽范围的串行通信接口(范围从多个 UART、SPI 和 SSP 到两条 I 2 C 总线)和 8kB 的片内 SRAM,它们也非常适合于通信网关和协议转换器。高级性能还使这些器件适合用作数学协处理器。多个 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)。单个 Flash 扇区或整片擦除时间为 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 和具有缓冲作用和数据长度可变功能的 SSP。

向量中断控制器(VIC),可配置优先级和向量地址。

多达 32 个通用 I/O 口(可承受 5V 电压)。

多达 13 个边沿或电平触发的外部中断管脚。

通过一个可编程的片内 PLL(100us 的设置时间)可实现最大为 70MHz 的 CPU 操作频率,其具有 10MHz~25MHz 的输入频率。

片内集成振荡器与外部晶体的操作频率范围为 1~25MHz。

低功耗模式包括空闲模式、掉电模式和带有效 RTC 的掉电模式。

可通过个别使能/禁止外围功能和外围时钟分频来优化额外功耗。

通过外部中断或 RTC 将处理器从掉电模式中唤醒。

(2).结构简介

LPC2103包含一个支持仿真的 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 外设也分配了 2M 字节的地址范围,从 3.5G 字节地址点开始。每个 APB 外设在 APB地址空间内都分配了 16k 字节地址空间。

(3).LPC2103存储器系统

片内Flash存储器系统:LPC2103含有32kB Flash 存储器系统。该存储器可用作代码和数据的存储。对FLASH存储器的编程可通过几种方法来实现:使用内置的串JTAG接口、使用在系统编程(ISP)和 UART、使用在应用编程(IAP)功能、使用IAP功能的应用程序也可以在应用程序运行时对 Flash 进行擦除和/或编程。

片内静态 RAM(SRAM):片内静态RAM(SRAM)可用作代码和/或数据的存储,它支持32位的访问。LPC2103含有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 的最后一个字节。该数据只有在软件请求下一次写操作时才写入 SRAM(数据只有在软件执行另外一次写操作时被写入 SRAM)。如果发生芯片复位,实际的 SRAM 内容将不会反映最近一次的写请求(即:在一次“热”芯片复位后,SRAM 不会反映最后一次写入的内容)。任何在复位后检查 SRAM 内容的程序都必须注意这一点。通过对一个单元执行两次相同的写操作可保证复位后数据的写入。或者,也可通过在进入空闲或掉电模式前执行虚写(dummy write)操作来保证最后的数据在复位后被真正写入到SRAM。

(4).晶体振荡器

LPC2103板上振荡器电路仅支持 1MHz~25MHz 的外部晶振。如果片内 PLL 系统或引导装载程序被使用,那么输入时钟频率将被限制到 10MHz~25MHz。

LPC2103 的振荡器可工作在两种模式下:从属模式和振荡模式。

从属模式下,输入时钟信号与一个 100pF 的电容(图 6 的 Cc,a 图)相连,其幅值至少为 200mVrms。该配置下的 X2 管脚不连接。如果选择从属模式,Fosc 信号(占空比为 50-50)的频率被限制在 1MHz~50MHz。

如果选择器件的振荡器模式为板上振荡模式,那么 Fosc 时钟限制在 1MHz~30MHz。

(5).外部中断输入

LPC2103 含有3个外部中断输入(作为可选的管脚功能)。当组合管脚时,外部事件可作为3个独立的中断信号处理。外部中断输入可用于将处理器从掉电模式中唤醒。

此外,所有 10 个捕获输入还可以用作外部中断而无需将器件从掉电模式中唤醒。

4.2 LCD1602显示电路

“1602”代表该屏每行最多显示16个字符,能显示两行。显示内容可以是英文大小写字母、数字、标点符号、常用符号等。1602液晶屏上通常有16个管脚,其背面会看到驱动电路。在液晶屏的显示区域中还安装有光源器件,称之为液晶屏的背光,用来照亮显示屏。

(1). LCD1602接口信号说明表:

(2).LCD102原理图

(3).RAM地址映射区

(4).LCD1602指令表

命令代码(D7-D0)

命令

命令功能说明

01H

清屏

清除液晶屏的显示数据

02H

归位

光标、画面回到起始位置

04H

光标左移

光标左移1位

05H

画面右移

显示画面右移

06H

光标右移

光标向右移动一位

07H

画面左移

画面向左移动

08H

关闭显示

显示、光标、闪烁关闭

0AH

打开光标

只打开光标,显示、闪烁关闭

0CH

打开显示

只打开显示,闪烁、光标关闭

0EH

光标不闪烁

打开光标,光标不闪烁

0FH

光标闪烁

打开显示和光标、光标闪烁

10H

光标位置左移

光标的位置向左移动

14H

光标位置右移

光标位置向右移动

18H

整个画面左移

整个显示画面向左移动1位

1CH

整个画面右移

整个显示画面向右移动1位

38H

显示设定

设定显示为2行,5*7的点阵

80H

光标回到第一行开头

强制光标回到第一行开头

C0H

光标回到第二行开头

强制光标回到第二行开头

(5).LCD1602基本操作时序

读状态  输入:RS=L,R/W=H,E=H                           输出:D0—D7=状态字。

读数据  输入: 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 总结与体会

作为一名物联网工程专业的大三学生,我觉得学好嵌入式是十分有意义的,而且是十分必要的。在已度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?如何把我们所学的专业基础课理论知识运用到实践中去呢?而传统的期末理论考试无法让我们真正理解嵌入式系统,这次嵌入式系统的课程考核改革就为我们提供了良好的实践平台,将理论付诸于实践。

在这次《ARM嵌入式系统原理》期末课程考核中,我设计的题目是《基于嵌入式系统的LCD广告牌设计》。通过这次设计,我对ARM嵌入式系统尤其是嵌入式系统程序设计有了初步的了解,同时知识面也进一步得到了扩展和加深。

由于以前一直学的是51单片机,对于嵌入式的学习也只停留在理论上,甚至都没有见过真正的ARM芯片。刚开始做嵌入式作品时,我拿到一块ARM7-LPC2103核心板时也是一头雾水,翻开芯片手册,只感觉ARM的管脚配置和寄存器配置和我之前学过的51有很大差别,感觉似懂非懂。但既然拿到了板子就要把嵌入式的作品做出来。

在做本次嵌入式作品的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。我们是在做作品,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。

其次,在这次课程设计中,我们运用到了以前所学的专业课知识,如:Proteus仿真、C语言、模拟和数字电路知识等,并且也熟悉了keil环境下开发ARM的过程。虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次嵌入式作品后的又一收获。要做好一个作品,就必须做到:在设计程序之前,对所用微控制器的内部结构有一个系统的了解,知道该控制器内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路。

要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计作品过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。虽然作品做出来了,但是从中学到的知识会让我受益终身。


附录1:电路图


完整的Word格式文档51黑下载地址(含程序):
基于嵌入式系统的LCD广告牌设计.doc (811.13 KB, 下载次数: 26)



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表