作者: 来源:互联网
延时显示乘法口决程序 (第1部分)
; 每延时1S显示一句口决,中间间隔2S显示
; Date : 2006.3.06 12MHZ晶振
; Create by :逸飞 E-mail: zidh.com@163.com
;**************************************************************
;**************************************************************
; 伪定义
;**************************************************************
DISPBUF EQU 30H;定义显示缓冲区首址,
; 从30H到35H都定义为显示缓冲区
JI_GE EQU 36H
JI_SHI EQU 37H
DENGYU EQU 38H
SHU2 EQU 39H
DIAN EQU 3AH
SHU1 EQU 3BH
;**************************************************************
; 主 程 序
;**************************************************************
ORG 0000H ;程序执行开始地址
LJMP START ;跳到标号START执行
ORG 000BH ;定时器T0中断程序入口
LJMP INTT0 ;跳至INTTO执行
ORG 0040H
START:
MOV R0,#30H ;清30H-3BH共11个内存单元
MOV R1,#0CH ;
CLEARDISP: MOV @R0,#00H ;
INC R0 ;
DJNZ R1,CLEARDISP ;
MOV DIAN,#10
MOV DENGYU,#11
MOV SHU1,#1
MOV SHU2,#1
MOV A,SHU1
MOV B,SHU2
MUL AB
MOV B,#10
DIV AB
MOV JI_SHI,A
MOV JI_GE,B
MOV 30H,36H ;送显示缓冲区
MOV 31H,37H
MOV 32H,38H
MOV 33H,39H
MOV 34H,3AH
MOV 35H,3BH
MOV TMOD,#11H ;设T016位定时器
MOV TL0,#0B0H ;50MS定时初值(T0计时用)
MOV TH0,#3CH ;50MS定时初值
SETB EA ;总中断开放
SETB ET0 ;允许T0中断
SETB TR0 ;开启T0定时器
MOV R4,#14H ;1秒定时用初值(50MS×20)
START1: LCALL DISPLAY ;调用显示子程序
SJMP START1 ;P3.7口为1时跳回START1