有00—99的秒表电路吗单片机和程序
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/22 02:04:43
有00—99的秒表电路吗单片机和程序
有00—99的秒表电路吗
单片机和程序
有00—99的秒表电路吗单片机和程序
00--99的秒表电路.你是要单片机做的还是要数字电路74LS161做的.
S_SET BIT P1.0 ;数字钟秒控制位
M_SET BIT P1.1 ;分钟控制位
H_SET BIT P1.2 ;小时控制位
LED_BIT_1 EQU 30H ; 存放8位数码管的段码
LED_BIT_2 EQU 31H
LED_BIT_3 EQU 32H
LED_BIT_4 EQU 33H
LED_BIT_5 EQU 34H
LED_BIT_6 EQU 35H
LED_BIT_7 EQU 36H
LED_BIT_8 EQU 37H ;
SECOND EQU 60H
MINUTE EQU 61H
HOUR EQU 62H
TCNT EQU 63H
ORG 00H ;初始化程序 ,设置初始密码
SJMP START
ORG 0BH
LJMP INT_T0
START: mov p3,00h
MOV DPTR,#TABLE
MOV HOUR,#0
MOV MINUTE,#0
MOV SECOND,#0
MOV TCNT,#0
MOV TMOD,#01H
MOV TH0,#03ch ;定时50毫秒
MOV TL0,#03ch
MOV IE,#082H
SETB TR0
MOV LED_BIT_1,#00H ;段码存储区清0
MOV LED_BIT_2,#00H
MOV LED_BIT_3,#00H
MOV LED_BIT_4,#00H
MOV LED_BIT_5,#00H
MOV LED_BIT_6,#00H
MOV LED_BIT_7,#79H
MOV LED_BIT_8,#73H
mov r0,11h
mov r1,11h
mov r2,11h
MOV TMOD,#01H
MOV TH0,#0fdh
MOV TL0,#0fdh
MOV IE,#82H
LJMP A1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
A01: LCALL ds3
JNB S_SET,S01
JNB M_SET,S02
JNB H_SET,S03 ;调用时间显示
JB P1.4, A01
ljmp a1
S01: LCALL DLY_S ;去抖动
JB p1.0,A01
INC r0 ;秒值加1
MOV A, r0
CJNE A,#60,J000 ;判断是否加到60秒
MOV r0,#0
LJMP K001
S02: LCALL DLY_S
JB M_SET,A01
K001: INC r1 ;分钟值加1
MOV A, r1
CJNE A,#60,J001 ;判断是否加到60分
MOV r1,#0
LJMP K002
S03: LCALL DLY_S
JB H_SET,A01
K002: INC r2 ;小时值加1
MOV A,r2
CJNE A,#24,J002 ;判断是否加到24小时
MOV r0,#0
MOV r1,#0
MOV r2,#0
LJMP A01
J000: JB p1.0,A01 ;等待按键抬起
LCALL ds3
SJMP J000
J001: JB M_SET,A01
LCALL ds3
SJMP J001
J002: JB H_SET,A01
LCALL ds3
SJMP J002
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
A1:
LCALL DISPLAY
;调用时间显示
clr p3.0
JNB S_SET,S1
JNB M_SET,S2
JNB H_SET,S3
JNB P1.4 ,a01
mov a,r2
cjne a, HOUR,A1111
mov a ,r1
cjne a, MINUTE,A1111
setb p3.0
A1111: JB P1.3, A1
LCALL A0
LJMP A1
S1: LCALL DLY_S ;去抖动
JB S_SET,A1
INC SECOND ;秒值加1
MOV A, SECOND
CJNE A,#60,J00 ;判断是否加到60秒
MOV SECOND,#0
LJMP K01
S2: LCALL DLY_S
JB M_SET,A1
K01: INC MINUTE ;分钟值加1
MOV A, MINUTE
CJNE A,#60,J01 &nb