173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

智能秒表单片机

htxw 2023-03-15 资讯中心 18 ℃

单片机秒表功能实现的原理?

利用单 片机内定时器,一次定时50ms,定义4 个变量,分别是时、 分、秒和中断次数,每中断一次中断次数变量加1,累积20次,即是1S,然后秒加1,够60秒后秒清0,分加1,60 分后,分清0,时加1,24小时后 ,小时清0,这些都在中断程序中完成,主程序中不断地显示时间,这就是一个时钟。在此基础上,增加按键控制,可以调整时间,设定闹钟,使功能更加完善。

如何用单片机汇编语言设计一个秒表

设计一个秒表,需要考虑以下因素:

1、因为视觉暂留的因素,一般而言到0.1秒的精度就可以了。

2、需要有按键控制启动、停止、清零这些功能。

KEYVAL EQU 30H

DAT  EQU 33H

SCANLED EQU 39H

CLK  EQU 77H

SEC  EQU 78H

SEC1 EQU 79H

SEC2 EQU 7AH

DOT  BIT 00H

ORG 0000H

LJMP MAIN

ORG 0003H

LJMP EXTINT0

ORG 000BH

LJMP T0ISR ;50ms定时

ORG 001BH

LJMP T1ISR ;扫描显示

ORG 0030H

MAIN:

MOV SP,#5FH

MOV TMOD,#11H

MOV TH0,#03CH

MOV TL0,#0B0H

MOV TH1,#0ECH

MOV TL1,#078H

MOV KEYVAL,#2

MOV 33H,#10H

MOV 34H,#10H

MOV 35H,#10H

MOV 36H,#10H

MOV CLK,#0

SETB IT0

SETB EX0

CLR TR0

CLR ET0

MOV R2,#0

SETB TR1

SETB ET1

SETB EA

LOOP:

MOV A,KEYVAL

LOOP1:

JNZ LOOP2 ;启动

SETB TR0

SETB ET0

SJMP LOOP

LOOP2:

DEC A

JNZ LOOP3 ;暂停

CLR TR0

CLR ET0

SJMP LOOP

LOOP3:

DEC A

JNZ LOOP ;清零

MOV 36H,#0

MOV 35H,#0

MOV 34H,#0

MOV 33H,#0

SJMP LOOP

EXTINT0:

PUSH ACC

INC KEYVAL

MOV A,KEYVAL

CJNE A,#3,EXT00

EXT00:

JC EXT01

MOV KEYVAL,#0

EXT01:

POP ACC

RETI

T0ISR:

PUSH ACC

CLR TR0

MOV TH0,#3CH

MOV TL0,#0B0H

SETB TR0

INC CLK

MOV A,CLK

CJNE A,#2,T0ISRE

MOV CLK,#0

INC 36H

MOV A,36H

CJNE A,#10,T0ISRE

MOV 36H,#0

INC 35H

MOV A,35H

CJNE A,#10,T0ISRE

MOV 35H,#0

INC 34H

MOV A,34H

CJNE A,#6,T0ISRE

MOV 34H,#0

INC 33H

MOV A,33H

CJNE A,#10,T0ISRE

MOV 33H,#0

T0ISRE:

POP ACC

RETI

T1ISR:

PUSH ACC

CLR TR1

MOV TH1,#0ECH

MOV TL1,#78H

SETB TR1

MOV DPTR,#LEDTAB

T100:

MOV R0,#DAT

MOV A,SCANLED

ADD A,R0

MOV R0,A

MOV A,SCANLED

JNZ T101

MOV P2,#01H

SETB DOT

SJMP T1DIS

T101:

DEC A

JNZ T102

MOV P2,#02H

CLR DOT

SJMP T1DIS

T102:

DEC A

JNZ T103

MOV P2,#04H

SETB DOT

SJMP T1DIS

T103:

MOV P2,#08H

CLR DOT

T1DIS:

MOV A,@R0

MOVC A,@A+DPTR

JNB DOT,T1DIS1

ORL A,#01H

T1DIS1:

CPL A

MOV P0,A

INC SCANLED

MOV A,SCANLED

CJNE A,#4,T1END

MOV SCANLED,#0

T1END:

POP ACC

RETI

LEDTAB: DB 0FCH ;"0" 00H

DB 60H ;"1" 01H

DB 0DAH ;"2" 02H

DB 0F2H ;"3" 03H

DB 66H ;"4" 04H

DB 0B6H ;"5" 05H

DB 0BEH ;"6" 06H

DB 0E0H ;"7" 07H

DB 0FEH ;"8" 08H

DB 0F6H ;"9" 09H

DB 0EEH ;"A" 0AH

DB 3EH ;"B" 0BH

DB 9CH ;"C" 0CH

DB 7AH ;"D" 0DH

DB 9EH ;"E" 0EH

DB 8EH ;"F" 0FH

DB 00H ;" " 10H

END

单片机秒表设计

用AT89C51设计一个2位的LED数码显示作为“秒表”,这应该是一个仿真题,可用两位一体的共阴数码管,用定时器T0定时,得到1秒计时。

求用单片机设计一个秒表AT89C51

;汇编程序如下。

;使用T0定时方式1,每隔50ms中断一次,用于修改时间及显示

;使用外部中断0、1,用于控制启动和清零

;========================================================

ORG  0000H

AJMP MAIN

ORG  0003H

AJMP X0_INT

ORG  000BH

AJMP T0_INT

ORG  0013H

AJMP X1_INT

MAIN:

MOV  TMOD,#01H            ;T0定时方式1

MOV  TH0, #(65536-50000) / 256    ;50ms@12MHz

MOV  TL0, #(65536-50000) MOD 256;

SETB TR0

SETB ET0                 ;开启定时中断

SETB EX0

SETB EX1

SETB EA                  ;定时器初始化结束,下面循环显示即可

MOV  R1, #99H            ;0~99计数.

MOV  R7, #1              ;50ms计数.

MOV  P0, #0C0H

MOV  P2, #0C0H

LOOP:

SJMP LOOP

;-----------------------------------------------------------

DELAY:                           ;延时子程序.

AA4:    MOV  R4,  #0

DJNZ R4,  $

DJNZ R4,  $

RET

;-----------------------------------------------------------

X0_INT:                          ;启动/停止

CPL  F0

RETI

;-----------------------------------------------------------

X1_INT:                          ;清零

MOV  R1, #0

MOV  P0, #0C0H

MOV  P2, #0C0H

RETI

;-----------------------------------------------------------

T0_INT:                          ;50ms中断执行一次.

MOV TL0, #(65536-50000) MOD 256;

MOV TH0, #(65536-50000) / 256    ;50ms@12MHz

DJNZ R7, T0_END          ;中断不到20次.

MOV  R7, #20

JNB  F0, T0_END

MOV  A,  R1

ADD  A,  #1

DA   A

MOV  R1, A

ANL  A,  #0FH

MOV  DPTR, #TAB

MOVC A, @A+DPTR          ;查出段码

MOV  P2, A

MOV  A,  R1

SWAP A

ANL  A,  #0FH

MOVC A, @A+DPTR          ;查出段码

MOV  P0, A               ;显示十位数.

T0_END:

RETI

;-----------------------------------------------------------

TAB:

DB   0c0H,0f9H,0a4H,0b0H,99H,92H,82H,0f8H,80H, 90H

END

;===========================================================

;仿真截图如下:

智能秒表单片机的介绍就聊到这里吧,感谢您花时间阅读,谢谢。

本文标签:智能秒表单片机

<