您好,欢迎来到暴趣科技网。
搜索
您的当前位置:首页8×8点阵数字滚动显示

8×8点阵数字滚动显示

来源:暴趣科技网
项目一 8×8点阵数字滚动显示

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

对应编码:

00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H 00H, 00H, 3EH, 41H, 41H, 41H, 3EH, 00H 00H, 00H, 00H, 00H, 21H, 7FH, 01H, 00H 00H, 00H, 27H, 45H, 45H, 45H, 39H, 00H 00H, 00H, 22H, 49H, 49H, 49H, 36H, 00H 00H, 00H, 0CH, 14H, 24H, 7FH, 04H, 00H 00H, 00H, 72H, 51H, 51H, 51H, 4EH, 00H 00H, 00H, 3EH, 49H, 49H, 49H, 26H, 00H 00H, 00H, 40H, 40H, 40H, 4FH, 70H, 00H 00H, 00H, 36H, 49H, 49H, 49H, 36H, 00H 00H, 00H, 32H, 49H, 49H, 49H, 3EH, 00H 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H

;NULL

; 0 ; 1 ; 2 ; 3 ; 4 ; 5 ; 6

; 7 ; 8 ; 9 ;NULL

硬件设计原理:

单片机利用外部晶振作为时钟信号输入,RST端口接入上电复位信号使它加电后自动进行复位操作。将要显示的字符码表编入单片机的程序中,由单片机控制时序输出相应的扫描数据和字符数据。行码数据由单片机P0口输出,经一个双向总线收发器控制传输方向后进入LED点阵,点亮相应的发光二极管。列码扫描信号由P3口输出后,直接输入LED点阵控制8列的扫描,每列选

通时间为5ms,看上去就像8列同时显示的效果一样。加上行中相应的LED灯被点亮,就能看到显示的字符了。

三、源程序代码:

R_CNT EQU 31H ;列码R_NCT=31H单元 NUMB EQU 32H ;行码NUMB=32H单元

TCOUNT EQU 33H ;拉幕计数值TCOUNT=33H单元 ORG 00H ;程序起始地址 LJMP START

ORG 0BH ;中断入口地址 LJMP INT_T0

ORG 30H ;子程序入口地址 START: ;主程序开始

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

MOV R_CNT, #00H ;列:初值00送到31H单元 MOV NUMB, #00H ;行:初值00送到32H单元 MOV TCOUNT, #00H ;计数单元初值置0

MOV TMOD, #01H ;计数定时器选用16位的计数器,工作在方式1 MOV TH0, #(65536—5000)/256 ;定时5ms。定时器高位初值为236 MOV TL0, #(65536—5000) MOD 256 ;定时器低位初值为120 SETB TR0 ;启动C/T的定时器T0 MOV IE, #82H ;CPU开中断 SJMP $ ;中断等待 INT_T0:

MOV TH0, #(65536—5000)/256 ;定时5ms,设置定时器T0高位初值为236 MOV TL0, #(65536—5000)/256 ; 定时器T0低位初值为120 MOV DPTR, #TAB ;读列码表首地址,放入DPTR MOV A, R_CNT ;读列码偏移地址,放入A中

MOVC A, @A+DPTR ;基址变址寻址将寻到的列码数据放入A中 MOV P3,A ;将列码数据送P3口输出 MOV DPTR, #NUB ;装入显示数据的地址 MOV A, NUMB ;显示幕次的偏移地址 MOVC A, @A+DPTR ;寻到数据的行码地址 MOV P0, A ;将该地址值输出 INC NUMB ;行码地址加1 NEXT1:

INC R_CNT ;扫描列码地址加1 MOV A, R_CNT ;把列地址放入A中

CJNE A, #8, NEXT2 ;A不等于8,转子程序NEXT2,否则往下执行 MOV R_CNT, #00H ;就把列码置0

MOV NUMB, R0 ;行码地址送存储单元格中 NEXT2:

INC TCOUNT ;拉幕计数序号加1 MOV A, TCOUNT ;将幕次序号送A中

CJNE A, #40, NEXT4 ;此序号不等于40转Next4,否则往下执行 MOV TCOUNT, #00H ;把拉幕时序归0 INC R0 ;行码起始地址加1

CJNE R0, #88, NEXT3 ;行码自加次数不满11字符×8行/字符=88行就转Next3 MOV R0, #00H ;不然就把行码置0 NEXT3:

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

NEXT4:

RETI ;中断返回 TAB: ;列码码表

DB 0FEH, 0FDH, 0FBH, 0F7H, 0EFH, 0DFH, 0BFH, 7FH ;列扫描从右向左 NUB: ;行码码表,字符数据

DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;NULL DB 00H, 00H, 3EH, 41H, 41H, 41H, 3EH, 00H ; 0 DB 00H, 00H, 00H, 00H, 21H, 7FH, 01H, 00H ; 1 DB 00H, 00H, 27H, 45H, 45H, 45H, 39H, 00H ; 2 DB 00H, 00H, 22H, 49H, 49H, 49H, 36H, 00H ; 3 DB 00H, 00H, 0CH, 14H, 24H, 7FH, 04H, 00H ; 4 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 DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H END

程序流图:

开始 初始化端口 设定扫描时间 拉幕时序清0 取列扫描地址 取行数据地址 数据输出 幕次数计满? Yes No 幕次数加1 送新的行码地址

; 5 ; 6 ; 7 ; 8 ; 9 ;NULL 结束汇编 ;

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

一、设计要求

本次设计采用单片机ATC51驱动8×8点阵LED显示屏,轮流显示0~9的数字。显示方式采用自左向左拉幕式显示。

二、硬件电路介绍

1. ATC51单片机:

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脚两个机器周期的高电平时间。ATC51单片机的外形及引脚排列说明如后页图示。

ATC51单片机的外形及引脚排列如右图.

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汇编软件中输入设计的程序,编译通过后生成十六进制文件,并再把该文件下载到虚拟的ATC51单片机内。因为单片机的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 © 2019- baoquwan.com 版权所有 湘ICP备2024080961号-7

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务