8×8点阵数字滚动显示

上传人:第*** 文档编号:34064023 上传时间:2018-02-20 格式:DOC 页数:6 大小:416.50KB
返回 下载 相关 举报
8×8点阵数字滚动显示_第1页
第1页 / 共6页
8×8点阵数字滚动显示_第2页
第2页 / 共6页
8×8点阵数字滚动显示_第3页
第3页 / 共6页
8×8点阵数字滚动显示_第4页
第4页 / 共6页
8×8点阵数字滚动显示_第5页
第5页 / 共6页
点击查看更多>>
资源描述

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

1、项目一 88 点阵数字滚动显示LED 点阵的元件符号及内部结构图:对应编码:00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;NULL00H, 00H, 3EH, 41H, 41H, 41H, 3EH, 00H ; 000H, 00H, 00H, 00H, 21H, 7FH, 01H, 00H ; 100H, 00H, 27H, 45H, 45H, 45H, 39H, 00H ; 200H, 00H, 22H, 49H, 49H, 49H, 36H, 00H ; 300H, 00H, 0CH, 14H, 24H, 7FH, 04H, 00H ; 400H, 00H

2、, 72H, 51H, 51H, 51H, 4EH, 00H ; 500H, 00H, 3EH, 49H, 49H, 49H, 26H, 00H ; 600H, 00H, 40H, 40H, 40H, 4FH, 70H, 00H ; 700H, 00H, 36H, 49H, 49H, 49H, 36H, 00H ; 800H, 00H, 32H, 49H, 49H, 49H, 3EH, 00H ; 900H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;NULL硬件设计原理:单片机利用外部晶振作为时钟信号输入,RST 端口接入上电复位信号使它加电后自动进行复位操作。将

3、要显示的字符码表编入单片机的程序中,由单片机控制时序输出相应的扫描数据和字符数据。行码数据由单片机 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

4、;程序起始地址LJMP START ORG 0BH ;中断入口地址LJMP INT_T0ORG 30H ;子程序入口地址START: ;主程序开始MOV R0, #00H ;每列的行码起始序号置 0MOV R_CNT, #00H ;列:初值 00 送到 31H 单元MOV NUMB, #00H ;行:初值 00 送到 32H 单元MOV TCOUNT, #00H ;计数单元初值置 0MOV TMOD, #01H ;计数定时器选用 16 位的计数器,工作在方式 1MOV TH0, #(65536-5000)/256 ;定时 5ms。定时器高位初值为 236MOV TL0, #(65536-500

5、0) MOD 256 ;定时器低位初值为 120SETB TR0 ;启动 C/T 的定时器 T0MOV IE, #82H ;CPU 开中断SJMP $ ;中断等待INT_T0:MOV TH0, #(65536-5000)/256 ;定时 5ms,设置定时器 T0 高位初值为 236MOV TL0, #(65536-5000)/256 ; 定时器 T0 低位初值为 120MOV DPTR, #TAB ;读列码表首地址,放入 DPTRMOV A, R_CNT ;读列码偏移地址,放入 A 中MOVC A, A+DPTR ;基址变址寻址将寻到的列码数据放入 A 中MOV P3,A ;将列码数据送 P3

6、 口输出MOV DPTR, #NUB ;装入显示数据的地址MOV A, NUMB ;显示幕次的偏移地址MOVC A, A+DPTR ;寻到数据的行码地址MOV P0, A ;将该地址值输出INC NUMB ;行码地址加 1NEXT1:INC R_CNT ;扫描列码地址加 1MOV A, R_CNT ;把列地址放入 A 中CJNE A, #8, NEXT2 ;A 不等于 8,转子程序 NEXT2,否则往下执行MOV R_CNT, #00H ;就把列码置 0MOV NUMB, R0 ;行码地址送存储单元格中NEXT2:INC TCOUNT ;拉幕计数序号加 1MOV A, TCOUNT ;将幕次序

7、号送 A 中CJNE A, #40, NEXT4 ;此序号不等于 40 转 Next4,否则往下执行MOV TCOUNT, #00H ;把拉幕时序归 0INC R0 ;行码起始地址加 1CJNE R0, #88, NEXT3 ;行码自加次数不满 11 字符8 行/字符=88 行就转 Next3MOV R0, #00H ;不然就把行码置 0NEXT3:MOV NUMB, R0 ;送新的一幕行码起始位给 R0NEXT4:RETI ;中断返回TAB: ;列码码表DB 0FEH, 0FDH, 0FBH, 0F7H, 0EFH, 0DFH, 0BFH, 7FH ;列扫描从右向左NUB: ;行码码表,字符

8、数据DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;NULLDB 00H, 00H, 3EH, 41H, 41H, 41H, 3EH, 00H ; 0DB 00H, 00H, 00H, 00H, 21H, 7FH, 01H, 00H ; 1DB 00H, 00H, 27H, 45H, 45H, 45H, 39H, 00H ; 2DB 00H, 00H, 22H, 49H, 49H, 49H, 36H, 00H ; 3DB 00H, 00H, 0CH, 14H, 24H, 7FH, 04H, 00H ; 4DB 00H, 00H, 72H, 51H, 51H

9、, 51H, 4EH, 00H ; 5DB 00H, 00H, 3EH, 49H, 49H, 49H, 26H, 00H ; 6DB 00H, 00H, 40H, 40H, 40H, 4FH, 70H, 00H ; 7DB 00H, 00H, 36H, 49H, 49H, 49H, 36H, 00H ; 8DB 00H, 00H, 32H, 49H, 49H, 49H, 3EH, 00H ; 9DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;NULLEND ;结束汇编程序流图:开始初始化端口设定扫描时间拉幕时序清0取列扫描地址取行数据地址数据输出YesNo

10、幕次数加1送新的行码地址幕次数计满? 项目一 88 点阵数字滚动显示1、设计要求 本次设计采用单片机 AT89C51 驱动 88 点阵 LED 显示屏,轮流显示 09 的数字。显示方式采用自左向左拉幕式显示。二、硬件电路介绍1. AT89C51 单片机:P0 口:P0 口为一个 8 位漏级开路双向 I/O 口。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 口能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH 编程时, P0 口作为原码输入口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必须被拉高。 P1 口:P1 口是一个内部提供上拉电阻的

11、 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:复

12、位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。AT89C51 单片机的外形及引脚排列说明如后页图示。AT89C51 单片机的外形及引脚排列如右图。2. 74LS373 芯片:当三态允许控制端 OE 为低电平时,O0O7 为正常逻辑状态,可用来驱动负载或总线。当 OE 为高电平时,O0O7 呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。 当锁存允许端 LE 为高电平时,O 随数据 D 而变。当 LE 为低电平时,O 被锁存在已建立的数据电平.D0D7 数据输入端 OE 三态允许控制端(低电平有效) LE 锁存允许端 O0O7 输出端 3. r

13、espack-8 器件:排阻器件,起上拉电阻的作用。4. 88LED 点阵88LED 点阵可作为信息输出器件。它是由发光二极管阵列按 8 排 8 列的方式排列起来,由 x 和 y 引脚输入的电信号对其进行选通,使不同位置的二极管被点亮,相应地显示出文字或图案等信息来。四、硬件设计仿真:五、设计调试过程及问题在 PC 机上运行 Proteus 软件,将电路原理图中的元件找出并相应地连接好线;在 Keil 汇编软件中输入设计的程序,编译通过后生成十六进制文件,并再把该文件下载到虚拟的 AT89C51 单片机内。因为单片机的 RST 引脚经电容接到了 Vcc 电源上,同时并联接地,所以系统可以上电后

14、自动执行一次复位操作。问题一 第一次连接硬件电路,由于没有接 74LS373 双向总线收发器,所以在 LED 点阵和单片机 I/O 口之间就直接连接了,结果 LED 显示屏无法显示单片机输出的结果,所有的LED 灯都不亮。看来直接跳线时单片机 I/O 口输出的信号不足以驱动 8 乘 8 点阵工作。当8051 单片机的 P0 口输出八位低地址时,必须接入 74LS373 作地址锁存器。问题二 仿真时会看到 LED 点阵中有字显示的地方(前景)灯是灭的,无字显示的地方(背景)灯是亮的,这出现“阴文”显示状态。产生这种显示的原因是因为 88 点阵 LED 引脚接反了,应该正端接 P3,负端接 P0。即可看到正确的 “阳文”方式显示出的数字。问题三 仿真时出现数字是反着的,产生这种显示的原因是因为点阵的列码扫描信号线AH 与单片机的 P3.0P3.7 口相应的顺序接反了,把对应的接线顺序倒过来,才正确。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号