资讯详情

HOLTEK单片机-秒表

功能说明:

利用定时器1的定时模式制作一个秒表。

电路说明:

48R50A-1 的端口A,端口C控制4个共阳极七段显示器以显示秒表的s及1/100s。

HT48R50A-1 的复位键SW1作为秒表的开始计时,停止计时和回零按键。

程序:

; ***************************************************; * Filename : 9712a.ASM                            *; * Function : Stop watch                           *; * Microprocessor : HT48R50A-1/28SKDIP-A           *; * Crystal : 4MHz                                  *; ***************************************************#INCLUDE                HT48R50A-1.INCTIMER_START             EQU     55HTIMER_STOP              EQU     66H;----------------------------------------------------DATA    .SECTION        AT 60H  'DATA'WARM_RESET              DB      ?       ;[60H]DELAY_COUNTER           DB      ?       ;[61H]DISPLAY_DATA            DB      ?       ;[62H]DISPLAY_COUNTER         DB      ?       ;[63H]DISPLAY_SHIFT           DB      ?       ;[64H]SECOND                  DB      4 DUP(?);[65H];----------------------------------------------------CODE    .SECTION        AT 00H  'CODE'                ORG     00H                JMP     START                ORG     0CH                JMP     TIMER1                 ORG     20HSTART:                CLR     PAC                CLR     PCC                MOV     A,WARM_RESET                SUB     A,TIMER_START                SZ      ACC                JMP     TIMER_STOP_C                MOV     A,TIMER_STOP                MOV     WARM_RESET,A                JMP     TIMER_START_GOTIMER_STOP_C:                MOV     A,WARM_RESET                SUB     A,TIMER_STOP                SZ      ACC                JMP     TIMER_ONE                CLR     WARM_RESET                JMP     DISPLAYTIMER_ONE:                MOV     A,TIMER_START                MOV     WARM_RESET,A                CALL    CLEAN                JMP     DISPLAYTIMER_START_GO:                MOV     A,09H                MOV     INTC,A                MOV     A,80H                MOV     TMR1C,A                MOV     A,0F0H                MOV     TMR1L,A                MOV     A,0D8H                MOV     TMR1H,A                SET     TMR1C.4                CALL    CLEANTIMER:                MOV     A,OFFSET SECOND                MOV     MP1,A                MOV     A,R1                SUB     A,0AH                SZ      ACC                JMP     DISPLAY                CLR     R1                 INC     MP1                INC     R1                MOV     A,R1                SUB     A,0AH                SZ      ACC                JMP     DISPLAY                CLR     R1                 INC     MP1                INC     R1                MOV     A,R1                SUB     A,0AH                SZ      ACC                JMP     DISPLAY                CLR     R1                 INC     MP1                INC     R1                MOV     A,R1                SUB     A,06H                SZ      ACC                JMP     DISPLAY                CALL    CLEANDISPLAY:                MOV     A,OFFSET SECOND                MOV     MP0,A                MOV     A,0FEH                MOV     DISPLAY_SHIFT,A                MOV     A,04H                MOV     DISPLAY_COUNTER,ADISPLAY_LOOP:                MOV     A,R0                MOV     TBLP,A                TABRDL  DISPLAY_DATA                MOV     A,DISPLAY_DATA                MOV     PA,A                MOV     A,DISPLAY_SHIFT                MOV     PC,A                INC     MP0                RL      DISPLAY_SHIFT                CALL    DELAY                SDZ     DISPLAY_COUNTER                JMP     DISPLAY_LOOP                MOV     A,WARM_RESET                SUB     A,TIMER_STOP                SZ      ACC                JMP     DISPLAY                JMP     TIMER                RET;----------------------------------------------------TIMER1:                INC     SECOND                RETI;----------------------------------------------------CLEAN           PROC                MOV     A,OFFSET SECOND                MOV     MP1,A                MOV     A,04H                MOV     DISPLAY_COUNTER,ACLEAN_LOOP:                CLR     R1                INC     MP1                SDZ     DISPLAY_COUNTER                JMP     CLEAN_LOOP                RETCLEAN           ENDP;----------------------------------------------------DELAY           PROC                MOV     A,0FFH                MOV     DELAY_COUNTER,AWAIT:                SDZ     DELAY_COUNTER                JMP     WAIT                RETDELAY           ENDP;----------------------------------------------------                ORG     0F00H                DC      081H,0CFH,092H,086H     ;0123                DC      0CCH,0A4H,0A0H,08FH     ;4567                DC      080H,084H               ;89;----------------------------------------------------                END 
-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

 锐单商城 - 一站式电子元器件采购平台  

 深圳锐单电子有限公司