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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于GPS授时的点阵LED屏显示时钟.docx

1、基于GPS授时的点阵LED屏显示时钟 2013第九届“博创杯”全国大学生嵌入式物联网设计大赛作品设计报告 基于GPS授时的点阵LED屏显示时钟 A LED Clock Based on GPS 设 计 报 告 队伍编号: 参赛学校:扬州大学 作 者:蔡成瑶、严帅、沈照 指导教师:张凯 是否恩智浦单项:是 否摘 要本设计采用了大赛指定硬件开发平台:NXP LPC11C24FB(ARM Cortex-M0微控制器),设计了GPS授时的点阵LED屏时钟显示系统。系统从GPS卫星上获取标准的时钟信号,并将这些信息通过UART接口传到LPC11C24主控模块上,再通过LED点阵屏将经过LPC11C24处

2、理后的时间信息显示出来。如果UART未收到GPS数据则系统将采用LPC11C24的内部定时器计时,该设计以软硬件相结合的方式完成整个GPS数据的接收和显示过程完成了一台LED点阵屏显示GPS时钟的设备。此设计由于使用的是GPS时钟信号,所以时间精确度可以达到纳秒级,同时结合了点阵LED屏,就使得系统整体显示效果好。关键词: LPC11C24、 GPS、 LED点阵屏AbstractNXP LPC11C24(Cortex M0 micro controller)is used as the specified hardware platform in the design ofthe GPS t

3、iming lattice LED clock display system . System standard for the clock signal from GPS satellites, and upload the information through the UART interface LPC11C24 master control module, through the LED lattice screen will be displayed after LPC11C24 processing time information. If UART is not receive

4、d GPS data system will adopt LPC11C24 internal timer timing, the design with a combination of hardware and software to complete the whole process of GPS data receiving and display completed a LED dot matrix screen GPS clock device. This design is due to the use of GPS clock signal, so the precision

5、can reach nanosecond time, combined with lattice LED screen at the same time, makes the system as a whole display effect is better.Keyword:LPC11C24、 GPS、 LEDLatticescreen目录摘 要 1目录 2第一章 绪论 41.1设计背景 41.2 ARM Cortex-M0处理器 4第二章 系统方案 52.1 系统总体方案 52.2 系统方案结构图 5第三章 基于GPS授时的点阵LED屏显示时钟的系统 63.1 NXP LPC11C24主控

6、板 63.1.1 NXP LPC11C24简介 63.1.2开发环境 73.1.3 LPCXpresso的项目建立 83.2点阵 LED屏显示模块 83.2.1 P10 LED点阵屏电路图 93.2.2 P10 LED点阵显示屏的指标 93.2.3 LED点阵屏上控制LED的亮灭原理 103.2.4 LED点阵屏的动态扫描原理 103.2.5 主控模块LPC11C24与LED点阵屏的引脚连接 113.2.6 LED点阵屏的显示的软件设计 123.2.6.1控制LED亮灭的设计过程 133.2.6.2LED点阵屏的动态扫描设计过程 14Buf缓冲区数据组织 153.2.7 时钟显示秒的控制 19

7、3.3 GPS卫星数据接收模块GR-87 203. 3.1GPS技术简介 203.3.2 GR-87 213.3.3引脚功能 21GR-87指标 223.3.4硬件接口UART 233.3.5 通信协议NMEA 243.3.5主控模块LPC11C24与GR-87的连接 243.3.6 UART接收GPS数据软件设计 253.4供电电源的选择 29第四章 系统测试 294.1 测试仪器和设备 294.2 测试方案 304.2.1 LED点阵屏显示测试 304.2.2 GPS通信测试 304.2.3 NXP LPC11C24测试 304.2.4 系统综合测试 304.3测试 304.3.1 LED

8、点阵屏显示测试 304.3.2 GPS通信测试 314.3.3系统综合测试 324.3.4结果分析 32第五章 系统特色 335.1 高精度的时钟信号 335.2 LED点阵屏特色 33第六章 结 论 34附录 34第一章 绪论1.1设计背景随着社会的进步人们对于时间信号的精度要求越来越高,而传统的时钟一般是采用内部晶振精确度不高,长期运行过程中由于种种原因都会产生误差已经不能满足工业生产的需要,因此我们要寻找一种稳定可靠的方法来来产生精确的时钟。使用原子钟可以使时间精度达到纳秒级,所以在科学技术领域、人们日常的生活生产领域都可以广泛的运用“原子钟”。另外,LED显示屏是利用发光二级管点阵模块

9、组成的平面式显示屏幕由于它具有发光率高、使用寿命长、组态灵活、适应能力强等优点在国内外的到广泛应用。基于GPS授时的点阵LED屏显示时钟就是利用GR-87接收卫星上“原子钟”精确的时间信号传送给LPC11C24,经过LPC11C24处理后发往点阵LED显示屏并显示出时间。1.2 ARM Cortex-M0处理器 作为ARM Cortex处理器系列的最新成员,32位Cortex-M0处理器采用了低成本90纳米低功耗(LP)工艺,耗电量仅 9A/MHz,约为目前主流8位或16位处理器的三分之一,却能提供更高的性能。这种行业领先的低功耗和高性能的结合为仍在使用8位或16位架构的用户提供了一个转型开发

10、32位器件的理想机会,从而在不牺牲功耗和面积的情况下,提高日常设备的智能化程度。Cortex-M0处理器的特点促成了智能、低功耗微控制器的面市,并为“物联网”中大量的无线连接设备提供高效的沟通、管理和维护。低功耗联网功能深具潜能,可驱动各种节能和生活关键应用,包括从无线方式分析住宅或办公大楼性能与控制的感测器,到以电池运作、通过无线方式连接监控设备的身体感测器。而现有的8位或16位微控制器(MCU)缺少足够的智能和功能来实现这些应用。Cortex-M0处理器不仅延续了易用性、C语言编程模型的优势,而且能够二进制兼容已有的Cortex-M0处理器工具和实时系统(RTOS)。作为Cortex-M处

11、理器系列的一员,Cortex-M0处理器同样能够获得ARM Cortex-M生态系统的全面支持,而其软件兼容性使其能够方便地被移植到更高性能的Cortex-M3或Cortex-M4处理器。率先获得Cortex-M0+处理器授权的厂商包括飞思卡尔半导体和恩智浦半导体。第二章 系统方案2.1 系统总体方案本系统利用NXP LPC11C24作为主控模块。首先从GPS系统获取全球标准时间源,经过CPU处理后将时间数据通过UART接口输出到LPC11C24主控模块上,LPC11C24可把接收到的GPS时间数据利用软件来处理,再把数据发送到显示模块,实现时间的显示。LED点阵屏为主要的显示模块,把从LPC

12、11C24传来的数据显示出来,并且可以实现左右移动等功能。2.2 系统方案结构图根据总体方案画出了系统的结构图,是按照结构层次划分三层:硬件平台NXP LPC11C24为核心,同UART连接的是GPS模块,32*16的点阵屏是用杜邦线和和控制系统相连的。整体方案结构框图如下:图2.1 系统总体方案结构图第三章 基于GPS授时的点阵LED屏显示时钟的系统3.1 NXP LPC11C24主控板LPC11C24为核心控制芯片,工作过程分为两个部分:数据接受处理和时钟数据扫描显示。LPC11C24开发板内部集成了串口通信电路,本设计就是应用UART通用串行数据接口接受外部GR-87发来的卫星数据,有选

13、择的将数据存储到数据缓冲区,然后我们将缓存区里的数据取出经过CPU的处理后送到LED点阵显示屏上显示出我们所需要的时钟信息。3.1.1 NXP LPC11C24简介LPC11C24FBD48是ARM Cortex-M0微控制器,设计用于8位/16位微控制器应用,具有高新能,低功耗,简单指令集,统一编址寻址等优点,而且,LPC11C24可以比传统的8位/16位单片机在执行大多数普通的微控制器任务时减少40%到50%的代码量,这是通过强大的Cortex-M0 v6-M指令集实现的。这种指令集以16位的Thumb指令为基础,迄今唯一应用于32位微处理器。具有高于45DMIPS处理能力的LPC11C2

14、4为CAN节点提供了强有力的信息和数据处理能力。这种对电源的优化能力是当今的8位/16位单片机难以实现的特色和优点 ARM Cortex-M0处理器,工作频率高达50 MHz ARM Cortex-M0内置可嵌套中断向量控制器(NVIC) 程序代码的密度要比8/16位MCU更小 闪存ISP命令可通过UART或C_CAN发出 超快速模式下,2个IC总线引脚上的大电流吸收驱动器 (20 mA) 带小数波特率生成器的UART 36个高速5V相容GPIO引脚,可选择引脚高电流驱动(20 mA) 12MHz内部RC振荡器,温度及电压范围精确度可达1% 支持完整IC总线规范及超快速模式的IC总线接口 CA

15、N 2.0 B C_CAN控制器具备on-chip CANopen驱动器与整合式收发器片内高速CAN收发器 工作范围从1 MHz到25 MHz的晶体振荡器 频率范围从7.8 kHz到1.8 MHz的可编程看门狗振荡器 最大限度降低功耗的集成式PMU(电源管理单元) 采用中断和强制复位的4个独立阀值进行的掉电检测 可用作芯片识别的唯一序列号 3.3 V单电源(1.8 V至3.6 V)3.1.2开发环境此次设计的软件开发环境使用的大赛的合作方恩智浦半导体针对它旗下采用的ARM处理器的LPC系列微控制器推出的开发工具平台LCXpresso。LCXpresso根据简单易用的理念设计而成, 它为系统设计

16、人员提供了一种快速便捷的使用LPC1100的方式。利用LPCXpresso这款功能全面的工具链还可以轻松实现在高性能的ARM7、ARM9以及包括LPC1300和LPC1700 在内的Cortex系列微控制器之间的产品移植。 LPCXpresso开发平台基于功能强大的Eclipse集成开发环境(IDE)工具,拥有由恩智浦设计的全新、直观的用户界面、针对Cortex-M0优化的编译器和函数库、LPC-Link JTAG/SWD调试探针和目标板,同时具有一流的C编程环境以及语法高亮度显示、代码折叠和展开、快速点击导航变量和函数定义及声明的高级功能,为用户提供丰富的开发工具,加速产品开发,缩短新品上市

17、时间。3.1.3 LPCXpresso的项目建立1打开LPCxpresso软件弹出workspace launcher对话框选择项目要放的文件夹2.菜单栏FILE-new-project 弹出new project对话框选择LPCxpresso c project-next再选择lpc 11xx- c progect next -在project neme中输入项目名称-netx -选择lpc11c24/301next在cmsis library to link project to:中选择NONE - finish3这样项目就建立好了,在编译过程中缺什么头文件就去示例文件夹中复制到SRC文件

18、夹下就可以了3.2点阵 LED屏显示模块 这次我们选用的是P10 LED成品屏。P10 LED点阵显示屏作为此次设计的数据显示模块,它的作用就是将从缓冲区里取出的数据经过CPU的处理后显示出我们所需要的信息。我们可以利用LPC11C24的GPIO端口控制LED点阵屏显示相应的信息。3.2.1 P10 LED点阵屏电路图 下图是P10 LED点阵屏的电路图,其中 74HC245D是驱动放大芯片、74HC595是移位寄存器、74HC138D是译码器图4.2 P10 LED点阵屏电路图3.2.2 P10 LED点阵显示屏的指标 LED分辨率:LED显示屏像素的行列数称为LED显示屏的分辨率,我们所用

19、的P10 LED点阵屏的分辨率是32*16。 LED点距: 10mm 像素配置: 1R(纯红) 视距: 3m300m3.2.3 LED点阵屏上控制LED的亮灭原理 通过P10 LED屏的电路图可以发现,整个屏有通过一个74HC138来控制行和16个74HC535一位寄存器控制列。按正常理解32*16的LED点阵2个138和16个595才能控制整个屏。而这里只用了1个138是用了4953LED驱动芯片,一个138输出信号被分成了4个一样的信号连接到了每个4*8小模块的LED的阳极上这样138输出的4路信号就被分成了16个信号,这16个信号中每4个一组一样的信号共4组。这样行就能全部控制了。因为屏

20、上4*8小模块都配了一个595所以一次通过595输入端通过移位可以输入16*8位数据进入595中。这就移位着当138输出高电平信号,595移位移入128个0进去时这是屏就会显示4行且这4行是隔4个亮一行。如果要只亮一个点只需把送入595的128中对应的那一位写0其他127位写1就可以显示一个点了。例如要让下图中第一行第一列的那个LED亮,只需要OUT1送高电平,列1送入低电平即可。OUT1端的高低电平由74HC138来控制,而它阴极的电平高低则是由74HC595来控制。让138输出信号快速的输出四个信号,这时屏上显示的就是点亮的那个点的所在的4*8的小模块中的亮点所在的列的4个点都亮了起了。这

21、就是动态扫描。后面还会详细解释。 3.2.4 LED点阵屏的动态扫描原理 通过上面已经可以把一个点点亮了,接下来就是要在屏幕上显示要显示的内容了。如果138的输出内容不变只能显示4行,只有把138输出的内容改变,且速度要快这样16行就可以全部显示出来了。这就是动态扫描。 比如我们要在左边的16*8的区域显示一个数字“1”首先就要的编写“1”在16*8的区域的16进制编码并放入一个数组中,这就是字库。编写好字库后还要再加一个64字节的数据缓存区用来存放屏上所用点的数据,595就从数据缓存区中取数据送去显示。而缓存区中的内容是从字库通过算法加载进去的。现在我们把“1”的数据放入数据缓存区中对应显示

22、的地方。595取128位送入屏幕,这时138选择的是4*8的第一行,这时在要显示的16*8中亮了1,5,9.13行,接着595再取下一行的128位数据送入屏,138选中4*8的第二行。这时在要显示的16*8中亮了2,6,10,14行,依次类推共4次,就把16*8的所有行就都显示了。由于程序执行速度很快,肉眼看不出切换所以就看到一个完整的“1”了。这就实现了动态扫描。3.2.5 主控模块LPC11C24与LED点阵屏的引脚连接LPC11C24 引脚LED点阵屏引脚+5VIN5V供电电源GNDGNDP0_3OEP1_8SCLKP2_6RP2_7CLKP2_8BP2_10A图5.4 LED点阵屏与L

23、PC11C24引脚的连接图LPC11C24与LED点阵屏的连接图3.2.6 LED点阵屏的显示的软件设计对于这个系统的软件设计一开始是我们是从控制LED点阵屏的显示入手,而为了防止在控制LED显示的初始阶段烧坏LPC11C24开发板以及更快的入手LPC11C24开发板,我们首先决定先用51单片机来写程序点亮控制LED点阵屏,在可以任意的控制LED屏的显示之后再将程序移植到LPC11C24开发板上。而控制LED点阵屏的首要问题就是点阵屏上每一行的亮灭是如何在单片机中实现的,接下来我们就试着去控制点阵屏的的每一个点的亮灭,直到可以控制任意点亮和灭。然后,我们再考虑去让点阵屏去显示数字以及在哪个位置

24、去显示,最后我们才再想方设法的使LED点阵屏的不同位置显示出我们想要显示的数字而这又是最困难的一步,由于在一个时刻LED点阵屏只能让一块显示所以要想让整个的屏都显示不同的数字就使用到动态扫描的技术。这里要真正实现动态扫描则分为两部分第一部分是buf数据缓存区的数据的动态变化,第二部分是对LED屏的行的动态扫描。 图 LED点阵屏显示设计思路程3.2.6.1控制LED亮灭的设计过程首先我们是先通过看对P10 LED点阵屏电路图走线方式,电路的芯片的作用来理解电路。电路是用74HC138译码器和74HC595移位寄存器组合实现的,这样就大概知道电路是如何工作的,我们就试着按自己的理解去连接的电路并

25、给通过单片机控制LED点阵屏,写了几个程序发现LED点阵屏上一直不亮,就考虑是否是硬件出了问题,但是经过测试后发现LED屏的正负极是有+5V电压的,并且LED的引脚同51单片机的连接也正确。只能是程序写的不对,然后我们就上网查阅各种资料,包括595移位寄存器和138译码器的手册、例程,通过查阅之后才对595和138 的工作有了更进一步的了解,我们之后又重新编写了一个程序和发现还是不能点亮LED屏,问了老师后才知道是我们对595理解有误,之后我们试着写了一个程序发现LED点阵屏果真亮了,但是LED灯都是在乱闪的,琢磨的一晚上也没找到是什么原因,直到第二天问了老师才发现是LED屏和单片机没有共地,

26、我们找了一跟线将LED的地和单片机的地线连接起来这下屏上的显示就稳定了,但是是4行一起亮的,看了原理图后发现138的输出信号又通过LED驱动芯片分出4个一样的信号,输出的信号被用于控制4行,所以16行需要4个138译码输出信号,这样2个138的输入信号输出00、01、10、11四个信号,就能把整块屏的16行给控制起来。 能够控制行,还得能控制任意一个点。一开始只知道595是如何工作的,就全送入0,后来改变输入595的128位,发现第一个送进去的0会在4行中的最后一个点上,就理解了什么叫“位显示的先送”这句话,这样就已经能控制128位中的任意一点的亮和灭。3.2.6.2LED点阵屏的动态扫描设计

27、过程实际上,我们要做的远不止让行和点亮起来这么简单,因为引脚的有限,我们只能用动态扫描的方式来让屏幕显示全部的内容,但是问题有来了,138和595的组合输入究竟是什么样的。时序是如何组合在一起的,我们就试了一下发现屏上的显示规律并不是我们想的那样从左到右依次来的,而是8位一组从左下方开始再到左上方,然后再从下方的往右8位再往上依次类推,直到右上方。这样就影响到了数据组织问题,做到这里老师对我们提出了一个数据缓冲区的概念,说这块屏的显示程序对应有三部分,第一部分就是一个64字节的缓冲区里面是屏上的每个点对应的值,第二个部分是4个变量也就是屏上列分成8位一组的点钟要现实的内容的值。第三个部分就是扫

28、描输出程序,这个程序只需要扫描64字节的缓冲区其它的不用管,这三部分的工作过程是,程序通过4个变量在字库中选择要显示的值的编码送入64字节的显示缓冲区中对应的位置,在通过扫描程序来把显示缓冲区中的内容送给显示屏。这个过程也是成为整个程序的主要框架后面的功能在这些基础上添加和修改的。程序写到这里出现了单片机无法解决的问题RAM的大小不够用无法执行程序。这时就不再使用单片机来编写了,我们把程序移植到LPC22C24上面去,由于LPC11C24中引脚的使用不同单片机引脚使用初始化引脚即GPIOSETDIRL(x,x,1)第三位为1表示引脚的状态为输出,前面两位分别为第几个IO口的第几位。而IO口的输

29、出要用GPIOSETVAIL(x,x,x).第一个x表示第几个IO口,第二个x表示第几个IO口的第几位,第三个x表示输出0或1.由于这种输出方式带来的问题是只能用0和1 来输出,所以只能把原来程序中的数据移位一个一个输出,这是和单片机的一个区别。原来程序移植到LPC11C24中后下载可用位就可改变现实的内容了。原来只能显示4位数字,现在要把时间和日期一起显示了。这样就要重新规划数据缓冲区的数据组织和传入数据缓冲区的算法了,用移位来把重新规划的数据缓冲区填入正确的值,并正确显示年-月-日-时-分Buf缓冲区数据组织 控制点阵屏显示时钟就要知道点阵屏上每个点在Buf缓冲区中对应的存储位置,因为我们

30、所使用的是32*16的LED点阵屏,所以 Buf缓冲区就应该是一个64字节的数据缓冲区,每一个字节表示LED屏上的8个点如果我们要在某个位置上显示某一个数字就把Buf缓冲区中对应位置的值改成要显示数字的编码。下图是我们定义时间的年、月、日、时、分在点阵屏上的显示位置和Buf缓冲区对应关系。注:图中063每个数字代表一个字节,数字表示这个字节在BUF缓冲区数组中的位置。比如说图中51就是从左往右的八个小方格,图中的6就是从左往右的八个小方格。51 35 年十位19 3 显示50 34 位置18 年个位显示位置55月十位显示位置59月个位43显示27位置1158422663日十47显示31位置 15 624630日个位显示位置39237点点5438222610144953576133时十位显示位置37时个位显示位置41分十位显示位置45分个位29显示1

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

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