LED点阵显示系统设计.docx
《LED点阵显示系统设计.docx》由会员分享,可在线阅读,更多相关《LED点阵显示系统设计.docx(18页珍藏版)》请在冰豆网上搜索。
LED点阵显示系统设计
学号09700113
单片机原理及接口技术课程设计
设计说明书
基于单片机的
LED点阵显示系统设计
起止日期:
2013年1月4日至2013年1月10日
学生姓名
李炯
班级
09电信一班
成绩
指导教师(签字)
计算机与信息工程学院
2013年1月9日
天津大学
课程设计任务书
2012—2013学年第1学期
计算机与信息工程学院电子信息工程专业班级09电信1班学号09700113
课程设计名称:
单片机原理及接口技术课程设计
设计题目:
基于单片机的LED点阵显示系统设计
完成期限:
自2013年1月4日至2013年1月10日共1周
设计依据、要求及主要内容:
一.程设计的目的
1.进一步熟悉和掌握单片机的结构及工作原理。
2.掌握单片机的接口技术及相关外围芯片的外特性,控制方法。
3.通过课程设计,掌握以单片机核心的电路设计的基本方法和技术。
4.通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
5.通过完成一个包括电路设计和程序开发的完整过程,了解开发一单片机应用系统的全过程,为今后从事相应打下基础。
二.课程设计的基本要求
1.认真认识设计的意义,掌握设计工作程序,学会使用工具书和技术参考资料,并培养科学的设计思想和良好的设计作风。
2.提高模型建立和设计能力,学会应用相关设计资料进行设计计算的方法。
3.提高独立分析、解决问题的能力,逐步增强实际应用训练。
4.课程设计的说明书要求简洁、通顺,计算正确,图纸表达内容完整、清楚、规范。
5.课程设计说明书封面格式要求见《天津城市建设学院课程设计教学工作规范》附表1。
三.课程设计具体要求
a)要求每位同学独立完成设计任务。
b)原理图设计。
1.原理图设计要符合项目的工作原理,连线要正确。
2.图中所使用的元器件要合理选用,电阻,电容等器件的参数要正确标明。
3.原理图要完整,CPU,外围器件,扩器接口,输入/输出装置要一应俱全。
c)程序调计
1.根据要求,将总体项能分解成若干个子功能模块,每个功能模块完成一个特定的功能。
2.根据总体要求及分解的功能模块,确定各功能模块之间的关系,设直出完整的程序
程序流程图。
d)设计说明书
1.原理图设计说明
简要说明设计目的,原理图中所使用的元器件功能及在图中的作用,各器件的工作过程及顺序。
2.程序设计说明
对程序设计总体功能及结构进行说明,对各子模块的功能以及各子模块之间的关系作较详细的描述。
3.画出工作原理图,程序流程图如并给出相应的程序清单。
四.设计任务
利用单片机AT89S51实现控制的LED点阵显示应用控制系统中的接口和编程设计,完成LED点阵显示等相关功能。
指导教师(签字):
教研室主任(签字):
批准日期:
2012年12月22日
目录
第一章设计说明及要求0
1.1设计任务0
1.2设计要求0
第二章设计方案以及原理0
2.1设计方案0
2.2LED显示的基本原理0
2.2.18×8点阵简介0
第三章硬件电路设计0
3.174HC595工作原理0
3.1.1引脚说明0
3.1.2功能表0
3.274HC154功能简介0
3.2.1引脚说明0
3.2.2地址/全能输入对应输出表0
第四章系统软件设计0
4.1流程图设计0
4.2系统源程序设计0
4.2.1主程序0
4.2.2显示驱动程序0
参考文献0
第一章设计说明及要求
1.1设计任务
基于单片机AT89S51控制的LED点阵显示应用设计,完成LED点阵显示等相关功能。
1.2设计要求
a)原理图设计。
1.原理图设计要符合项目的工作原理,连线要正确。
2.图中所使用的元器件要合理选用,电阻,电容等器件的参数要正确标明。
3.原理图要完整,CPU,外围器件,扩器接口,输入/输出装置要一应俱全。
b)程序调计
1.根据要求,将总体项能分解成若干个子功能模块,每个功能模块完成一个特定的功能。
2.根据总体要求及分解的功能模块,确定各功能模块之间的关系,设计出完整的程序流程图。
c)设计说明书
1.原理图设计说明
简要说明设计目的,原理图中所使用的元器件功能及在图中的作用,各器件的工作过程及顺序。
2.程序设计说明
对程序设计总体功能及结构进行说明,对各子模块的功能以及各子模块之间的关系作较详细的描述。
3.画出工作原理图,程序流程图如并给出相应的程序清单。
第二章设计方案以及原理
2.1设计方案
由于要交替显示三个字符,因此需要采用动态扫描显示。
我们可以采用单片机来实现控制,程序设计时要求:
首先选中8×8LED的某一行,然后通过查表指令得到这一行要点亮的状态所对应的码型,并送到相应的端口,延时1ms,接着选中下一行、送该行的显示状态码型、送端口、延时……如此循环直至8行均显示一遍,时间为8ms,然后再从第一行开始循环扫描,每个字符扫描255遍,那么每个字符共显示约2s,利用人的视觉暂停作用,就可以看到一个清晰的字符了;然后就可以显示下一个字符了,这时只需要修改显示的状态码即可。
系统框图如图2.1所示给出的是可以显示一个16×16汉字系统的框图。
电路特点:
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压、高性能CM0S8位微处理器。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且廉价的方案。
图2.1系统框图
其主要特点性有:
1)8031CPU与MCS-51兼容
2)4K字节可编程FLASH存储器(寿命:
1000写/擦循环)
3)全静态工作:
0Hz-24KHz
4)三级程序存储器保密锁定
5)128*8位内部RAM
6)32条可编程I/O线
7)两个16位定时器/计数器
8)6个中断源
9)可编程串行通道
10)低功耗的闲置和掉电模式
11)片内振荡器和时钟电路
2.2LED显示的基本原理
LED显示屏是一种由半导体发光二极管构成的显示点阵,通过控制每个LED的亮灭实现图形或字符的显示。
无论是单个的LED还是LED7段显示器,大多不能显示字符(含汉字)及更为复杂的图形信息,主要是因为它们没有足够的信息显示单位。
LED点阵显示是把很多的LED按矩阵方式排列在一起,通过对各LED发光和不发光的控制来完成各种字符和图形的显示。
最常见的LED点阵显示模块有5×7(5列7行)、7×9、8×8结构,前两种主要用于显示各种西文字符,后一种可作为大型电子显示屏的基本组成单元。
本文主要介绍8×8点阵显示模块的工作原理。
2.2.18×8点阵简介
8×8点阵的外观及引脚如图2.2所示,其等效电路如图2.3所示。
由等效电路中可以看出,只要合理的控制各个LED的阳极和阴极的电位,就可以控制LED的点亮和熄灭。
LED大屏幕显示可分为静态显示和动态扫描显示两种。
静态显示只有一屏就可以了,而当要显示的字符较多或者图形要求变化时,则要用到动态扫描显示了。
静态显示下,每一个像素都需要一套驱动电路,如果显示屏为n×m个像素,则需要n×m套驱动电路;而动态扫描时显示方式则采用复用技术,图2.28×8点阵的外观及引脚图
如果是P路复用,则每P个像素需要一套驱动电路,个像素仅需n×m/P套驱动电路,可见,动态扫描时,P越大,驱动电路越少,成本越低。
图2.38×8点阵的等效电路
第三章硬件电路设计
系统由AT89C51最小系统、显示屏、列驱动电路、行驱动电路和控制键构成。
AT89C51为主控芯片,显示屏由4块8×8LED共阴连接组成,其列驱动电路由2片74HC595构成,扩展为具有锁存、串并移位和三态输出的16位移位寄存器,字模数据由此输出;行驱动电路由1片4-16线译码器74HC154构成,从DCBA输入增量数据,将输出逐行扫描信号。
该系统在Proteus软件环境下的原理图如图3-1所示:
图3-1设计总电路
3.174HC595工作原理
74HC595是硅结构的CMOS器件,兼容低电压TTL电路,遵守JEDEC标准。
74HC595是具有8位移位寄存器和一个存储器,三态输出功能。
移位寄存器和存储器是分别的时钟。
数据在SH的上升沿输入,在STCP的上升沿进入到存储寄存器中去。
如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。
移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7’),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。
其引脚图如图3-2所示。
8位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态。
三态。
将串行输入的8位数字,转变为并行输出的8位数字,例如控制一个8位数码管,将不会有闪烁。
图3-274HC595引脚图
3.1.1引脚说明
表3-1引脚说明
符号
引脚
描述
Q0~Q7
15,1~7引脚
八位并行数据输入
GND
8引脚
地
Q7’
9引脚
串行数据输出
MR
10引脚
复位(低电平)
SHCP
11引脚
移位寄存器时钟输入
STCP
12引脚
存储寄存器时钟输入
OE
13引脚
输出有效(低电平)
DS
14引脚
串行数据输入
VCC
16引脚
电源
3.1.2功能表
表3-274HC595工作功能表
输入
输出
功能
SHCP
STCP
OE
MR
DS
Q7’
Qn
×
×
L
↓
×
L
NC
MR为低电平时仅仅影响移位寄存器
×
↑
L
L
×
L
L
空移位寄存器到输出寄存器
×
×
H
L
×
L
Z
清空移位寄存器,并行输出为高阻状态
↑
×
L
H
H
Q6
NC
逻辑高电平移入移位寄存器状态0,包含所有的移位寄存器状态移入
×
↑
L
H
×
NC
Qn’
移位寄存器的内容到达保持寄存器并从并口输出
↑
↑
L
H
×
Q6’
Qn’
移位寄存器内容移入,先前的移位寄存器的内容到达保持寄存器并出
功能表说明:
H=高电平状态
L=低电平状态
↑=上升沿
↓=下降沿
Z=高阻
NC=无变化
×=无效
当MR为高电平,OE为低电平,数据在SHCP上升沿进入寄存器,在STCP上升沿输出到并行口。
3.274HC154功能简介
74HC154是一款高速CMOS器件,74HC154引脚兼容低功耗肖特基TTL(LSTTL)系列。
74HC154译码器可接受4位高有效二进制地址输入,并提供16个互斥的低有效输出。
74HC154的两个输入使能门电路可用于译码器选通,以消除输出端上的通常译码“假信号”,也可用于译码器扩展。
该使能门电路包含两个“逻辑与”输入,必须置为低以便使能输出端。
任选一个使能输入端作为数据输入,74HC154可充当一个1-16的多路分配器。
当其余的使能输入端置低时,地址输出将会跟随应用的状态。
74HC154引脚图如图3-3所示:
3.2.1引脚说明
1-11以及13-17:
输出端.(outputs(activeLOW))。
12:
Gnd电源地(ground(0V))。
18-19:
使能输入端、低电平有效(enableinputs(activeLOW))。
20-23地址输入端(addressinputs)。
24:
VCC电源正(positivesupplyvoltage)。
3.2.2地址/全能输入对应输出表
H=高电平(HIGHvoltagelevel)
L=低电平(LOWvoltagelevel)
X=任意电平(don’tcare)
只要控制端G1、G2任意一个为高电平,A、B、C、D任图3-374HC154引脚说明
意电平输入都无效。
G1、G2必须都为低电平才能操作芯片。
74HC154真值表见表3-3:
第四章系统软件设计
本显示电路比较简单,主要就是通过对LED的点亮控制以及人的视觉暂停作用来显示字符的,通过上面的分析,可以得出程序流程图如图所示。
4.1流程图设计
系统主程序开始以后首先是对系统环境初始化,包括设置串口、定时器、中断和端口。
然后进行键盘扫描,如果K1键按下字符卷帘输出,如果K2键按下字符上移输出,如果K3键按下字符左移输出。
程序设计流程图如图4-1所示:
图4-1主程序模块流程图
4.2系统源程序设计
4.2.1主程序
根据设计流程图实现汇编语言设计参考源程序如下:
TIMEQU30H
CNTAEQU31H
CNTBEQU32H
ORG00H
LJMPSTART
ORG0BH
LJMPT0X
ORG30H
START:
MOVTIM,#00H
MOVCNTA,#00H
MOVCNTB,#00H
MOVTMOD,#01H
MOVTH0,#(65536-4000)/256
MOVTL0,#96
SETBTR0
SETBET0
SETBEA
SJMP$
T0X:
MOVTH0,#(65536-4000)/256
MOVTL0#96
MOVDPTR,#TAB
MOVA,CNTA
MOVCA,@A+DPTR
MOVP2,A
MOVDPTR,#DIGIT
MOVA,CNTB
MOVB,#8
MULAB
ADDA,CNTA
MOVCA,@A+DPTR
MOVP0,A
INCCNTA
MOVA,CNTA
CJNEA,#8,NEXT
MOVCNTA,#00H
NEXT:
INCTIM
MOVA,TIM
CJNEA,#120,NEX
MOVTIM,#00H
INCCNTB
MOVA,CNTB
CJNEA,#3,NEX
MOVCNTB,#00H
NEX:
RETI
TAB:
DB07FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH,0FEH
DIGIT:
DB0FFH,0FBH,0FBH,0FBH,0FBH,0FBH,0C3H,0FFH
DB0FFH,0BBH,0D7H,0EFH,0EFH,0EFH,0EFH,0FFH
DB0FFH,083H,0EFH,0EFH,0EFH,0EBH,0E7H,0FFH
DB0FFH,0FFH,,0FFH,0FFH,0FFH,0FFH,0FFH
END
4.2.2显示驱动程序
查询当前点亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄存器。
为消除在切换行显示数据的时候产生拖尾现象,在中断程序中,驱动程序先要关闭显示屏,等显示数据打入输出锁存器并锁存后,然后再输出新的行选通信号,重新打开显示。
显示驱动程序如下:
voidleddisplay(void)interrupt1using1
{
registerunsignedchari,j=BLKN;
TH0=0xF8;
TL0=0x30;
i=P1;
i=++i&0x0f;
do
{
j--;
SBUF=~dispram[i*BLKN+j];
while(!
TI);
TI=0;
}
while(j);
G=1;
P1=0x00;
R=1;
P1=i;
R=0;
G=0;
}
参考文献
[1]胡静,陈满林,王维.基于串口的远程多路双向通讯LED显示系统[J].科协论坛(下半月).2009(09)
[2]张晓芳,崔帅锋.LED显示屏的无线数据通信方法研究[J].现代显示.2009(06)
[3]远飞.基于Proteus的LED滚屏设计与仿真[J].电子元器件应用.2009(06)
[4]梁勇,马兴平.单片机实现的LED点阵图文显示系统设计[J].中国科技信息.2009(09)
[5]何勇,郭维树,徐草草.基于C8051F020单片机的大屏幕LED模块化设计[J].中国高新技术企业.2008(16)
[6]侯丽玲.基于AT89S52单片机的LED点阵显示屏控制系统的设计[J].漳州职业技术学院学报.2008(03)
[7]赵煜,靳桅.基于VRS51L3074的LED显示控制系统设计[J].重庆工学院学报(自然科学版).2008(11)
[8]张飞碧,陈宏庆.LED大屏幕显示技术(续完)[J].演艺设备与科技.2007(05)
[9]张飞碧,陈宏庆.LED大屏幕显示技术[J].演艺设备与科技.2007(04)
[10]郑刚,李宇成.LED大屏幕显示系统的设计[J].北方工业大学学报.2001(03)