怎样制作基于单片机的led点阵视频显示屏显示屏?

&&&&基于单片机的LED点阵显示屏设计(16*32)
基于单片机的LED点阵显示屏设计(16*32)
这是一个毕业设计,包括以下文件
dianzhen.hex
dianzhen.lnp
dianzhen.M51
dianzhen.Opt
dianzhen.plg
dianzhen.Uv2
dianzhen_Opt.Bak
dianzhen_Uv2.Bak
LED点阵控制.exe
MSSCCPRJ.SCC
├─原理图
TTL电平转换电路.bmp
单片机最小系统.bmp
原理图.pdf
├─芯片资料
74HC164.pdf
74HC595.pdf
└─论文及各种材料
----中期检查表.doc
----开题报告.doc
----文献综述.doc
----毕业设计(论文).doc
----译文.doc
----任务书.doc
承诺书.doc
答辩稿.ppt
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
您可能还需要
课程资源下载排行维库欢迎您!
微信扫一扫关注我们
当前位置:&>>&&>>&&>>&基于单片机的LED汉字显示屏设计与制作
1&引&言&   在大型商场、车站、码头、地铁站以及各类办事窗口等越来越多的场所需要用LED点阵显示图形和汉字。LED行业已成为一个快速发展的新兴产业,市场空间巨大,前景广阔。随着信息产业的高速发展,LED显示作为信息传播的一种重要手段,已广泛应用于室内外需要进行服务内容和服务宗旨宣传的公众场所,例如户内外公共场所广告宣传、机场车站旅客引导信息、公交车辆报站系统、证券与银行信息显示、餐馆报价信息豆示、高速公路可变情报板、体育场馆比赛转播、楼宇灯饰、交通信号灯、景观照明等。显然,LED显示已成为城市亮化、现代化和信息化社会的一个重要标志。   本文基于()讲述了16×16&LED汉字点阵显示的基本原理、硬件组成与设计、程序编译与下载等基本环节和相关技术。 2&硬件电路组成及工作原理   本产品拟采用以AT单片机为核心芯片的电路来实现,主要由AT89C51芯片、时钟电路、复位电路、列扫描驱动电路()、16×16&LED点阵5部分组成,如图1所示。
  其中,AT89C51是一种带4&kB闪烁可编程可擦除只读(Falsh&Programmable&and&Erasable&Read&OnlyMemory,FPEROM)的低电压、高性能CMOS型8位微处理器,俗称单片机。该器件采用高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,能够进行1&000次写/擦循环,数据保留时间为10年。他是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。因此,在智能化设计与制作过程中经常用到AT89C51芯片。   时钟电路由AT89C51的18,19脚的时钟端(XTALl及XTAL2)以及12&MHz晶振X1、C2,C3组成,采用片内振荡方式。   复位电路采用简易的上电复位电路,主要由R1,R2,电容C1,开关K1组成,分别接至AT89C51的RST复位输入端。   LED点阵显示屏采用16×16共256个象素的点阵,通过万用表检测发光二极管的方法测试判断出该点阵的引脚分布,如图2所示。
  我们把行列总线接在单片机的IO口,然后把上面分析到的扫描代码送人总线,就可以得到显示的汉字了。但是若将LED点阵的行列端口全部直接接入单片机,则需要使用32条IO口,这样会造成IO资源的耗尽,系统也再无扩充的余地。因此,我们在实际应用中只是将LED点阵的16条行线直接接在P0口和P2口,至于列选扫描信号则是由4-16线译码器74HC154来选择控制,这样一来列选控制只使用了单片机的4个IO口,节约了很多IO资源,为单片机系统扩充使用功能提供了条件。考虑到P0口必需设置上拉电阻,我们采用4.7&kΩ排电阻作为上拉电阻。   汉字扫描显示的基本过程是这样的:通电后由于电阻R1,电容C1的作用,使单片机的RST复位脚电平先高后低,从而达到复位;之后,在C2,C3,X1以及单片机内部时钟电路的作用下,单片机89C51按照设定的程序在P0和P2接口输出与内部汉字对应的代码电平送至LED点阵的行选线(高电平驱动),同时在P1.1,P1.2,P1.3,P1.4接口输出列选扫描信号(低电平驱动),从而选中相应的象素LCD发光,并利用人眼的视觉暂留特性合成整个汉字的显示。 3&汉字的点阵显示原理及字库代码获取方法   我们以UCDOS中文宋体字库为例,每一个字由16行16列的点阵组成显示。即国标汉字库中的每一个字均由256点阵来表示。我们可以把每一个点理解为一个象素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字,也可以显示在256象素范围内的任何图形。如查用8位的AT89C51单片机控制,由于单片机的总线为8位,一个字需要拆分为2个部分,如图3所示。
  为了弄清楚汉字的点阵组成规律,首先通过列扫描方法获取汉字的代码。汉字可拆分为上部和下部,上部由8×16点阵组成,下部也由8×16点阵组成。本例通过列扫描方法首先显示左上角的第一列的上半部分,即第0列的P00~P07口,方向为P00到P07,显示汉字“大”时,P05点亮,由上往下排列,为:P0.0灭,P0.1灭,P0.2灭P0.3灭,P0.4灭,P0.5亮,P0.6灭,P0.7灭。即二进制,转换为十六进制为04h。上半部第一列完成后,继续扫描下半部的第一列,为了接线的方便,我们仍设计成由上往下扫描,即从P27向P20方向扫描,从图3可以看到,这一列全部为不亮,即为,十六进制则为00h。依照这个方法转向第二列、第三列,…,直至第十六列的扫描,一共扫描32个8位,可以得出汉字“大”的扫描代码为:
由这个原理可以看出,无论显示何种字体或图像,都可以用这个方法来分析出他的扫描代码从而显示在屏幕上。   上述方法虽然能够让我们弄清楚汉字点阵代码的获取过程,但是依靠人工方法获取汉字代码是一件非常繁琐的事情。为此,我们经常采用字库软件查找字符代码,软件打开后输入汉字,点“检取”,十六进制数据的汉字代码即可自动生成,把我们所需要的竖排数据复制到程序中即可,如图4所示。
  可见,汉字点阵显示一般有点扫描、行扫描和列扫描3种。为了符合视觉暂留要求,点扫描方法的扫描频率必须大于16×64=1&024&Hz,周期小于1&ms即可。行扫描和列扫描方法的扫描频率必须大于16×8=128&Hz,周期小于7.8&ms即可,但是一次驱动一列或一行(8颗LED)时需外加驱动电路提高电流,否则LED亮度会不足。 4&元器件选择   本设计所需元器件如表1所示。
5&PCB设计与元件装配   本作品采用通用的Protel&99SE板级EDA软件完成PCB图的设计,详细设计过程略。考虑到本设计用到的元件数量不多,我们基本采用单面布线策略,只使用了少量的顶层跨接导线,以便于业余设计制作。已设计好的PCB图见图5所示。
  本电路对元件参数没有苛刻要求,只要元器件选择正确,无损坏,电路板制作工艺良好,把所有正确焊接装配后即可进入程序下载和调试工作阶段。制作与调试时,在AT89C2051的位置应安装20脚的IC座,以便使单片机可以从电路板中拿下去烧写程序。 6&程序设计、烧录与调试   软件程序主要由开始、初始化、主程序、字库组成。其中主程序和子程序的流程图如图6和图7所示。
&&&   下面的程序能够用来实现“为中华之崛起而学习”等汉字的显示。程序清单如下:
&&& 在完成编写程序的编译和仿真之后,准备一台可以烧写AT89C51的并与电脑主机硬件连接后即可对AT89C51芯片进行程序烧录下载,然后,将烧录好程序的AT89C51单片机装入到40脚的IC座上,通电即可调试和运行,由于本例电路对元件参数的要求不是很高,只要元件较好,参数基本符合要求,焊接装配后即可正常工作。 7&结&语   虽然本设计只使用了一块16×16&LED点阵,电路简单,但是已经包涵了LED显示屏的电路基本原理和基本程序,只要扩展单片机的IO接口,并增加一些LED点阵和相关芯片,就能设计出更大面积、更多花样的LED显示屏。因此本文对同类设计具有一定的理论和实践参考价值。 &&参考文献:[1].&AT89C51&datasheet&.[2].&MCS-51&datasheet&.[3].&89S51&datasheet&.[4].&74HC154&datasheet&.[5].&Protel99SE&datasheet&.[6].&AT89C2051&datasheet&.来源:
技术资料出处:ljq200
该文章仅供学习参考使用,版权归作者所有。
因本网站内容较多,未能及时联系上的作者,请按本网站显示的方式与我们联系。
【】【】【】【】
上一篇:下一篇:
本文已有(1)篇评论
发表技术资料评论,请使用文明用语
字符数不能超过255
20:44:00用户IP: 58.48.72.*
很好,实用
12345678910
暂且没有信息...
中央处理器是一块超大规模的集成电路,是一台计算机的运算核心和控制核心,它的功能主要是解释计算机指令以及处理计算机软件中的数据。主要包括运算器和高速缓冲存储器及实现它们之间联系的数据、控制及状态的总线。它与内部存储器和输入/输出设备合称为电子计算机三大核心部件。[][][][][][][][][][]第一章 概述
LED点阵显示屏是通过PC机将要显示的汉字字模提取出来,并发送给单片机,然后显示在点阵屏上,主要适用于室内外汉字显示。
第二章 硬件设计
2.1 主要器件介绍
LED 点阵显示屏是由20 个8*8 的LED 点阵块组成,形成16*80 矩形点阵,以Atmel 公司的AT89S52单片机为控制核心。显示屏的其他主要硬件有:①带锁存输出的8位移位寄存器74HC595,作为LED的列线驱动输入;②三八译码器74LS138,作为LED行线的译码选择;③三极管C9012,连接两个三八译码器的十六个输出端,作为开关使用,驱动LED 的行线
2.2 主要器件详细连接说明
Atmel的AT89S52芯片相关器件连接的接脚如下:P00-P03连接3-8译码器的输入口A,B,C,~G2A
P20-P23连接74HC595的输入口RCK, SI,SCK,SCLR
三八译码器74LS138的16 个输出端连接16 个C9012的三极管的基极B,发射极E 连接16 个行线控制端,集电极C连接到GND。
点阵的80 列数据线驱动由10 片74HC595 级联组成,前一片74HC595 的Q&H 引脚连接
下一片的SI引脚,各片的RCK、SCK、SCLR 分别并联。
2.3 LED点阵块
8*8的LED点阵为单色行共阳模块,单点的工作电压为正向(Vf)=1.8 v ,正向电流(IF)= 8-10 mA 。静态点亮器件时(64 点全亮)总电流为640mA,总电压为1.8 v,总功率为1.15W。动态时取决于扫描频率(1/8或1/16秒),单点瞬间电流可达80-160 mA。16*16点阵静态时16*16*10mA,动态时单点电流80-160mA。
接线方式:
当某一行线打高时,某一列线为低时,其行列交叉的点就被点亮;
某一列线为高时,其行列交叉的点为暗;
当某一行线打低时,无论列线如何,对应这一行的点全部暗。
列线:13&20控制点阵的列接低电平
行线:1-4 21-24控制点阵的行接高电平
2.4 AT89S52
(1)P0.0【39 脚】,P0.1【38 脚】,P0.2【37 脚】,P0.3【36 脚】接两片3-8译码器的A,B,C和第一片的~G2A 与第二片的G1,用来选择LED的行线
(2) P2.0【21 脚】:接74HC595的RCK脚。
P2.1【22 脚】:接74HC595的SCK脚。
P2.2【23 脚】:接74HC595的SI脚。
P2.3【24 脚】:接74HC595的SCLR脚。
VCC 【40 脚】:接电源
EA/VPP【31 脚】:接电源
RST 【9脚】:复位脚。过10K电阻接GND,过10uF的电容C3接VCC;复位按钮接到电容C2两端。
2.5 移位寄存器74HC595
74HC595是带锁存输出的8位移位寄存器,其管脚见下图,其中SI是串行数据的输入端;
VCC、GND分别为电源和地;RCK是存储寄存器的输入时钟,SCK是移位寄存器的输入时钟,SCLR是移位寄存器的输入清除,Q&H是串入数据的输出,G是对输入数据的输出使能控制,QA~QH串入数据的并行输出。从SI口输入的数据在移
位寄存器的SCK脚上升沿的作用下输入到74HC595中,在RCK脚的上升沿作用下将输入的数据锁存在74HC595中,当G为低电平时时,数据并行输出。SCLR为移位寄存器的输入清除端。
74HC595与AT89S52的连接:SI【14脚】,SCK【11脚】,RCK【12脚】, SCLR【10脚】分别接到AT89S52的P2.2【23脚】,P2.1【22脚】,P2.0【21脚】,P2.3【24脚】上。
其他脚连接:OE【13脚】接地,使其始终输出;
Q&H【9脚】是连接下一片74HC595的SI脚;QA,QB到QH分别连接到LED点阵的1至8列的列线脚上.
2.6 三八译码器74LS138
图所示的是将两片74LS138译码器扩展为4线-16线译码器的连接图。其接线特点为:将四个输入信号~G2A,C,B,A中的低三位C,B,A同时接至两个芯片的地址输入端。输入信号的最高位~G2A接至两个芯片的使能端,使两个芯片不能同时工作。~G2A,C,B,A作为地址输入变量构成二进制代码,Y0~Y7、Y0~Y7作为输入信号,每个输出表示一个二进制代码的含义,即能实现4线-16线译码器的功能。
第三章 软件设计
3.1 单片机的程序设计
单片机在LED点阵显示系统中主要负责数据的接收、存储和扫描显示LED点阵屏三大主要功能。
/***************************************************************************************************
09/12/2009
* Description:
This program controls 16*80LED and implements
dynamic scan.
****************************************************************************************************/
#include &AT89X52.h&
#include &intrins.h&
#define CONIO P0
//行选信号
#define NUMOFWORDS (6)
//显示的字数
#define SPEED
//扫描周期
SPEED越大,扫描越慢;
#define MAXWORDS
//屏幕最大固定显示字数
#define BLANK
//填充空数
#define MAXROW
//最大行数
static sbit OE
//控制74LS138,低电平有效
static sbit RCK = P2^0;
// 上升沿时数据输出
static sbit SCK = P2^1;
//上升沿时数据移位
static sbit SI
//74hc595串行输入
static sbit SCLK = P2^3;
//低电平移位寄存器清零,通常接VCC
static void send_in(unsigned char Data);
//串行数据输入
static void send_out(void);
//并行数据输出
static unsigned int row = 0;
//行选信号
static int j
static int k
static int m
static int s
//与SPEED匹配
static int count = 0;
//当为5时达到最大字数MAX
const static unsigned char code zimo[][32]={
{0x20,0x08,0x13,0xFC,0x12,0x08,0x02,0x08,0xFE,0x08,0x0A,0x08,0x12,0x08,0x3B,0xF8,
0x56,0xA8,0x90,0xA0,0x10,0xA0,0x11,0x20,0x11,0x22,0x12,0x22,0x14,0x1E,0x18,0x00},//祝
{0x00,0x80,0x20,0x80,0x20,0x80,0x20,0x80,0x20,0x88,0x24,0x98,0x3E,0xA0,0x20,0xC0,
0x20,0x80,0x20,0x80,0x20,0x80,0x20,0x82,0x26,0x82,0x38,0x82,0x60,0x7E,0x00,0x00},//比
{0x01,0x00,0x7F,0xFE,0x44,0x42,0x9F,0xF4,0x04,0x40,0x1F,0xF0,0x04,0x40,0x7F,0xFC,
0x08,0x20,0x1F,0xF0,0x28,0x2E,0xC9,0x24,0x09,0x20,0x01,0x00,0x06,0xC0,0x18,0x30},//赛
{0x00,0x80,0x00,0xA0,0x00,0x90,0x3F,0xFC,0x20,0x80,0x20,0x80,0x20,0x84,0x3E,0x44,
0x22,0x48,0x22,0x48,0x22,0x30,0x2A,0x20,0x24,0x62,0x40,0x92,0x81,0x0A,0x00,0x06},//成
{0x00,0x80,0x00,0x80,0x08,0x80,0xFC,0x80,0x10,0x84,0x17,0xFE,0x10,0x84,0x10,0x84,
0x10,0x84,0x10,0x84,0x1D,0x04,0xF1,0x04,0x41,0x04,0x02,0x44,0x04,0x28,0x08,0x10},//功
{0x00,0x00,0x01,0x80,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x01,0x80,
0x01,0x80,0x01,0x80,0x00,0x00,0x01,0x80,0x03,0xC0,0x01,0x80,0x00,0x00,0x00,0x00},//!
void main()
//初始化引脚
CONIO = 0X00;
/**********************************动态扫描左移显示不限字数***************************************/
for(k = 0; k & NUMOFWORDS; k++)
{//扫描NUMOFWRODS遍
for(s = 0; s & SPEED; s++)
for(row = 0; row & MAXROW; row++)
count = 0;
//将要显示的字,送入74HC595的SI端,即单片机的P2^2引脚
for(j = j &= 0; j--)
if(count & MAXWORDS)
send_in(zimo[j][2*row+1]);
send_in(zimo[j][2*row]);
//填充空白
for(m = BLANK-k; m & 0; m--)
send_in(0);
send_in(0);
send_out();
//下面程序逻辑同上,只是换下位置
for(k = 1; k &= MAXWORDS; k++)
for(s = 0; s & SPEED; s++)
for(row = 0; row & MAXROW; row++)
for(m = m & 0; m--)
send_in(0);
send_in(0);
for(j = 1; j &= MAXWORDS - j++)
send_in(zimo[NUMOFWORDS-j][2*row+1]);
send_in(zimo[NUMOFWORDS-j][2*row]);
send_out();
/*****************************************************************
** 函数名:void send_in(unsigned char data)
** 输 入:unsigned char data
** 输 出: void
** 功能描述: send data to 74hc595
** 全局变量: SCK SI
** 调用模块:main()
** 作 者:khldragon
** 日 期:09/12/2009
** 版本version1.0
****************************************************************/
void send_in(unsigned char data)
for(i = 0; i & 8; i++)
{ //循环8次,刚好移完8位
//先将移位寄存器控制引脚置为低
SI = Data & 0x01;
//取数据的最低位,form: little endian
Data &&= 1;
//将数据的次高位移到最高位
//再置为高,产生移位时钟上升沿,上升沿时数据寄存器的数据移位
/*****************************************************************
** 函数名:void send_out(void)
** 输 入:void
** 输 出: void
** 功能描述: send data to led
** 全局变量: RCK
** 调用模块:main()
** 作 者:khldragon
** 日 期:09/12/2009
** 版本version1.0
****************************************************************/
void send_out(void)
//先将存储寄存器引脚置为低
//再置为高,产生移位时钟上升沿,上升沿时移位寄存器的数据进入数据存储寄存器,更新显示数据。
//先将存储寄存器引脚置为低
第四章 总结
在 LED 点阵汉字显示屏的设计过程中,学到了很多东西,基本了解了整个嵌入式开发的流程。
例如,在焊接电路板的时候,应该从最基本的最小系统开始,分模块,逐个进行焊接测试。在对各个硬件模块进行测试时,要保证软件正确的情况下去测试硬件,要不然发生错误时,不知道到底是哪一方出错了。当然,在设计的过程中也存在着失误和不足。例如,在进行搭试点阵块的时候,因为电压过高,导致点阵块损坏。这次设计开发,本人受益非浅,在以后的开发过程中一定吸取教训。
阅读(...) 评论()基于单片机的LED点阵显示屏设计_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
基于单片机的LED点阵显示屏设计
上传于||文档简介
&&因​此​,​点​阵​式​L​E​D​显​示​屏​的​研​发​、​设​计​、​生​产​获​得​迅​速​的​发​展​,​并​且​成​为​了​产​业​。​点​阵​式​L​E​D​显​示​屏​的​显​示​效​果​、​功​率​环​保​也​不​断​优​化​。​点​阵​式​L​E​D​屏​具​有​较​大​的​信​息​显​示​量​、​寿​命​长​、​功​耗​小​、​重​量​轻​、​空​间​尺​寸​小​及​造​价​低​等​优​点​。​本​设​计​通​过​使​用​单​片​机​为​控​制​核​心​,​设​计​一​款​点​阵​式​L​E​D​屏​。​同​时​,​使​用​电​脑​V​B​编​写​的​上​位​机​通​过​串​口​通​信​对​点​阵​显​示​屏​的​信​息​更​新​、​显​示​速​度​控​制​等​。
阅读已结束,如果下载本文需要使用
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩38页未读,继续阅读
你可能喜欢基于单片机的LED点阵显示系统的设计
> 基于单片机的LED点阵显示系统的设计
基于单片机的LED点阵显示系统的设计
摘要:显示屏是由多个发光二极管封装在一起组成,是一种新兴的显示器件。为了说明显示的原理,以为控制核心,和制作了一种成本低廉的汉字,其包括硬件和软件两个部分。该电路通过按键控制可实现任意多个汉字的卷帘、上移和左移等多种显示形式,可广泛应用于机场、商场、医院等公共场所进行文字广告宣传,信息发布等。通过仿真和实物测试,该系统获得良好的显示效果,而且具有体积小、硬件电路结构简单和容易实现等特点。关键词:MCU;LED;显示屏;系统0 引言 LED显示屏是一种由半导体发光二极管构成的显示,人们通过控制每个LED的亮灭实现图形或字符的显示。由于LED显示屏亮度高、视角广、工作电压低、功耗小、寿命长、耐冲击、性能稳定,因而被广泛应用于机场、商场、医院、宾馆、证券市场等公共场所。本文以为控制核心和制作了一种汉字,其成本低廉,内容更新简便。1 显示原理1.1 LED点阵显示屏 将多个LED按矩阵方式排列在一起,如图1所示,就构成了一个LED点阵显示屏。其中各个LED的引脚按照一定的规律连接,以最常见的8&8单色LED点阵共阳型显示器为例,其内部电路结构和外型规格如图1所示。本文引用地址: 16&16单色LED点阵显示屏可由4块8&8单色LED点阵显示器组合而成,即16行16列,16&16=256像素。如果采用共阳型连接方式,即每行的LED阳极连接在一起,每列的LED阴极连接在一起。1.2 显示原理 对于共阳型LED点阵显示屏,如果采用动态扫描方式,扫描电路就可以实现多行发光二极管的同名列共用一套驱动器。动态扫描,简单说就是逐行轮流点亮。具体以8&8点阵模块为例显示字符&B&的过程如图2所示。即先送出对应于第一行发光二极管亮灭的列数据OFFH并锁存,然后选通第一行,即送行数据80H,延时一段时间后,送行数据00H,第一帧显示结束;再送第二行的列数据87H并锁存,然后选通第二行,即送行数据40H,点亮相同时问后,送行数据00H,相应二极管熄灭,第二帧显示结束;以此类推,第8行显示之后,又重新点亮第一行,周而复始。当这样轮回的速度足够快(每秒24次以上)时,就能看到显示屏上稳定的字符B了。上述列数据即为字符B的字模数据。
单片机相关文章:
单片机相关文章:
单片机相关文章:
led显示器相关文章:
分享给小伙伴们:
我来说两句……
最新技术贴
微信公众号二
微信公众号一}

我要回帖

更多关于 led点阵视频显示屏 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信