导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→我做的中文汉字显示屏,原理+程序[sxj1974]

 *第28251篇: 我做的中文汉字显示屏,原理+程序

  
楼 主:sxj1974 2004年12月10日11:47
 我做的中文汉字显示屏,原理+程序

此主题相关图片如下:
按此在新窗口浏览图片
此主题相关图片如下:
按此在新窗口浏览图片
程序清单:

ORG  00H

LOOP: MOV A,#0FFH ;开机初始化,清除画面

MOV P0,A    ;清除P0口

       ANL P2,#00   ;清除P2口

MOV R2,#200  

D100MS: MOV R3,#250 ;延时100毫秒

       DJNZ R3,$

       DJNZ R2,D100MS

       MOV 20H,#00H ;取码指针的初值

l100:    MOV R1,#100 ;每个字的停留时间

L16:    MOV R6,#16 ;每个字16个码

       MOV R4,#00H ;扫描指针清零

       MOV R0,20H ;取码指针存入R0

L3:    MOV A,R4   ;扫描指针存入A

       MOV P1,A   ;扫描输出

       INC R4      ;扫描指针加1,扫描下一个

       MOV A,R0   ; 取码指针存入A

       MOV DPTR,#TABLE ;取数据表的上半部分的代码

       MOVC A,@A+DPTR

       MOV P0,A   ; 输出到P0

       INC R0      ;取码指针加1,取下一个码。

       MOV A,R0

       MOV DPTR,#TABLE ;取数据表下半部份的代码

       MOVC A,@A+DPTR

       MOV P2,A          ;输出到P2口

       INC R0

MOV R3,#02        ;扫描1毫秒

DELAY2:  MOV R5,#248    ;

       DJNZ R5,$

       DJNZ R3,DELAY2

       MOV A,#00H     ;清除屏幕

       MOV P0,A

       ANL P2,#00H    

       DJNZ R6,L3       ;一个字16个码是否完成?

       DJNZ R1,L16      ;每个字的停留时间是否到了?

       MOV 20H,R0      ;取码指针存入20H

       CJNE R0,#0FFH,L100 ;8个字256个码是否完成?

       JMP LOOP ;反复循环

     

 TABLE :

;汉字“倚”的代码

db 01H,00H,02H,00H,04H,00H,1FH,0FFH

db 0E2H,00H,22H,00H,22H,0FCH,26H,88H

db 2AH,88H,0F2H,88H,2AH,0FAH,26H,01H

db 63H,0FEH,26H,00H,02H,00H,00H,00H

;以下分别输入天,一,出, 宝,刀,屠,龙,的代码,略。

end

  

 电路中行方向由p0口和p2口完成扫描,由于p0口没有上拉电阻,因此接一个4.7k*8的排阻上拉。 如没有排阻,也可用8个普通的4.7k 1/8w电阻。为提供负载能力,接16个2n5551的NPN三极管驱动。

列方向则由4—16译码器74LS154完成扫描,它由89C51的P1.0---P1.3控制。同样,驱动部分则是16个2N5401的三极管完成的。

电路的供电为一片LM7805三端稳压器,耗电电流为100Ma左右。 

采用一块12*20cm的万能电路板,应当选用质量好些的发光管,(否则有坏点现象, 更换起来较麻烦)首先将256个发光管插入电路板,注意插入方向,同时使高度一致,行方向直接焊接起来, 列方向则搭桥架空焊接,完成后用万用表测试一下如有不亮的更换掉。

    然后找一个电脑硬盘的数据线, 截取所需的长度,分别将行,列线引出至电路的相关管脚即可。原理图为了简洁,故只画出了示意图,行列方向只画出了2个三极管,屏幕只画出4个发光管, 实际上发光管为256只,三极管行列方向各16只,一共32只。焊接过程认真仔细一天时间即可完成全部制作。将程序编译后烧写入89c51, 插入40pin Ic座,即可看到屏幕轮流显示:“倚天一出宝刀屠龙”。

  
2楼:sxj1974 2004年12月10日11:48
 更多资料连接!
  
3楼:guest 2004年12月10日22:32
 不错

不错
  
4楼:guest 2004年12月11日10:35
 不错    [em06]
不错    
  
5楼:guest 2004年12月13日12:34
 我做过
有事吗?
  
6楼:lijian613 2004年12月12日11:33
 挺好啊!问问楼主,有没有做过大型的LED
挺好啊!问问楼主,有没有做过大型的LED显示屏?我现在正研究着呢,能不能给提供个方案,多谢了
以下是引用sxj1974在2004-12-10 11:47:38的发言:
我做的中文汉字显示屏,原理+程序
此主题相关图片如下:
按此在新窗口浏览图片
此主题相关图片如下:
按此在新窗口浏览图片
 程序清单:

 ORG  00H

 LOOP: MOV A,#0FFH ;开机初始化,清除画面

 MOV P0,A    ;清除P0口

        ANL P2,#00   ;清除P2口

 MOV R2,#200  

 D100MS: MOV R3,#250 ;延时100毫秒

        DJNZ R3,$

        DJNZ R2,D100MS

        MOV 20H,#00H ;取码指针的初值

 l100:    MOV R1,#100 ;每个字的停留时间

 L16:    MOV R6,#16 ;每个字16个码

        MOV R4,#00H ;扫描指针清零

        MOV R0,20H ;取码指针存入R0

 L3:    MOV A,R4   ;扫描指针存入A

        MOV P1,A   ;扫描输出

        INC R4      ;扫描指针加1,扫描下一个

        MOV A,R0   ; 取码指针存入A

        MOV DPTR,#TABLE ;取数据表的上半部分的代码

        MOVC A,@A+DPTR

        MOV P0,A   ; 输出到P0

        INC R0      ;取码指针加1,取下一个码。

        MOV A,R0

        MOV DPTR,#TABLE ;取数据表下半部份的代码

        MOVC A,@A+DPTR

        MOV P2,A          ;输出到P2口

        INC R0

 MOV R3,#02        ;扫描1毫秒

 DELAY2:  MOV R5,#248    ;

        DJNZ R5,$

        DJNZ R3,DELAY2

        MOV A,#00H     ;清除屏幕

        MOV P0,A

        ANL P2,#00H    

        DJNZ R6,L3       ;一个字16个码是否完成?

        DJNZ R1,L16      ;每个字的停留时间是否到了?

        MOV 20H,R0      ;取码指针存入20H

        CJNE R0,#0FFH,L100 ;8个字256个码是否完成?

        JMP LOOP ;反复循环

      

  TABLE :

 ;汉字“倚”的代码

 db 01H,00H,02H,00H,04H,00H,1FH,0FFH

 db 0E2H,00H,22H,00H,22H,0FCH,26H,88H

 db 2AH,88H,0F2H,88H,2AH,0FAH,26H,01H

 db 63H,0FEH,26H,00H,02H,00H,00H,00H

 ;以下分别输入天,一,出, 宝,刀,屠,龙,的代码,略。

 end

   

  电路中行方向由p0口和p2口完成扫描,由于p0口没有上拉电阻,因此接一个4.7k*8的排阻上拉。 如没有排阻,也可用8个普通的4.7k 1/8w电阻。为提供负载能力,接16个2n5551的NPN三极管驱动。

 列方向则由4—16译码器74LS154完成扫描,它由89C51的P1.0---P1.3控制。同样,驱动部分则是16个2N5401的三极管完成的。

 电路的供电为一片LM7805三端稳压器,耗电电流为100Ma左右。 

 采用一块12*20cm的万能电路板,应当选用质量好些的发光管,(否则有坏点现象, 更换起来较麻烦)首先将256个发光管插入电路板,注意插入方向,同时使高度一致,行方向直接焊接起来, 列方向则搭桥架空焊接,完成后用万用表测试一下如有不亮的更换掉。

     然后找一个电脑硬盘的数据线, 截取所需的长度,分别将行,列线引出至电路的相关管脚即可。原理图为了简洁,故只画出了示意图,行列方向只画出了2个三极管,屏幕只画出4个发光管, 实际上发光管为256只,三极管行列方向各16只,一共32只。焊接过程认真仔细一天时间即可完成全部制作。将程序编译后烧写入89c51, 插入40pin Ic座,即可看到屏幕轮流显示:“倚天一出宝刀屠龙”。

 


  
7楼:sxj1974 2004年12月13日16:43
 呵呵: 多谢各位抬爱, 为了赚点稿费, 这个稿子发表在电子报啦。简单的小东东, 有时间可以玩玩;。

>>>>>>对该主题发表你的看法

本主题贴数7,分页: [第1页]


[上一篇主题]:[求助]请问各位高手,有谁知道MIDIE歌曲是如何编制的?

[下一篇主题]:HDLC技术问题