16乘16点阵设计课程设计.docx
- 文档编号:25362010
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:23
- 大小:189.74KB
16乘16点阵设计课程设计.docx
《16乘16点阵设计课程设计.docx》由会员分享,可在线阅读,更多相关《16乘16点阵设计课程设计.docx(23页珍藏版)》请在冰豆网上搜索。
16乘16点阵设计课程设计
16X16点阵设计
摘要
本设计利用简单单片机AT89C51作为主操纵模块,利用简单的外围电路来驱动16×16的点阵LED显示屏。
在本设计中要紧用两个74HC595来驱动16×16点阵显示屏的列,用AT89C51来驱动16×16点阵显示屏的行,能够最终实现——“十六乘十六点阵可调速显示屏设计”十五个汉字的自动左移,而且它们的“进”和“出”是以转动形式设计的。
也确实是说,硬件电路大致上能够分成单片机系统及外围电路、列驱动电路和行驱动电路三部份。
从而能够实现一个室内用的16×16点阵LED图文显示屏,在目测条件下LED显示屏各点亮度均匀、充沛,可显示图形和文字,显示图形或文字应稳固、清楚无串扰,图形或文字显示有静止、移入移出等显示方式。
最后,利用烧录器能够很方便的实现单片机与PC机等外围存储设备的数据传输,并能利用软件方便的进行显示内容的多样转变,它在实际生活中具有普遍的应用。
关键词:
单片机,16x16点阵,转动显示
1绪论
课题描述
随着LED显示技术日趋成熟和普遍公共场合需求量增大,现代工业操纵和一些智能化仪器仪表中,愈来愈多的场合所需要用点阵图形显示器显示汉字,广告屏等。
因此研究LED显示有有效意义。
功能要求
设计一个室内用16×16点阵LED图文显示屏,要求在目测条件下LED显示屏各点亮度均匀、充沛,可显示图形和文字,显示图形或文字应稳固、清楚无串扰,图形或文字显示有静止、移入移出等显示方式。
方案论证
16×16的点阵显示屏共有256个发光二极管,显然单片机没有这么多端口,若是咱们采纳锁存器来扩展端口,按8位的锁存器来计算,16×16的点阵需要256/8=32个锁存器。
那个数字很庞大,因为咱们仅仅是16×16的点阵,在实际应用中的显示屏往往要大的多,如此在锁存器上花的本钱将是一个很庞大的数字。
因此在实际应用中的显示屏几乎都不采纳这种设计,而采纳另一种称为动态扫描的显示方式。
动态扫描的意思简单地说确实是逐行连番点亮,如此扫描驱动电路就能够够实现多行(比如16行)的同名列共用一套列驱动器。
具体就16×16的点阵来讲,咱们把所有同一行的发光管的阳极连在一路,把所有同一列的发光管的阴极连在一路(共阳的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第一行使其燃亮必然的时刻,然后熄灭;再送出第二行的数据并锁存,然后选通第二行使其燃亮相同的时刻,然后熄灭;第十六行以后又从头燃亮第一行,如此反复轮回。
当如此轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,咱们就能够看到显示屏上稳固的图形了。
采纳串行传输的方式,操纵电路能够只用一根信号线,将列数据一名一名传往列驱动器,在硬件方面无疑是十分经济的。
可是,串行传输进程较长,数据按顺序一名一名地输出给列驱动器,只有当一行的各列数据都已传输到位以后,这一行的各列才能并行地进行显示。
如此,关于一行的显示进程就能够够分解成列数据预备(传输)和列数据显示两个部份。
解决串行传输中列数据预备和列数据显示的时刻矛盾问题,能够采纳重叠处置的方式。
即在显示本行各列数据的同时,传送下一行的列数据。
为了达到重叠处置的目的,列数据的显示就需要具有锁存功能。
通过上述分析,能够归纳出列驱动器电路应具有的要紧功能。
关于列数据预备来讲,它应能实现串入并出的移位功能;关于列数据显示来讲,应具有并行锁存的功能。
如此,本行已预备好的数据打入并行锁存器进行显示时,串并移位寄放器就能够够预备下一行的列数据,而可不能阻碍本行的显示。
2系统整体方案及硬件设计
显示屏整体设计方案
图1整体设计方案
AT89C51的原理及说明
AT89C51是美国Intel公司生产的低电压,高性能CHMOS8位单片机,片内含4kbytes的可反复擦写的只读程序存储器(PEROM)和善可亲128bytes的随机存取数据存储器(RAM),器件采纳Intel公司的高密度、非易失性存储技术生产,片内置通用4位中央处置器(CPU)和Flash存储单元,功能壮大AT89C51单片机适合于许多较为复杂操纵应用处合[5]。
图2AT89C51引脚图
列驱动电路
列驱动电路有集成电路74HC595组成。
它具有一个8位串入并出的移位寄放器和一个8位输出锁存器的结构,而且移位寄放器和输出锁存器的操纵是各自独立的,能够实此刻显示本行列数据的同时,传送下一行的列数据,既达到重叠处置的目的。
74HC595的外形及内部结构如图3所示。
它的输入侧有8个串行移位寄放器,每一个移位寄放器的输出都连接一个输出锁存器。
引脚SI是串行数据的输入端。
引脚SCK是移位寄放器的移位时钟脉冲,在其上升沿发生移位,并将SI的下一个数据打入最低位。
移位后的列位信号出此刻各移位寄放器的输出端,也确实是输出锁存器的输入端。
RCK是输出锁存器的打入信号,其上升沿将移位寄放器的输出打入输出锁存器。
引脚G是输出三态门的开放信号,只有当其为低时锁存器的输出才开放,不然为高组态。
SCLR信号是移位寄放器清零输入端,当其为低时移位寄放器的输出全数为零。
由于SCK和RCK两个信号是相互独立的,因此能够做到输入串行移位与输出锁存互不干扰。
芯片的输出端为QA~QH,最高位QH可作为多片74HC595级联应历时,向上一级的级联输出。
但因为QH受输出锁存器的打入操纵,因此还从输出锁存器前引出QH,作为与移位寄放器完全同步的级联输出。
行驱动电路
由于4点阵显示器有16行,为充分利用单片机的接口,本电路中运用了单片机AT89C51的P1口和P2口,其输入是一个16进制码,解码输出为低态扫描信号,单片机P1口和P2口输诞生产16条行选通信信号线,再通过驱动器驱动对应的线。
图374HC595的外形及内部结构如图
74LS241三态八缓冲器/线驱动器/线接收器(3S,两组操纵)如图4
图474LS241引脚图
简要说明:
241为三态输出的八组缓冲器和总线驱动器,其要紧电器特性的典型值如下(不同厂家具体值有不同)[1]:
型号
tPLH
tphl
PD
54LS241/74LS241
12ns
12ns
110mW
引出端符号:
1A1~1A4,2A1~2A4输入端
/1G,/2G三态允许端(低电平有效)
1Y1~1Y4,2Y1~2Y4输出端
逻辑图:
图5双列直插封装
极限值:
电源电压………………………………………….7V
输入电压………………………………………….
输出高阻态时高电平电压………………………….
工作环境温度
54XXX………………………………….-55~125℃
74XXX………………………………….0~70℃
存储温度………………………………………….-65~150℃
功能表:
推荐工作条件:
54LS244/74LS244
单位
最小
额定
最大
电源电压Vcc
54
5
V
74
5
输入高电平电ViH
2
V
输入低电平电ViL
54
V
74
输出高电平电流IOH
54
-12
mA
74
-15
输出低电平电流IOL
54
12
mA
74
24
动态特性(TA=25℃)
参数
测试条件
LS244
单位
最大
tPLH输出由低到高传输延迟时间
Vcc=5V
CL=45pF
RL=667Ω
18
ns
tPHL输出由高到低传输延迟时间
18
ns
tPZH输出由高阻态到高允许时间
23
ns
tPZL输出由高阻态到低允许时间
30
ns
tPHZ输出由高到高阻态禁止时间
Vcc=5VCL=5pF
RL=90Ω
18
ns
tPLZ输出由低到高阻态禁止时间
25
ns
静态特性(TA为工作环境温度范围)[1]
参数
测试条件
LS244
单位
最小
最大
VIK输入嵌位电压
Vcc=最小,Iik=-18mA
V
△VT滞后电压
Vcc=最小
V
VOH输出高电平电压
Vcc=最小,VIL=最大,VIH=2V,
IOH=-3mA
V
VOL输出低电平电压
Vcc=最小,VIL=最大,IOL=最大
54
V
74
II最大输入电压时输出电流
Vcc=最大,VI=7V
mA
IIH输入高电平电流
Vcc=最大,VIH=
20
uA
IIL输入低电平电流
1A,2A
Vcc=最大,VIL=
mA
IOS输出短路电流
Vcc=最大
-40
-225
mA
IOZH输出高阻态时高电平电流
Vcc=最大,VIH=2V
VIL=最大,VO=
20
uA
IOZL输出高阻态时低电平电流
Vcc=最大,VIH=2V,VIL=最大
,VO=
-20
uA
Icc电源电流
Vcc=最大
1Y,2Y均为高电平
27
mA
1Y,2Y均为低电平
46
1Y,2Y均为高阻态
54
测试条件中的“最小”和“最大”用推荐工作条件中的相应值。
3系统硬件电路的设计
硬件电路大致上能够分成单片机系统及外围电路、列驱动电路和行驱动电路三部份。
单片机
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器,(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处置器。
(1)AT89C51引脚图如图所:
图6AT89C51单片机引脚图
(2)AT89C51单片机P口的特点:
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口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故[3]。
单片机系统及外围电路
单片机采纳89C51或其兼容系列的芯片,采纳24M或更高频率的晶振,以取得较高的刷新频率,使显示更稳固。
单片机的串口与列驱动器相连,用来送显示数据。
P1口与P2口为行驱动器,送出行信号;~口那么用来发送操纵信号[4]。
P0口空着,在有必要时能够扩展系统的ROM和RAM。
16×16点阵显示屏的硬件原理图如图7
图716×16点阵显示屏硬件原理图
4系统程序的设计
显示屏软件的要紧功能是向屏体提供显示数据,并产生各类操纵信号,使屏幕按设计的要求显示。
依照软件分层次设计的原理,咱们可把显示屏的软件系统
分成两大层:
第一层是底层的显示驱动程序,第二层是上层的系统应用程序。
显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其它操纵信号,配合完成LED显示屏的扫描显示工作。
显示驱动程序由按时器T0中断程序实现。
系统应用程序完成系统环境设置(初始化)、显示成效处置等工作,由主程序来实现。
系统主程序
系统主程序开始以后第一是对系统环境初始化,包括设置串口、按时器、中断和端口。
然后以“转动出”成效显示一个字,停留约3秒,接着向左转动显示“十六乘十六点阵可调速显示屏设计”十五个汉字,停留约3秒,再向左转动显示“十六乘十六点阵可调速显示屏设计”这十五个汉字,循环重复,由于单片机没有停机指令,因此咱们能够设置系统程序不断地循环执行上述显示成效。
图9是系统主程序的流程图。
显示驱动程序
显示驱动程序在进入中断后第一要对按时器T0从头赋初值以保证显示屏刷
新率的稳固,1/16扫描的显示屏的刷新率(帧频)的计算公式如下:
其中fosc为晶振频率,t0为按时器T0初值(工作在16位按时器模式)[2]。
然后显示驱动程序查询当前燃亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄放器。
为排除在切换行显示数据的时候产生拖尾现象,驱动程序先要关闭显示屏,即消隐,等显示数据打入输出锁存器并锁存,然后再输出新的行号,从头打开显示。
单片机汇编程序
#include<>
sbitSET=P3^5;
sbitADD=P3^6;
sbitSUB=P3^7;
sbitLOCK=P3^2;
sbitDAT=P3^0;
sbitCLK=P3^1;
unsignedcharcnt,cnt2,line,xp,xold,shift,t[4];
charspeed,i;
bitsec,key_mark;
unsignedcharcodeMatrix001[32]=
{
/x---转换字符十---x/
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE,0x01,0x00,
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
};
unsignedcharcodeMatrix002[32]=
{
/x---转换字符六---x/
0x02,0x00,0x01,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0xFF,0xFE,0x00,0x00,0x00,0x00,
0x04,0x40,0x04,0x20,0x08,0x10,0x08,0x08,0x10,0x08,0x20,0x04,0x40,0x04,0x00,0x00,
};
unsignedcharcodeMatrix003[32]=
{
/x---转换字符乘---x/
0x00,0xF8,0x3F,0x00,0x01,0x00,0x7F,0xFC,0x01,0x00,0x09,0x24,0xF9,0x38,0x09,0x22,
0x39,0x22,0xCB,0x9E,0x05,0x40,0x09,0x20,0x31,0x18,0xC1,0x06,0x01,0x00,0x01,0x00,
};
unsignedcharcodeMatrix004[32]=
{
/x---转换字符十---x/
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE,0x01,0x00,
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
};
unsignedcharcodeMatrix005[32]=
{
/x---转换字符六---x/
0x02,0x00,0x01,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0xFF,0xFE,0x00,0x00,0x00,0x00,
0x04,0x40,0x04,0x20,0x08,0x10,0x08,0x08,0x10,0x08,0x20,0x04,0x40,0x04,0x00,0x00,
};
unsignedcharcodeMatrix006[32]=
{
/x---转换字符点---x/
0x02,0x00,0x02,0x00,0x02,0x00,0x03,0xFC,0x02,0x00,0x02,0x00,0x3F,0xF0,0x20,0x10,
0x20,0x10,0x20,0x10,0x3F,0xF0,0x00,0x00,0x24,0x88,0x22,0x44,0x42,0x44,0x80,0x04,
};
unsignedcharcodeMatrix007[32]=
{
/x---转换字符阵---x/
0x00,0x40,0x7C,0x40,0x44,0x40,0x4B,0xFE,0x48,0x80,0x50,0xA0,0x49,0x20,0x49,0xFC,
0x44,0x20,0x44,0x20,0x44,0x20,0x6B,0xFE,0x50,0x20,0x40,0x20,0x40,0x20,0x40,0x20,
};
unsignedcharcodeMatrix008[32]=
{
/x---转换字符可---x/
0x00,0x00,0x7F,0xFE,0x00,0x10,0x00,0x10,0x1F,0x10,0x11,0x10,0x11,0x10,0x11,0x10,
0x11,0x10,0x11,0x10,0x1F,0x10,0x11,0x10,0x00,0x10,0x00,0x10,0x00,0x50,0x00,0x20,
};
unsignedcharcodeMatrix009[32]=
{
/x---转换字符调---x/
0x00,0x00,0x47,0xFC,0x24,0x44,0x24,0x44,0x05,0xF4,0x04,0x44,0xE4,0x44,0x27,0xFC,
0x24,0x04,0x25,0xF4,0x25,0x14,0x2D,0x14,0x35,0xF4,0x24,0x04,0x04,0x14,0x08,0x08,
};
unsignedcharcodeMatrix010[32]=
{
/x---转换字符速---x/
0x00,0x40,0x20,0x40,0x17,0xFC,0x10,0x40,0x03,0xF8,0x02,0x48,0xF2,0x48,0x13,0xF8,
0x10,0xE0,0x11,0x50,0x12,0x48,0x14,0x44,0x10,0x40,0x28,0x00,0x47,0xFE,0x00,0x00,
};
unsignedcharcodeMatrix011[32]=
{
/x---转换字符显---x/
0x00,0x00,0x1F,0xF0,0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10,0x10,0x10,0x1F,0xF0,
0x04,0x40,0x44,0x44,0x24,0x44,0x14,0x48,0x14,0x50,0x04,0x40,0xFF,0xFE,0x00,0x00,
};
unsignedcharcodeMatrix012[32]=
{
/x---转换字符示---x/
0x00,0x00,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFE,0x01,0x00,
0x01,0x00,0x11,0x10,0x11,0x08,0x21,0x04,0x41,0x02,0x81,0x02,0x05,0x00,0x02,0x00,
};
unsignedcharcodeMatrix013[32]=
{
/x---转换字符屏---x/
0x00,0x00,0x3F,0xF8,0x20,0x08,0x20,0x08,0x3F,0xF8,0x24,0x10,0x22,0x20,0x2F,0xF8,
0x22,0x20,0x22,0x20,0x3F,0xFC,0x22,0x20,0x42,0x20,0x44,0x20,0x84,0x20,0x08,0x20,
};
unsignedcharcodeMatrix014[32]=
{
/x---转换字符设---x/
0x00,0x00,0x21,0xF0,0x11,0x10,0x11,0x10,0x01,0x10,0x02,0x0E,0xF4,0x00,0x13,0xF8,
0x11,0x08,0x11,0x10,0x10,0x90,0x14,0xA0,0x18,0x40,0x10,0xA0,0x03,0x18,0x0C,0x06,
};
unsignedcharcodeMatrix015[32]=
{
/x---转换字符计---x/
0x00,0x40,0x20,0x40,0x10,0x40,0x10,0x40,0x00,0x40,0x00,0x40,0xF7,0xFE,0x10,0x40,
0x10,0x40,0x10,0x40,0x10,0x40,0x10,0x40,0x14,0x40,0x18,0x40,0x10,0x40,0x00,0x40,
};
unsignedcharcodeMatrix016[32]=
{
/x---转换字符代---x/
0x08,0x90,0x08,0x88,0x08,0x88,0x10,0x80,0x10,0xBE,0x37,0xC0,0x30,0x80,0x50,0x40,
0x90,0x40,0x10,0x40,0x10,0x20,0x10,0x22,0x10,0x12,0x10,0x0A,0x10,0x06,0x10,0x02,
};
unsignedcharcodeMatrix100[32]={0};
unsignedcharcodeend;
voidSendData(unsignedcharxq)
{
unsignedchari,t;
t=xq;
for(i=0;i<16;i++)
{
if(i==8)
t=x(q+1);
if(t&1)
DAT=1;
else
DAT=0;
CLK=0;
CLK=1;
t>>=1;
}
LOCK=0;
LOCK=1;
}
voidt0()interrupt1
{
TH0=-50000>>8;
TL0=-50000;
if(++cnt2>speed)
{
cnt2=0;
sec=1;
}
}
voidt1()interrupt3
{
TH1=-1000>>8;
TL1=-1000;
if(++cn
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 16 点阵 设计 课程设计