有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                                  ;判断是否加到60分

           MOV      MINUTE,#0 

          LJMP      K02

S3:       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      A1

J00:     JB         S_SET,A1                                                   ;等待按键抬起

           LCALL    DISPLAY

           SJMP      J00

J01:     JB       M_SET,A1

           LCALL    DISPLAY

           SJMP      J01

J02:     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,#0

RETUNE:           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

 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;DIS3

DISPLAY:                                                                  ;显示时间控制子程序

        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

温馨提示:内容为网友见解,仅供参考
无其他回答

有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 ...

设计一电子秒表,从00到99计数,不要用单片机
不用单片机,就得用数字电路了。用两片十进制加\/减计数器,74LS168,再用两片译码器,74LS247,用两个共阳数码管,就行了。要求时钟脉冲频率要精确才行。

单片机秒表实验原理
综上所述,单片机秒表实验通过精确控制定时器\/计数器和显示电路的工作,实现了从00-99分钟的计时和显示,并具备开始、停止和复位功能。这一设计不仅展示了单片机在计时应用中的强大功能,也为进一步的实验和项目开发提供了基础。

数码管秒表 00-99计时 求电路图 和程序
include <reg52.h> define uchar unsigned char define uint unsigned int uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};uint a,b,ss,sg,gs,gg;sbit P3_0=P3^0;void delay(uint z){ uint x,y;for (x=z;x>0;x--)for (y=250;y>0;y--);}...

求大神写一下单片机at89c52控制秒表电路循环显示0到99的程序
uchar nums[10]={0xc0,0xf9,0xa4,0xB0,0x99,0x92,0x82,0xf8,0x80,0x98};init();while(1){ if(s2==0 && ispause==0){ if(s2==0){ while(s2==0);ispause=1;pause();} } else if(s3==0 && ispause==1){ if(s3==0){ while(s3==0);ispause=0;pause();} } if(...

用51单片机设计3位led数码显示管作秒表00.0-99.0求设计电路与c语言程 ...
} void main(void)\/\/主程序 { init();\/\/初始状态设定 while(1){ display(a\/2);\/\/显示计数值,以十分之一秒为单位 } } void timer0(void)interrupt 1\/\/中断子程序 { TH0=(655536-50000)\/256;TL0=(655536-50000)%256;a++;if(a==1980)a=0;\/\/1980次是99秒 } ...

数字秒表的设计 秒表是人们日常生活常用的测时仪器,它能够简单地完成计...
1.设计一个数字秒表,要求从00:00秒开始计时,最大计时时间为99:99秒。并且具有启动、暂停和清零(复位)等功能。? 2.画出硬件连接电路图,说明各个控制信号的作用。? 3.画出程序流程图,编写程序,硬件连接调试,直至正确。? 4.编写课程设计报告。 求汇编程序 和 所需器件!!万分感谢了 这...

数字式秒表电路
如图所示,供参考。已仿真

设计一个秒表,数码管 00,01--60,00,每秒走一个数,用verilog语言。_百度...
1. “分分:秒秒”计数器设计 我们要实现“分分:秒秒”显示的电子秒表,需要设计计数频率为1Hz 的 计数器。因为“分分:秒秒”的结构对应有4个十进制数字(个位的秒,十位的 秒,个位的分,十位的分),如果采用统一计数再分别求出“分分:秒秒” 对应 的4个十进制数字进行译码显示,则求解...

设计一个数字秒表
数字秒表电路设计2007年12月18日 星期二 下午 09:16 数字秒表电路设计 一、工作原理 本电路由启动、清零复位电路、多谐振荡电路、分频计数电路、译码显示电路等组成。如下图所示:启动清零复位电路主要由U6A、U6B、U7B、U7D组成,其本质是一个RS触发器和单稳态触发器。J1控制数字秒表的启动和停止,J2...

相似回答