LED16x16点阵课程设计报告

更新时间:2023-09-18 21:07:01 阅读量: 幼儿教育 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

题目:

天津理工大学中环信息学院

电子系单片机课程设计报告

×16点阵LED电子显示屏的设计

班 级 10

信科一

指 导 教 师 田野 设 计 成 员 陈诗静 林樟 侯成飞 电子系 2013年07月 05日

16

天津理工大学中环信息学院--电子系

一.课程设计意义

随着LED 技术的不断发展以及LED 在低功耗、长寿命、环保等方面的优势,LED 应用领域逐渐增多。同时,许多国家在看到LED 巨大的市场潜力后,纷纷出台各项鼓励措施大力推动LED 在各领域中的应用。目前,LED 的应用已经从最初的指示灯应用转向更具发展潜力的显示屏,景观照明、背光源、汽车车灯、交通灯、照明等领域,LED 应用正呈现出多样化发展趋势。LED 器件技术和性能不断提高,电子技术发展日新月异,这也为LED 显示屏产品的技术深化和提高带来良好的基础。同时LED 显示在社会生活的各个领域得到了广泛的应用,因此,LED 显示市场发展前景乐观。深化技术内涵,丰富产品体系,产品多元化,突出主导产品的优势将是LED 显示屏产业发展的重要趋势。 尤其是LED 点阵显示的应用尤为广泛,随着信息产业的高速发展,LED 显示作为信息传播的一种重要手成为现代信息化社会的一个闪亮标志。 发光二极管(LED )显示屏是上世纪八十年代后期在全球迅速发展起来的显示媒体。它利用发光二极管构成的点阵模块或像素单元,组成大面积显示屏幕,以其可靠性高,使用寿命长、环境适应能力强、性能价格比高、使用成本低等特点,短短的十几年中,相关技术和产业都取得了长足的进步,已发展成为重要的现代信息发布媒体手段。近年 LED 显示已广泛应用于室内、外需要进行服务内容和服务宗旨宣传的公众场所如电信、邮政大厅、营业部、车站、机场、港口、体育场馆等信息的发布,政府机关政策,政令的发布,各类市场行情信息的发布和宣传等。而且随着科学技术的发展LED 点阵显示被应用到大、中、小屏幕显示器:各种广告牌、体育记分牌、金融、交通指示牌等,分为全色、三色、单色显示屏。随着社会信息化的进程,LED 显示屏在信息显示领域的应用前景愈加广阔。 它的优点:亮度高、工作电压低、功耗小、微型化、易与集成电路匹配、驱动简单、寿命长、耐冲击、性能稳定。

2

天津理工大学中环信息学院--电子系

二.课程设计任务书 1.功能要求 设计一个室内用16×16点阵LED图文显示块,要求在目测条件下LED显示屏个点亮度均匀、充足,可显示图形和文字,显示图形或文字应稳定、清晰无串扰。图形或文字显示有静止、移出、移入等显示方式 2.设计要求 根据功能要求,应采用动态显示的设计方法,同时为简化设计,减少硬件数量,显示数据的传输采用串行传输方式。 (1) 熟悉AT89S51单片机系统的使用方法。 (2) 掌握动态显示原理及实现方法。 (3)初步掌握AT89S51单片机编程方法。 (4)掌握串行数据传输方式的应用。 (5) 实现利用AT89S51单片机控制的LED图文屏正常工作。 3.内容要求 单片机课程设计的主要内容包括:理论设计、调试与仿真、撰写设计报告等。其中理论设计又包括选择总体方案,硬件系统设计、软件系统设计;硬件设计包括单元电路,选择元器件及计算参数等;软件设计包括模块化层次结构图,程序流程图。程序设计是课程设计的关键环节,通过调试进一步完善程序设计,使之达到课题所要求的指标,使理论设计更接近于实际产品。课程设计的最后要求是写出设计总结报告,把理论设计内容,调试的过程及性能指标的测试结果进行全面的总结 指导教师: 田 野 日 期:2013.7.5

3

天津理工大学中环信息学院--电子系

三、课程设计进度计划及检查情况记录表

序号 1 2 3 4 5 6 日期 6-25 6-27 6-27 6-28 6-28 7-5 计划完成内容 实训动员、准备工作及选题 总体方案设计 硬件设计及仿真 软件设计与调试 整机测试及撰写报告 答辩与总结 实际完成内容 全部完成 完成 完成 完成 完成 完成 四、成绩评定与评语

指导教师: 日 期: 专业设计的主动性独立思考能力 专业设计 专业设计成绩 与平时表现(20%) 与动手能力(40%) 完成情况(40%)

4

天津理工大学中环信息学院--电子系

目 录

一.课程设计意义 .............................................................................. 2 二.课程设计任务书 .......................................................................... 3 三、课程设计进度计划及检查情况记录表 ...................................... 4 四、成绩评定与评语 .......................................................................... 4 一、总体设计方案 .............................................................................. 6 1.1 总体设计 ................................................................................ 6 1.2 硬件设计 ................................................................................ 7 1.3 软件设计 .............................................................................. 14 二、设计内容 .................................................................................... 16 2.1 系统硬件原理图与仿真 ...................................................... 16 2.2 程序清单 .............................................................................. 18 三.结论、建议及课程设计体会 .................................................... 22 四.参考文献 .................................................................................... 22

5

天津理工大学中环信息学院--电子系

一、总体设计方案 1.1 总体设计

1.1.1 工作原

根据功能要求,应采用动态显示的设计方法,同时为简化设计,减少硬件数量,显示数据的传输采用串行传输方式。

(1) 熟悉AT89S51单片机系统的使用方法。 (2) 掌握动态显示原理及实现方法。 (3)初步掌握AT89S51单片机编程方法。 (4)掌握串行数据传输方式的应用。

(5)实现利用AT89S51单片机控制的LED图文屏正常工作。 1.1.2 硬件部分总体设计

根据功能要求,采用AT89C51单片机,动态显示的设计方法,同时为简化设计,减少硬件数量,显示数据的传输采用串行传输方式,列扫描地址用P1口控制, 总体结构框图如下:

串行口电源AT89C52列驱动器P1行驱动器LED显示点阵

图1-1 系统总体结构框图

6

天津理工大学中环信息学院--电子系

1.2 硬件设计

系统的组成,硬件的选用,芯片的特点 1.2.1 8051系列的单片机

AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图片见下图:

图 1-2 89C51管脚图 (1).管脚说明 VCC:供电电压。 GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出

7

天津理工大学中环信息学院--电子系

4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 (2)P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字 节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

8

天津理工大学中环信息学院--电子系

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出

1.2.2 单片机AT89C51最小系统

单片机采用12M晶振作为时钟源,复位采用上电复位和按键复位两种方式 仿真原理图如下:

图1-3 最小系统

9

天津理工大学中环信息学院--电子系

1.2.3 串行口扩展I/O口

为了减少对I/O口的占用,数据传送采用AT89C51串行口方式0中断外接同步移位寄存器74HC595扩展出一个8位并行口实现8位数据并行传输。仿真原理图如下:

图1-4 I/O口扩展

74HC595管脚说明:

74595的数据端:

QA--QH: 八位并行输出端,可以直接控制数码管的8个段。 QH': 级联输出端。我将它接下一个595的SI端。 SI: 串行数据输入端。 74595的控制端说明:

/SCLR(10脚): 低点平时将移位寄存器的数据清零。通常我将它接Vcc。 SCK(11脚):上升沿时数据寄存器的数据移位。QA-->QB-->QC-->...-->QH;下降沿移位寄存器数据不变。(脉冲宽度:5V时,大于几十纳秒就行了。我通常都选微秒级)

RCK(12脚):上升沿时移位寄存器的数据进入数据存储寄存器,下降沿时存储寄存器数据不变。通常我将RCK置为低电平,当移位结束后,在RCK端产生一个正脉冲(5V时,大于几十纳秒就行了。我通常都选微秒级),更新显示数据。

/G(13脚): 高电平时禁止输出(高阻态)。如果单片机的引脚不紧张,用一个引脚控制它,可以方便地产生闪烁和熄灭效果。比通过数据端移位控制要省时省力。

10

天津理工大学中环信息学院--电子系

1.2.4 16*16点阵行、列驱动

为实现16*16点阵移动显示功能,在显示时采用逐列扫描、2*8数据行输入方式进行显示,列驱动采用两个74HC138级联为4译16译码器,并用P1.0~P1.3进行完成译码,实现逐列扫描,行数据输入采用两个74HC373数据锁存器实现16位异步输出,仿真原理图如下:

图1-5 行驱动

图1-6 列驱动

11

天津理工大学中环信息学院--电子系

1.2.5 16*16点阵制作

设计时必须掌握点阵工作原理方能进行更深层设计。16x16LED点阵其实就是4块8x8点阵LED级联而成的,因此特给出 8×8 点阵LED的工作原理。图(1)为8×8点阵LED外观及引脚图,其等效电路如图(2)所示,只要其对应的X、Y轴顺向偏压,即可使LED发亮。例如如果想使左上角LED点亮,则Y0=1,X0=0即可。应用时限流电阻可以放在X轴或Y轴。而16x16就是在8x8原理的基础上将四块8x8级联而成,如图:

图1-7 8×8点阵LED外观及引脚图

图1-8 8×8点阵LED等效电路

12

天津理工大学中环信息学院--电子系

图1-9(a)

四块8x8点阵LED级联 16*16连接示意图

图1-9(b) 四块8x8点阵LED级联成16x16点阵 LED点阵的显示文字图形原理:

LED驱动显示采用动态扫描方法,动态扫描方式是逐行轮流点亮,这样扫描驱动电路就可以实现多行的同名列共用一套列驱动器。以16×16点阵为例,把所有同一行的发光管的阴极连在一起,把所有同一列的发光管的阳极连在一起(共阴的接法),先送出对应第1列发光管亮灭的数据并锁存,然后选通第1列使其燃亮一定的时间,然后熄灭;再送出第2列的数据并锁存,然后选通第2列使其燃亮相同的时间,然后熄灭;….第16列之后,又重新燃亮第1列,反复轮回。当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能看到显示屏上稳定的图形。该方法能驱动较多的LED,控制方式较灵活,而且节省单片机的资源。

显示数据可通过单片机的P0,,P2口接驱动电路传输到点阵行引脚。 点阵的移动

以下以16×16点阵为例介绍点阵的移动。要显示一个字符,该字符的点阵数据可以列向(纵向)16点组字,又可以行向(横向)16点组字。无论哪一种组字方法,都既可以显示字符的水平方向的移动,又可以显示竖直方向的移动。本设计主要采用汉字的左移,所以以下只作左移显示的解释

列扫描方式左移动:列向组字显示字符水平方向的移动(左滚动)

13

天津理工大学中环信息学院--电子系

延长数组法。将原来字符点阵数组的16个数据重复一遍延长,点阵数组的数据个数为32个。每扫描一帧取8个数据显示,下一帧取数要在数组中后移一个数取数。循环一遍扫16帧。可以假想有两块16×16的点阵模块(共32帧)水平平行排列,用一个恰好能罩住16列点阵的中空方框去罩这个点阵,第1(第1帧)罩住最左边数起第一列开始的16列,就扫描显示这16列;第2次(第2帧)使方框右移一列,罩住做左边数起第2列开始的16列,就扫描显示这16列;······;这样每扫描完一帧使方框右移一列,最后第16次(第16帧)时,罩住左边数起的第16列开始的16列,就扫描显示这16列。如此完成16帧画面的扫描显示,也就完成了整个一次移动循环扫描、之后反复循环,即可呈现显示字符沿水平向左移动的图像

因为是列向组字(列扫描方式,点阵数据为行码,上边为低位下面为高位),希望显示移动的一个字符,第1次扫描从行码的点阵数组中取第1~16个数据,送行码输出口,对应于这8个数据,同时用列码输出口输出列码,分别控制第1~16列。扫描完前16个数据之后,第2次扫描从点阵数组中取第3~18个数据(第18个数据与第1个数据同),送行码输出口,对应于这16个数据,同时用列码输出口输出列码,仍分别控制扫第1~16列。第3次扫描从点阵数组中取第5~20个数据(第20个数据码与第2个数据码相同)扫描······;如此实现字符向左移动。

以上完成一个图形移动的方法,也可以看成是移动16个不同的字形。如图2.13所示,首先扫描第一个字型,同样是16行,16次扫描,16次显示;完成一个字型的扫描以后,再扫描第二个字型;完成第二个字型的扫描之后,再扫描第三个字型······依此类推,即可产生该文字的左移的感觉。

1.3 软件设计

1.3.1 静态显示流程

静止显示是所有显示方式中最简单的一种。单片机上电复位,先调用显示程序,在发送点阵数据给单片机时,根据已经制作好的显示屏的结构特征,即一屏能显示 1 个汉字,显示时是将按组顺序存储的点阵数据,按列扫描依次取出,逐列亮 LED 。在一屏汉字显示完毕后,循环显示一段时间后,字符数据地址偏移32 个字节,接着显示下一屏数据,其流程图如图所示。

14

天津理工大学中环信息学院--电子系

开始 调显示子程序列扫描显示第二个字符 调显示子程序列扫描显示一个字符 I/O口定义,中断设置及初始化 结束 图1-10 静态显示流程图 1.3.2 动态显示流程

先调用显示程序,显示“培养”一个字符,显示之后马上熄灭,接着调用延时程序,延时约 1 秒钟,然后以左移的方式显示事先写在芯片里的2个字节,等到全都显示完毕,转向while死循环,又从显示“培养”开始一个新的周期。程序流程图如图4-1 所示

将显示字符数据首地址继续加2 结束 扫描完成 调用显示程序从要显示字符数据首地址列扫描显示16列点阵 图1-11 动态显示流程图

15

天津理工大学中环信息学院--电子系

/******************************** 函数说明:串口ISR

*********************************/

void UARTISR(void) interrupt 4 using 3 { SCON &= 0xfd; //HC373_LE1=0;HC373_LE2=0; C373_LE_LOW(); HC595_SCLK = 1; if(i==0) HC373_LE1 = 1; else HC373_LE2 = 1; HC595_SCLK = 0; }

文件二:ZIKU.h

/****************************** 文件名:ZIKU.h

文件说明:定义要显示的字符

*******************************/ #ifndef _ZIKU_H #define _ZIKU_H

#define uint unsigned int #define uchar unsigned char code uchar word[160]

={0x00,0x00,0x00,0x00,0x7F,0xFE,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x3F,0xFE,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x7F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,//\田\

0x04,0x00,0x04,0x00,0x04,0x7E,0x04,0x92,0x0C,0x92,0x34,0x92,0x04,0x92,0x04,0x92,0x44,0x92,0x84,0x92,0x7F,0x92,0x04,0x9E,0x04,0x80,0x04,0xE0,0x04,0x00,0x00,0x00,//\导\

0x00,0x40,0x04,0x40,0x04,0x44,0x04,0x44,0x04,0x54,0x04,0x64,0x04,0x45,0xFF,0xC6,0x04,0x44,0x04,0x64,0x04,0x54,0x04,0x44,0x04,0x44,0x04,0x40,0x00,0x40,0x00,0x00,//\辛\

0x00,0x84,0x00,0x84,0x00,0x84,0xFC,0x84,0x44,0x9F,0x44,0x84,0x44,0x84,0x47,0xF4,0x44,0x84,0x44,0x84,0x44,0x9F,0xFC,0x84,0x00,0x84,0x00,0x84,0x00,0x84,0x00,0x00,//\苦\

0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x40,0x02,0x80,0x02,0x7F,0xE2,0x00,0x22,0x00,0x12,0x00,0x0A,0x00,0x06,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00};//\了\

code uchar xiao[32]

21

天津理工大学中环信息学院--电子系

={0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x48,0x04,0x48,0x08,0x30,0x10,0x00,0x20,0x00,0x20,0x00,0x10,0x00,0x08,0x30,0x04,0x48,0x00,0x48,0x00,0x30,0x00,0x00,0x00,0x00};//\图案

code uchar space[32] ={ 0x00 }; #endif

三.结论、建议及课程设计体会

本次课程设计在指导老师田野的悉心指导下完成。通过这次课程设计,使我对硬件电路的工作原理和软件的应用有了进一步的学习,进一步的认识;在软件方面,在程序的设计,程序的编译和调试方面都学到了很多东西。当然,在这次课程设计中也遇到了一些困难,如在扫描动态显示时出现窜行显示等,但在老师的指导和同学的帮助,再加上自己查阅了些许资料的情况下都解决了。虽然课程设计的操作不是那么应手,但还是完成了任务,使自己的专业知识又得到了提升。

在使用计算机的人群中只有从事嵌入式系统应用的人才真正地进入到计算机系统内部软硬件体系中,才能真正领会计算机的智能化本质并掌握智能化设计的知识。通过这次难得的实践机会给了我很大收获,不仅巩固了原有的知识,并增强了动手能力,培养了面对问题的分析能力以及遇到困难如何应对,总之,这次课设或多或少增加了我们的动手及思考能力,真的很不错。

四.参考文献

《单片机原理及接口技术》 胡汉才 2010年第三版 《跟我学用单片机》 肖红兵 2006年第二版

22

本文来源:https://www.bwwdw.com/article/2m8h.html

Top