单片机秒表设计程序代码(单片机秒表汇编程序)

程序设计 1559
今天给各位分享单片机秒表设计程序代码的知识,其中也会对单片机秒表汇编程序进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、用单片机控制6个共阳数码管秒表计时器分秒毫秒c代码怎么写

今天给各位分享单片机秒表设计程序代码的知识,其中也会对单片机秒表汇编程序进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

用单片机控制6个共阳数码管秒表计时器分秒毫秒c代码怎么写

显示部分自己写呀,与硬件关系很大

51单片机程序如下:

uint a=0;

uchar sec=0,min=0;

void main(void)

{ TMOD=0x01;

TH0=(65536-1000)/256;

TL0=(65536-1000)%256;

TR0=1;

ET0=1; EA=1;

while(1){display();}

}

中断程序:void timer0(void) interrupt 1

{

TH0=…… TL0=……

a++;

if(a==1000){sec++;}

if(sec==60){min++;}

}

个位 十位子百位分离方法:

bai=a/100%10;

shi=a/10%10;

ge=a%10;

单片机秒表程序

以下程序使用定时器1计数,定时10ms,60H为妙计数单元,4FH单元为秒标示位,一秒时间到,置位4FH*********************************************************************************************************************** ORG 0000H ;程序从0地址开始

LJMP MAIN ;跳到STRAT处执行

ORG 001BH

LJMP JIA1

ORG 0030H

MAIN:MOV TMOD,#01H ;设置T1工作在模式1

MOV TH1,#068H ;赋初值,定时10ms

MOV TL1,#0F0H

MOV IE,#88H ;开CPU中断,开定时器1中断

SETB TR1 ;启动T1定时器工作

MOV 60H,#100 ;给60H单元赋初值

CLR 4FH ;清零4FH单元

DISPLAY: ;显示子程序

MOV DPTR,#TAB ;DPTR指向编码表位置

MOV A,R3 ;将R3的内容复制到A

MOV B,#10

DIV AB ;A除B,商给A,余数给B

MOVC A,@A+DPTR ;根据A的值取出编码表中的编码

MOV P1,A ;由P1口输出A的内容

SETB P2.0 ;置位P2.0

CLR P2.0 ;清零P2.0

MOV A,B

MOVC A,@A+DPTR ;根据A的值取出编码表中的编码

MOV P1,A ;由P1口输出A的内容

SETB P2.1 ;置位P2.1

CLR P2.1 ;清零P2.1

JNB 4FH,DISPLAY ;判断1秒时间是否到,没有到,则跳转到DIAPLAY处

CLR 4FH ;1秒到,清4FH

LJMP DISPLAY ;调用显示子程序 JIA1:MOV TH1,#068H ;赋初值

MOV TL1,#0F0H

DJNZ 60H,TT ;60H单元自减1,判断是否为0,不为0则跳转到TT处

MOV 60H,#100 ;60H单元为0,则重新给其赋值100

SETB 4FH ;同时置位4FH单元

INC R3 ;R3自加1

CJNE R3,#60,TT ;判断R3是否为60,否则跳转TT处

MOV R3,#0 ;R3为60,则给R3赋0

TT:RETITAB: ;编码表

DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;编码

END ;程序结束

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

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

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

单片机秒表程序代码00到66是什么

单片机秒表程序代码00到66是秒计数。程序开始时显示00。当1s产生时,秒计数加1。秒表显示器计数到59后,自动从00开始。

单片机秒表设计程序代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于单片机秒表汇编程序、单片机秒表设计程序代码的信息别忘了在本站进行查找喔。

扫码二维码