📄 4led.txt
字号:
;***************引脚定义,根据使用不同的管脚而改动*************
;A,B,C,D分别用P1。0至P1。3线
SER EQU P3.0 ;内容发送
SRCLK EQU P3.1 ;串行CP端
RCLK EQU P2.4 ;输出CP端
EN EQU P2.3 ;EN为138使能端.高电平关闭显示;低电平显示
;*********************主程序****************************
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: SETB EN ;关显示端口
MOV SP,#70H ;堆栈首址
MOV DPTR,#TAB ;赋查表初址
MOV R3,#0
MOV R7,#0
MOV R6,#16 ;扫描的行数,共16行,经行程序处理后显示应显示的行
FF: LCALL QQ ;将显示内容移入内存单元
LCALL OUT_595 ;发送串行口子程序
CLR RCLK ;将输出CP变为低电平为上升沿作准备
SETB EN ;将使能端变为高电平为下降沿作准备
MOV P1,R7 ;送P1口
INC R7
SETB RCLK ;输出CP为上升沿,显示一个
CLR EN ;138可显示
DJNZ R6,FF
LJMP MAIN ;如显示完,就重新开始显示内容
;*************************显示内容移入内存单元子程序*************************
QQ: MOV R0,#30H
MOV R4,#4 ;如每幕显示字数
MOV A,R3
QQ1: MOVC A, @A+DPTR
MOV @R0,A
INC R0
MOV A,R3
INC A
MOVC A,@A+DPTR
MOV @R0,A
MOV A,R3
ADD A,#32 ;加32,移到下一个字节的对应位置
MOV R3,A
INC R0
DJNZ R4,QQ1
MOV A,R3
SUBB A,#126 ;每次显示4个字,减126
MOV R3,A
RET
;*****************************发送数据到串口子程序*********************************
OUT_595:MOV R0,#30H
MOV R5,#8 ;一行有8个字节;如每次显示字数不同要作相应改动
DD: CLR C ;清C方便每个字节的移动
MOV R2,#8
MOV A,@R0 ;将显存的字节的单元移入A
CPL A
LCALL DD1 ;调用显示一个字节的子程序
INC R0 ;指向下一个显存的单元
DJNZ R5,DD ;8个字节全部移入了没有,未继续
RET
DD1: CLR SRCLK ;清串行CP端
RLC A ;将每个字节移位
MOV SER,C ;将移入C的位移入信号端
SETB SRCLK ;触发串行CP端
DJNZ R2,DD1 ;每个字节位移8次够了没有?
RET
;***********************************字码表****************************************
TAB:
;-- 文字: 微 --
;-- 仿宋_GB231212; 此字体下对应的点阵为:宽x高=16x16 --
DB 022H,010H,032H,018H,02AH,090H,04AH,0A0H,0AFH,0BEH,030H,064H,02FH,0A4H,060H,024H
DB 0A7H,0A4H,024H,094H,024H,094H,024H,088H,024H,0D4H,028H,0A4H,030H,046H,020H,084H
;-- 文字: 电 --
;-- 仿宋_GB231212; 此字体下对应的点阵为:宽x高=16x16 --
DB 001H,000H,001H,000H,001H,000H,03FH,0F8H,021H,008H,021H,008H,03FH,0F8H,021H,008H
DB 021H,008H,021H,008H,03FH,0F8H,021H,008H,001H,002H,001H,002H,000H,0FEH,000H,000H
;-- 文字: 论 --
;-- 仿宋_GB231212; 此字体下对应的点阵为:宽x高=16x16 --
DB 040H,040H,020H,040H,030H,0A0H,020H,090H,001H,008H,002H,006H,0E5H,004H,021H,010H
DB 021H,038H,021H,0C0H,021H,000H,025H,000H,029H,004H,031H,004H,020H,0FCH,000H,000H
;-- 文字: 坛 --
;-- 仿宋_GB231212; 此字体下对应的点阵为:宽x高=16x16 --
DB 000H,000H,011H,0FCH,010H,000H,010H,000H,010H,000H,0FCH,000H,013H,0FEH,010H,040H
DB 010H,060H,010H,080H,01CH,088H,031H,004H,0C2H,07EH,007H,0C6H,002H,004H,000H,000H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -