Free考研资料

标题: 电子秒表 [打印本页]

作者: dsm2008    时间: 11-6-16 22:09
标题: 电子秒表
秒表仿真和汇编程序。4 位共阳数码管,显示分和秒。三个按键,一个控制时钟开始,一个控制暂停和继续,一个按键清0 新学会的实现暂停/继续 按键复用功能。

;12M晶振 2010 12 27 调试完成   STRT EQU P3.0
STP EQU P3.1
CLRR EQU P3.2        ;不用清0 键加上可去掉这条
ORG 00H
SJMP MAIN
ORG 0BH
AJMP T0INT
ORG 30H

MAIN: MOV  SP,#60H
MOV R3,#10
MOV R4,#20
MOV TMOD,#01H
MOV TH0,#03CH ;12M晶振时定时初值取
#3CB0H
MOV TL0,#07H  
SETB ET0
SETB EA

k1: LCALL DISP
JB STRT,K2
LCALL DISP
JNB STRT,$-3
AJMP START

k2: LCALL DISP
JB STP,K3  ;不用清0 键,此处K3应改为
K1
LCALL DISP
JNB STP,$-3
AJMP SS

K3: LCALL  DISP  ;如不用清0键 ,可去掉K3这段这种程序
JB CLRR,K1
LCALL DISP
JNB CLRR,$-3
AJMP CLEAR

START: SETB TR0
CLR F0  ;如无此条,暂停后,不是按继续键,而是按开始键继续走时,下次按暂停键时,不能暂停

AJMP K1

SS: CPL F0                 ;
暂停/继续 复用
JNB F0,START

STOP: CLR TR0
AJMP K2        

CLEAR: CLR     TR0  ;如不用清0键 ,可去掉CLEAR这段程序
MOV A,#0
MOV 20H,A
MOV 21H,A
MOV 22H,A
MOV 23H,A
MOV 24H,A
MOV 25H,A
AJMP K3

DISP: MOV A,24H
MOV B,#10
DIV AB
MOV 20H,B  ;余数(秒个位数)

MOV 21H,A  ;商(秒十位数)
MOV A,25H
MOV B,#10
DIV AB
MOV 22H,B  ;
余数(分个位数)
MOV 23H,A  ;商(分十位数)
MOV A,20H  ;秒个位
ACALL SEG7
MOV P1,A
SETB P2.4
ACALL DLY
CLR P2.4
MOV A,21H  ;
秒十位
ACALL SEG7
MOV P1,A
SETB P2.5
ACALL DLY
CLR P2.5
MOV A,22H  ;
分个位
ACALL SEG7
MOV P1,A
CLR P1.7
SETB P2.6
ACALL DLY
CLR P2.6
MOV A,23H  ;
分十位
ACALL SEG7
MOV P1,A
SETB P2.7
ACALL DLY
CLR P2.7
RET

T0INT: MOV TH0,#03CH;#9EH ;定时中断子程序。重装定时常数
MOV TL0,#0B7H;#58H
DJNZ R4,T0INTR ;50msX20=1S
,未满20次,跳出中断子程序
MOV R4,#20
INC 24H
MOV A,24H
CJNE A,#60,T0INTR
MOV 24H,#0
INC 25H
MOV A,25H
CJNE A,#60,T0INTR
MOV 25H,#0
   
T0INTR: RETI

DLY: MOV R7,#10
D1: MOV R6,#50
DJNZ R6,$
DJNZ R7,D1
RET

SEG7: INC A
MOVC A,@A+PC
RET

     DB        0C0H;0
        DB        0F9H;1
        DB        0A4H;2
        DB        0B0H;3
        DB        099H;4
        DB        092H;5
        DB        082H;6
        DB        0F8H;7
        DB        080H;8
        DB        090H;9

END





欢迎光临 Free考研资料 (http://tool.freekaoyan.com/) Powered by Discuz! X3.2