;显示字用查表法,不占内存,用四个16*16共阳LED点阵显示,
;效果:向上滚动显示字,每次四个,重复循环。
;R2:行扫描地址(从00-0FH)。
;R3:滚动显示时控制移动速度,也可控制静止显示的时间。
ORG 0000H
AJMP START
ORG 000BH ;T0
AJMP INTT0
ORG 0030H
;***************初始化程序 ;
START: MOV P2,#7FH ;清LED
MOV 20H,#00H ;清标志,00H为1帧扫描结束标志
CLR P1.6 ;串行寄存器打入输出端控制位
MOV TMOD,#01H ;使用T0作16位定时器,行扫描用。
MOV TH0,#0FCH ;1ms初值(12MHz)
MOV TL0,#18H
MOV SCON,#00H ;串口0方式传送显示字节
MOV IE,#82H ;T0中断允许,总中断允许
MOV SP,#70H
LCALL DIS1 ;显示准备,黑屏,1.5秒
MAIN: MOV DPTR,#TAB
LCALL MOV DISP ;逐排显示,每次四字)
MOV DPTR,#TAB
LCALL MOV DISP1 ;滚动显示,每排四字)
AJMP MAIN
; 四字逐排显示子程序 ;
;每次四字移入移出显示方式,入口时定义好DPTR值
MOV DISP: MOV R1,#6 ;显示6排字,每排四字(R1=排数)
DISLOOP: MOV R3,#100 ;每排显示时间1.6*100=1.6S
DIS MOV : MOV R2,#00H ;第0行开始
SETB TR0 ;开扫描(每次一帧)
WAIT MOV : JBC 00H,DISMOV1 ;标志为1扫描一帧结束(16毫秒为1帧,每行1毫秒)
AJMP WAIT MOV
DIS MOV 1: DJNZ R3,DISMOV ;1帧重复显示(控制显示时间)
MOV A,#128 ;显示字指针移一排(每排4字*32=128)
ADD A,DPL ;
MOV DPL,A
MOV A,#0
ADDC A,DPH
MOV DPH,A
DEC R1 ;R1为0,显示完
MOV A,R1
JZ MOV OUT ;
AJMP DISLOOP ;
MOV OUT: RET ;移动显示结束
;********************;
; 四字滚动显示子程序 ;
;每排四字向上移出显示方式,入口时定义好DPTR值
MOV DISP1: MOV R1,#255 ;向上移动显示6排字,每排四字(R1=排数*16)
DISLOOP1: MOV R3,#10 ;移动速度1.6*10=0.16S
DIS MOV 2: MOV R2,#00H ;第0行开始
[1] [2] [3] [4] 下一页
本文关键字:程序 显示屏 51单片机,单片机-工控设备 - 51单片机