6330|7

85

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

4个16X16点阵LED电子显示屏的设计 [复制链接]

A请问点阵屏电路设计有错误吗?
B如果我想写个点阵屏测试程序,可以使4个16X16点阵由第一行亮到第16行?我该怎样写啊?

下面为6页资料连接地址,请大家看完后给我一点见议啦!
http://img016.photo.21cn.com/photos/forum/20080909/m/5BF77FCCF08DE9E989DBAF530DA9BF36.jpg

http://img016.photo.21cn.com/photos/forum/20080909/m/D8A22E8973C88E66E5490C9CC9092FB9.jpg

http://img016.photo.21cn.com/photos/forum/20080909/m/77AFFFAB8EF207A01CA7507644E0A1F4.jpg

http://img016.photo.21cn.com/photos/forum/20080909/m/A7ECC3D7D53302E45F61111B7F322148.jpg

http://img016.photo.21cn.com/photos/forum/20080909/m/5CFBF86873576AA19745730F5810CBD0.jpg

http://img016.photo.21cn.com/photos/forum/20080909/m/DD91350AEAA4547759140612134F1779.jpg

最新回复

显示屏刷新率由定时器T0的溢出率和单片机的晶振频率决定, 刷新率/HZ  为25 T0初值为0XEC78  最高为120   T0初值为0XFBEE 上楼主,给点意见我啦  详情 回复 发表于 2008-9-29 09:17
点赞 关注

回复
举报

68

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
大家记住,在浏览器加入http://img016.photo.21cn.com/photos/forum/20080909/m/5BF77FCCF08DE9E989DBAF530DA9BF36.jpg

就可以看到图片资料了,但是要用鼠标点图片的右下方将图片放大才看得清文字
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
这种电路都是这样,应该没问题的....
完全可以搞同时显示4个汉字,停止或多个汉字移动(要具体看用MCU ROM)
例子倒有个C的,分太少了....
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

4
 
程序如下,在仿真过程出现全屏亮,请各位指点迷津,在错误的程序写得不好的地方提出点修改建议

;显示字用查表法,不占内存,用四个16*16共阳LED点阵显示,
;效果:向上滚动显示字,每次四个,重复循环。
;R2:行扫描地址(从00-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为1帧扫描结束标志
                MOV     A,#0FFH              ;端口初始化
                MOV     P1,A
                MOV     P2,A
                MOV     P3,A
                MOV     P0,A
                CLR     P1.6            ;串行寄存器打入输出端控制位
                MOV     TMOD,#01H       ;使用T0作16位定时器,行扫描用。
                MOV     TH0,#0FCH       ;1ms初值(12MHZ)
                MOV     TL0,#18H
                MOV     SCON,#00H       ;串口0方式传送显示字节
                MOV     IE,#82H         ;T0中断允许,总中断允许
                MOV     SP,#70H
                LCALL   DIS1            ;显示准备,黑屏,1.5秒
MAIN:           MOV     DPTR,#TAB
                LCALL   MOVDISP         ;逐排显示,每次四字)
                MOV     DPTR,#TAB
                LCALL   MOVDISP1        ;滚动显示,每排四字)
                AJMP    MAIN
;
;
;********************;
; 四字逐排显示子程序 ;
;********************;
;每次四字移入移出显示方式,入口时定义好DPTR值
;
MOVDISP:        MOV     R1,#6           ;显示6排字,每排四字(R1=排数)
DISLOOP:        MOV     R3,#100         ;每排显示时间1.6*100=1.6S
DISMOV:         MOV     R2,#00H         ;第0行开始
                SETB    TR0             ;开扫描(每次一帧)
WAITMOV:        JBC     00H,DISMOV1     ;标志为1扫描一帧结束(16毫秒为1帧,每行1毫秒)
                AJMP    WAITMOV
DISMOV1:        DJNZ    R3,DISMOV       ;1帧重复显示(控制显示时间)
                MOV     A,#128          ;显示字指针移一排(每排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                     ;移动显示结束
;
;********************;
; 四字滚动显示子程序 ;
;********************;
;每排四字向上移出显示方式,入口时定义好DPTR值
;
MOVDISP1:        MOV     R1,#255          ;向上移动显示6排字,每排四字(R1=排数*16)
DISLOOP1:        MOV     R3,#10          ;移动速度1.6*10=0.16S
DISMOV2:         MOV     R2,#00H         ;第0行开始
                 SETB    TR0             ;开扫描(每次一帧)
WAITMOV1:        JBC     00H,DISMOV3     ;标志为1扫描一帧结束(16毫秒为1帧,每行1毫秒)
                 AJMP    WAITMOV1
DISMOV3:         DJNZ    R3,DISMOV2      ;1帧重复显示(控制移动速度)
                 INC     DPTR            ;显示字指针移一行(二字节位置)
                 INC     DPTR
                 DEC     R1              ;R1为0,显示完
                 MOV     A,R1
                 JZ      MOVOUT1         ;
                 AJMP    DISLOOP1        ;
MOVOUT1:         RET                     ;移动显示结束
;
;
;*****************;
; 四个字显示子程序  ;
;*****************;
;静止显示表中某四个字
DIS1:           MOV     R3,#5AH         ;静止显示时间控制(16MS*#=1.6秒)
DIS11:          MOV     R2,#00H         ;一帧扫描初始值(行地址从00-0FH)
                MOV     DPTR,#TAB       ;取表首址
                SETB    TR0             ;开扫描(每次一帧)
WAIT11:         JBC     00H,DIS111      ;为1,扫描一帧结束
                AJMP    WAIT11
DIS111:         DJNZ    R3,DIS11
                RET
;
;
;************;
;  扫描程序  ;
;************;
;1MS传送一行,每行显示1毫秒,一次传送四个字的某行共8个字节.
;
INTT0:          PUSH    ACC
                MOV     TH0,#0FCH       ;1ms初值重装
                MOV     TL0,#18H
                MOV     A,#97           ;指向第四个字行右字节
                ADD     A,DPL
                MOV     DPL,A
                MOV     A,#0
                ADDC    A,DPH
                MOV     DPH,A
                MOV     A,#0
                MOVC     A,@A+DPTR      ;查表
                MOV     SBUF,A          ;串口0方式发送
WAIT:           JBC     TI,GO           ;等待发送完毕
                AJMP    WAIT            ;
GO:             MOV     A,DPL           ;指向第四个字行左字节
                SUBB    A,#1
                MOV     DPL,A
                MOV     A,DPH
                SUBB    A,#0
                MOV     DPH,A
                MOV     A,#0
                MOVC     A,@A+DPTR
                MOV     SBUF,A
WAIT1:          JBC     TI,GO1
                AJMP    WAIT1
;
GO1:            MOV     R0,#03H
MLOOP:          MOV     A,DPL           ;指向前三个字行右字节
                SUBB    A,#31
                MOV     DPL,A
                MOV     A,DPH
                SUBB    A,#0
                MOV     DPH,A
                MOV     A,#0
                MOVC     A,@A+DPTR      ;查表
                MOV     SBUF,A          ;串口0方式发送
WAIT2:          JBC     TI,GO2           ;等待发送完毕
                AJMP    WAIT2            ;
GO2:            MOV     A,DPL           ;指向前三个字行左字节
                SUBB    A,#1
                MOV     DPL,A
                MOV     A,DPH
                SUBB    A,#0
                MOV     DPH,A
                MOV     A,#0
                MOVC     A,@A+DPTR
                MOV     SBUF,A
WAIT3:          JBC     TI,GO3
                AJMP    WAIT3
GO3:            DJNZ    R0,MLOOP        ;执行三次
;
;
                SETB    P1.7            ;关行显示,准备涮新
                NOP                     ;串口寄存器数据稳定
                SETB    P1.6            ;产生上升沿,行数据打入输出端
                NOP                     ;
                NOP                     ;
                CLR     P1.6            ;恢复低电平
                MOV     A,R2            ;修改显示行地址
                ORL     A,#0F0H         ;修改显示行地址
                MOV     R2,A            ;修改显示行地址
                MOV     A,P1            ;修改显示行地址
                ORL     A,#0FH          ;修改显示行地址
                ANL     A,R2            ;修改显示行地址
                MOV     P1,A            ;修改完成
                CLR     P1.7            ;开行显示
                INC     R2              ;下一行扫描地址值
                INC     DPTR            ;
                INC     DPTR            ;下一行数据地址
                MOV     A,R2
                ANL     A,#0FH
                JNZ     GO4
                SETB    00H             ;R2为10H,现为末行扫描,置1帧结束标志
                MOV     A,DPL           ;指针修正为原帧初值
                SUBB    A,#32
                MOV     DPL,A
                MOV     A,DPH
                SUBB    A,#0
                MOV     DPH,A
                CLR     TR0             ;一帧扫描完,关扫描
GO4:            POP     ACC
                RETI                    ;退出
;
;
;***************;
;  扫描文字表   ;
;***************;
; 共五排字,每排四个字,前后为黑屏
TAB:    DB  ;黑屏
              ;黑屏
              ;黑屏
              ;单
              ;片
              ;机
              ;是
              ;工
              ;业
              ;中
              ;最
              ;基
              ;本
              ;的
              ;应
              ;用
              ;方
              ;式
              ;我
              ;爱
              ;单
              ;片
              ;机
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

5
 
太复杂了.
给段C代码
/*
      
       24MHZ的晶振,点线扫描地址为:0xFFFF
*/
#include
#include
#include
#include

#define  uchar  unsigned char
#define  uint   unsigned int
#define  SPEED  6

uchar col, disrow;
uint  word;
uchar code HZ[];
uchar BUFF[6];

void  loadoneline(void);  //装载某行一线点阵数据
void  sendoneline(void);  //串行发送一行线点阵数据

/****************************主函数***************************/
void main(void)
{

        uchar i;
        col  = 0;
        word = 0;
        while(1)
        {
                while(col<16)                           // 循环16次,点亮并移动一个汉字
                {
                        for(i=0; i                         {
                                for(disrow=0;disrow<16;disrow++)//扫描16行
                                {
                                      loadoneline();            //装载一线点阵数据
                                      sendoneline();            //发送一线点阵数据
                                      XBYTE[0xFFFF]= 0x10 + disrow;       // 点亮屏幕
                                      XBYTE[0xFFFF] = 0x20 + disrow;      //锁住74LS595
                                }
                        }
                        col++;                //列指针递增
                }
                col = 0;
                word= word + 32;       // 一个汉字移动后,指向下一个汉字
                if(word >= 1600)
                        word = 0;      // 移动50个汉字后,重新开始
        }
}
  
/****************用"字模"等软件提出要显示的字符汉字点阵码*************************/
uchar code HZ[]=
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//0x08,0x20,0x06,0x30,0x04,0x40,0x3F,0xF8,0x21,0x08,0x3F,0xF8,0x21,0x08,0x21,0x08,
0x3F,0xF8,0x21,0x08,0x01,0x00,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,/*"单",0*/
0x00,0x40,0x10,0x40,0x10,0x40,0x10,0x44,0x1F,0xFE,0x10,0x00,0x10,0x00,0x10,0x00,
0x1F,0xF0,0x10,0x10,0x10,0x10,0x10,0x10,0x20,0x10,0x20,0x10,0x40,0x10,0x80,0x10,/*"片",1*/
0x10,0x00,0x10,0xF8,0x10,0x88,0xFE,0x88,0x10,0x88,0x10,0x88,0x38,0x88,0x34,0x88,
0x54,0x88,0x50,0x88,0x91,0x08,0x11,0x0A,0x12,0x0A,0x12,0x0A,0x14,0x06,0x10,0x00,/*"机",2*/
0x00,0x00,0x0F,0xF0,0x08,0x10,0x0F,0xF0,0x08,0x10,0x0F,0xF0,0x08,0x10,0x0F,0xF0,
0x
}
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

6
 
请问上一位楼主,以动态串行电路图为例,可以支持64个16*16点阵屏的扩展吗
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

7
 
关键是看,你所选芯片能达到的的扫描频率....
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

8
 
显示屏刷新率由定时器T0的溢出率和单片机的晶振频率决定,
刷新率/HZ  为25 T0初值为0XEC78  最高为120   T0初值为0XFBEE
上楼主,给点意见我啦
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表