1、基于avr单片机的led点阵屏学位论文毕业设计题 目 基于AVR单片机 的LED点阵屏的设计 摘 要 LED显示屏是一种由很多个发光二极管组成的点阵,通过控制半导体发光二极管的亮灭来显示内容的显示屏。LED显示屏分为数码显示屏、图文显示屏和视频显示屏,都是由LED矩阵块组成。目前由于LED显示屏造价昂贵,主要应用于比较高档的场所,主要集中在城市的繁华场所。本文介绍了一款以AVR单片机为控制器的LED点阵显示屏系统的设计。该系统可实现字母汉字的静态显示和动态滚动效果,并且可以通过外扩接口级连的方式来扩大显示屏幕的尺寸以达到增加显示内容的目的。系统采用PC机作为上位机,上位机向单片机发送控制命令和
2、上位机所存储的字模数据,AVR 单片机接收字模数据并处理PC机的控制命令,由显示驱动模块驱动一个1616分辨率的LED点阵显示屏的扫描显示。PC机与单片机之间的通信采用RS232C通信标准来实现。该系统只占用了单片机少量的I /O口和内存,为系统留下了功能扩展的空间。关键字:LED点阵显示屏,AVR单片机,595驱动,串口通信 ABSTRACT LED matrix display is a kind of display that is composed of a lot of semiconductor light emitting diodes usually red light.emi
3、tting diodes which show character by the LED on and off. LED display is divided into Digital display, Graphic display and Video display, which is composed by LED matrix. Because of high price of the LED matrix , now it is mainly used in relatively luxury places. This paper introduces a design of the
4、 LED lattice display system base on MCU AVR .The system can display in both Chinese and English characters of the show and from top to bottom and move around the magic show. And can be cascaded to expand the screen size to achieve increased content purposes. The PC sends control commands and display
5、s code to microcontroller, AVR receives control commands from PC and shows the code, Driver module drives a 1616.resolution LED lattice LEDs panel display scan showed. Communication between PC and the microcontroller using RS.232C communications standards. In addition, the system will take up only a
6、 small amount of the MCU I/O and memory,so that the system has functional space for expansion.Key words: LED matrix, AVR, 595 driver, UART 目 录摘 要 IABSTRACT I第1章 绪论 11.1 课题背景 11.1.1 选题背景 11.1.2 我国现状 11.1.3 LED显示屏的市场前景 1第2章 方案论证与选择 22.1 系统硬件方案设计 22.1.1 通信系统 22.1.2 LED点阵显示屏 32.1.3 LED点阵屏的驱动方式 32.1.4 硬件
7、设计方案 42.2 系统软件方案 52.2.1 单片机编程语言 52.2.2 系统软件编译器介绍 62.2.3 上位机控制传输软件 62.2.4 下载软件 7第3章 系统硬件设计 73.1 硬件系统的总体设计 83.2 AVR单片机最小系统设计 83.2.1 串口通信电路设计 83.2.2 复位电路设计 93.2.3 单片机的下载口 103.2.4 AVR单片机的时钟电路 113.2.5 AVR单片机最小系统 113.3 LED点阵屏设计及驱动电路设计 123.3.1 驱动电路设计 133.3.2 行驱动电路设计 133.3.3 列驱动电路设计 153.4 LED点阵屏设计 16第4章 系统软
8、件设计 184.1 主程序设计 184.2 显示程序设计 194.2.1 显示驱动程序的设计 194.2.2 点阵数据的获取 194.2.3 串口通信程序的设计 20第5章 系统制作与调试 235.1 系统硬件部分的调试 235.1.1 短路与虚焊检测 235.1.2 上电测试 235.1.3 串口调试 245.2 系统软件调试方法 245.3 系统软硬件调试及结果 26结 论 27参考文献 28致 谢 29附录1:系统PCB 30附录2 系统运行样式 31附录3:系统程序部分代码 32第1章 绪论1.1 课题背景1.1.1 选题背景LED点阵显示屏是八十年代后期迅速风靡全球的新型信息显示媒体
9、,显示屏由几万几十万个半导体发光二极管点阵像素均匀排列组成。利用不同的制作材料可以制造不同发光颜色的LED像素点。目前应用最广泛的是红色、绿色、黄色。而蓝色和绿色LED显示屏的开发已经达到了实用阶段。LED显示屏可以显示变化的字母、数字、文字、图形图像,不仅可以用于室内装饰还可以用于室外环境,具有投影仪、电视墙、液晶显示屏都无法比拟的优点。在短短的十几来年中,LED显示屏就以其功耗小、亮度高、能够承受各种恶劣气候而得到了广泛的应用。LED显示屏的发展前景极为广阔,目前正朝着更高亮度、更高的发光密度、更高的发光均匀性、更高耐气候性、可靠性、全色化的方向发展。LED显示屏的应用涉及到社会经济的方方
10、面面,主要应用的场合有:(1)车站的买票公告栏(2)广场的LED电视直播(3)银行的交易信息及利率等信息的显示(4)商店超市的广告牌等等。1.1.2 我国现状 自LED显示屏诞生至今,我国在LED显示屏领域的研究,在国际上还是名列前茅的。目前各种形式的LED屏幕在我国都有生产,其中最流行的彩色LED显示屏做的很突出,这种显示屏主要用在广场跟街头的城市电视中。现在一些电脑的显示器也开始采用了LED显示技术,应该来说在这方面,我也没有落后于别的国家,联想研制的新型笔记本,很多采用了LED显示技术,突破了原来的LCD显示,这种笔记本电脑的显示屏亮度更高,功耗更低,可谓是理想的选择。相信在未来的中国将
11、会有更多的电子产品采用LED显示技术。1.1.3 LED显示屏的市场前景由于LED显示技术也是最新兴起的技术,目前LED显示技术的发展还是比较迅速,其中大多数用于商家的广告牌,晚上在城市的街道,到处可以看见LED显示屏的影子。LED显示技术是跟信息技术紧密相连的,信息技术的发展必定会带动LED显示技术的进步,在不久的将来,也将会出现更多的电子产品采用LED显示。可以将发光二极管做的更小,这样生产出来的LED显示屏的分辨率会更高。第2章 方案论证与选择2.1 系统硬件方案设计大多数的LED显示屏都在户外,所以对屏幕的材质硬件的质量要求非常的高。为方便检修和维护硬件电路设计,常常采用模块化的设计方
12、法。硬件的设计采用模块化设计,既要满足模块本身功能要求又要能够和整个系统兼容。如图2.1所示,根据显示系统的功能特点,从而确定系统硬件由控制部分,显示屏部分,通信系统及上位机四部分组成。上位机通过通信串口部分向主控芯片发送控制指令和显示内容字模数据,主控芯片执行显示指令,将需要显示内容的字模数据转换为二极管的亮灭,从而显示出内容。图2.1 系统硬件结构2.1.1 通信系统 通信部分的设计要满足要求就是稳定、快速、简单易实现。因为在通常情况下显示屏和上位机之间的传输距离不会很远,所以对通信距离的要求不是很高,采用RS232标准就可以。计算机通信的方式主要有并行通信和串行通信两种方式。 (1)并行
13、通信 计算机并行通信时,数据是一起发送的。一起发送的数据位数就是并行通信的宽度,这个宽度可以是一个字节也可以是一个字。并行传输的速度较快,因为可以一起传送很多的位数,但是并行传输的成本很高,故在远距离传输时,我们选用串行通信。(2)串行通信串行通信每次只可以发送一位数据,所有的数据信号都是在一条数据线上发送的,所以只需要很少几根线就可以进行,串行通信的速度低,但传送的距离长,因此串行通信适用于长距离而速度要求不是很严格的场合。在串行通信时,数据是一位一位按顺序进行的,而计算机内部的数据是并行进行处理的。因此,当计算机向外发送数据时,必须将计算机内部的并行数据转换为串行数据再发送。反之,当计算机
14、接收数据时,又必须将串行数据转换为并行数据进行处理。这种转换可以由硬件来实现也可以由软件实现。如果仅用软件实现又会增加CPU的负担,降低其利用率,故目前常通常采用硬件实现。通用异步接收/发送器,简称UART(Universal Asynchromous Receeiver/Trabsnitter)是完成这一功能的硬件电路。在AVR单片机芯片中,UART已经集成在单片机内,作为其组成部分,构成一个串口。 综上所述,在本系统中将采用UART来实现单片机与上位机之间的通信,由于串口已经集成在了单片机的内部,故只需设置相关寄存器就可以使用串口了。2.1.2 LED点阵显示屏显示部分有可以显示汉字的显示
15、屏和对显示屏进行驱动的底层硬件电路。由于单片机的I/O口有限且计算机IO口的驱动能力不是很强,故不能直接用单片机的I/O口来驱动LED显示屏,所以需要对单片机IO口进行扩展来增加单片机并行输出和驱动能力。LED显示屏是由一个一个的发光二极管组成的点阵构成的,要构成大尺寸的LED显示屏就需要很多的发光二极管。构成LED屏幕的方法有两种,一是由单个的发光二极管逐点连接起来构成的,如图2.2所示;二是选用一些由单个发光二极管构成的LED点阵单元模块来构成较大的LED点阵模块。目前市场上普遍采用的点阵单元模块有88、1616几种。这两种屏幕构成方法各有自己的优缺点,单个发光二极管构成显示屏优点是当某个
16、发光二极管出现问题时只需更换一个二极管便可以正常工作,检修的成本较低,缺点在于连接线路较为复杂;而点阵模块构成的方法却正好与之相反,采用点阵模块构成显示屏节约了大量的连线,但是一旦某个发光二极管出现问题时,与其同在一个模块的所有LED都必须被更换,这样就加大了维修的成本。两种方法相比较,本系统中采用模块点阵的方法,这样可以避免较为复杂的连线。为了避免点阵模块的缺点,在本系统中选用8x8LED点阵的基础单元模块,这样一段某个发光二极管出现问题,我们只需更换一个8x8的点阵模块,若选用16x16的单元模块,则更换的成本太高了。2.1.3 LED点阵屏的驱动方式 LED点阵的驱动方式有两种:恒流驱动
17、方式和非恒流驱动方式。在非恒流驱动方式中,可以将74HC595输出的数据直接接到点阵屏上,即用74HC595输出的电流来驱动显示屏,但有74HC595输出电流有限,不能驱动很多的发光二极管同时点亮,所以当一排点亮很多二极管时,会出现跟其他排亮度不一的现象。恒流驱动是将74HC164的输出接到三极管基极,三极管的发射极接到电源上,集电极接到LED显示屏幕上。图 2.2 LED点阵图一个1616的LED显示屏行和列各有16支引脚,我们不能直接用单片机来驱动显示屏,因为单片机的IO口驱动能力很弱,而且直接接到单片机上,会占用大量的IO口。在单片机驱动LED显示屏时,常采用IO口扩展的方式,在这里我们
18、采用74HC595、74HC164来进行IO 口扩展,这样只需要占用少量的IO口便可以驱动显示屏了。由于74HC595芯片输出的电流只有30mA,所以不能驱动很多的发光二极管同时发光,这样我们需要在每个芯片的输出端口加上功放电路,这样我们就可以同时点亮很多的发光二极管,这就是LED显示屏的恒流驱动。但是,采用恒流驱动的方式,对于电源的要求也相应的提高了,要求电源必须能够提供足够的电流,来驱动大量的发光二极管同时发光。2.1.4 硬件设计方案最终方案如图2.3所示,在这里,我们让PC机作为上位机,在PC机上运行串口调试助手,通过此软件来实现上位机与单片机之间的通信。在上位机中,存储着字模数据和控
19、制数据显示的方式的控制指令。首先上位机将字模数据发送到单片机内,单片机接受到字模数据,通过译码电路,将字模数据还原出来,利用这些01字符串来控制发光二极管的亮灭,从而在点阵屏幕上显示出内容。题目将以此涉及方案为指导展开具体的硬件电路设计。图2.3 硬件设计方案2.2 系统软件方案软件的设计除了满足系统的功能外,还必须满足容易读写,方便下载和编译的特点。在系统设计目标和硬件总体结构确定的情况下,系统程序可以由主程序,显示驱动程序和各种特效显示程序,串口通信程序三个主要部分组成。具体结构如图2.4所示。图2.4 软件功能结构框图程序的编写需要借助编辑编辑器和编译软件,本系统中采用ICCAVR这个集
20、成开发环境来编写编译程序,编译完成后还需要下载软件将编译生成的HEX文件下载到单片机中执行。编写程序之前首先选择一种合适的程序设计语言以及配套的编辑器和编译软件。最后还需要选择与所选单片机相适应的下载器和下载软件,来把程序执行生成的hex文件下载到单片机中。2.2.1 单片机编程语言在单片机开发领域所用的主流编程语言为汇编语言和C语言。两种语言相比较各有优点。汇编语言(Assembly Language)是面向特定机器的程序设计语言,是一种功能很强的程序设计语言,汇编语言是直接控制计算机的硬件来执行的,所以它对编程人员的要求好高,程序员要充分的了解所使用的单片机的硬件架构及组成特性。汇编语言具
21、有执行速度快,占内存空间少等优点,所以它一般用在对于时间空间要求比较严格的场合,在平时我们开发单片机程序时,一般都用不到。汇编语言对于机器的依赖性较强,在一种型号的单片机上编写的汇编程序不能移植到另一型号的单片机上,这就限制了它的应用。C语言是一种高级程序设计语言,C语言经过若干年的使用,可以证明其强大性,C语言最初是用来开发UNIX操作系统,在C语言在其编译效率、执行速度等方面显示出了强大的优越性,这就扩大了它的使用范围。C语言相比于其他程序设计语言,最大的特点是可以直接控制硬件,这是JAVA、C#等高级语言多没有的特性,它兼顾了高级语言的特点,又具有汇编语言的特点,其执行速率也是很快的。所
22、以C语言成为了嵌入式开发领域的主流语言。另外,C语言还是一种结构化语言,在C语言中最基本的单元就是函数,我们可以把功能接近的代码,放在一个函数中,这样我们的程序就成为了由一个个函数组成的整体,在主函数中我们可以调用相应的函数来实现某种功能,C语言的这种特点使其很容易调试、修改。在C语言中,有很多的库函数,如果在我们的程序中要实现某种功能,而这种功能在函数库中已经得以实现,那么我们就可以将这个函数库直接包含在我们的程序中,可以减少我们自己多要编写的代码量。综合比较了两种语言,在本系统设计中,我们采用C语言作为程序设计语言。2.2.2 系统软件编译器介绍用C语言编写好的程序不能直接被单片机所执行,
23、要想让C语言控制单片机运行,需要对C语言程序进行编译,所以编译程序是不可缺少的。支持AVR用C语言编程的编译器主要有:ICCAVR编译器和AVRStudio编译器。目前在单片机开发中普遍都是使用ICCAVR来进行编译。因此软件设计最终方案为采用C语言为编程语言,ICCAVR为编译工具按照控制、通信、显示等几个功能模块来编写程序。2.2.3 上位机控制传输软件本系统采用PC机作为上位机,这样对该系统的控制就变得简单了,因为PC机可以直观的反应单片机的状态。本系统中上位机的作用是存储字模数据并控制单片机的显示,通过通信系统将控制指令传送到单片机中控制LED的显示。LED点阵屏的显示一般有存储显示和
24、实时显示两种。存储显示是将要显示数据的字模通过串口由上位机发送到单片机内,单片机接到上位机发来的数据,再接受上位机的控制信息便可以在LED显示屏上显示了。实时显示即上位机屏幕上显示的内容会同步的显示到单片机多控制的LED显示屏上。两种显示方法相比较:实时显示对于硬件的要求较高,对于通信系统的要求很高,上位机需要不断的将更新的数据发动到LED屏幕上,通信开销交大,此种显示方式多用于广场的新闻播报显示屏。存储显示不要求有较高的传输速率,对硬件要求不是很高,多用于需要较长时间在显示屏上显示信息的场合,上位机将数据发送到单片机后,单片机便可以将其长期的显示在屏幕上了。本系统设计中,对于实时性要求不是很
25、好,另外,从成本方面考虑,选用存储显示来设计系统。2.2.4 下载软件 AVR单片机的下载软件主要有:AVRFighter ,Mucode,AVRStudio。AVRStudio在下载程序时,不方便设置熔丝位,而AVRFighter ,Mucode可以方便直观的设置AVR的熔丝位,所以本系统采用AVRFighter作为下载软件。第3章 系统硬件设计在第二章中,讨论过不同的软硬件设计方案,选择了最有效的方案,在本章中详细设计系统的硬件,其中包括AVR单片机最小系统的设计,串口通信硬件设计,ISP下载口设计,JTAG调试口设计,LED点阵屏幕设计,LED驱动电路设计。3.1 硬件系统的总体设计本系
26、统采用AVR单片机为核心控制器件,用四块8*8点阵相连组成16*16点阵屏,作为显示部分,用两片74HC595作为列驱动控制,用74LS164作为行驱动控制,系统硬件总体方框图如图3.1所示。图 3.1 系统硬件总体框图3.2 AVR单片机最小系统设计 AVR单片机最小系统包括UART串口,AVR芯片,复位电路,时钟电路,ISP下载口,JTAG仿真调试接口,电源供电接口。在串口通信中采用MAX232芯片作为电平转换芯片,AVR单片采用的是TTL电平:+5V代表逻辑1,0V代表逻辑0而PC机采用的是RS232电平,+15V代表逻辑0,.15V代表逻辑1,与单片机的逻辑电平不一致,所以采用MAX2
27、32芯片进行电平转换。3.2.1 串口通信电路设计在串口通信设计中,我们选用UART与上位机进行通信,串行通信可分为同步串行通信与异步串行通信。同步串行通信的代表有SPI、IIC,这种通信的最显著特点是,收发方有相同的时钟来协调双方的发送。异步串行通信的代表是UART,在这种通信方式里,我们没有统一的时钟来协调收发方。收发方数据一致性的保证是波特率,在这种发送方式中,每个数据帧的格式是一位起始位,后跟若干数据位,奇偶校验位,停止位。数据位的位数我们可以在配置寄存器中进行设置,而选用奇偶校验也可以在配置寄存器中进行设置,这样就可以保证了数据发送的正确性质了。 串口通信电路原理图如图3.1所示,在
28、DB9中只用到3跟线,其中第五管脚接地,第二管脚接到MAX232的第14管脚,在MAX232中11管脚输入的数据经过电平转换从14管脚发送出去,传送到上位机中,其中11管脚接单片机的串口发送端。DB9的第3管脚接到单片机的13管脚上,上位机发送的数据通过13管脚进行电平转换,从MAX232的第12管脚发送出去,传送到单片机的串口接收端。图3.1 串口通信电路原理图3.2.2 复位电路设计复位电路是确保单片机最小系统中不可缺少的一部分,当单片机上电后,单片机会自动运行存储在FLASH中的程序,当程序出现问题时候,我们希望程序重新开始执行,那么我们会使用到复位,单片机重新开始执行程序,我们会在自小
29、系统中设置一个按键,当手按下,单片机会自动复位,这种复位叫做上电复位。另一种复位是上电复位,但我们打开电源时候,单片机会自动复位,从FLASH开始处,执行程序。复位电路工作原理如图3.3所示,当系统上电时,电流经过10K电阻和10uF电容,系统导通,此时在电容的正极上是低电平,而AVR单片机是低电平复位,所以此时单片机复位。在上电过程中,电容有个充放电的过程,所以上电后瞬间电容又放电。此电路中还有手动复位的功能,当按下按键时,电流经过10K电阻,又经过1K电阻,电路导通,此时在10K电阻两端有个很大的压降,10K电阻RESET端为低电平,单片机复位。图3.2 复位电路3.2.3 单片机的下载口
30、 在PC机上写好的程序要下载到单片机里才能控制单片机的IO口输出高低电平,从而控制LED点阵屏亮灭。对于AVR单片机来说,可以有两种下载程序的方法,一种通过ISP在线下载,一种通过JTAG仿真调试,在调试后程序自动下载到单片机里,同时JTAG仿真调试可以很方便的找出程序中的错误,有利于调试,所以在的最小系统中也加入了JTAG口。 ISP下载口的电路原理图如图3.3所示,接口的2管脚接VCC,4、6、8、10管脚接GND ,在下载器上可以通过跳线设置通过下载线给单片机供电,接口的第3管脚悬空,1、5、7、9接到单片机的程序下载口上,这样通过下载器就可以向单片机里下载程序了。JTAG仿真调试口电路
31、原理图如图3.4所示,其中1、3、5、9分别接到单片机的JTAG调试口,在AVRStudio开发环境中,可以通过JTAG仿真调试逐句执行程序语句来观察单片机控制的LED显示屏的现象还帮助调试。同时也可以用仿真调试器来给系统供电。图3.4 JTAG下载口3.2.4 AVR单片机的时钟电路对于AVR单片机来说,片内已经集成了晶振,可以采用外部晶振提供时钟源,也可以通过设置单片机的熔丝位来改用内部晶振。但是,在系统对时钟要求严格的场合应选用外部晶振。在本系统中,由于要用到串口通信,在串口通信中要用波特率来保持上位机跟单片机传输数据的一致。所以的系统采用外部晶振的工作方式。如图3.5为单片机的时钟电路
32、。3.2.5 AVR单片机最小系统AVR单片机最小系统是单片机能够正常工作时,所需要连接的最少管脚数,一般AVR单片机要能够工作需要接电源、地、晶振、下载口。图3.6为AVR单片机的最小系统原理图,在本系统中,由于采用了74HC595芯片及74HC164芯片实现串行数据转换为并行数据,所以在的系统中只用到少量的IO口,这样其他的IO口可以用来控制其他的外设,达到减少IO口的目的。在画原理图的过程中,我大量的使用了网络标号,网络标号相同的结点可以正常的连接起来,这样可以避免在画电路原理图时,采用大量的连线。采用网络标号可以达到模块化的目的,这样画较为复杂的电路原理图时,可以很整洁清晰的表达出来。也有利于原理图的纠错,避免了复杂难看的线路连接网络。其实,AVR单片机内部已经集成了很多外围设备接口,在AVR单片
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1