LED点阵显示数字到
L E D点阵显示数字到 It was last revised on January 2, 2021
单片机技术
课程设计说明书
设计课题:8×8 点阵
专业(系)
电气学院 班 级 学生姓名 指导老师 完成日期
目录
1.课程设计目的
(1)巩固和提高学过的基础知识和专业知识。
(2)提高运用所学的知识进行独立思考和综合分析、解决实际问题的能力。
(3)培养掌握正确的思维方法和利用软件和硬件解决实际问题的基本技能。
(4)增加对单片机的认识,加深对单片机理论方面的理解。
(5)掌握单片机的内部功能模块的应用,如定时器/计数器、中断、片内外存贮器、I/O口、串行口通讯等。
(6)熟练掌握汇编语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力。
2.课程设计题目和要求
(1)课程设计题目:单片机控制的跑马灯设计
(2)要求:利用8×8LED点阵显示数字0到9
3.设计内容
系统功能的描述
用单片机控制8×8LED点阵滚动显示数字0到9,利用硬件与软件相结合的方法,通过单片机将数字的代码分别送到相应的列线上面,经过软件编程使二极管从0到9依次显示数字,如此循环。
系统硬件设计
图1 系统框图
显示的硬件方式采用以AT89S51单片机为核心的电路来实现,主要由
AT89S51芯片、时钟电路、复位电路、驱动电路、8×8LED点阵5部分组成,系统框图如图1所示。
AT89S51芯片的介绍
(1)I/O端口线输入输出引脚
—(39—32):P0口食一个漏极开路型准双向I/O口。在访问外部存储器时,它是分时多路转换地址(低8位)和数据总线,在访问期间激活了内部内部的上拉电阻,在E—PROM编程时,它接受指令字节,而在验证程序时,则输出指令字节。
—(1—8):P1口是带内部上拉电阻的8位双向I/O口。
—(21—28):P2口是一个内部带上拉电阻的8位双向I/O口。在访问外部存储器时,它送出高8位地址。
—(10—17):P3口是一个内部带上拉电阻的8位双向I/O口。在MCS—51中,这8个引脚还兼有专用功能,P3的8条口线都定义有第二功能,其具体功能如表1所示。
表1 P3口的第二功能
(2)控制线控制引脚(ALE/PROG 、PSEN 、RST 、VPD 、EA/ VPP ) ALE (30):地址锁存控制信号。在系统扩展时,用于控制P0口输出的低8位地址锁存起来,以实现地位地址和数据的隔离。此外,由于ALE 是以晶振
6
1
的固定频率输出正脉冲,因此,可作为外部时钟或外部定时脉冲使用。 PSEN (29):外部程序存储控制信号。在外部ROM 时,有效(低电平),以实现外部ROM 单元的读操作。
EA (31):访问程序存储控制信号。当信号为低电平时,对ROM 的读操作限定在外部程序存储器;当信号为高电平时,对ROM 的读操作时从内部程序存储器开始,并可延至外部程序存储器。
RST (9):复位信号。但输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作。
(3)外接晶体线
XTAL 1(19)和XTAL 2(18)外接晶体引线端。当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。
(4)主电源引脚 VCC (40):+5V 电源。 VSS (20):地线(GND )。 时钟电路的设计
时钟电路有AT89S51的18、19脚的时钟端(XTAL 1及XTAL 2)以及12MHz 晶振Y1、电容C1、C2组成,采用片内振荡方式,如图2所示。
图2 时钟电路
复位电路的设计
复位电路采用简易的上电复位电路,主要由电阻R1、R2,电容C3,开关K 组成,分别接至AT89S51的RST复位输入端,如图3所示。
图3 复位电路
驱动电路的设计
LED驱动模块是LED显示屏设计的关键部分,驱动电路设计的好坏直接关系到LED显示屏的亮度、稳定度等重要指标。本次设计中LED的驱动是采用三极管和74LS154实现的。
此系统中驱动电路是由74LS154和三极管组成的,原理图如图4所示。
图4 驱动电路
8×8LED点阵
(1)工作原理
8×8点阵共由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上。
当对应的某一行置1,某一列置0,则相应的二极管就亮。如图5所示,如要将第一个点亮,则9脚接高电平,13脚接低电平,则第一个点就亮了;如果要将第一行点亮,则第9脚要接高电平,而(13、3、4、10、6、11、15、16)这些引脚接低电平,那么第一行就会点亮;如果将第一列点亮,则第13脚接低电平,而(9、14、8、12、1、7 、2、5)接高电平,那么第一列就会点亮。
图5 8×8 LED 点阵
(2)接线方法
LED 的行扫描端接到单片机的P0口,列扫描端接置三极管的发射极。列扫描端用于LED 的数据扫描,通过74LS154的译码和三极管的驱动,使LED 发光;行扫描通过P0口为LED 的显示给出相应的数据。 系统软件设计 计数器初值计算
计算公式: 计数T T M TC /-=
式中,TC 为定时初值;T 计数是单片机时钟周期T CLK 的12倍;M 为计数器摸值该值和计数器工作方式有关,在方式0时M 为213;在方式1时M 的值为216;在方式2和3为28。
s ms TC μ1/4216-=H F 06061536400065536==-=
数字0到9点阵显示代码的形成
假设显示数字“0”,形成的列代码为 00H ,00H ,3EH ,41H ,41H ,3EH ,00H ,00H ;只要把这些代码分别送到相应的列线上面,即可实现“0”的数字显示。送第一列线代码到P3端口,同时置第一行线为“0”,其它行线为“1”,延时4ms ,送第二列线代码到P3端口,同时置第二行线为“0”,其它行线为“1”,延时4ms ,如此下去,直到送完最后一列代码,又从头开始送。图为数字0到9代码建立如图6所示。
图6 数字0到9的代码建立图
数字0到9点阵显示代码:
0:00H,00H,3EH,41H,41H,41H,3EH,00H
1:00H,00H,00H,00H,21H,7FH,01H,00H
2:00H,00H,27H,45H,45H,45H,39H,00H
3:00H,00H,22H,49H,49H,49H,36H,00H
4:00H,00H,0CH,14H,24H,7FH,04H,00H
5:00H,00H,72H,51H,51H,51H,4EH,00H
6:00H,00H,3EH,49H,49H,49H,26H,00H
7:00H,00H,40H,40H,40H,4FH,70H,00H
8:00H,00H,36H,49H,49H,49H,36H,00H
9:00H,00H,32H,49H,49H,49H,3EH,00H
程序流程图
主程序流程图如图7所示
图7 主程序流程图
源程序
TIME EQU 30H
CNTA EQU 31H
CNTB EQU 32H
ORG 0000H
LJMP START
ORG 000BH
LJMP T0X
ORG 30H
START:MOV TIME,#00H
MOV CNTA,#00H
MOV CNTB,#00H
MOV TMOD,#01H
MOV TH0,#0F0H
MOV TL0,#60H
SETB TR0
SETB ET0
SETB EA
SJMP $
T0X:MOV TH0,#0F0H
MOV TL0,#60H
MOV DPTR,#TAB
MOV A,CNTA
MOVC A,@A+DPTR
MOV P3,A
MOV DPTR,#DIGIT
MOV A,CNTB
MOV B,#8
MUL AB
ADD A,CNTA
MOVC A,@A+DPTR
MOV P1,A
INC CNTA
MOV A,CNTA
CJNE A,#8,NEXT
MOV CNTA,#00H
NEXT: INC TIME
MOV A,TIME
CJNE A,#250,NEX
MOV TIME,#00H
INC CNTB
MOV A,CNTB
CJNE A,#10,NEX
MOV CNTB,#00H
NEX: RETI
TAB: DB 0FEH,FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH DIGIT: DB 00H,00H,3EH,41H,41H,41H,3EH,00H
DB 00H,00H,00H,00H,21H,7FH,01H,00H
DB 00H,00H,27H,45H,45H,45H,39H,00H
DB 00H,00H,22H,49H,49H,49H,36H,00H
DB 00H,00H,0CH,14H,24H,7FH,04H,00H
DB 00H,00H,72H,51H,51H,51H,4EH,00H
DB 00H,00H,3EH,49H,49H,49H,26H,00H
DB 00H,00H,40H,40H,40H,4FH,70H,00H
DB 00H,00H,36H,49H,49H,49H,36H,00H
DB 00H,00H,32H,49H,49H,49H,3EH,00H
END
4.设计总结
通过这次的课程设计作品的制作让我对单片机的理论有了更加深入的了解,同时在具体的制作过程中我们发现现在书本上的知识与实际的应用存在着不小的差距,书本上的知识很多都是理想化后的结论,忽略了很多实际的因素,或者涉及的不全面,可在实际的应用时这些是不能被忽略的,我们不得不考虑这方的问题,这让我们无法根据书上的理论就轻易得到预想中的结果,有时结果甚至很差别很大。通过这次实践使我更深刻的体会到了理论联系实际的重要性,我们在今后的学习工作中会更加的注重实际。