8×8点阵LED字符显示器设计

8×8点阵LED字符显示器设计
8×8点阵LED字符显示器设计

河南理工大学

计算机科学与技术学院

课程设计报告

2011— 2012学年第1学期

8×8点阵LED字符显示器设计

一 .设计目的与要求:

设计一8×8点阵LED字符显示器,要求显示“电子设计”四个汉字,显示方式提供三种:逐字显示,向上滚动显示,向右滚动显示。

二 .设计原理:

在单片机系统中,常用的显示器有:发光二极管显示器,简称LED(Light Emitting Diode);液晶显示器,简称LCD(Liquid Crystal Display);荧光管显示管。前两种显示器都有两种显示结构;段显示(8段,“米”字型等)和点阵显示(5×7,5×8,8×8点阵等)。点阵图形显示模块有两种连接方式:一种是直接访问方式,另一种是间接控制方式。

直接访问方式就是将显示器模块的接口作为存储器或I/O设备直接挂在单

片机总线上,单片机过地址译码控制E1和E2的选通;读/写操作信号R/W由地址线A1控制;命令/数据寄存器选择信号由地址线A0控制。

间接控制方式是通过单片机自身或系统扩展并行接口与显示模块连接在一起的。单片机通过对并行接口输出状态的编程操作,完成对模块所需的时序操作和数据传输。

1.LED显示器结构

LED显示器是由发光二极管组成的显示器,有8段和“米”字段之分。

BS202型共阴极

BS212型共阳极

上图中的BS202型为共阴极LED,BS212型是共阳极LED,它们的几何尺寸和字符相同。每一种LED又有不同的发光颜色。例如,BS202型中,BSR202型发红光,BSG202型发绿光;BS212型中,BSR212型发红光,BSG212型发绿光。

图1 ,点阵式LED显示器

用8×8的LED显示模块可以显示各种字符,通常通过适当的驱动电路控制各LED 发光与不发光来显示点阵型。如用8×8模块显示字符“电”的点阵码为:10H、FFH、91H、BDH、91H、FFH、12H、1EH(如下图)。

图2 8×8点阵字型

8×8的LED显示模块式组建大型电子显示屏的基本单元。用8×8模块组建的大屏幕显示器,不仅能显示文字,还可以显示图形、图像,而且还可以产生各种动画效果,是广告宣传、新闻传播的有力工具。LED大屏幕显示器不仅有单色显示,还有彩色显示,其应用越来越广,已经渗入到人们的日常生活当中。用大型的电子显示屏显示汉字时,简易汉字为16×16点阵,精美为24×24、32×32点阵。其原理和8×8点阵一样。

三 .实验电路及连接:

说明

利用8279可实现对键盘/显示器的自动扫描,以减轻CPU负担,并具有显示稳定、程序简单、不会出现误动作等特点。

本实验系统中8279的状态/命令口地址位8701H;数据口地址位8700H。

示例程序运行将显示”电子设计”,并等待按键输入,将键值显示在数码管上。

1 、8279的结构

8279主要由以下部件组成:

数据缓冲器将双向三态8位内部数据总线D0~D7与系统总线相连,用于传送C8279之间的命令和状态。

控制和定时寄存器用于寄存键盘和显示器的工作方式,锁存操作命令,通过译码器产生相应的控制信号,使8279的各个部件完成相应的控制功能。

定时器包含一些计数器,其中有一个可编程的5位计数器(记数值在2~31之间),对CLK输入的时钟信号进行分频,产生100KHz的内部定时信号(此时扫描时间为5.1ms,消抖时间为10.3ms)。外部输入时钟信号周期不小于500ns。

扫描计数器有两种输出方式:一是编码方式,计数器以二进制方式计数,4位计数状态从扫描线SL3~SL0输出,经外部译码器可以产生16位的键盘和显示器扫描信号;另一种是译码方式,扫描计数器的低两位经内部译码后从SL3~SL0输出,直接作为键盘和显示器的扫描信号。

回送缓冲器、键盘消抖及控制完成对键盘的自动扫描,以搜索闭合键,锁存RL7~RL0的键输入信息,消除键的抖动,将键输入数据写入内部先进先出存储器(FIFO RAM)。RL7~RL0为回送信号线作为键盘的检测输入线,由回送缓冲器缓冲并锁存,当某一键闭合时,附加的移位状态SHIFT、控制状态CNTL及扫描码和回送信号拼装成一个字节的“键盘数据”送入8279内部的FIFO(先进先出)RAM。键盘的数据格式为

在传感器矩阵方式和选通方式时,回送线RL7~RL0的内容被直接送往相应的FIFO RAM,输入数据即为RL7~RL0。数据格式为

FIFO/传感器RAM是具有双功能的8×8RAM。在键盘或选通方式时,它作为FIFO RAM ,依先进先出的规则输入或读出,其状态存放在FIFO/传感器RAM 状态寄存器中。只要FIFO RAM不空,状态逻辑将置中断请求IRQ=1;在传感器矩阵方式,作为传感器RAM,当检测出传感器矩阵的开关状态发生变化时,中断请求信号IRQ=1。在外部扫描译码方式时,可对8×8矩阵开关的状态进行扫描;在内部译码扫描方式时,可对4×8矩阵开关的状态进行扫描。

显示RAM用来存储显示数据,容量是16×8位。在显示过程中,存储的显示数据轮流从显示寄存器输出。显示寄存器输出分成两组,即OUTA0~OUTA3和OUTB0~OUTB3,两组可以单独送数,也可以组成一个8位的字节输出,该输出与位选扫描线SL0~SL3配合就可以实现动态扫描显示。显示地址寄存器用来寄存CPU读/写显示RAM的地址,可以设置为每次读出或写入后自动递增。

2、74LS138

74LS138是一个3-8译码器,其作用是将3位二进制代码000~111翻译成相对应的八个十进制数0~7,高电平有效。A、B、C为输入信号,Y0~Y7为输出信号。

7407为8路驱动器,用来驱动LED的X0~X7。

四 .程序框图:

五.程序清单:源代码:

Z8279 EQU 08701H ;8279 状态/命令口地址

D8279 EQU 08700H ;8279 数据口地址

LEDMOD EQU 10H ;右端输入八位字符显示

;外部译码键扫描方式,双键互锁

LEDFEQ EQU 38H ;扫描速率

LEDCLS EQU 0D1H ;清除

LEDWR0 EQU 80H ;设定的将要写入的显示RAM地址

ORG 0000H

AJMP START

ORG 0040H

START:

MOV SP,#60H

LCALL INIT8279 ;初始化8279

WAIT: MOV DPTR,#Z8279

MOVX A,@DPTR

ANL A,#0FH

JZ WAIT

MOV A,#40H

MOVX @DPTR,A

MOV DPTR,#D8279

MOVX A,@DPTR

ANL A,#3FH

MOV R4,#00H

MOV R5,A

LCALL DISLED

SJMP WAIT

INIT8279: ;8279初始化子程序PUSH DPH ;保存现场

PUSH DPL

PUSH ACC

LCALL DELAY ;延时

MOV DPTR ,#Z8279

MOV A,#LEDMOD ;置8279工作方式

MOVX @DPTR,A

MOV A,#LEDFEQ ;置键盘扫描速率

MOVX @DPTR,A

MOV A,#LEDCLS ;清除LED 显示

MOVX @DPTR,A

LCALL DELAY ;延时

MOV DPTR,#Z8279

MOV A,#90H

MOV DPTR,#D8279

MOV A,#40H

MOVX @DPTR,A

MOV A,#40H

MOVX @DPTR,A

MOV A,#0H

MOVX @DPTR,A

MOV A,#0H

MOVX @DPTR,A

MOV A,#0EFH

MOVX @DPTR,A

MOV A,#27H

MOVX @DPTR,A

MOV A,#5BH

MOVX @DPTR,A

MOV A,#7FH

MOVX @DPTR,A

POP ACC ;恢复现场

POP DPL

POP DPH

RET

;显示字符子程序

;输入: R4,位置R5,值

DISLED: PUSH DPH ;保存现场

PUSH DPL

PUSH ACC

MOV A,#LEDWR0 ;置显示起始地址

ADD A,R4 ;加位置偏移量

MOV DPTR,#Z8279

MOVX @DPTR,A ;设定显示位置

MOV DPTR,#LEDSEG ;置显示常数表起始位置

MOV A,R5

MOVC A,@A+DPTR ;查表

MOV DPTR,#D8279

MOVX @DPTR,A ;显示数据

POP ACC ;恢复现场

POP DPL

POP DPH

RET

DELAY: ;延时子程序

PUSH 0 ;保存现场

PUSH 1

MOV 0,#0H

DELAY1: MOV 1,#0H

DJNZ 1,$

DJNZ 0,DELAY1

POP 1 ;恢复现场

POP 0

RET

LEDSEG: DB 10H、FFH、91H、BDH、91H、FFH、12H、1EH;

DB 7EH、04H、08H、7EH、08H、08H、18H、08H;

DB 9CH、54H、E7H、7EH、54H、48H、74H、62H;

DB 84H、44H、DFH、44H、44H、44H、64H、44H;

END

六 .实验结论:

本实验可以通过按键控制8279来实现字符的显示;如需要显示按下键,则可读键显示,示例程序运行将显示”电子设计”,并等待按键输入,将键值显示在数码管上。在显示过程中,存储的显示数据轮流从显示寄存器输出。此程序可以实现字符的逐字显示和向右滚动显示;但无法实现向上

的滚动显示。

参考文献:

1、《MSC-51/151/251单片机原理与应用》薛栋梁编著;中国水利水电出版社;

2、《微型计算机原理与接口技术》李长青编著;中国矿业大学出版社

3、《单片机原理及接口技术》李全利迟容强编著;高等教育出版社;

4、《8051单片机实验教程》徐爱钧编著电子工业出版社;

5、《单片机的C语言应用程序设计》马中梅等编著;北京航空航天大学出版社;

6、《数字电子技术》张建华编;机械工业出版社;

7、《单片机系统设计及工程应用》雷思孝冯育长编著;西安电子科技大学出版社;

相关文档
最新文档