作业帮 > 综合 > 作业

有00—99的秒表电路吗

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/20 19:23:37
有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              31HLED_BIT_3  EQU              32HLED_BIT_4  EQU              33HLED_BIT_5  EQU              34HLED_BIT_6  EQU              35HLED_BIT_7  EQU              36HLED_BIT_8  EQU              37H                     ;                                        SECOND   EQU     60HMINUTE   EQU         61HHOUR     EQU          62HTCNT       EQU          63H              ORG       00H                                       ;初始化程序 ,设置初始密码              SJMP      START              ORG       0BH              LJMP      INT_T0START:  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      K001S02:       LCALL    DLY_S           JB      M_SET,A01             K001:    INC    r1                                   ;分钟值加1           MOV      A, r1          CJNE      A,#60,J001                                  ;判断是否加到60分           MOV     r1,#0           LJMP      K002S03:       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      A01J000:     JB         p1.0,A01                                                   ;等待按键抬起           LCALL   ds3           SJMP      J000J001:     JB       M_SET,A01           LCALL    ds3           SJMP      J001J002:     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      A1S1:       LCALL    DLY_S                                       ;去抖动           JB       S_SET,A1                  INC    SECOND                                     ;秒值加1           MOV   A, SECOND           CJNE      A,#60,J00                                   ;判断是否加到60秒           MOV      SECOND,#0          LJMP      K01S2:       LCALL    DLY_S           JB      M_SET,A1             K01:    INC     MINUTE                                     ;分钟值加1           MOV      A, MINUTE          CJNE      A,#60,J01                                  ;判断是否加到60分           MOV      MINUTE,#0           LJMP      K02S3:       LCALL    DLY_S           JB        H_SET,A1     K02:    INC      HOUR                                        ;小时值加1           MOV      A,HOUR           CJNE      A,#24,J02                                  ;判断是否加到24小时          MOV   HOUR,#0        MOV   MINUTE,#0           MOV      SECOND,#0           LJMP      A1J00:     JB         S_SET,A1                                                   ;等待按键抬起           LCALL    DISPLAY           SJMP      J00J01:     JB       M_SET,A1           LCALL    DISPLAY           SJMP      J01J02:     JB       H_SET,A1          LCALL    DISPLAY         SJMP      J02 INT_T0: MOV       TH0,#3ch                  ;定时器中断服务程序          MOV      TL0,#3ch                 ;对秒,分钟和小时的计数           INC     TCNT           MOV      A,TCNT           CJNE  A,#20,RETUNE                        ;计时1秒           INC       SECOND           MOV      TCNT,#0           MOV      A,SECOND           CJNE  A,#60,RETUNE           INC    MINUTE           MOV      SECOND,#0           MOV      A,MINUTE           CJNE  A,#60,RETUNE           INC       HOUR           MOV      MINUTE,#0           MOV      A,HOUR          CJNE  A,#24,RETUNE           MOV      HOUR,#0          MOV      MINUTE,#0           MOV      SECOND,#0           MOV      TCNT,#0RETUNE:           RETI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;DIS3闹铃设置子程序 DS3:     MOV      A,r0                       ;显示毫秒           MOV      B,#10          DIV       AB           CLR       P2.6           MOVC    A,@A+DPTR           MOV      P0,A           LCALL    DLY_S          SETB      P2.6           MOV      A,B           CLR       P2.7          MOVC    A,@A+DPTR          MOV      P0,A           LCALL    DLY_S          SETB      P2.7           CLR       P2.5           MOV      P0,#40H                                     ;显示分隔符           LCALL    DLY_S           SETB      P2.5          MOV      A,r1                       ;显示分钟           MOV      B,#10         DIV       AB           CLR       P2.3           MOVC    A,@A+DPTR           MOV      P0,A           LCALL    DLY_S           SETB    P2.3           MOV      A,B           CLR       P2.4           MOVC    A,@A+DPTR          MOV      P0,A           LCALL    DLY_S           SETB      P2.4             CLR       P2.2           MOV      P0,#40H                                    ;显示分隔符           LCALL    DLY_S           SETB      P2.2        MOV      A,r2                                ;显示shi           MOV      B,#10          DIV     AB           CLR       P2.0           MOVC    A,@A+DPTR           MOV      P0,A           LCALL    DLY_S           SETB      P2.0           MOV      A,B           CLR       P2.1        MOVC  A,@A+DPTR          MOV      P0,A           LCALL    DLY_S           SETB      P2.1           RET ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;DIS3DISPLAY:                                                                  ;显示时间控制子程序        MOV      A,SECOND                                ;显示秒           MOV      B,#10          DIV       AB           CLR       P2.6           MOVC    A,@A+DPTR           MOV      P0,A           LCALL    DLY_S          SETB      P2.6           MOV      A,B           CLR       P2.7          MOVC    A,@A+DPTR          MOV      P0,A           LCALL    DLY_S          SETB      P2.7           CLR       P2.5           MOV      P0,#40H                                     ;显示分隔符           LCALL    DLY_S           SETB      P2.5          MOV      A,MINUTE                                ;显示分钟           MOV      B,#10         DIV       AB           CLR       P2.3           MOVC    A,@A+DPTR           MOV      P0,A           LCALL    DLY_S           SETB    P2.3           MOV      A,B           CLR       P2.4           MOVC    A,@A+DPTR          MOV      P0,A           LCALL    DLY_S           SETB      P2.4             CLR       P2.2           MOV      P0,#40H                                    ;显示分隔符           LCALL    DLY_S           SETB      P2.2        MOV      A,HOUR                                    ;显示小时           MOV      B,#10          DIV     AB           CLR       P2.0           MOVC    A,@A+DPTR           MOV      P0,A           LCALL    DLY_S           SETB      P2.0           MOV      A,B           CLR       P2.1        MOVC  A,@A+DPTR          MOV      P0,A           LCALL    DLY_S           SETB      P2.1         &nbs