历史上的今天
返回首页

历史上的今天

今天是:2024年09月07日(星期六)

2020年09月07日 | 51单片机倒计时秒表/可调整时钟

2020-09-07 来源:51hei

(1)控制功能:
①启动/停止:秒表和时钟选择功能的总开关允许位。没按或偶次按下,关闭时钟和秒表功能选择。单次按下,允许进行秒表和时钟功能选择。
②暂停:秒表或时钟的停止信号。任何时候按下按钮停止秒表倒计时或停止时钟计时和撤销报警信号。
③复位:秒表和时钟复位信号。任何时候按下按钮秒表显示或时钟显示恢复初始状态:00.00.00.0 。
(2)调节功能:
通过6位按钮可以对数码的六位显示进行调整。任何时候都可以分别可以通过HH、HL、MH、ML、SH、SL对时的十位、时的个位、分的十位、分的个位、秒的十位和秒的个位进行调节并设定。
(3)显示功能:
同8个8段数码管进行显示。显示精度为0.01秒;最后一段数码管显示工作状态,“H”代表着是时钟,“E”代表着秒表倒计时。
按时、分、秒显示,采用24h制,如示数为“10.05.22.5H”,时钟显示读数为10时05分22.5秒。示数为“0.05.14.5E”,秒表倒计时显示,读数为5分14.5秒。
(4)秒表/时钟选择功能:
①提供两种模式,秒表倒计时和是时钟计时。
②通过TIME和SECONDS按钮进行选择。

③两种模式初始状态都为00.00.00,倒计时可以使用调节按钮进行设定,时钟功能可以通过调节按钮进行调整时间。
(5)报警功能:
倒计时报警功能,倒计时结束时,报警信号发出,蓝色的LED亮。

单片机源程序如下:

/*-------------------------------------------------------------------------------------------*/

/*-----------按键定义-----------*/

STRT EQU P1.6        ;启动

STP EQU P1.7        ;停止

CLRR EQU P3.0        ;复位

SELTS EQU P3.6         ;时钟

SELTH EQU P3.7        ;秒表


SECL EQU P1.0        ;秒个位

SECH EQU P1.1        ;秒十位

MINL EQU P1.2        ;分

MINH EQU P1.3        ;

HOURL EQU P1.4        ;时

HOURH EQU P1.5        ;

/*-------------------------------------------------------------------------------------------*/

ORG 0000H

SJMP MAIN

ORG 000BH         ;T0定时器入口

AJMP T0INT0        

ORG 001BH         ;T1定时器入口

AJMP T1INT1

ORG 30H

/*-------------------------------------------------------------------------------------------*/

/*-----------初始化函数-----------*/

MAIN:

        MOV SP,#60H

        MOV R4,#10        ;100ms;时钟

        MOV R5,#10         ;100ms;秒表


        MOV TMOD,#11H

        MOV TL0,#(65535-7986)MOD 256;#9EH ;定时中断子程序。重装定时常数

        MOV TH0,#(65535-7986)/256;#58H ;10ms


        MOV TL1,#(65535-7986)MOD 256;#9EH ;定时中断子程序。重装定时常数

        MOV TH1,#(65535-7986)/256;#58H ;10ms

/*-------------------------------------------------------------------------------------------*/

/*-----------调节按键检测-----------*/

KSL:

        LCALL DISP ;秒个调整按键

        JB SECL,KSH          ;没有按下的处理,即SECL为高电平。

        LCALL DISP

        JNB SECL,$-3  ;消除抖动

        AJMP SINCL

KSH: LCALL DISP ;秒10调整按键

        JB SECH,KML

        LCALL DISP

        JNB SECH,$-3

        AJMP SINCH

KML: JB MINL,KMH ;分个调整按键

        LCALL DISP

        JNB MINL,$-3

        AJMP MINCL

KMH: JB MINH,KHL ;分10调整按键

        LCALL DISP

        JNB MINH,$-3

        AJMP MINCH

KHL:

        JB HOURL,KHH ;时个调整按键

        LCALL DISP

        JNB HOURL,$-3

        AJMP HINCL

KHH: JB HOURH,K1 ;时10调整按键

        LCALL DISP

        JNB HOURH,$-3

        AJMP HINCH

/*-------------------------------------------------------------------------------------------*/

/*-----------调节按键处理-----------*/                        

SINCL:                           /*秒的数据处理*/

        INC 20H  ;秒个位的调整 +1

        MOV A,20H

        CJNE A,#10,SINC0L   ;

        MOV 20H,#0        ;满10的处理

SINC0L: AJMP KSL           ;返回KSL按键处理

SINCH:

        INC 21H

        MOV A,21H

        CJNE A,#6,SINC0H   ;60s

        MOV 21H,#0

SINC0H: AJMP KSH

MINCL:                                 /*分的数据处理*/

        INC 22H ;分调整                  

        MOV A,22H

        CJNE A,#10,MINC0L        ;60min

        MOV 22H,#0

MINC0L: AJMP KML

MINCH:

        INC 23H ;分调整

        MOV A,23H

        CJNE A,#6,MINC0H        ;60min

        MOV 23H,#0

MINC0H: AJMP KMH

HINCL:                           /*时的数据处理*/

        MOV A,25H        ;时调整                    

        CJNE A,#2,LH1   ;时的十位不满2时的处理

        INC 24H         ;时 >20h

        MOV A,24H

        CJNE A,#4,HINC0L        ;是否到达24                 

        MOV 24H,#0 ;时到24后,数码管清零

HINC0L: AJMP KHL

LH1:               

        INC 24H ;时<20h

        MOV A,24H

        CJNE A,#10,HINC0L  ;24h

        MOV 24H,#0

HINCH:

        INC 25H ;时调整

        MOV A,25H

        CJNE A,#3,HINC0H  ;24h

        MOV 25H,#0

HINC0H: AJMP KHH

/*-------------------------------------------------------------------------------------------*/  

/*-----------控制按键扫描-----------*/

K1: LCALL DISP ;开始键

        JB STRT,K2 ;

        LCALL DISP

        JNB STRT,$-3

        AJMP START

K2: JB STP,K3 ;暂停键

        LCALL DISP

        JNB STP,STOP   ;消抖处理

K3:

        JB CLRR,K4        ;没有按下,转到K4

        LCALL DISP

        JNB CLRR,CLEAR ;清零键

        AJMP KSL           

K4:

        JB SELTS,K5        ;没有按下,返回数码按键监测

        LCALL DISP

        JNB SELTS,SELTHC ;模式切换

K5:

        JB SELTH,TOKSL        ;没有按下,返回数码按键监测

        LCALL DISP

        JNB SELTH,SELTSC ;模式切换

        AJMP KSL               

TOKSL:

        AJMP KSL

/*-------------------------------------------------------------------------------------------*/

/*-----------控制按键处理-----------*/

START:

        ;打开中断总开关

        CPL EA

        AJMP K1

STOP:

        CLR TR0 ;暂停

        CLR TR1

        SETB P1.6;停止报警

        AJMP K2

CLEAR:

        CLR TR0 ;清零

        CLR TR1

        MOV A,#0

        MOV 20H,A

        MOV 21H,A

        MOV 22H,A

        MOV 23H,A

        MOV 24H,A

        MOV 25H,A


        MOV 26H,A

        MOV 27H,A


        AJMP K3

SELTHC: ;时钟模式选择

        SETB TR0

        SETB ET0

        CLR ET1

        CLR TR1

        AJMP K4

SELTSC:        ;秒表模式选择

        SETB TR1

        SETB ET1

        SETB P3.1;清除报警灯

        CLR ET0

        CLR TR0

        AJMP K5

/*-------------------------------------------------------------------------------------------*/

/*---------T0中断处理---------*/

T0INT0:

        MOV TL0,#(65535-7986)MOD 256;#9EH ;定时中断子程序。重装定时常数

        MOV TH0,#(65535-7986)/256;#58H ;10ms        

        DJNZ R4,T0INTR ;10msX10=0.1S,未满20次,跳出中断子程序


        MOV R4,#10

        MOV 26H,#76H;最后一位指定显示H


        INC 27H  ;1S,秒存储单元内数+1

        MOV A,27H

        CJNE A,#10,T0INTR  ;未满10S,跳出中断,返回显示。;满10s,往下执行清零处理,十位+1                                                

        MOV 27H,#0  ;满60S,秒单元清零


        INC 20H  ;1S,秒存储单元内数+1

        MOV A,20H

        CJNE A,#10,T0INTR  ;未满10S,跳出中断,返回显示。;满10s,往下执行清零处理,十位+1                                                

        MOV 20H,#0  ;满60S,秒单元清零

                    ;秒十位+1

        INC 21H ;秒10位

        MOV A,21H

        CJNE A,#6,T0INTR  ;6

        MOV 21H,#0


        INC 22H  ;分个+1

        MOV A,22H

        CJNE A,#10,T0INTR

        MOV 22H,#0


        INC 23H  ;分十+1

        MOV A,23H

推荐阅读

史海拾趣

Deltron公司的发展小趣事

在竞争激烈的电子市场中,品质是Deltron公司的生命线。公司始终坚持以客户为中心,注重产品质量和服务的提升。通过严格的质量控制体系和完善的售后服务,Deltron赢得了客户的信任和好评。同时,公司还积极参与行业标准的制定和修订工作,推动行业向更高水平发展。

Dearborn Electronics Inc公司的发展小趣事

Dearborn Electronics Inc.注重国际合作与交流,与全球多家知名企业和研究机构建立了紧密的合作关系。通过引进国外先进的技术和管理经验,公司不断提升自身的核心竞争力。同时,公司也积极参与国际市场竞争,拓展海外市场,为未来的发展奠定了坚实的基础。

以上这些故事框架仅供参考,你可以根据这些框架进行深入的调查和研究,撰写出具体、详细的发展故事。

ELEMENT14公司的发展小趣事

ELEMENT14公司最初是一家电子元器件分销商,但随着市场的变化和客户需求的升级,公司决定转型为提供一站式服务的平台。这一转变意味着公司不仅要提供电子元器件,还要提供软件、技术支持、在线社区等全方位的服务。通过不断的投入和努力,ELEMENT14成功转型为一个综合性的电子元器件服务平台,满足了客户多样化的需求。

ELEKTRO-PLAST NASIELSK公司的发展小趣事

进入新世纪后,电子行业发展迅速,对电子元器件的性能要求也越来越高。ELEKTRO-PLAST NASIELSK公司紧跟行业趋势,投入大量资源进行技术创新。公司研发团队成功开发出一种新型塑料材料,不仅具有优异的绝缘性能和耐高温性能,还具有良好的可加工性。这一技术突破使得公司的产品在市场上脱颖而出,赢得了众多客户的青睐。

弘凯光电(BRIGHTEK)公司的发展小趣事

弘凯光电一直致力于技术创新和产品升级。公司拥有一支高效、创新的技术团队,通过对产品技术的深入研究和持续创新,不断推出具有竞争力的新产品。例如,公司的iCLed系列产品,凭借其独特的设计和卓越的性能,在智能座舱设计领域获得了广泛应用。这种对技术创新的不断追求,使得弘凯光电在电子行业中始终保持领先地位。

Curtis Industries公司的发展小趣事

Curtis Industries公司在发展的同时,也积极承担社会责任。公司关注环保问题,采用环保材料和节能技术生产产品,减少对环境的影响。此外,公司还积极参与公益活动,支持教育事业和社会福利事业的发展。这些举措不仅提升了公司的社会形象,也为公司的可持续发展注入了新的动力。

问答坊 | AI 解惑

MSP430 点灯

大家分享 大家分享…

查看全部问答>

LED 照明系统设计指南完全版

本文详细讨论LED 照明系统设计的六个设计步骤: (1)确定照明需求; (2)确定设计目标估计光学; (3)热和电气系统的效率; (4)计算需要的LED 数量; (5)对所有的设计可能都予以考虑,从中选择最佳设计; (6)完成最后步骤。 虽然本文以一个室内 ...…

查看全部问答>

wince下2416(2450)对串口芯片16550的驱动项目-----求助!

各位仁兄:     小弟有项目如下:     基于S3C2416的串口驱动程序,串口芯片16550,     现在有MDD+PDD(中间层)缺少最低层对16550的初始化代码     由于时间关系,现将项目外包     有意 ...…

查看全部问答>

IC企业招高级软件工程师

高级软件工程师 (北京) 职责描述: - 为FPGA和ASIC的调试、验测工作建立软件及必要的环境; - 开发如I2C, SPI, MPEG2/MPEG4 和USB等固件; - 与其它相关部门的工程师合作(如,硬件、ASIC工程师)完成调试及验测工作。 职位需求: - MS相 ...…

查看全部问答>

关于Hook ZwReadFile问题。

NTSTATUS NewNtReadFile( IN HANDLE  FileHandle,     IN HANDLE  Event  OPTIONAL,     IN PIO_APC_ROUTINE  ApcRoutine  OPTIONAL,     IN PVOID &nb ...…

查看全部问答>

f2812的烧写问题,十万火急!!

我把程序烧到flash里面之后,SCI就接收不到东西了,但发送还可以正常运行,请问这是 什么问题? ECAN的中断怎么进不去,那些寄存器怎么配置???我已经搞了好几天,但不知道什么问题,希望EEWORLD的老师帮忙解决一下,我是个新手,在这了,学生 ...…

查看全部问答>

关于MC52i

在用MSP430控制GPRS时,通过什么方式得到它的返回值如OK或者Error?…

查看全部问答>

用Quartus配置管脚中的I/O standard 中怎么选择啊

求助:用Quartus配置管脚时,pin planner中的I/O standard 中怎么选择啊?电压是根据Bank中的硬件输入电压配置,但后面的电平标准,比如TTL,CMOS,PCI等怎么选择啊????根据硬件电路选还是自己选????…

查看全部问答>

收到铁电了,第二批

刚刚收到铁电了 我是第二批…

查看全部问答>

LWIP在LM3S9B96下的问题!跪求答案???急急急

使用UDP multicast进行数据接收,可以工作挺长时间,比如1小时或更长,然后就不能接收。 此时如果拔掉网线,然后再插上网线,则可继续接收; 或者,停止发送程序,然后再发,则收端可以继续接收。 请问是否是阻塞了,如果是,如何查或解决。谢谢 ...…

查看全部问答>