单片机直驱16*16点阵
答案:1 悬赏:50
解决时间 2021-11-19 23:19
- 提问者网友:孤山下
- 2021-11-19 00:04
单片机直驱16*16点阵
最佳答案
- 二级知识专家网友:廢物販賣機
- 2021-11-19 00:14
ORG 00H
LOOP:;开机初始化,清除画面
MOV P3,#0 ;清除P3口
MOV P1,#0 ;清除P1口
MOV P2,#0FFH ;清除P2口
MOV P0,#0FFH ;清除P0口
MOV R2,#7fH;扫描初值
MOV R0,#0; 取码指针的初值
MOV DPTR,#TABLE
L16: MOV R6,#16; 每个字16个码
mov R0,#0; 取码指针归0
LBIT:
CJNE R6,#9,jcc;列扫描
jcc:jc p00
mov p0,#0ffh
mov p2,R2
mov a,R2
rr a
mov R2,a
jmp xx
p00:mov p2,#0ffh
mov p0,R2
mov a,R2
rr a
mov R2,a
xx:;行取码
MOV A,R0 ; 取码指针存入A
MOVC A,@A+DPTR ;取数据表的上半部分的代码
MOV P1,A ; 输出到P3
INC R0 ; 取码指针加1,取下一个码。
MOV A,R0
MOVC A,@A+DPTR;取数据表的下半部分的代码
MOV P3,A ; 输出到P1口
INC R0; 取码指针加1
call delay2 ;扫描1毫秒
;清屏
MOV P3,#0 ;清除P3口
MOV P1,#0 ;清除P1口
MOV P2,#0FFH ;清除P2口
MOV P0,#0FFH ;清除P0口
DJNZ R6,LBIT ; 一个字16个码是否完成?
JMP LOOP; 反复循环
delay2: ;扫描1毫秒8
DELAY1MS800US:
MOV R7,#05H
DL0:
MOV R5,#0A4H
DJNZ R5,$
DJNZ R7,DL0
RET
ret
TABLE:
DB 4,32,4,32,68,66,68,65,127,254,132,128,132,128,4,8;
DB 4,8,255,16,4,224,68,88,53,132,4,2,4,15,0,0;"我",0
LOOP:;开机初始化,清除画面
MOV P3,#0 ;清除P3口
MOV P1,#0 ;清除P1口
MOV P2,#0FFH ;清除P2口
MOV P0,#0FFH ;清除P0口
MOV R2,#7fH;扫描初值
MOV R0,#0; 取码指针的初值
MOV DPTR,#TABLE
L16: MOV R6,#16; 每个字16个码
mov R0,#0; 取码指针归0
LBIT:
CJNE R6,#9,jcc;列扫描
jcc:jc p00
mov p0,#0ffh
mov p2,R2
mov a,R2
rr a
mov R2,a
jmp xx
p00:mov p2,#0ffh
mov p0,R2
mov a,R2
rr a
mov R2,a
xx:;行取码
MOV A,R0 ; 取码指针存入A
MOVC A,@A+DPTR ;取数据表的上半部分的代码
MOV P1,A ; 输出到P3
INC R0 ; 取码指针加1,取下一个码。
MOV A,R0
MOVC A,@A+DPTR;取数据表的下半部分的代码
MOV P3,A ; 输出到P1口
INC R0; 取码指针加1
call delay2 ;扫描1毫秒
;清屏
MOV P3,#0 ;清除P3口
MOV P1,#0 ;清除P1口
MOV P2,#0FFH ;清除P2口
MOV P0,#0FFH ;清除P0口
DJNZ R6,LBIT ; 一个字16个码是否完成?
JMP LOOP; 反复循环
delay2: ;扫描1毫秒8
DELAY1MS800US:
MOV R7,#05H
DL0:
MOV R5,#0A4H
DJNZ R5,$
DJNZ R7,DL0
RET
ret
TABLE:
DB 4,32,4,32,68,66,68,65,127,254,132,128,132,128,4,8;
DB 4,8,255,16,4,224,68,88,53,132,4,2,4,15,0,0;"我",0
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯