1、 本科毕业设计 ( 20 届) 基于单片机的霓虹灯控制器设计 所在学院 专业班级 通信工程 学生姓名 学号 指导教师 职称 完成日期 年 月 摘 要 霓虹灯控制器在我们生活中,在照明、显示、广告等各行各业的应用与推广越来越多。 课题所设计的基于单片机的霓虹灯控制器是 通过使用单片机控制,FPGA 驱动,实现控制 LED 彩灯表现出各种所需的图案。 控制器 利用新华龙 C8051F 单片机作为主控核心,利用 FPGA 实现驱动电路,与键盘和显示电路组成控制器的硬件电路。单片机实现各个模式的转换控制,可通过按键控制若干种亮灯模式,具体的 LED 灯驱动采用 FPGA 来实现,每个模式内部的间隔时间
2、利用单片机内部定时器 TR2 实现。 经软硬件设计和调试,该设计实际应用效果较好,有 7种亮灯模式,用户可以选择不同的亮灯模式实现不同的图案。由于设计是以单片机为核心,具有修改容易,方便扩展等特点。 关键词 : 单片机; FPGA;霓虹灯控制器; VHDL Abstract The application and popularization of Neon Light Controller are increasing in our daily life, including illumination, display, advertisement and many other trades
3、 and professions. The Neon Light controller based on SCM in this design is to control LED to display all kinds of needed patterns by using SCM and FPGA drive. C8051F is used as the core of master control in the controller, and FPGA is used as the driver circuit to make up the hardware circuit of the
4、 controller together with keyboard and display circuit. The SCM realizes the switching control of each mode. Each lighting mode can be controlled by buttons. The specific LED light is realized by FPGA, and the spacing interval in every mode is realized by the timer TR2 inside the SCM. As a result of
5、 the design and debugging of the software and hardware, this design possesses a preferable practical application effect. There are seven kinds of modes for lighting, and the users can choose different lighting modes to realize different patterns. Because it is based on SCM as the core, this design h
6、as the features of being revised easily and updated conveniently. Keywords: SCM; FPGA; Neon Light Controller; VHDL 目 录 1 引言 . 1 1.1 课题研究现状 . 1 1.2 论文研究内容及章节结构 . 1 2 总体设计 . 3 2.1. 设计要求 . 3 2.2 方案论证与比较 . 3 2.2.1 显示部分设计方案论证与选择 . 3 2.2.2 驱动部分设计方案论证与选择 . 4 2.3 系统总体结构 . 4 2.4 小结 . 5 3 硬件设计 . 7 3.1 主控模块 .
7、7 3.2 显示驱动模块 . 9 3.3 单片机与 FPGA 之间的通信 . 9 3.4 按键模块 . 10 3.5 显示模块 . 11 3.5.1 七段数码管显示部分 . 11 3.5.2 LED 灯显示模块 . 12 3.6 小结 . 12 4 软件设计 . 13 4.1 总体程序 . 13 4.2 单片机部分设计 . 15 4.2.1 系统时钟选择及初始化程序 . 16 4.2.2 端口配置程序 . 17 4.2.3 定时器初始化程序 . 18 4.2.4 定时器 2中断程序 . 18 4.2.5 按键部分程序设计 . 19 4.3 FPGA 部分设计 . 20 4.3.1 仿真平台 .
8、 21 4.3.2 译码器设计 . 21 4.3.3 具体工作模式 . 22 4.4 本章小结 . 25 5 制作和调试 . 26 5.1 制作及测试 . 26 5.2 调试过程中的问题以及解决 . 26 6 结论 . 27 致 谢 . 错误 !未定义书签。 参考文献 . 28 附录 1 毕业设计作品说明书 . 29 1 引言 1.1 课题研究现状 众多的先进技术行业随着中国经济的飞速发展,科技的进步不断兴起。中国作为人口最多的国家,拥有巨大发展潜力的市场。在中国,电子、通信、机电、航空、水利等行业还相对落后。随着电子技术的高速发展,电子系统的应用领域越来越广泛,其中 LED控制器技术的发展趋
9、势相当强劲。在提倡技能环保的现在,LED 这个外形变化多端、加工灵活、色彩丰富的光源,在日常生活的各个领域发挥了其特有的作用,而 LED 控制器的广泛应用也是 LED 使用效果最大化。随着这一进程的加快,我国的这类电子器材必将进入大发展时代 。 LED 在我们生活中应用广泛,在广告、商业、交通、建筑、室内外装饰、舞台布景、家用电器、城市美化等领域发挥了其特有的作用。在照明、显示屏、背光源,汽车工业在各行各业的应用与推广也越来越多。 目前市场各式样的 LED彩灯控制器大多数用全硬件电路实现,电路结构复杂 ,功能单一,这样一旦制成成品只能按照固定的模式善良,不能根据不同场合,不同的需要来调节亮灯时
10、间、模式、闪烁频率等动态参数。这些控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。从功能效果上看,亮灯模式少而且样式单一,可控制性差,亮灯效果不尽如人意 1。 1.2 论文研究内容及章节结构 本文主要从总体设计、硬件电路和软件设计、调试结果以及结果分析等方面展开叙述。各个章节结构具体描述如下。 第二章介绍系统总体设计,对多种方案对比,选择其中一种,并对系统方案进行概述。 第三章介绍系统的硬件设计部分,分模块介 绍系统的 4个模块,分别为:主控单片机、显示驱动、按键控制部分和显示模块,详细介绍各个模块的电路图以及结构。 第四章介绍系统的软件部分设计,介绍软件的整体结构以及各个子模块的程序流
11、程图,分析程序功能。 第五章介绍调试与制作过程,测试数据以及分析测试结果。 第六章论文总结以及问题分析。 2 总体设计 2.1. 设计要求 课题的主要任务是设计一个 128路霓虹灯。主要目标是完成霓虹灯控制器的设计与调试,可以扩展为红外遥控不同显示方案间的转换,加设语音芯片和音乐盒,在显示不同图案的同时发出 不同的音乐和语音信息。 2.2 方案论证与比较 LED控制器的设计方案多种多样,根据显示的 LED灯管的数量不同,用户需求的图案不同可以选择不同的微控制器,可编程器件等,下面重点介绍各个重要部分的方案。 2.2.1 显示部分设计方案论证与选择 方案一,采用移位寄存器扩展 I/O 口。利用
12、74HC595 扩展单片机的输入输出口来接发光二极管,实现串行输入并行输出。电路图如 2-2.1 所示。此方案可扩展受控制的发光二极管的数量,但要控制 128 个 LED 需要 16 个移位寄存器,需要芯片多,且 PCB 布局和布线不方便。图 2-1 为寄 存器扩展电路图。 Q11Q22Q33Q44Q55Q66Q77Q015Q 79/S C L R10S C K11R C L K12/G13S E R14Q?7 4H C 5 9 5Q11Q22Q33Q44Q55Q66Q77Q015Q 79/S C L R10S C K11R C L K12/G13S E R14Q?7 4H C 5 9 5L1
13、 L2 L3 L4L5 L6 L7 L8L1 L2 L3 L4L5 L6 L7 L8R11 0KR21 0KR31 0KR41 0KR51 0KR61 0KR71 0KR81 0KR 2 51 0KR 2 61 0KR 2 71 0KR 2 81 0KR 2 91 0KR 3 01 0KR 3 11 0KR 3 21 0KD A T AN1N2N3、 图 2-1 寄存器扩展电路图 方案二,采用矩阵式分布。利用单片机的 p1 口做行选信号, p2 和 p0口做列选信号, 128 个 LED 构成 8行, 16 列的矩阵。详细电路图见硬件部分显示电路设计中。此方案能单独控制每一个 LED,也可单独
14、控制每行或每列的 LED,可形成丰富的图案或花样,显示部分不需要格外的芯片,形成的电路简单, PCB 的布局和布线也较容易和美观。实际的电路则使用 30 个 LED 灯,构成一个 5 行, 6列的矩阵 。 综上所述,考虑到要求控制的 LED 较多,而且矩阵式能 形成较丰富的图案,PCB 板的布局和布线也较美观,选择方案二 2。 2.2.2 驱动部分设计方案论证与选择 方案一,三极管一级驱动。由 1个 9012 驱动一行 16 个 LED。正常发光时每个 LED 的工作电流为 1015 毫安, 16 (1015) =160240 毫安 , 这样大的电流一个三极管就能提供。当一行同时亮时能满足发光
15、工作要求。当一个灯亮时,由于亮的时间非常短不会对 LED 的工作造成影响。 方案二,使用 EPM1270 可编程器件完成硬件逻辑设计的任务,将繁琐的硬件设计模块化,对于 128 个灯控制也能较为轻易达到,而 实际的 5-32 译码更能轻松完成。 综上所述,选择 EDA 可编程逻辑设计,能使电路简化,而且图案更加灵活化,选择方案二 2。 2.3 系统总体结构 本设计要求该控制器能达到控制 128 个 LED 灯,要求能控制形成多种图案和花样。经过综合考虑,要完成 128 个 LED 灯的图案控制,而现有的 51单片机直接用 I/O 口控制 LED 的话,存在引脚数量不够等问题。所以采用可编程逻辑
16、器件来驱动 128 个 LED 灯。课题总体采用 C8051F005 单片机和 EPM1270T144C5 可编程逻辑器件一起来完成 LED 灯控制器的设计。其中 C8051 单片机可以完成软件设计以及模式控制等任务, EPM1270 可编程器件可以完成 LED 灯驱动和具体模式控制等任务,两者之间的联系通过地址线和数据线来传递。系统总体框图见图 2-2。 图 2-2 设计系统总体框图 课题采用基于单片机的 LED 彩灯控制方案。单片机内部有和电脑功能类似的模块,比如 CPU,内存,并行总线,还有和硬盘作用相同的存储器件,而且价格低,用来作为 LED 控制器很合适。单片机的控制主要通过程序来实
17、现,便于修改和升级。通过不同的程序实现不同功能的控制,仅仅作为控制部 分的是比较理想的选择。 使用 FPGA 设计作为本设计驱动部分。 FPGA 作为一种高密度的可编程逻辑器,可以使用内部连线连接这些功能块来实现一定的逻辑功能,具有开发简单、静态可重复编程和动态在系统编程的特点。运用 VHDL 语言编程,配置加载FPGA,基于 Quartus II 开发,将显示驱动部分模块化,可以大大降低整个电路的整体规模,而且只需要通过 VHDL 语言的编程可以较为灵活的存储用户需要的模式。 LED 的显示部分,采用矩阵型排列 LED 灯管, 128 个 LED 构成 8 行, 16 列的矩阵。此方案能单独
18、控制每一个 LED,也 可单独控制每行或每列的 LED,可形成丰富的图案或花样,显示部分不需要格外的芯片,形成的电路简单, PCB 的布局和布线也较容易和美观。 按键部分的设计,采用 4 个按键, 4个 LED 灯,以及 6个 7段数码管来显示用户当前的操作,由单片机编程,达到切换模式,选择模式,确定等功能 3。 2.4 小结 经过以上的方案论证,由于要完成 128个 LED的控制,单纯使用数电的 3-8译码器显然不现实,因此采用单片机与 FPGA共同工作的方式完成设计。 C8051F作为主控制部分,控制按键,模式显示以及 按顺序循环显示亮灯模式,使得该设计的LED控制器的可控性增强,也更加人性化。 FPGA主要作为显示驱动出现的本设