• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

LED点阵显示

;****************************************************
;点阵程序
;说明:1    行扫描用两片74LS155.电路接成3――8译码器方式输出16路加16个TIP42C
;      驱动  .A  /B  /C端译码地址输入.D1  D2为片选     顺序接P1.0—P1.4
;       因为是二手货,电路已成形.按照电路板接线得到扫描真值为:
;      09H ,0AH,0BH,0CH,0DH,0EH,0FH,10H    行1―――8
;      11H , 12H,13H ,14H ,15H ,16H,17H,08H    行9―――16
;     2    列扫描用74LS595  16片级连
;      SRCLK---TXD    SER------RXD
*******************************************************************
RCLK  EQU  P3.3 ;锁存时钟接P3.3
ORG 00H
AJMP START
ORG 30H
START:
MOV R5,#17   ;计数器
MOV 40H ,#00H ;偏移量清零
MOV R0,40H
MOV R1,#09H  ;送第一行扫描真值表数据
DSP:
MOV A,#0FFH
MOV P1,A   ;清屏幕
MOV A ,R0
MOV DPTR,#TAB
MOVC A,@A+DPTR  ;取第一列左半边列数据
MOV SBUF ,A
JNB TI,$
CLR TI
CLR P3.3
NOP
NOP
SETB P3.3   ;锁存数据
INC R0
MOV A,R0
MOV DPTR,#TAB
MOVC A,@A+DPTR  ;取第一列右半边列数据
MOV SBUF,A
JNB TI,$
CLR TI
CLR P3.3   ;锁存数据
NOP
NOP
SETB P3.3
MOV P1,R1  ;开显示
ACALL YANSHI
INC R0
INC R1
CJNE R1 ,#18H,DSP;行扫描到15行以后真值表数据要调整,因为数据表不是连续的,请看上面说明
MOV R1,#08H
AJMP DSP  

DJNZ R5,DSP
LJMP START  

YANSHI:
MOV R3,#10
D1: MOV R4,#14
DJNZ R4,$
DJNZ R3,D1
RET
TAB:;-- 文字: 华 --
;-- 宋体12 ;此字体下对应的点阵为: 宽X高=16X16 --
DB 0EFH,0FEH,0CFH,0EEH,0F7H,0C6H,0F3H,0F8H
DB 035H,0FEH,0F6H,0DEH,0F7H,0DEH,0F7H,0C1H
DB0 77H,0FFH,07FH,0FFH, 001H,080H,07FH,0FFH
DB 07FH,0FFH,07FH,0FFH,07FH, 0FFH, 07FH,0FFH

  
以上程序已经能输出一个正确的汉字,可不知道程序错在哪,
1 本来是想在第一位输出一个‘华’.想不到来四个、但是前三位都错了,只有第四位是对的. 这块板本来是8字(32x64)的,下边没接.程序应该怎样改才能正确显示8个字?我的分析问题可能出在595输出锁存上,595输出锁存应该怎样控制?
2 并且闪的特别厉害.12M晶振,89S51. 延时程序已经调整到最小闪动
3 亮度也很暗,列扫描用74LS595,具体用LS系列还是HC或者HD系列那种好?亮度是不是跟这个有关?
4 这块板本来是8字(32x64)的,下边没接.程序应该怎样改才能正确显示8个字?我的分析问题可能出在595输出锁存上,595输出锁存应该怎样控制?
这是小弟学习单片机以来的处女作,虽然没有按照我的意图显示,但是给了很大的鼓舞(要知道这块屏幕已经瞎摆弄半个多月了),毕竟还是点亮了.各位DX.各位老师帮帮忙看看.先谢谢了!!!!!
500) {this.resized=true; this.width=500; this.alt='这是一张缩略图,点击可放大。\n按住CTRL,滚动鼠标滚轮可自由缩放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/45/1158368762.jpg?x-oss-process=image/watermark,g_center,image_YXJ0aWNsZS9wdWJsaWMvd2F0ZXJtYXJrLnBuZz94LW9zcy1wcm9jZXNzPWltYWdlL3Jlc2l6ZSxQXzQwCg,t_20');}" onmousewheel="return imgzoom(this);">
全部回复(3)
正序查看
倒序查看
czhxp
LV.1
2
2006-09-23 08:30
没看程序,看来你的图片,认为:程序没问题,只是程序是按一个字设计的,假如程序是按四个字设计,就不会出现图片中的问题!
0
回复
dip-44
LV.3
3
2006-09-23 08:52
@czhxp
没看程序,看来你的图片,认为:程序没问题,只是程序是按一个字设计的,假如程序是按四个字设计,就不会出现图片中的问题!
顶!
0
回复
2006-11-04 17:29
強烈建議:
  最好用中斷來定義掃描時間,這樣可以把原本用於延時的時間完全利用起來!
0
回复