基于ARMCortexM4的LED与LCD显示模块的实现.docx
《基于ARMCortexM4的LED与LCD显示模块的实现.docx》由会员分享,可在线阅读,更多相关《基于ARMCortexM4的LED与LCD显示模块的实现.docx(48页珍藏版)》请在冰豆网上搜索。
![基于ARMCortexM4的LED与LCD显示模块的实现.docx](https://file1.bdocx.com/fileroot1/2023-4/21/7db5bf0c-ec09-45fb-a5ad-44e60df61fa1/7db5bf0c-ec09-45fb-a5ad-44e60df61fa11.gif)
基于ARMCortexM4的LED与LCD显示模块的实现
基于ARMCortex-M4的LED与LCD显示模块的实现
摘要:
本设计选用以ARMCortex-M4为核的MK60DN512ZVLQ10芯片作为CPU的总控制器,并通过对硬件电路和软件编程的设计,结合LED数码管和LCD液晶显示屏来实现显示。
通过程序对MK60进行控制使四位LED数码管上实现年份和日期的交替显示;再通过程序编写实现对年、月、日、周、时、分、秒进行计时,最后用LCD1602液晶显示屏进行显示,并显示年、月、日的汉字;并且可以通过一个自锁开关来进行对年、月、日、周、时、分、秒进行位选和对应位的自动调节。
该设计简便实用,能够对年、月、日、周、时、分、秒进行有效的实时计时和实时显示,并且能实现LED数码管和LCD液晶显示屏的同步显示。
关键词:
ARMCortex-M4;LED数码管;LCD1602;自锁开关;数字钟
LEDand LCD module displaybasedonARMCortex-M4
FanGuangxing
(SchoolofInformationEngineering,Xi’anUniversityofArtsandScience,Xi’an710065,China)
Abstract:
ThisdesignusedtoARMCortex-M4forkernelMK60DN512ZVLQ10chipastheCPUcontroller,andthroughthedesignofhardwarecircuitandsoftwareprogramming,toachievethedisplaywithLEDdigitaltubeandaliquidcrystaldisplay.ThroughtheprogramofMK60forcontrolofthefourLEDdigitaltubetoachievethedateandyearthatturn,andthenthroughtheprogrammingtoachievetheyear,month,day,week,hours,minutes,secondsontheclock,andontheLCD1602display,AnddisplaystheChinesecharacters,theyear,themonth,theday.Andthroughaself-lockingswitchtoachievetoplaceselectionandthecorrespondingpositionoftheautomaticadjustmentoftheyear,month,day,week,hours,minutes,seconds.Thedesignissimpleandpractical,caneffectiverealtimeandreal-timedisplayyear,month,day,week,hours,minutes,seconds,andcanrealizethesynchronousdisplayoftheLEDdigitaltubeandaliquidcrystaldisplay.
Keyword:
ARMCortex-M4;LEDdigitaltube;LCD1602;self-locking;DigitalClock
第一章绪论
1.1课题的背景及研究意义
1.1.1课题来源及背景
在当前的数字信息技术和网络技术高速发展的后PC时代,嵌入式系统技术已经广泛地渗透到人们生活的各个方面。
由于嵌入式系统的交互性比较强,LED数码管和液晶屏做为输出设备尤为重要,但很多关于嵌入式系统开发、应用的教材中,对于LED数码管和液晶屏的程序设计也只是初始化和测试的编程,没有进一步的应用开发。
所以选择了该毕业设计题目,以完善数码管和液晶屏的显示功能。
在选定了毕业设计题目之后,随着开发研究的不断深入,主要完成了以下工作:
首先,对三种常用的嵌入式操作系统进行了分析比较,对项目开发是否选用操作系统提出了自己的见解,结合本次毕业设计的实际应用,选择了不使用操作系统的方法。
其次,选定硬件开发系统后,把单片机的传统调试方法与ARM的边界扫描技术进行了分析比较,并在实际应用开发中采用了边界扫描技术。
其次,由于在C语言程序运行前需要加入一些必要的初始化代码,于是又完成了对LCD初始化程序的分析与设计。
最后,在编写液晶屏数字钟年、月、日、周、时、分、秒显示时和LED数码管年份和日期交替显示时,通过对一串字符中对应的位进行加减控制以及转换类型等,将所需的容显示到液晶屏和LED数码管上。
本文不但说明了如何利用ARM处理器实现液晶屏和LED数码管的显示,还讲述了开发ARM处理器应用程序的一个完整的过程。
随着嵌入式技术的不断普及,对ARM处理器的学习、应用、开发都有一定的帮助作用。
1.1.2课题研究意义
随着改革的开放,社会的进步的步伐,各种显示类技术也发生了翻天覆地的变化,其发展经历了起步阶段、数量型发展阶段、规模化发展阶段以及品牌建设阶段,至此已取得了令人瞩目的成绩,初步形成了投资主体多元化、经营业态多元化、经营方式连锁化、品牌建设特色化、市场需求大众化、从传统产业向现代产业转型的发展新格局。
最大限度的满足广大消费者的不同需求。
随着经济的复和市场的进一步改革开放,人民的生活水平在不断的奔向小康,促进着电子显示的快速发展,同时许多电子类产品商家也敏锐地嗅到了这一产业的商机,注定着这个行业的竞争越来越激烈。
因此,要在这个竞争激烈的市场中获胜并且稳步前进就要降低的成本,提高效益。
虽然不同的电子类产品所要显示的容和格式的标准不同,但是每个显示方向都可以使用管理信息工具来提高本企业的核心竞争力。
综上所述,LED屏显示和液晶显示是嵌入式系统中反映系统输入/输出的人机交互界面,LED屏显示具有与计算机屏幕同步、超大画面、超宽视觉、灵活多变等特点,被用于金融证券、银行利率、商业广告、文化娱乐等方面;而液晶显示以其微功耗、体积小、显示容丰富、模块化,接口电路简单等诸多优点得到广泛应用。
因此,研究基于ARM的LED和LCD显示有其实际应用意义。
1.2国外研究状况
虽然嵌入式系统是近几年才风靡起来的,但是这个概念并非新近才出现。
从20世纪70年代单片机的出现到今天各种各样的嵌入式处理器、微控制器的大规模应用,嵌入式系统已经有了30多年的发展历史。
综观嵌入式技术的发展[1],大致经历了以下4个阶段:
第一阶段是以单芯片为核心的可编程控制器形式的系统,同时具有与监测、伺服、指示设备相配合的功能,应用于一些专业性强的工业控制系统中。
这种系统一般没有操作系统的支持,通过汇编语言编程对系统进行直接控制。
这一阶段系统的主要特点是:
系统结构和功能都相对单一,处理效率较低,存储容量较小,几乎没有用户接口。
第二阶段是以嵌入式CPU为基础、以简单操作系统为核心的嵌入式系统。
这一阶段系统的主要特点是:
CPU种类繁多,通用性比较弱;系统开销小,效率高;操作系统达到了一定的兼容性和扩展性;应用软件较专业化,用户界面不够友好;主要用于控制系统负载的运行以及监控应用程序的运行。
第三阶段是以嵌入式操作系统为标志的嵌入式系统。
这一阶段系统的主要特点是:
嵌入式操作系统能运行于各种不同类型的微处理器上,兼容性好;操作系统核小、效率高,并且具有高度的模块化和扩展性;具备文件和目录管理、多任务、设备支持、网络支持、图形窗口以及用户界面等功能;具有大量的应用程序接口(API),开发应用程序简单;嵌入式应用软件丰富。
第四阶段是以基于Intemet为标志的嵌入式系统,这是一个正在迅速发展的阶段。
目前大多数嵌入式系统孤立于Internet之外,但随着Internet的发展及Internet技术与信息家电、工业控制技术等结合日益密切,嵌入式设备与Internet 的结合将代表着嵌入式技术的真正未来。
1.3研究容及论文组织结构
论文以ARMCortex-M4为核心的MK60芯片坐为系统的控制核心,通过程序进行计时,并控制I/O使LCD1602对时间进行实时显示和LED数码管对日期的准确显示。
本系统硬件用MK60芯片作为CPU进行中体控制,通过编程计时以及自锁开关对时间的调节来实现时间(年、月、日、周、时、分、秒)的准确性。
同时利用液晶显示芯片LCD1602对时间进行准确显示年、月、日、周、时、分、秒,并且显示汉字:
年、月、日,以及LED数码管对年份和日期的交替显示。
论文组织结构如下:
第一章:
介绍基于ARM的LED和LCD显示的背景、研究意义、国外状况以及需要设计的工作。
第二章:
介绍嵌入式和ARM的基本知识。
第三章:
介绍硬件设计电路,包括MCU控制电路、LCD液晶显示电路、LED数码管显示电路、按键电路和电源电路。
还有硬件电路设计的工具软件。
第四章:
介绍系统软件设计框图和各模块的的程序设计。
还有相关的程序调试,包括IAR调试、调试遇到的问题和解决过程。
结束语:
介绍本设计的实现功能和存在的不足。
第二章嵌入式系统及ARM基本知识概述
2.1嵌入式系统概述
2.1.1嵌入式系统的简介
嵌入式系统是一个比较复杂的技术概念,目前国外关于嵌入式系统尚无严格、统一的定义。
在国的很多嵌入式和相关书籍中,一般都认为嵌入式系统是以应用为中心,以计算机技术为基础,并且软/硬件课裁剪,可满足应用系统对功能。
可靠性、成本、体积、和功耗有严格要求的专用计算机系统[1]。
与通常计算机系统相比,嵌入式系统具有以下重要特征:
1、通常是面向特定应用的。
具有功耗低、体积小和集成度高等特点。
2、硬件和软件都必须高效率地设计,量体裁衣,力争在同样的硅片面积上实现更高的性能,这样才能满足功能、可靠性和功耗的苛刻要求。
3、实时操作系统支持。
尽管嵌入式系统的应用程序可以不需要操作系统的支持就能直接运行,但为了合理调度多任务、充分利用系统资源,用户可以自行选配实时操作系统开发平台。
4、嵌入式系统与具体应用有机结合在一起,升级换代也是同步进行。
因此,嵌入式系统产品一旦进入市场,具有较长的生命周期。
5、为了提高运行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片中。
6、专门开发工具的支持。
嵌入式系统本身不具备自主开发能力,即使在设计完成以后,用户通常也不能对程序功能进行修改,必须有一套开发工具和环境才能进行嵌入式系统开发。
2.1.2嵌入式系统的组成
1、嵌入式微处理器是嵌入式系统的核心。
嵌入式微处的体系结构可以采用·诺依曼体系结构或者哈佛体系结构,指令系统可以选用精简指令集系统RISC或者复杂指令集CISC。
2、外围硬件设备。
嵌入式硬件系统通常是以微处理器位中心,包含电源电路、时钟电路和存储器电路的电路模块。
其中操作系统和应用程序都固化在模块的ROM/Flash中。
3、嵌入式操作系统。
嵌入式操作系统EOS是一种用途广泛的系统软件,它负责嵌入式的全部软、硬件资源的分配、调度、控制和协调。
4、应用软件。
嵌入式系统的应用软件是设计人员针对专门的应用领域而设计的是、应用程序。
嵌入式系统软件的要求和PC有所不同,其主要特点如下:
软件要求固态化存储;软件代码要求高效率、高可靠性;系统软件有较高的实时性要求。
2.1.3嵌入式系统的应用与发展
嵌入式系统的应用已逐步渗透到金融、航天、电信、网络、信息家电、医疗、工业控制及军事等各个领域,以至于一些学者断言,嵌入式系统将成为后PC时代的主宰。
当今,嵌入式系统的发展已经进入大融合的时代,其特点如下:
1、通信、计算机及消费电子产品(3C)融合——趋向于没有独立的3C,只有融合的3C,及信息产品(IA)。
2、数字模拟融合、微机电融合、电路板硅片融合及硬件设计融合——趋向于SoC和SiP。
3、嵌入式整体的开发工作也从传统的硬件为主变为软件为主。
4、激烈的市场竞争和技术进步呼唤着新颖的产品开发平台,特别是SoC开发平台的出现。
随着嵌入式技术的不断发展,嵌入式系统将更广泛应用于人类生活的各个方面。
我国著名嵌入式系统专家旭榜院士认为:
计算机是认识世界的工具,而嵌入式系统则是改造世界的产物。
2.2ARM嵌入式微处理器
2.2.1ARM嵌入式微处理器
ARM架构是面向低预算市场设计的第一款RISC(精简指令集系统)微处理器。
ARM即可以认为是公司名字,也可以认为是一类微处理器的通称,亦可以认为是一种技术的名字。
目前,通过ARM技术知识产权(IP)核微处理器,即通常所说的ARM微处理器,世界各大半导体生产商再根据各自不同的应用领域:
工业控制、无线通信、网络系统、消费类电子产品、成像和安全产品等。
ARM嵌入式微处理器的特点[2]有:
体积小、低功耗、低成本、高性能;支持Thumb(16位)/ARM(32位)双指令集、兼容8位/16位器件;使用单周期指令,指令简洁、规整;大量使用寄存器,大多数据操作都在寄存器中完成,只有加载/存储指令可以访问存储器,以提高指令的执行效率;寻址方式简单灵活,执行效率高;固定长度的指令格式。
2.2.2ARM微处理器系列
目前,ARM嵌入式微处理器主要有ARM7、ARM9、ARM9E、ARM10、ARM11、ARMCortex等系列。
1、ARM7、ARM9、ARM9E系列
ARM7、ARM9、ARM9E系列是ARM微处理器的经典系列,其都是采用RISC架构。
2、ARM10系列
ARM10系列带有:
64位AHB指令和数据接口;6级流水线;1.25MIPS/MHz;与同等的ARM9器件相比,其性能提高50%。
3、ARM11系列
ARM11系列嵌入式微处理器提供了两种新型节能方式,功耗更小。
4、ARMCortex系列
ARMCortex系列是ARMv6的体系结构,ARMv6体系结构是ARM发展史上的一个重要里程碑。
从这一阶段开始,引进了许多突破性的新技术,从ARMv6引进新的设计理念开始,ARM公司进一步扩展了其CPU设计,推出了ARMv7体系结构处理器。
其核架构有3款:
款式A、款式R和款式M三个款式如下:
(a)Cortex-A系列处理器适用于具有高计算要求、运行丰富操作系统以及提供交互媒体和图形体验的应用领域,支持传统的ARM、Thumb指令集和新增的高性能紧凑型Thumb-2指令集。
技术特点有:
高性能、多核技术和高级扩展。
(b)Cortex-A系列处理器是深层嵌入式实时处理器。
它专用于大容量深层嵌入式片上系统应用,如硬盘驱动器控制器、无线基带处理器、消费性产品、手机MTK平台和汽车系统的电子控制单元。
(c)Cortex-M系列针对成本和功耗敏感的MCU和终端应用(如智能测量、人机接口设备、汽车和工业控制系统、大型家用电器、消费性产品和医疗器械)的混合信号设备进行过优化。
它具有业界标准、能效、更小的代码、易于使用和高性能等特点。
2.3ARMCortex-M4处理器
ARMCortex-M4处理器是由ARM开发的最新嵌入式处理器,在M3的基础上强化了运算能力,新加了浮点、DSP、并行计算等,用以满足需要有效且易于使用的控制和信号处理功能混合的数字信号控制市场。
ARMCortex-M4处理单精度浮点单元(FPU)。
这些功能表现ARMCortex-M系列处理器以创新技术为基础的特征[6]。
包括:
RISC处理器核,高性能32位CPU、具有确定性的运算、低延迟3阶段管道,可达1.25DMIPS/MHz;
Thumb-2指令集,16/32位指令的最佳混合、小于8位设备3倍的代码大小、对性能没有负面影响,提供最佳的代码密度;
低功耗模式,集成的睡眠状态支持、多电源域、基于架构的软件控制;
嵌套矢量中断控制器(NVIC),低延迟、低抖动中断响应、不需要汇编编程、以纯C语言编写的中断服务例程,能完成出色的中断处理;
工具和RTOS支持,广泛的第三方工具支持、Cortex微控制器软件接口标准(CMSIS)、最大限度地增加软件成果重用;
CoreSight调试和跟踪,JTAG或2针串行线调试(SWD)连接、支持多处理器、支持实时跟踪。
此外,该处理器还提供了一个可选的存保护单元(MPU),提供低成本的调试/追踪功能和集成的休眠状态,以增加灵活性。
嵌入式开发者将得以快速设计并推出令人瞩目的终端产品,具备最多的功能以及最低的功耗和尺寸。
2.4MK60DN512ZVLQ10芯片简介
MK60DN512ZVLQ10芯片简称K60芯片,K60芯片具有IEEE1588以太网,全速和高速USB2.0On-The-Go带设备充电探测、硬件加密和防窜改探测能力,具有丰富的模拟、通信、定时和控制外设,从100LQFP封装256KB闪存开始扩展到256MAPBGA1MB闪存。
大闪存的K60还提供可选的单精度浮点单元、NAND闪存控制器和DRAM控制器。
K60部的数据是32位的,寄存器是32位的,存储器接口也是32位的。
他的核也是采用哈佛结构,拥有独立的指令集总线和数据总线,可以让取指令与数据访问并行进行。
这样一来数据访问就不再占用指令总线,从而提升了性能。
为实现这一特性,K60核部含有好几条总线接口,每条都为自己的应用场合优化过,并且他们可以并行工作。
但另一方面,指令总线和数据总线共享同一个存储空间。
Flex存储器是飞思卡尔的新一代存储器技术,为需要片上EEPROM、额外程序或数据的开发者提供了多样化的解决方案。
Flex存储器和SRAM一样简单快速,当用作高耐久性擦写EEPROM是,在完成程序运行和擦除功能时不需要用户或者系统干预。
同时Flex存储器能提供平行于主程序闪存的额外闪存(FlexNVMware)用于数据或者程序存储。
2.4.1K60的引脚功能
K60的144引脚MAPBGA封装分布图,每个引脚都有多个服用功能,有的引脚有2个、4个甚至6个服用功能,系统设计是必须注意,在某个时刻只能使用其中的一个功能。
K60硬件最小系统包括电源类引脚、复位引脚、晶振引脚等。
K60芯片电源类引脚,BGA封装22个,LQFP封装27个,其中MAPBGA封装的芯片有5个引脚未使用(A10、B10、C10、M5和L5)。
芯片使用多组电源引脚分别为部电压调节器、I/O引脚驱动、A/D转换电路等电路供电,部电压调节器为核和振荡器等供电。
为了提供稳定的电源,MCU部包含多组电源电路,同时给出多处电源引脚,便于外接滤波电容。
为了电源平衡,MCU提供了多处在部相连的接地引出脚,共电路设计使用。
除去需要服务的引脚外,其他引脚可以为实际系统提供I/O服务。
芯片提供服务的引脚也可以称为I/O引脚资源类引脚。
K60具有多达100多个I/O引脚,其中A口26个,B口20个,C口20个,D口16个,E口18个,每个引脚均具有多个功能[5]。
这些引脚在复位后,立即被配置为高阻态,且为通用输入引脚,没有部上啦电阻。
为了避免来自浮空输入引脚额外的漏电流,应用程序中的复位初始化例程需尽快时能上拉或下拉,也改变不常用引脚的方向为输出,以使该引脚不再浮空。
2.4.2K60硬件最小系统的测试方法
根据原理图制作了印刷电路板后,就开始硬件电路板的焊接和测试了。
由于主芯片是MAPBGA封装,手工无法焊接,所以最小系统可交由工厂焊接。
最小系统的测试步骤[4]如下。
1、在确保电源和地未短路的情况下接通电源,测量电压是否正常,检查按下复位按钮是否能够复位(观察复位指示灯)。
2、将写入器与电路板连接,启动开发环境对目标MCU进行擦除,如果成功则说明最小系统工作正常。
3、将第一个样例程序下载到Flash中,观察小邓闪烁情况。
第三章系统硬件设计
3.1系统设计结构图
根据系统设计的要求和设计思路,以确定系统的系统设计结构框图(如图3.1所示)。
硬件电路主要由ARM微处理器单元、电源电路、按键电路、LED数码管模块和LCD液晶显示模块组成。
系统设计结构图如图3.1所示。
图3.1系统结构框图
MK60DN512ZVLQ10芯片(后文简称K60)是整个系统的核心,K60是飞思卡尔公司以ARMCortex-M4为核开发的。
K60芯片主要是对按键信号返回值进行处理处理,再控制LED数码管显示和LCD1602液晶显示屏的实时显示。
电源电路是给整个系统的各个模块提供电源。
按键电路可以通过选位来使其自动调整时间和日期,使其显示当前的时间,作为输入设备。
LED数码管显示电路用于年份和日期的交替显示,作为输出设备。
LCD1602液晶显示电路用于显示时间和日期,作为输出设备。
硬件电路的原理图和实物图见附录1。
3.2硬件电路设计工具
本设计的画图工具使用的是AltiumDesigner。
AltiumDesigner是原Protel软件开发商Altium公司推出的一体化的电子产品开发系统,主要运行在Windows操作系统。
这套软件通过把原理图设计、电路仿真、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合。
AltiumDesigner[9]除了全面继承包括Protel99SE、ProtelDXP在的先前一系列版本的功能和优点外,还增加了许多改进和很多高端功能。
其主要功能有:
1)原理图设计。
2)印刷电路板设计。
3)FPGA的开发。
4)嵌入式开发。
5)3DPCB设计。
3.3系统硬件电路设计
3.3.1K60芯片控制器件电路
K60芯片是整个系统的核心控制元件,只有他正常工作了,整个系统的其他元件模块才能进入正常工作状态。
通过软件编程使K60芯片实现延时1s,实现时间的正常计时功能。
再将时间信号实时发送到LED数码管和LCD1602液晶显示屏上,使其实时显示。
最后对按键的输入信号进行判断,实现对时间的调整,使时间为当前时间。
K60芯片的管脚如图3.2所示。
图3.2K60芯片引脚连接图
1)3.3V:
59脚,供电电压,一般接+3.3V。
2)GND:
61脚,接地工作。
3)PTA8:
接自锁开关,调整时间的作用。
4)PTC:
接LED数码管,显示日期。
5)PTE:
接LCD1602,显示时间和日期。
3.3.2LCD液晶显示电路
LCD1602是一种用5×7点阵图形的液晶显示器模块,用来显示字母、数字、符号等,这些字符都是1602液晶模块部的字符发生存储器(CGROM)已经存储了160个不同的点阵字来显示的,它显示容量为2*16,即可以显示两行,每行显示16个字符。
该液晶显示器有微功耗、体积小,显示容丰富、超薄轻巧扥特点。
因为1602识别的是ASCII码,所以在编程中可以用字符型常量或变量赋值,如A。
LCD1602除了部存储字符外,其部还存在一个64字节的自定义字节空间,可以通过自定义字节来达到显示汉字的效果。
LCD1602的连接图如图3.3所示。
图3.3LCD1602连接图
1)1脚:
GND为地电源。
2)2脚:
VCC供电电压,接+5V。
3)3脚:
接电位器,调节液晶显示器的对比度。
4)4脚:
RS寄存器选择:
1——数据寄存器;0——指令寄存器。
5)5脚:
R/W读写操作选择:
1——读操作;0——血操作。
6)6脚:
E是能信号:
R/W=0,E下降沿有效;R/W=1,E=1有效。
7)7~14脚:
8位数据线。
8)15脚:
背光灯,接+5V。
9)16脚:
背光灯,接GND。
3.3.3LED数