扫描显示光标

  • 格式:wps
  • 大小:24.50 KB
  • 文档页数:3

扫描显示光标
LJMP STARTE
ORG 0BH ;定时中断0地址
LJMP INT_T0 ;跳转中断0程序作设定时闪动用
ORG 30H
STARTE:
MOV 40H,#10 ;熄灭信号
MOV TMOD,#01H ;计数器工作方式1
SETB ET0 ;定时器0溢出中断
MOV TH0,#03CH ;置数
MOV TL0,#0B0H ;置数
SETB ET0 ;定时器0溢出中断
SETB EA
SETB TR0
MOV R0,#31H ;R0作位码指针用
MOV R2,#00H
MOV 21H,#00H
MOV 22H,#00H
MOV R3,#00H
MOV 31H,#1
MOV 32H,#2
MOV 33H,#3
MOV 34H,#4
MOV 35H,#5
MOV 36H,#6
MOV 37H,#7
MOV 38H,#8
;-----------------------------------
MOV R0,#31H ;R0作位码指针用
MOV R2,#00H
AMQ: CALL A TMY ;调用显示
CALL D1MS
CALL ASMT ;显示位加1子程序
CALL CHK1
JMP AMQ
;-----------------------------------
A TMY: ;显示子程序
MOV A,R2
XRL A,R3 ;R3与R2异或,结果存A
JZ KK3 ;ACC=0则跳转KK3
JNZ KK2 ;ACC不=0则跳转KK2
KK3: MOV C,7EH
JC KK4 ;C=1则跳转KK4
JNC KK2 ;C=0则跳转KK2
KK4: MOV 7FH,R0 ;保存R0的值
MOV R0,#40H ;提取熄灭信号
MOV DPTR,#TAB ;
MOV A,@R0 ;将R0所指向的地址中内容送ACC
MOVC A,@A+DPTR
MOV P0,A
MOV R0,7FH ;还原R0的值
JMP KK1
KK2:
MOV DPTR,#TBA;
MOV A,R2 ;将R2中内容送ACC
MOVC A,@A+DPTR
MOV P0,A
MOV DPTR,#TAB ;
MOV A,@R0 ;将R0所指向的地址中内容送ACC
MOVC A,@A+DPTR
MOV P2,A
KK1: RET
;-----------------------------------
ASMT: ;显示位加1子程序
INC R0
INC R2
CJNE R0,#39H,JK1
MOV R0,#31H
MOV R2,#00H
JK1: RET
;------------------------------------
;显示8位程序
A TME: MOV R4,#8
DJ1: CALL A TMY
CALL D1MS
CALL ASMT
DJNZ R4,DJ1
RET
;------------------------------------
CHK1: ;左移设定;P2.4 -->P2.6
JB P1.0,JK2 ;若P2.4为1跳YT1
CALL SDT ;蜂鸣
INC R3
CJNE R3,#4,JK2 ;
MOV R3,#0 ;
JK2:
RET
;------------------------------------
SDT: CLR P3.0 ;报井
MOV R5,#20
W1: CALL A TME
DJNZ R5,W1
SETB P3.0
RET
;------------------------------------
INT_T0:
MOV TH0,#03CH ;置数
MOV TL0,#0B0H ;置数
INC R7
CJNE R7,#3,INTY0
MOV R7,#00H
CPL 7EH ;将可寻地址的位反相
INTY0:
RETI
;**************************************************
CHK_11:
TMESET:
TBA: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH D1MS:
MOV 6AH,#4 ;2MS延时
F2: M OV 6BH,#248
DJNZ 6BH,$
DJNZ 6AH,F2
RET
D1S: MOV 6AH,#100 ;延时1s子程序
DEl1: MOV 6CH,#20
DEl2: MOV 6BH,#0FFH
DEl3: DJNZ 6BH,DEl3
DJNZ 6CH,DEl2
DJNZ 6AH,DEl1
RET
DELAY: ;50ms延时
MOV 6AH,#60
D1: MOV 6BH,#248
DJNZ 6BH,$
DJNZ 6AH,D1
RET
DELAY2: ; 150ms延时
MOV 6AH,#10
D3: MOV 6BH,#50
D2: MOV 6CH,#248
DJNZ 6CH,$
DJNZ 6BH,D2
DJNZ 6AH,D3
RET
DEASMT:
MOV R4,#8
D7: CALL A TMY
CALL D1MS
CALL ASMT
DJNZ R4,D7
END。