2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 秒表的数码管小数点的显示C语言 4位7段数码管秒表 一位小数 用at89c51单片机 汇编语言...

秒表的数码管小数点的显示C语言 4位7段数码管秒表 一位小数 用at89c51单片机 汇编语言...

时间:2024-01-25 13:05:49

相关推荐

秒表的数码管小数点的显示C语言 4位7段数码管秒表 一位小数 用at89c51单片机 汇编语言...

;要求:至少包括4个功能:时间清零;启动计时;暂定计时;继续计时;

; 计时最小单位0.1 秒,最大计时时间999.9秒,

; 用数码管显示时间,同时要求按下任何一个功能键必须有声音提示。

;

;使用方法: 设有启动键K1和暂停/清零键K2。按k1启动计时,按k2则暂停计时,再按k2则清零。

;常数设置

TLOW EQU78H

THIGH EQU0ECH

LED_WEI_Pro EQU 0f0H;数码管位选 保护位

;寄存器设置

COUN_INT EQU 21H ;5ms * 20 = 100ms = 0.1S

COUN_PASSNUM EQU 22H;

COUN_TIME_LEQU 23H ;时间累加 低位 100MS加1

COUN_TIME_HEQU 24H ;时间累加 高位

COUN_WEIEQU 3CH ;显示位

DISP_BUFEQU 50H

;端口配置

LED_WEI EQU P2 ;数码管位选

LED_DAT EQU P0 ;数码管数据

BEEP_PIN EQU P3.7 ;蜂鸣器

KEY_START EQU P3.0 ;启动

KEY_STOP EQU P3.1 ;停止/归零键

;标志位配置

FLAG_TIMING EQU 20H.1 ;20H.1 为计时状态标记

FLAG_GO EQU 20H.2 ;20H.2 为使能标记

BEEP_EN EQU 20H.3 ;蜂鸣器响使能

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

ORG0000H

JMPMAIN

ORG0BH

JMPT0_INT

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

MAIN:

MOVSP,#60H

MOVA,#00H

MOVCOUN_WEI,A

MOVCOUN_PASSNUM,A;

MOVCOUN_TIME_L,A

MOVCOUN_TIME_H,A

CLR C

CLR FLAG_GO

CLR FLAG_TIMING;刚开机为非计时状态

SETB BEEP_EN;开机响一声

CALLINIT_TIMER

SETBTR0

LOOP:

CALL BEEP

K1:

JB KEY_START,K2;启动

NOP

JNB KEY_START,[ DISCUZ_CODE_1 ]nbsp;

SETB BEEP_EN;蜂鸣器响

JBFLAG_GO,LOOP

SETB FLAG_GO

SETB FLAG_TIMING

JMP LOOP

K2:

JB KEY_STOP,LOOP;暂停、归零键

NOP

JNB KEY_STOP,$

SETB BEEP_EN;蜂鸣器响

JB FLAG_TIMING,STOP;计时中按此键则暂停计时,暂停时按此键则归零

RESET_TIME:;归零

CLR FLAG_GO

CLR FLAG_TIMING

MOV COUN_TIME_L,#00H

MOV COUN_TIME_H,#00H

CALL DISP_TRANSDAT

JMP LOOP

STOP:;暂停

CLR FLAG_GO

CLR FLAG_TIMING;暂停计时

JMP LOOP

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

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

;;显示子程序

;;使用寄存器组:第2组寄存器

;;出口:

;;入口:

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

DISPLAY:

PUSH ACC

PUSHPSW

CLRPSW.3 ;RS1、RS0(PSW.4、PSW.3): 1 0

SETBPSW.4

; MOV DISP_BUF,#1H ;test

; MOV DISP_BUF+1,#2H

; MOV DISP_BUF+2,#3H

; MOV DISP_BUF+3,#4H

MOV A,COUN_WEI

CJNE A,#0,CJMP1

JMP DISP_WEI1

CJMP1:

CJNE A,#1,CJMP2

JMP DISP_WEI2

CJMP2:

CJNE A,#2,CJMP3

JMP DISP_WEI3

CJMP3:

CJNE A,#3,CJMP4

JMP DISP_WEI4

CJMP4:

MOV COUN_WEI,#0

DISP_WEI1:

MOV A,LED_WEI;P3

ANL A,#LED_WEI_Pro

ORL A,#01H

; CPL A

MOV LED_WEI,A

JMP DISP_WEI_END

DISP_WEI2:

MOV A,LED_WEI

ANL A,#LED_WEI_Pro

ORL A,#02H

; CPL A

MOV LED_WEI,A

JMP DISP_WEI_END

DISP_WEI3:

MOV A,LED_WEI

ANL A,#LED_WEI_Pro

ORL A,#04H

; CPL A

MOV LED_WEI,A

JMP DISP_WEI_END

DISP_WEI4:

MOV A,LED_WEI

ANL A,#LED_WEI_Pro

ORL A,#08H

; CPL A

MOV LED_WEI,A

DISP_WEI_END:

MOV R0,#DISP_BUF

MOV A,COUN_WEI

ADD A,R0

MOV R0,A

MOV A,@R0

MOV DPTR,#LED_TAB

MOVC A,@A+DPTR

MOV B,A

MOV A,COUN_WEI

CJNE A,#2,DISP_WEI_NODOT;增加小数点

MOV A,B

ANL A,#7FH

MOV B,A

DISP_WEI_NODOT:

MOV A,B

MOV LED_DAT,A

INC COUN_WEI

POP PSW

POP ACC

RET

LED_TAB:;共阳数码管表

DB0C0H ;"0"

DB0F9H ;"1"

DB0A4H ;"2"

DB0B0H ;"3"

DB 99H ;"4"

DB 92H ;"5"

DB 82H ;"6"

DB0F8H ;"7"

DB 80H ;"8"

DB 90H ;"9"

DB 88H ;"A"

DB 83H ;"B"

DB0C6H ;"C"

DB0A1H ;"D"

DB 86H ;"E"

DB 8EH ;"F";15

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

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

DELAY2:

MOVR5,#2H

DELAY:;延时R5×10MS

MOVR6,#50

D1:

MOVR7,#100

DJNZR7,$

DJNZR6,D1

DJNZR5,DELAY

RET

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

DELAY1:;延时5MS

MOVR6,#25

D2:

MOVR7,#100

DJNZR7,$

DJNZR6,D2

RET

BEEP:

JNB BEEP_EN,NOT_BEEP

CLR BEEP_EN

CLR BEEP_PIN ;低电平有效

CALL DELAY1;延时

;NOT_BEEP:

SETB BEEP_PIN

NOT_BEEP:

RET

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

INIT_TIMER:;初始化定时器

MOVTMOD,#01H ;设置定时器0 工作模式为模式1

MOVIE,#82H ;启用定时器0 中断产生

MOVTL0,#TLOW

MOVTH0,#THIGH

RET

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

T0_INT:

PUSHACC

PUSHPSW

MOVTL0,#TLOW

MOVTH0,#THIGH

CALL DISPLAY

JNB FLAG_TIMING,T0_EXIT

CLR C

INC COUN_INT

MOV A,COUN_INT

CJNE A,#20,T0_EXIT

MOV COUN_INT,#0

MOV A,COUN_TIME_L

ADDC A,#1

DA A

MOV COUN_TIME_L,A

JNC TIME_ADD_END

MOV A,COUN_TIME_H

ADDC A,#0

DA A

MOV COUN_TIME_H,A

TIME_ADD_END:

MOV A,COUN_TIME_H

CJNE A,#99H,TIME_ADD_T

MOV A,COUN_TIME_L

CJNE A,#99H,TIME_ADD_T

CLR FLAG_TIMING;达到最大值999,则停止

……………………

…………限于本文篇幅 余下代码请从51黑下载附件…………

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。