找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1366|回复: 0
打印 上一主题 下一主题
收起左侧

16*64点阵LED 单片机源代码

[复制链接]
跳转到指定楼层
楼主
ID:743549 发表于 2020-5-6 21:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以下是4个16×16点阵LED电子显示屏的源程序,分别采用汇编及C语言编写,C程序在Keil 51环境下调试。
(1)汇编源程序
;********************************
;4字16×16点阵电F屏字符显示器*
;*    AT89C52    12 MHz晶振   *
;*******************************
;显示字用查表法,不占内存,用4个16×16共阳LED点阵显示
;效果:向上滚动显示字,每次4个,重复循环
;R2:行扫描地址(00H~0FH)。
;R3:滚动显示时控制移动速度,也可控制静止显示的时间
;*******中断入口程序*********
    ORG    0000H
    LJMP   START
    ORG    0003H
    RETI
    ORG    000BH
    LJMP    INTT0
    ORG    0013H
    RETI
    ORG    001BH
    RETI
    ORG    0023H
    RETI
    ORG    002BH
    RETI
;*******主程序************
START:MOV    20H,#00H    ;清标志,00H为l帧扫描结束标志
    MOV    A,#0FFH    ;端口初始化
    MOV    P1, A
    MOV    P2, A
    MOV    P3, A
    MOV    P0,A
    CLR     Pl.6            ;串行寄存器输入/输出端控制位
    MOV    TMOD, #01H    ;使用T0作16位定时器,行扫描用
    MOV    TH0,  #0FCH    ;1ms初值(12 MHz)
    MOV    TL0,  #18H
    MOV    SCON, #00H    ;串口0方式传送显示字节
    MOV    IE,  #82H      ;T0中断允许,总中断允许
    MOV    SP,  #70H
    LCALL    DIS1         ;显示准备,黑屏,1.5 s
MAIN: MOV    DPTR,#TAB
    LCALL    MOVDISP    ;逐排显示,每次4字)
    MOV    DPTR,#TAB
    LCALL    MOVDISP1   ;滚动显示,每排4字)
    AJMP    MAIN
;***************4字逐排显示子程序*******
;每次4字移入移出显示方式,入口时定义好DPTR值
MOVDISP:MOV    R1,#6       ;显示6排字,每排4字(R1=排数)
DISLOOP: MOV    R3,#100     ;每排显示时间为16 ms×100=1.6 s
DISMOV: MOV    R2,#00H     ;第0行开始
       SETB    TR0          ;开扫描(每次l帧)
WAITMOV:JBC    00H,DISMOV1 ;标志为1,扫描l帧结束(16 ms为1帧,每行1 ms)
       AJMP   WAITMOV
DISMOV1:DJNZ    R3,DISMOV  ;1帧重复显示(控制显示时间)
       MOV    A,#128       ;显示字指针移1排(每排4字×32= 128字)
       ADD    A, DPL
       MOV    DPL, A
       MOV    A,#0
    ADDC   A, DPH
    MOV    DPH,A
    DEC    R1         ;R1为0,显示完
    MOV    A,R1
    JZ    MOVOUT
    AJMP    DISLOOP
MOVOUT:RET                ;移动显示结束
;********************4字滚动显示子程序*****************
;每排4字向上移出显示方式,入口时定义好DPTR值
MOVDISP1:MOV    R1,#255     ;向上移动显示6排字,每排4字(R1=排数×16)
DISLOOP1: MOV    R3,#10      ;移动速度为16 ms×10= 0.16 s
DISMOV2:  MOV    R2,#00H    :第0行开始
         SETB   TR0          ;开扫描(每次1帧)
WAITMOV1: JBC    00H,DISMOV3;标志为1扫描1帧结束(16 ms为1帧,每行1 ms)
         AJMP   WAITMOV1
DISMOV3:  DJNZ   R3,DISMOV2  ;1帧重复显示(控制移动速度)
         INC    DPTR          ;显示字指针移1行(2字节位置)
         INC    DPTR
         DEC    R1         ;R1为0,显示完
         MOV    A,R1
         JZ    MOVOUT1
         AJMP    DISLOOP1
MOVOUT1:  RET                ;移动显示结束

LED点阵16X64源程序.rar

548.95 KB, 下载次数: 7, 下载积分: 黑币 -5

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表