基于单片机的单色LED点阵系统.docx
《基于单片机的单色LED点阵系统.docx》由会员分享,可在线阅读,更多相关《基于单片机的单色LED点阵系统.docx(37页珍藏版)》请在冰豆网上搜索。
基于单片机的单色LED点阵系统
第1章概述
1.1单片微型计算机简介
随着大规模集成电路技术的发展.可以将中央处理器(CPU)、存储器(ROM、RAM)、I/O接口电路、定时器/计数器等,制作在一块集成电路芯片中,这样所组成的芯片级的微型计算机称为单片微型计算机(SingleChipMirco-computer),直译为单片微机或单片机。
由于单片机从功能和形态来说都是为满足控制领域应用的要求,在过程控制、智能仪表、机电一体化和家用电器等领域中发挥着重要的控制作用。
因此,单片机也称微控制器(Micro-Controller),或称为嵌入式微控制器的(Embedded-Microcontroller)。
单片机自问世以来,应用日趋广泛,性能不断提高和完善,能在很多使用场台取代现有的多片微处理机系统,而其性能价格比更为优越,体积、重量大为减小。
尤其是MCS-51系列尤为智能仪表和控制器中的理想部件.单片机的潜在能力也越来越为人们所注意.用CMOS工艺制成的各型单片机由于功耗低,使用温度范围大,能满足一些特殊的应用要求。
正因为单片机具有一系列的优越条件,目前国内外单片机的应用正在飞速发展。
1.1.1单片机的特点
(1)集成度高、功能强
与微型计算机进行比较,单片机不仅体积大大减小,而且功能大为增强。
MCS-51系列单片机内的定时/计数器为16位,而Z80微型计算机只有8位:
MCS-51系列单片机中不但有4个并行I/O接口,而且还有串行接口,且时钟频率可达12Mz。
(2)结构合理
目前单片机大多采用哈佛(Harvard)结构。
即是数据存储器与程序存储器相互独立的一种结构。
采用16位地址总线的8位单片机可寻址外部64KBRAM和64KBROM。
此外还有内部RAM和内部ROM。
(3)抗干扰性强
由于单片机的各种功能部件都集成在一个芯片上,特别是存储器也集成在芯片
内部,布线短,数据大都在芯片内部传送,不易受到外部的干扰,增强了抗干扰
能力,使系统运行更可靠。
(4)指令丰富
单片机一般都有传送指令,逻辑运算指令,转移指令,加、减法运算指令等,有些单片机还具有乘法及除法运算指令,特别是位操作指令十分丰富。
因而单片机能在逻辑控制、开关量控制以及顺序控制中得以广泛应用。
1.1.2单片机的起源及发展过程与趋势
自从1974年12月美国仙童(Fairchild)公司第一个推出8位单片机F8以来以惊人的速度发展:
从最初的1位机,4位机阶段发展到低、中档8位机阶段(1976—1978年,此阶段8位机一股不带有I/O接口,寻址范围通常为4K代表作如Intel公司的MCS—48系列单片机,Mostek公司的3870);再到高档8位机阶段(1978—1982年这一类单片机常有串行I/O接口,有多级中断处理,定时/计数器为16位,片内的RAM和ROM的容量相对增大,且寻址范围可达64KB,有的片内还带有A/D转换接口。
其代表作有Intel公司的MCS-51、Motorola公司的6801和Zilog公司的Z8);到现在的16位单片机和超8位单片机阶段(此阶段的主要特征是,一方面不断完善高档8位机,改善其结构,以满足不同用户的需要;另一方面发展16位单片机及专用单片机。
16位单片机除了CPU为16位外,片内RAM和ROM的容量也进一步增大,片内RAM为232字节,ROM为8KB,片内带有高速输入输出部件,多通道10位A/D转换部件,中断处理为8级,其实时处理能力更强)集成度越来越高,功能越来越强。
随着技术的发展,单片机的发展趋势将是:
向着大容量、高性能化,小容量、低价格化和外围电路内装化等几个方面发展。
1.1.3单片机的应用
单片机的应用,打破了人们的传统设计思想,原来很多用模拟电路、脉冲数字电路、逻辑部件来实现的功能,现在无需增加硬件设备,可通过软件来完成。
由于单片机集成度高、功能强、可靠性高、体积小、功耗低、使用方便、价格低廉等一系列优点,目前己渗入到人们工作和生活的各个角落,几乎“是无处不在,无所不为”。
(1)工业过程控制中的应用
由于单片机的I/O接口线多,位操作指令丰富,逻辑操作功能强,因此,特别适用于工业过程控制。
(2)生活中的应用
由丁单片机价格低廉、体积小、逻辑判断及控制功能强,因此广泛地应用于人类生活的各个方面。
如:
洗衣机、电冰箱、电子玩具、立体声音响、家用防盗系统等。
(3)智能仪表中的应用
单片机广泛地应用于各种仪器仪表中,使仪器仪表智能化,提高测试的自动化程度和精度,简化其硬件结构,提高其性能价格比。
(4)计算机网络及通信技术中的应用
单片机中集成了通信接口,因而使其在计算机网络及通信设备中得以广泛应用。
1.2LED电子显示屏概述
1.2.1显示技术简介
显示技术是一种反映外界客观事物的信息(光学的、电学的、声学的、化学的等),经过变换处理,以适当的形式(主要有图像、图形、数码、字符)加以显示,供人观看、分析、利用的一种技术。
现在所谓的显示技术,可以称作电子信息显示技术,它是建立在光学、化学、电子学、机械学、声学、信息学、网络技术、计算机等科学技术基础上的具有某种程度综合性的技术。
随着科学技术、经济、政治、军事、社会的发展,信息的种类和数量不断增加。
人们生活在信息社会中,每时每刻都在获得信息。
研究表明,人获得的信息中有近2/3是通过眼睛的。
而显示技术,正是为人们提供各种各样重要信息的一个窗口,可以想象,显示技术有极其广阔的发展天地。
现在显示技术的应用已经十分广泛,在体育场馆,大屏幕显示系统可以显示比赛实况以及比赛成绩、时间等;在交通运输行业,可以显示运行情况;在金融行业,可以实时显示金融信息,如股票、汇率等;在商业邮电系统,可以向广大顾客显示通知、消息、广告等等。
显示技术还可以广泛应用于工农业生产、军事、医疗单位、公安系统乃至宇航事业等国民经济,社会生活和军事领域中,并起着重要作用
1.2.2LED的简介和显示应用
1923年,罗塞夫(Lossen.o.w)发现了半导体炭化硅(Sic)PN结的整流与发光现象,研究出发光二极管(LightEmittingDiode)此后,对注入形发光现象、机理和化合物半导体如GaP、GaAs等半导体发光材料与PN结形成技术进行了深入研究,特别是80年代以来随着社会高度信息化进程加快,光通讯、光信息处理急速发展,使LED应用研究迅速发展并走上了实用化阶段。
近年来,由于半导体的制作和加工工艺逐步成熟和完善,发光二极管已日趋在固体显示中占主导地位。
LED之所以受到广泛重视而得到迅速发展,是与它本身所具有的优点分不开的。
这些优点概括起来是:
亮度高、工作电压低、功耗小、小型化而易与集成电路匹配、驱动简单、寿命长、耐冲击和性能稳定。
LED主要有以下几种应用:
(1)单色LED照明做指示灯
做指示灯与局部照明是LED最早的应用。
目前在家用电器、音像装置、汽车、飞机仪表板及许多其他仪器仪表上,LED越来越多地被用作照明灯和指示灯。
(2)LED的字符与数字显示
在一块基片上做多个LED或将多个LED芯片组装成数字、字母、符号、或简单的图形,可以用于电子手表、仪器数字串、交通指挥牌、机场车站内信息牌等,其中最用的最多就是7段LED数码管显示器。
(3)LED显示屏的字符与数字显示
将单色和彩色LED排列成矩阵板可做大型字符与图形显示。
可用于显示文字、文本、图形、图像、动画、行情等各种信息。
由于其亮度高,显示内容多样,故障少,能耗低,使用寿命长,性能价格比高等优点,被广泛应用在银行、证券、电信、车站、机场、码头、海关、体育场馆以及在室外做告示牌和广告牌。
LED的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性、可靠性、全色化方向发展。
1.2.3LED电子显示屏简介
传统的LED数码管只能显示0~9的数字,用途仅限于数字显示,不能显示汉字及各种复杂的图像,若将许多发光二极管按照点阵(行、列)形式排列起来,显示方式就非常灵活,显示功能亦大大增强。
但是若用分立的发光二极管构成大屏幕显示屏,就需要成千上万只LED,其接线和焊接工作将不胜其繁,而且显示屏的可靠性较差,近年来,随着LED点阵显示屏的问世,上述问题可迎刃而解。
LED点阵显示器亦称LED矩阵板或LED阵列是以发光二极管作为基本发光单
元—像素(亦称像元),再按行与列的顺序排列而成的显示器件。
它具有发光亮度高、参数一致性好、可靠性高、接线简单、拼装方便等优点,能构成各种尺寸的大屏幕显示屏。
因此,它被广泛用于由计算机控制的大型LED智能显示屏、智能仪器和机电一体化设备中,利用先进的智能显示技术来取代传统的数显技术。
LED显示屏以其亮度高、动态影像显示效果好、故障低、能耗少、使用寿命长、显示内容多样、显示方式丰富、性能价格比高等优势,作为新一代的显示媒体,已广泛应用于各行各业。
在短短的十来年中,迅速成长为平板显示的主流产品,在信息显示领域得到了广泛的应用。
现代信息社会中,作为人一机信息视觉传播媒体的显示产品和技术得到迅速发展,进入二十一世纪的显示技术将是平板显示的时代,LED显示屏作为平板显示的主导产品之一无疑会有更大的发展,并有可能成为二十一世纪平板显示的代表性主流产品。
目前其正朝着高亮度、全彩化、标准化、规范化、产品结构多样化发展。
第2章硬件的分析
本系统利用实验室现有的DICE-5103H增强型单片机开发实验仪及所带扩展实验卡MC1(LED16*16点阵块显示实验板)来实现对LED点阵显示的分析研究。
DICE-5103H与MC1扩展板接线如图3.1所示,用扁平电缆连接Z1座(MC1板)到CZ7座(主板扩展接口),J1座(MC1板)到JX9座(主板PA口),采用并行口进行控制,显示方式为逐列扫描。
现分析各模块和芯片功能及彼此连接
2.116×16点阵显示部分
LED点阵显示屏结构模块化,整屏尺寸可以根据实际需要进行调整。
不论多大的LED显示屏都是由多个小的点阵显示模块拼接而成。
本设计中所用的16×16点阵显示部分由4块8×8点阵拼接而成。
显示方法采用列扫描。
每个8×8点阵模块的外观与尺寸如图2-2所示
其内部LED接线采用行共阳、列共阴的编排方式如下图(图2-3)所示在外部图中COL(共阳极)接收行数据,ROW(共阴极)接收列数据,当行信号(阳极)为“1”,列信号(阴极)为“0”时,对应当LED灯亮。
4块8×8点阵模块接法如下图(图2-4)具体为:
1与2的行信号接口接在一起用于显示字形的下半部分;
3与4的行信号接口接在一起用于显示字形的上半部分;
1与4列信号接口接在一起作为列扫描1;
2与3列信号接口接在一起作为列扫描2。
由此构成1块16×16点阵显示屏
字形行代码1由MC1上的8255的PC口输出到16×16点阵显示屏的上半部,字形行代码2则由主板的8255PA口输出到16×16点阵的下半部,列扫描信号1由MC1上的8255的PA口送到16×16点阵作为点阵左半边扫描信号,列扫描信号2由MC1上的8255的PB口送到16×16点阵作为点阵右半边扫描信号。
2.28255A作为数据输出部分
本系统中有两块8255A芯片一块在DICE-5103H实验仪主板上自带,另一块在MC1扩展板上,下面对8255A的功能做一番简介,并说明其在本设计中的作用。
2.2.18255A功能介绍
8255A为Intel公司生产,是一块可编程通用并行接口芯片。
所谓可编程,实际上就是具有可选择性。
例如,选择芯片中的哪一个或哪几个数据端口与外设连接;选择端口中的哪一位或哪几位作输入,哪一位或哪几位作输出;选择端口与CPU之间采用哪种方式传送数据等,均可由用户在程序中写入方式字或控制字来进行指定。
因此它们具有广泛的适应性及很高的灵活性,在微机、单片系统中得到广泛应用。
8255A就是这样一种可以进行编程的芯片,它有三个8位并行接口,分别是
PA口、PB口和PC口,其中PC口又分为高4位口(PC7~PC4)和低4位口(PC3~
PC0),他们都可以通过软件编程来改变I/O口的工作方式。
8255A引脚如图3.1所示:
(1)PA0~PA7为PA口,PB0~PB7为PB口,PC0~PC7为PC口,每个端口都有一个数据输入寄存器和一个数据输出寄存器,输入时有端口有三态缓冲器的功能,输出时端口有数据锁存器功能。
(2)DO~D7它是8255A与CPU系统数据总线的接口。
所有的数据的发送与接收,以及CPU发出的控制字和从8255A来的状态信息都是通过该接口传送。
(3)
:
片选信号,低电平有效,A1,A0为内部端口地址选择信号,一般与系统地址总线低位相连,
、
为8255A的读写控制信号,这些线与MCS-51的地址线和读写信号线相连接,实现CPU对8255A口选择和数据传送。
CPU对8255A口、B口、C口和控制口的寻址如表2-1所示
表2-18255A端口选择表
A1
A0
操作
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
输入操作(读)
端口A→数据总线
端口B→数据总线
端口C→数据总线
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
输出操作(写)
数据总线→端口A
数据总线→端口B
数据总线→端口C
数据总线→控制寄存器
×
1
×
×
1
×
×
0
1
×
1
1
1
0
0
断开功能
数据总线为三态
非法状态
数据总线为三态
(4)RESET为复位控制信号,复位时,它把控制寄存器清零和置所有端口(PA、PB、PC)为输入方式。
8255A有3种基本工作方式:
方式0—基本输入输出;
方式1—选通输入输出;
方式2—双向传送(仅PA口)。
8255A的工作方式控制字:
8255A的工作方式,它由CPU发送出一个控制字到8255A的控制字寄存器来选择。
这个控制字的格式如表3-2所示,它用于选择端口A和端口B的工作方式,而端口C分成两部分,上半部分随端口A,下半部随端口B。
并指定三个端口是作输出还是输入口。
表2-28255A控制字
1
D6
D5
D4
D3
D2
D1
D0
特征位
A组方式
A口
C7~C4
B组方式
B口
C3~C0
00=方式0
0=输出
0=输出
0=方式0
0=输出
0=输出
01=方式1
1=输入
1=输入
1=方式1
1=输入
1=输入
10=方式2
2.2.28255A在本系统中的接线与作用
在本设计系统中,主板上的8255A作为CPU的扩展并行I/O接口连线出厂时是固化好,其片选信号
与CPU的地址总线经过I/O地址译码器产生的信号相连,A1、A0与地址总线地位相连,
、
与CPU读写信号相连,DO~D7与数据总线相连;A口与点阵显示屏下半边行信号接口相连。
而扩展板MC1上的8255A与CPU连接见图3.1,其通过Z1座用扁平电缆连接到到主板扩展接口CZ7座,其片选信号与CPU扩展总线8000H信号相连,A1、A0与地址总线地位A1、A0相连,与CPU读写信号相连,DO~D7与数据总线相连;A口与显示屏左半边列信号接口相连,B口与显示屏右半边列信号接口相连,C口与显示屏上半边行信号接口相连。
其各自的扩展名称、端口地址及用途如表2-3
表2-3两片8255A的I/O地址分配及用途
扩展名称
口地址
用途
XPA
8000H
列扫描1
XPB
8001H
列扫描2
XPC
8002H
行代码1
XPCTL
8003H
8255A﹙MC1﹚控制口
PA
0FF28H
行代码2
PCTL
0FF2B
8255A﹙主板﹚控制口
在本系统中,根据设计需要,两块8255A的工作方式都应为方式0,即选用基本输入输出工作方式,主板上的8255A的A口作为输出口,而扩展板上8255A的A口、B口、C口均作为输出口。
因此,根据表3-2所示的控制字格式,两块8255A的工作方式字都应为10000000即80H。
其中PA(主板8255A的A口)与16×16点阵显示屏的下半边行信号接口相连,字型行代码2通过PA口输出到显示屏下半边;
XPC(MC1上8255A的C口)与16×16点阵显示屏的上半边行信号接口相连,字型行代码1通过XPC口输出到显示屏上半边;
XPA(MC1上8255A的A口)与16×16点阵显示屏的左半边列信号接口相连,列扫描信号1通过XPA口输出到显示屏作为字型左半边的扫描信号。
XPB(MC1上8255A的B口)与16×16点阵显示屏的右半边列信号接口相连,列扫描信号2通过XPB口输出到显示屏作为字型右半边的扫描信号。
有关行代码与列扫描的具体说明分析,将后面说明。
第3章字库的剖析与建立
所谓字库,即将要在LED点阵显示屏上显示的汉字根据一定编码规则把它转换为16进制编码放在单片机扩展存储器中,当要显示该汉字时,单片机执行程序将要显示的汉字编码送到硬件电路上通过点阵显示屏上显示,根据LED点阵显示方式的不同,字库有不同建立方法。
在本系统中,因在本系统中采用逐列扫描的方法显示内容,所以,下面以“集”字为说明本系统中字库的建立规则。
如图3-1所示,在16X16点阵显示屏上“集”被分为16×16(=256)个小格子,每个格子代表一个LED灯,其中黑色的格子表示对应的LED灯亮(对应汉字编码中该位为1),白色的格子表示对应的LED灯灭(对应汉字编码中该位为0),这样由这256LED灯亮、灭的组合在显示屏上显现出汉字“集”字。
本系统中字库具体编写方法为:
先把一个“集”字按如图3-1分为16行,16列,对应第一列,照着从上到下位顺序写编码,其中黑点(表示灯亮)写为“1”,白点(表示灯灭)写为“0”(应先下半部分,再写上半部,因为在程序中指定送编码的顺序为先送下一半,再送上一半)。
然后再写第二列的编码。
按照这种方式是“集”字的字库编码应为:
第1列:
下半边00000000B=00H,上半边00000000B=00H;第2列:
下半边00100010B=22H,上半边00001000B=08H;第3列:
下半边00100010B=22H,上半边00010000B=10H;第4列:
下半边10100100B=A4H,上半边00111111B=3FH;第5列:
下半边10100100B=A4H,上半边11101010B=EAH;第6列:
下半边10101000B=A8H,上半边00101010B=2AH;第7列:
下半边10110000B=B0H,上半边00101010B=2AH;第8列:
下半边11111111B=FFH,上半边00101010B=2AH;第9列:
下半边10100000B=A0H,上半边10111111B=BFH;第10列:
下半边10110000B=B0H,上半边01101010B=6AH;第11列:
下半边10101000B=A8H,上半边00101010B=2AH;第12列:
下半边10100100B=A4H,上半边00101010B=2AH;第13列:
下半边10100110B=A6H,上半边00101010B=2AH;第14列:
下半边10100100B=A4H,上半边00000000B=00H;第15列:
下半边00100000B=20H,上半边00000000B=00H;第16列:
下半边00000000B=00H,上半边00000000B=00H。
汉字下半边的编码由16×16LED点阵显示屏下半边的行信号口输入,所以称为行代码1,汉字上半边的编码由16×16LED点阵显示屏下半边的行信号口输入,所以称为行代码2;转换后的编码依次放在单片机的存储器中,这样一个汉字在存储器中占用16×2=32个存储单元,将要显示的汉字内容按照要显示的先后顺序,依次放在存储器中,即构成要显示的字库。
本系统自建了一个的字库,包含了10个汉字,这10个汉字分别是“河南机电高等专科学校”,字库内容根据需要可以进行增加扩充。
第4章系统的软件设计
4.1所用寄存器、存储单元、辅助子程序说明
首先说明软件程序中,所使用的各寄存器、存储单元、辅助子程序及它们的作用:
寄存器:
R1,R0:
合起来作为取字库用的16位地址指针;
R2:
由存储单元35H与存储单元34H相减得到,表示的是显示内容的长度,程序中当R2内容为0时,表示开始要开始显示最后一个字,程序转到DISP3显示最后一个字;
R3:
显示内容显示速度并起稳定画面的作用;
R4:
判断一个字是否全部左移显示完毕;
R5:
列扫描信号;
R7,R6:
列扫描端口地址,R7=#80H,R6=#00H时表示XPA的端口地址,R7=#80H,R6=#00H时表示XPB的端口地址。
存储单元:
31H,30H:
合起来作为第二个16地址指针,在左移显示最后一字时,因第一个字要同步左移进到屏幕中,而地址指针仍在使用,固用31H,30H来作为第二个地址指针;
34H:
表示显示内容第一个字的在整个字库(28个字)的中位置;
35H:
表示显示内容最后一个字的在整个字库(28个字)的中位置;
38H,37H:
要显示的最后一个字最后一列的地址指针;
39H:
显示速度(时间常数),;
3BH,3AH:
要显示的第一个字第一列的地址指针。
辅助子程序:
AD:
TAB+R1,R0→DPTR;
POINT:
R1,R0+1→R1,R0;
AD2:
TAB+31H,30H→DPTR;
POINT2:
31H,30H+1→31H,30H;
CHF1:
计算显示的最后一个字最后一列的地址指针
4.2程序流程图
图4-1
图4-2
图
4.3程序设计
本系统采用8255A可编程并行接口芯片对LED点阵显示屏进行控制,汉字编码数据及列扫描信号数据由8255A并行口(A、B、C)输出到显示屏。
本系统自建了一个字库,内容是“河南机电高等专科学校”10个字,字库可进行扩展,在本系统中可以实现,在这10个字中动态(左移)循环显示从第m个字开始到n个字结束。
m与n都可以根据用户要求自行设定。
同时用户还可设定显示速度。
程序的大致流程如下:
4.3.1定义端口名称、地址与显示内容长度、速度的设定
程序一开始,先定义各端口名称和地址,下表(表4-1)及显示内容的显示速度(SPD),和显示内容首(LENG1)、尾(LENG2)(即设定要显示的第一个字在字库中的位置和要显示的最后一个字在字库中的位置)。
例如:
要改变显示内容长度(系统默认显示全部内容)若要改成从“机”开始显示到“科”字结束,“机”字在字库里是第3个字,“校”字在字库里是第8个字,则指令改为为:
LENG1DB03H
LENG2DB08H
因此,在此即可对显示内容速度与长度进行设定(控制);
表4-1I/O地址名称与用途
扩展名称
口地址
用途
XPA
8000H
列扫描1
XPB
8001H
列扫描2
XPC
8002H
行代码1
XPCTL
8003H
8255A﹙MC1﹚控制口
PA
0FF28H
行代码2
PCTL
0FF2B
8255A﹙主板﹚控制口
4.3.2初始化8255A
定义好端口地址名称后,要对硬件进行初始化,给两片8