单片机LED点阵显示程序。

DATAINEQUP0.0;行数据输入位SCLHEQUP0.1;行数据输入时钟,串行输入时钟SCLTEQUP0.2;行锁存时钟,并行输出时钟ABINEQUP0.4;列数据... DATAIN EQU P0.0;行数据输入位
SCLH EQU P0.1;行数据输入时钟,串行输入时钟
SCLT EQU P0.2;行锁存时钟,并行输出时钟
ABIN EQU P0.4;列数据输入位
SCK EQU P0.5;列数据输出时钟,移位时钟
SJKJ EQU 30H;从30H为首地址后的32字节作为16*16点阵屏显示数据的存储
ORG 0500H
XING: DB 00H,80H,00H,80H,01H,40H,01H,40H
DB 02H,20H,7CH,1FH,20H,02H,10H,04H
DB 08H,08H,04H,10H,08H,88H,09H,48H
DB 16H,34H,18H,0CH,20H,02H,00H,00H
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV DPTR,#XING;把XING的数据送入DPTR中
MOV R0,#SJKJ;R0获得首地址
LCALL COPY
MOV R5,#2
LCALL DISPLAYS
SJMP MAIN
COPY: MOV R7,#32;一共有32个数据,要放32次
C1: CLR A;将A清零
MOVC A,@A+DPTR
MOV @R0,A;将累加器中的数据放如R0中的数为地址中作为内容
INC DPTR;数据存入到了DPTR中,要地址前进
INC R0
DJNZ R7,C1
RET
DISPLAY:
MOV P0,#0FFH
MOV R0,#SJKJ
CLR ABIN
MOV R7,#16
D1: CLR SCK
CLR SCLT
MOV B,@R0
INC R0
MOV A,@R0
CPL A
MOV R6,#8
D2: CLR SCLH
RRC A
MOV DATAIN,C
SETB SCLH
DJNZ R6,D2
MOV A,B
CPL A
MOV R6,#8
D3: CLR SCLH
RRC A
MOV DATAIN,C
SETB SCLH
DJNZ R6,D3
INC R0

SETB SCK
SETB SCLT
SETB ABIN
DJNZ R7,D1
MOV R7,#64
DJNZ R7,$
CLR SCK
SETB SCK
RET
DISPLAYS:
DS1: MOV R4,#0XFF
DS2: LCALL DISPLAY
DJNZ R4,DS2
DJNZ R5,DS1
RET
END

我先说明一下啊,这个程序是我自己编写了,是16*16LED点阵显示,他的行是用74HC164控制,列用74HC595控制,现在是什么问题呢!你注意看图中星星的下面有阴影,注意看能看出来,我自己找了找原因,怀疑“D3: CLR SCLH
RRC A
MOV DATAIN,C
SETB SCLH
DJNZ R6,D3
INC R0

SETB SCK
SETB SCLT
SETB ABIN
DJNZ R7,D1
MOV R7,#64
DJNZ R7,$”
这里面的“SETB SCK
SETB SCLT
SETB ABIN”
有关系,我把“SETB SCK
SETB SCLT”
调换位置后阴影在上面显示,可是我就是想不出来怎么不让他显示阴影,各位帮忙看一下。
展开
 我来答
lhj2005118
2010-04-20
知道答主
回答量:39
采纳率:0%
帮助的人:6.9万
展开全部
SETB SCK
SETB SCLT
把两合去掉,改为:ORL DATAIN,#0X24
没有十全十美,只有更好
百度网友ec5a401c0
2010-04-20 · TA获得超过144个赞
知道答主
回答量:142
采纳率:0%
帮助的人:93.7万
展开全部
汇编 啊 这么长的程序我不懂啊 谢谢支持
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式