16X16点阵设计课程设计.docx

上传人:b****4 文档编号:5524399 上传时间:2022-12-18 格式:DOCX 页数:16 大小:146.51KB
下载 相关 举报
16X16点阵设计课程设计.docx_第1页
第1页 / 共16页
16X16点阵设计课程设计.docx_第2页
第2页 / 共16页
16X16点阵设计课程设计.docx_第3页
第3页 / 共16页
16X16点阵设计课程设计.docx_第4页
第4页 / 共16页
16X16点阵设计课程设计.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

16X16点阵设计课程设计.docx

《16X16点阵设计课程设计.docx》由会员分享,可在线阅读,更多相关《16X16点阵设计课程设计.docx(16页珍藏版)》请在冰豆网上搜索。

16X16点阵设计课程设计.docx

16X16点阵设计课程设计

16x16点阵设计

摘要

随着LED技术的发展,LED点阵显示成了集微电子技术、计算机技术、信息处理于一体的新型显示方式。

由于其具有色彩鲜艳,动态范围广,亮度高,寿命长,工作稳定可靠等优点而广泛应用,不仅可以静态的显示信息,而且也可以通过动态滚动,从而增加信息显示的容量,为了醒目,还可以产生诸如闪动、滚动等显示效果。

本设计是用1个16×16点阵LED电子显示屏的设计。

整机以美国ATMEL公司生产的40脚单片机AT89C51为核心,介绍了以它为控制系统的LED点阵电子显示屏的动态设计和开发过程。

通过该芯片控制一个行驱动器74LS154和八个列驱动器74HC595来驱动显示屏显示。

该电子显示屏可以显示各种文字或单色图像,也可以动态显示,使得图形或文字能够实现静止、移入移出等多种显示方式。

文中详细介绍了LED点阵显示的硬件设计思路、硬件电路各个部分的功能及原理、相应软件的程序设计,以及使用说明等。

关键词:

AT89C51,LED点阵,动态驱动

 

1绪论

1.1课题描述

随着电子技术,特别是随大规模集成电路的产生而出现的微型计算机技术的飞速发展,人类生活发生了根本性的改变。

如果说微型计算机的出现使现代科学研究得到了质的飞跃,那么可以毫不夸张地说,单片机技术的出现则是给现代工业测控领域带来了一次新的技术革命。

目前,单片机以其体积小、重量轻、抗干扰能力强、对环境要求不高、高可靠性、高性能价格比、开发较为容易,在工业控制系统、数据采集系统、智能化仪器仪表、办公自动化等诸多领域得到极为广泛的应用,并已走人家庭,从洗衣机、微波炉到音响、汽车,到处都可见到单片机的踪影。

因此,单片机技术开发和应用水平已逐步成为一个国家工业发展水平的标志之一。

本课题研究的内容就是以单片机为主要控制元件,驱动LED点阵显示所想要现实的汉字[1]。

1.2基本工作原理及框图

LED点阵总体框图如图所示,点阵电路大体上可以分成微机本身的硬件、显示驱动电路、控制信号电路三部分。

控制电路部分包括一个51CUP和一些外围电路。

在整个电路当中单片机负责控制整个电路以及相应的程序的运行、与PC机的串行通讯、以及给屏体电路部分发送命令。

点阵显示屏体、以及它的行和列的各个驱动电路。

此显示电路采用扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个列驱动器。

由行译码器给出的行选通信号,从第一行开始,按顺序依次对各行进行扫描(把该行与电源的一端接通)。

另一方而,根据各列锁存的数据,确定相应的列驱动器是否将该列与电源的另一端接通。

接通的列,就在该行该列点燃相应的LED;未接通的列所对应的LED熄灭。

可通过扫描输出口的控制实现颜色的转换[2]。

图1.1基本工作原理框图

2相关芯片及硬件电路设计

2.1AT89C51芯片

AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4kbytes的反复擦写的Flash只读程序存储器和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域[3]。

AT89C51引脚图如图所示。

图2.1AT89C51引脚图

①VCC:

供电电压

②GND:

接地

③P0口

P0口为一个8位漏级开路双向I/O口,每个管脚可吸收8TTL门电流。

当P1口的管脚写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,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),也是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,同时P3口同时为闪烁编程和编程校验接收一些控制信号。

⑦RST:

复位输入端。

当振荡器复位时,要保持RST两个机器周期的高电平时间。

⑧PSEN

外部程序存储器的选通信号。

在由外部程序存储器取址期间,每个机器周期PSEN两次有效。

但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。

⑨EA/VPP

当EA保持低电平时,访问外部ROM;注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,访问内部ROM。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

单片机是在一块硅片上集成了各种部件的微型机,这些部件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时器/计数器和多种I/O接口电路。

8051单片机的基本结构见图2.2。

图2.28051单片机的基本结构

2.1.1AT89C51的功能特性

AT89C51提供以下标准功能:

4K字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个十六位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。

同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。

空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。

掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位[4]。

2.1.2AT89C51的主要性能参数

AT89C51主要性能参数如下:

1)与MC-51产品指令系统完全兼容

2)4K字节可重擦写Flash闪速存储器

3)1000次擦写周期

4)全静态操作:

0Hz—24Hz

5)三级加密程序存储器

6)128×8字节内部RAM

7)32个可编程I/O口线

8)2个16位定时/计数器

9)6个中断源

10)可编程串行UART通道

11)低功耗空闲和掉电模式

2.2单片机的最小系统

图2.3单片机最小应用系统原理图

注:

该最小系统由按键复位RESET电路、晶体振荡电路以及I/O接口电路组成。

2.2.1上电复位电路的设计

复位的实现通常用2种方式:

开机上电复位和外部手动复位,本设计用的是外部手动复位。

电路图2.4如下:

图2.4单片机复位图

2.2.2电源电路设计

AT89C51工作电压VCC=5V,其EA引脚需接高电平,5V电源电路如图2.5所示。

该电源电路主要模块为IC7805,它能输出稳定的5V电源,图中整流桥是将市电转变为直流电,电容起到虑波作用由7805的OUT引脚输出5V电压。

图2.5单片机电源原理图

2.3LED点阵介绍及取模

8×8单色点阵共需要64个发光二极管组成,且每个二极管是放置在行线与列线的叉点上。

本设计是一种实用的汉字显示屏的制作,制作的是双色点阵。

考虑到元器件的易购性,没有使用8×8的点阵发光二极管模块,而是直接使用了256个高亮度发光管,组成了16行16列的发光点阵。

实际使用时可以根据这个原理自行扩充显示的字数。

8*8点阵内部结构如图2.6

图2.6点阵内部构造

4个8*8点阵级联构成16*16点阵如下图2.7

图2.716*16点阵的构成

LED驱动显示采用动态扫描方法,动态扫描方式是逐行轮流点亮,这样扫描驱动电路就可以实现多行的同名列共用一套列驱动器。

以16×16点阵为例,把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起(共阳的接法),先送出对应第1行发光管亮灭的数据并锁存,然后选通第1行使其燃亮一定的时间,然后熄灭;再送出第2行的数据并锁存,然后选通第2行使其燃亮相同的时间,然后熄灭;….第16行之后,又重新燃亮第1行,反复轮回。

当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能看到显示屏上稳定的图形。

显示数据传输采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的[5]。

2.4LED点阵显示模块进行的方法有两种:

(1)水平方向(X方向)扫描,即逐列扫描的方式(简称列扫描方式):

此时用一个P口输出列码决定哪一列能亮(相当于位码),用另一个P口输出行码(列数据),决定该行上那哪个LED亮(相当于段码)。

能亮的列从左到右扫描完16列(相当于位码循环移动16次)即显示出一个完整的图像。

(2)竖直方向(Y方向)扫描,即逐行扫描方式(简称行扫描方式):

此时用一个P口输出决定哪一行能亮(相当于位码),另一个P口输出列码决定该行上哪些LED灯亮(相当于段码)。

能亮的行从上向下扫描完16行即显示一帧完整的图像[6]。

点阵的驱动

需要靠锁存器(74LS373)将这两组显示信号锁住,如图2.8

图2.8点阵的驱动电路

3系统软件设计

3.1程序设计流程图

3.2程序设计

[7]。

以下为用汇编语言编写的字符显示控制程序:

;***************************************

;**

;*单个16x16的点阵电子屏字符显示器*

;*ATA89C5212MHz晶振*

;.11LRM*

;***************************************

;显示字用查表法,不占用内存,字符用16x16共阳LED点阵,

;效果:

向上滚动显示5个字,再重复循环。

;R1:

查表偏址寄存器,B:

查表首址,R2:

扫描地址(从00~0FH)。

;R3:

滚动显示时控制移动速度,单字显示可控制静止显示的时间。

;*************;

;中断入口程序;

;*************;

ORG0000H

LJMPSTART

ORG0003H

RETI

ORG000BH

LJMPINTTO

ORG0013H

ERTI

ORG001BH

ERTI

ORG0023H

RETI

ORG002BH

RETI

;***********;

;初始化程序;

;***********;

;***********;

;主程序;

;***********;

START:

MOV20H,#00H;清零标志,00H为第16行开始扫描标志,01为1帧

;扫描结束标志

MOVA,#0FFH;端口初始化

MOVP1,A

MOVP1,A

MOVP3,A

MOVP0,A

CLRP1.6;串行寄存器输入打入输出控制位

MOVTMOD,#01H;使用T0做16位定时器,行扫描用。

MOVTH0,#0FCH;1ms初值(12MHz)

MOVTL0,#18H

MOVSCON,#00H;串口0方式传送显示字节

MOVIE,#82H;T0中断允许,总中断允许

MOVSP,#70H

MOVDPTR,#TAB

LCALLMOVDISP;向上滚动显示一页(8个字)

INCDPH

LCALLMOVDISP;向上滚动显示一页(8个字)

INCDPH

LACLLMOVDISP;向上滚动显示一页(8个字)

AJMPMAIN

;***********************;

;多字滚动显示程序;

;***********************;

;每次8个字,入口时定义好DPTR值

MOVDISP:

MOVB,#00H;向上移动显示,查表偏值暂存(从00开始)

DISLOOP:

MOVR3,#07H;移动速度

DISMOV:

MOVR2,00H;第0行开始

MOVR1,B

SETBTR0;开扫描(每次一帧)

WAITMOV:

JBC01H,DISMOV1;标志为1扫描一帧结束(16ms为1帧,每行1ms)

AJMPWAITMOV

DISMOV1:

DJNZR3,DISMOV;1帧重复显示(控制移动速度)

INCB;显示字的下一行(每行2字节)

INCB

MOVA,R1;R1为0,8个字显示完

JZMOVOUT

AJMPDISLOOP

MOVOUT:

RET;移动先是结束

;****************;

;单字显示程序;

;****************;

;显示表中某个字;

;****************;

DIS1:

MOVR3,#5AH;静止显示时间控制(16ms*#=1.6s)

DIS11:

MOVR2,#00H;一帧扫描初始值(行地址从00~0FH)

MOVDPTR,#TAB;取表首址

MOVR1,#00H;查表偏址(显示第一个字)

SETBTR0;开扫描(每次一帧)

WAIT11:

JBC01H,DIS111;为1,扫描一帧结束

AJMPWAIT11

DIS111:

DJNZR3,DIS11

RET

;************;

;扫描程序;

;************;

;1ms刷新一次,每行显示1s

INTT0:

PUSHACC

MOVTH0,#0FCH;1ms初值重装

MOVTL0,#18H

JBC00H,GOEND;16行扫描标志为1,结束

INCR1;取行右边字节偏址

MOVA,R1

MOVCA,@A+DPTR;查表

MOVSBUF,A;串口0方式发送

WAIT:

JBCTI,GO;等待发送完毕

AJMPWAIT1

GO:

DECR1;取行左边字节偏址

MOVA,R1

MOVCA,@A+DPTR

MOVSBUF,A

WAIT1:

JBCT1,GO1

AJMPWAIT1

GO1:

SETBP1.7;关行显示,准备刷新

NOP;串口寄存器数据稳定

SETBP1.6;产生上升沿,行数据打入输出端

NOP

NOP

CLRP1.6;恢复低电平

MOVA,R2;修改显示行地址

ORLA,#0F0H;修改显示行地址

MOVR2,A;修改显示行地址

MOVA,P1;修改显示行地址

ORLA,#0FH;修改显示行地址

ANLA,R2;修改显示行地址

MOVP1,A;修改完成

CLRP1.7;开行显示

INCR2;下一行扫描地址值

INCR1

INCR1;下一行数据地址

MOVA,R2

ANLA,#0FH

JNZGO2

SETB00H;R2为01H,现为末行扫描,置标志

GO2:

POPACC

RETI

GOEND:

CLRTR0;一帧扫描完毕,关扫描

SETB01H;一帧扫描完毕,置结束标志

POPACC

RETI;退出

;***************;

;扫描文字表;

;***************;

TAB:

DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,00FFH,0FFH,0FFH;黑屏

DB

0F9H,0BFH,0C7H,0AFH,0F7H,0B7H,0F7H,0B7H,0F7H,0BFH,000H,001H,0F7H,0BFH,0F7H,0B7H;我

DB

0F1H,0D7H,0C7H,0CFH,037H,0DFH,0F7H,0AFH,0F6H,06DH,0F7H,0F5H,0D7H,0F9H,0EFH,0FDH;

DB

0FFH,007H,0C0H,06FH,0EDH,0EFH,0F6H,0DFH,0C0H,001H,0DDH,0FDH,0BDH,0FFH,0C0H,003H;爱

DB

0FBH,0FFH,0F8H,00FH,0F3H,0DFH,0F4H,0BFH,0EFH,03FH,09CH,0CFH,073H,0F1H,0CFH,0FBH;

DB

0F7H,0DFH,0F9H,0CFH,0FBH,0BFH,0C0H,007H,0DEH,0F7H,0C0H,007H,0DEH,0F7H,0DEH,0F7H;单

DB

0C0H,007H,0DEH,0F7H,0FEH,0FFH,000H,001H,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH

DB

0FFH,0BFH,0EFH,0BFH,0EFH,0BFH,0EFH,0BBH,0E0H,001H,0EFH,0FFH,0EFH,0FFH,0EFH,0FFH;片

DB

0E0H,00FH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0DFH,0EFH,0DFH,0EFH,0BFH,0EFH,07FH,0FFH

DB

0EFH,0FFH,0EFH,007H,0EFH,077H,001H,077H,0EFH,077H,0EFH,077H,0C7H,077H,0CBH,077H;机

DB

0ABH,077H,0AFH,077H,06EH,0F7H,0EEH,0F5H,0EDH,0F5H,0EDH,0F5H,0EBH,0F9H,0EFH,0FFH;

DB

0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;黑屏

DB

0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;

END

 

总结

本文设计的16x16的点阵LED图文显示屏,能够在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示的图形和文字较稳定、清晰。

图形或文字向上滚动显示。

本系统具有硬件少,结构简单,容易实现,性能稳定可靠,成本低等特点。

经过近多日的努力,终于将本次课程设计做完了,但由于水平有限,文中肯定有很多不恰当的地方,请老师指出其中的错误和不当之处,使我能做出改正,我会虚心接受。

在本次课程设计过程中,我增强了自己的动手能力和分析能力。

通过跟老师和同学的交流,也通过自己的努力,我按时完成了这次课程设计。

在此过程中,我学会了很多,也看到了很多自己的不足之处。

在以后的学习生活中,我会努力学习专业知识,完善自我,为将来的发展做好充分的准备。

总之,在这次课程设计中,我受益匪浅,学到了很多书本上所没有的东西,懂得了理论和实际联系的重要性。

在以后的学习中,我不仅要把理论知识掌握牢固,更要提高自己的动手能力和分析能力。

 

致谢

通过一周的努力,终于将单片机课程设计完成了,在完成课程设计的这一周中,付老师给予了我很大的帮助。

她不仅是指导我完成了设计,还教会了我做设计的一般步骤、设计思想和设计方法。

当我对此课程设计无从下手的时候付乐老师专心地为我讲解,为我解决了很多实际存在的困难和问题。

她在单片机实验室里为我们梳理流程,讲解原理,使我对此次的课程设计能圆满完成增添了很多信心,真正的从心理和解决实际问题上为我树立了很好的榜样,我为能有这样的好老师而感觉到骄傲,每每对课程设计的撰写产生疑问时,她为我提纲挈领、梳理脉络,使我确立了本文的框架。

在此我衷心的感谢一直不辞辛劳为我指明方向的付老师。

通过这次的课程设计,不仅使我学到了很多专业方面的知识,也让我明白了不畏困难、勇于攀登艰难的重要性,这对我未来的学习和生活产生很大的影响。

在此,再次感谢我的学校和付老师。

 

参考文献

[1]胡汉才.单片机原理与接口技术[M].北京:

清华大学出版社,1995.6.

[2]楼然苗等.51系列单片机设计实例[M].北京:

北京航空航天出版社,2003.3.

[3]何立民.单片机高级教程[M].北京:

北京航空航天大学出版社,2001.

[4]赵晓安.MCS-51单片机原理及应用[M].天津:

天津大学出版社,2001.3.

[5]肖洪兵.跟我学用单片机[M].北京:

北京航空航天大学出版社,2002.8.

[6]夏继强.单片机实验与实践教程[M].北京:

北京航空航天大学出版社,2001.

[7]于凤明.单片机原理及接口技术[M].北京:

中国轻工业出版社.1998.

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1