8×8点阵数字滚动显示.doc

上传人:wj 文档编号:2486657 上传时间:2023-05-03 格式:DOC 页数:6 大小:416.50KB
下载 相关 举报
8×8点阵数字滚动显示.doc_第1页
第1页 / 共6页
8×8点阵数字滚动显示.doc_第2页
第2页 / 共6页
8×8点阵数字滚动显示.doc_第3页
第3页 / 共6页
8×8点阵数字滚动显示.doc_第4页
第4页 / 共6页
8×8点阵数字滚动显示.doc_第5页
第5页 / 共6页
8×8点阵数字滚动显示.doc_第6页
第6页 / 共6页
亲,该文档总共6页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

8×8点阵数字滚动显示.doc

《8×8点阵数字滚动显示.doc》由会员分享,可在线阅读,更多相关《8×8点阵数字滚动显示.doc(6页珍藏版)》请在冰点文库上搜索。

8×8点阵数字滚动显示.doc

项目一8×8点阵数字滚动显示

LED点阵的元件符号及内部结构图:

对应编码:

00H,00H,00H,00H,00H,00H,00H,00H ;NULL

00H,00H,3EH,41H,41H,41H,3EH,00H ;0

00H,00H,00H,00H,21H,7FH,01H,00H ;1

00H,00H,27H,45H,45H,45H,39H,00H ;2

00H,00H,22H,49H,49H,49H,36H,00H ;3

00H,00H,0CH,14H,24H,7FH,04H,00H ;4

00H,00H,72H,51H,51H,51H,4EH,00H ;5

00H,00H,3EH,49H,49H,49H,26H,00H ;6

00H,00H,40H,40H,40H,4FH,70H,00H ;7

00H,00H,36H,49H,49H,49H,36H,00H ;8

00H,00H,32H,49H,49H,49H,3EH,00H ;9

00H,00H,00H,00H,00H,00H,00H,00H ;NULL

硬件设计原理:

单片机利用外部晶振作为时钟信号输入,RST端口接入上电复位信号使它加电后自动进行复位操作。

将要显示的字符码表编入单片机的程序中,由单片机控制时序输出相应的扫描数据和字符数据。

行码数据由单片机P0口输出,经一个双向总线收发器控制传输方向后进入LED点阵,点亮相应的发光二极管。

列码扫描信号由P3口输出后,直接输入LED点阵控制8列的扫描,每列选通时间为5ms,看上去就像8列同时显示的效果一样。

加上行中相应的LED灯被点亮,就能看到显示的字符了。

三、源程序代码:

R_CNTEQU31H ;列码R_NCT=31H单元

NUMBEQU32H ;行码NUMB=32H单元

TCOUNTEQU33H ;拉幕计数值TCOUNT=33H单元

ORG00H ;程序起始地址

LJMPSTART

ORG0BH ;中断入口地址

LJMPINT_T0

ORG30H ;子程序入口地址

START:

;主程序开始

MOVR0,#00H ;每列的行码起始序号置0

MOVR_CNT,#00H ;列:

初值00送到31H单元

MOVNUMB,#00H ;行:

初值00送到32H单元

MOVTCOUNT,#00H ;计数单元初值置0

MOVTMOD,#01H ;计数定时器选用16位的计数器,工作在方式1

MOVTH0,#(65536-5000)/256 ;定时5ms。

定时器高位初值为236

MOVTL0,#(65536-5000)MOD256 ;定时器低位初值为120

SETBTR0 ;启动C/T的定时器T0

MOVIE,#82H ;CPU开中断

SJMP$ ;中断等待

INT_T0:

MOVTH0,#(65536-5000)/256 ;定时5ms,设置定时器T0高位初值为236

MOVTL0,#(65536-5000)/256 ;定时器T0低位初值为120

MOVDPTR,#TAB ;读列码表首地址,放入DPTR

MOVA,R_CNT ;读列码偏移地址,放入A中

MOVCA,@A+DPTR ;基址变址寻址将寻到的列码数据放入A中

MOVP3,A ;将列码数据送P3口输出

MOVDPTR,#NUB ;装入显示数据的地址

MOVA,NUMB ;显示幕次的偏移地址

MOVCA,@A+DPTR ;寻到数据的行码地址

MOVP0,A ;将该地址值输出

INCNUMB ;行码地址加1

NEXT1:

INCR_CNT ;扫描列码地址加1

MOVA,R_CNT ;把列地址放入A中

CJNEA,#8,NEXT2 ;A不等于8,转子程序NEXT2,否则往下执行

MOVR_CNT,#00H ;就把列码置0

MOVNUMB,R0 ;行码地址送存储单元格中

NEXT2:

INCTCOUNT ;拉幕计数序号加1

MOVA,TCOUNT ;将幕次序号送A中

CJNEA,#40,NEXT4 ;此序号不等于40转Next4,否则往下执行

MOVTCOUNT,#00H ;把拉幕时序归0

INCR0 ;行码起始地址加1

CJNER0,#88,NEXT3 ;行码自加次数不满11字符×8行/字符=88行就转Next3

MOVR0,#00H ;不然就把行码置0

NEXT3:

MOVNUMB,R0 ;送新的一幕行码起始位给R0

NEXT4:

RETI ;中断返回

TAB:

;列码码表

DB0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH ;列扫描从右向左

NUB:

;行码码表,字符数据

DB00H,00H,00H,00H,00H,00H,00H,00H ;NULL

DB00H,00H,3EH,41H,41H,41H,3EH,00H ;0

DB00H,00H,00H,00H,21H,7FH,01H,00H ;1

DB00H,00H,27H,45H,45H,45H,39H,00H ;2

DB00H,00H,22H,49H,49H,49H,36H,00H ;3

DB00H,00H,0CH,14H,24H,7FH,04H,00H ;4

DB00H,00H,72H,51H,51H,51H,4EH,00H ;5

DB00H,00H,3EH,49H,49H,49H,26H,00H ;6

DB00H,00H,40H,40H,40H,4FH,70H,00H ;7

DB00H,00H,36H,49H,49H,49H,36H,00H ;8

DB00H,00H,32H,49H,49H,49H,3EH,00H ;9

DB00H,00H,00H,00H,00H,00H,00H,00H ;NULL

END ;结束汇编

开始

程序流图:

初始化端口

设定扫描时间

拉幕时序清0

取列扫描地址

取行数据地址

数据输出

Yes

幕次数计满?

No

幕次数加1

送新的行码地址

项目一8×8点阵数字滚动显示

一、设计要求

本次设计采用单片机AT89C51驱动8×8点阵LED显示屏,轮流显示0~9的数字。

显示方式采用自左向左拉幕式显示。

二、硬件电路介绍

1.AT89C51单片机:

P0口:

P0口为一个8位漏级开路双向I/O口。

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

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

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,当P2口被写“1”时,其管脚被内部上拉电阻拉高,P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输出,由于外部下拉为低电平,它将输出电流。

RST:

复位输入。

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

AT89C51单片机的外形及引脚排列说明如后页图示。

AT89C51单片机的外形及引脚排列如右图。

2.74LS373芯片:

 当三态允许控制端OE为低电平时,O0~O7为正常逻辑状态,可用来驱动负载或总线。

当OE为高电平时,O0~O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。

  当锁存允许端LE为高电平时,O随数据D而变。

当LE为低电平时,O被锁存在已建立的数据电平.

D0~D7数据输入端  OE三态允许控制端(低电平有效)  LE锁存允许端  O0~O7输出端

3.respack-8器件:

排阻器件,起上拉电阻的作用。

4.8×8LED点阵

8×8LED点阵可作为信息输出器件。

它是由发光二极管阵列按8排8列的方式排列起来,由x和y引脚输入的电信号对其进行选通,使不同位置的二极管被点亮,相应地显示出文字或图案等信息来。

四、硬件设计仿真:

五、设计调试过程及问题

在PC机上运行Proteus软件,将电路原理图中的元件找出并相应地连接好线;在Keil汇编软件中输入设计的程序,编译通过后生成十六进制文件,并再把该文件下载到虚拟的AT89C51单片机内。

因为单片机的RST引脚经电容接到了Vcc电源上,同时并联接地,所以系统可以上电后自动执行一次复位操作。

问题一第一次连接硬件电路,由于没有接74LS373双向总线收发器,所以在LED点阵和单片机I/O口之间就直接连接了,结果LED显示屏无法显示单片机输出的结果,所有的LED灯都不亮。

看来直接跳线时单片机I/O口输出的信号不足以驱动8乘8点阵工作。

当8051单片机的P0口输出八位低地址时,必须接入74LS373作地址锁存器。

问题二仿真时会看到LED点阵中有字显示的地方(前景)灯是灭的,无字显示的地方(背景)灯是亮的,这出现“阴文”显示状态。

产生这种显示的原因是因为8×8点阵LED引脚接反了,应该正端接P3,负端接P0。

即可看到正确的“阳文”方式显示出的数字。

问题三仿真时出现数字是反着的,产生这种显示的原因是因为点阵的列码扫描信号线A~H与单片机的P3.0~P3.7口相应的顺序接反了,把对应的接线顺序倒过来,才正确。

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2