历史上的今天
返回首页

历史上的今天

今天是:2025年01月04日(星期六)

2021年01月04日 | 51单片机汇编语言数字时钟

2021-01-04 来源:51hei

数字时钟proteus+ 51单片机+LCD1602+汇编语言+1602器件资料,适合做单片机课程结课作品

单片机汇编源程序如下:

;/********************************************************************************

;                               LCD1602 时钟显示Cekong time测控何小双

;********************************************************************************/

          RS   EQU  P2.0;    //控制端接口

          R_W  EQU  P2.1

          E    EQU  P2.2

          DB0_DB7  EQU  P0

;***********定义时、分、秒及50ms单元*******

          DI_DA   DATA 20H

          SEC     DATA 21H

          MIN     DATA 22H

          HOUR    DATA 23H

;************程序开始***********************

          ORG  000H

          LJMP MAIN

          ORG  000BH  //定时器TO的中断入口地址

          LJMP CLOCK

          ORG  0030H

MAIN:MOV TMOD,#01H                   //工作方式1.16位定时计数

     MOV TL0,#0B0H                          //设置初值

     MOV TH0,#03CH

     SETB  ET0         //允许T0中断

     SETB  TR0          //启动T0

     MOV DI_DA,#00H

     SETB  EA                //总中断开放

     MOV   SP,#60H     //设置堆栈指针

     LCALL  INITIAL           //初始化

     LCALL  CLS                   //清屏

;*************显示Cekong time**************

     MOV A,#10000000B

     LCALL WRITE_COM

     MOV   DPTR,#LINE0

     LCALL DISP

;***********************************************

     MOV A,#11000000B

     LCALL WRITE_COM

     MOV DPTR,#LINE1

     LCALL DISP

;***********************************************

     MOV A,#11001100B

     LCALL WRITE_COM

     MOV DPTR,#LINE1

     LCALL DISP

;****************计时开始***********************

BEGIN:MOV P1,#7FH

      MOV A,P1

      CJNE A,#7FH,NEXT        //首先对两个规定的操作数进行比较,然后根据比较的结果来决定是否转移--若两个操作数相等,程序按顺序往下执行NEXT;

;      SETB P1.7                           

      ACALL CONV  //计时转换

      ACALL DIS         //显示出时间

      AJMP BEGIN

NEXT: ACALL KEY

      AJMP BEGIN

;****************扫描按键***********************

KEY:  ACALL DEL10MS                 //软件滤波        delay后检测

      JB  P1.4,HOUR_KEY                                 //1.4和1.5硬件设计

MIN_ADJ:CLR C

        MOV A,MIN

        INC A

        DA A

        CJNE A,#60H,X1

        CLR A

X1:     MOV MIN,A

        ACALL DIS

        ACALL DEL200MS

        MOV P1,#7FH

        JNB P1.4,MIN_ADJ

HOUR_KEY:JB P1.5,X2

HOUR_ADJ:CLR C

         MOV A,HOUR

         INC A

         DA A

         CJNE A,#24H,X3

         CLR A

X3:      MOV HOUR,A

         ACALL DIS

         ACALL DEL200MS

X2:      MOV P1,#7FH

         JNB P1.5,HOUR_ADJ

        // SETB P1.7

         RET

;**********************计时转换*************************

CONV:    MOV A,DI_DA

         CJNE A,#14H,DONE

         MOV DI_DA,#00H

         MOV A,SEC

         ADD A,#01H

         DA  A

         MOV SEC,A

         CJNE A,#60H,DONE

         MOV SEC,#00H

         MOV A,MIN

         ADD A,#01H

         DA  A

         MOV MIN,A

         CJNE A,#60H,DONE

         MOV MIN,#00H

         MOV A,HOUR

         ADD A,#01H

         DA  A

         MOV HOUR,A

         CJNE A,#24H,DONE

         MOV HOUR,#00H

DONE:    RET

;******************显示时间****************************

DIS:    MOV A,#11000100B

                //MOV   A,#00111000B 当为这个值是能在lcd显示跳秒,但就是不知道上面的值在protues中怎么就不能正常显示,而实际中能显示

         LCALL WRITE_COM

         MOV   A,HOUR

         SWAP  A ///累加器内高低半字节交换

         ANL   A,#0FH

         ADD   A,#30H

         LCALL WRITE_DATA

         MOV   A,HOUR

         ANL   A,#0FH

         ADD   A,#30H

         LCALL WRITE_DATA

         MOV   A,#3AH

         LCALL WRITE_DATA        

;********************************************

        MOV   A,MIN

         SWAP  A

         ANL   A,#0FH

         ADD   A,#30H

         LCALL WRITE_DATA

         MOV   A,MIN

         ANL   A,#0FH

         ADD   A,#30H

         LCALL WRITE_DATA

         MOV   A,#3AH

         LCALL WRITE_DATA            //分

;******************************************

         MOV   A,SEC

         SWAP  A

         ANL   A,#0FH

         ADD   A,#30H

         LCALL WRITE_DATA

         MOV   A,SEC

         ANL   A,#0FH

         ADD   A,#30H

         LCALL WRITE_DATA

         RET                                   //秒

;*****************50ms定时中断服务子程序***************

CLOCK:   MOV   TL0,#0B0H

         MOV   TH0,#3CH

         INC    DI_DA        //增加1

         RETI

;*****************显示字符串到LCD子程序****************

DISP:     PUSH   ACC

DISP_LOOP:CLR A

          MOVC A,@A+DPTR

          JZ   END_DISP

          LCALL WRITE_DATA

          INC DPTR

          SJMP DISP_LOOP

END_DISP: POP  ACC

          RET

;***************************************************************

;                      LCD1602初始化设定子程序

;***************************************************************

INITIAL:  MOV   A,#00111000B          //显示模式设置

          LCALL WRITE_COM

          MOV   A,#00001100B        //开显示及光标显示

          LCALL WRITE_COM

          MOV   A,#00000110B

          LCALL WRITE_COM

          RET

         

;*****************清除LCD1602子程序**********************

CLS:      MOV     A,#00000001B

          LCALL    WRITE_COM

          RET

;*****************写指令程序*********************************

WRITE_COM:    LCALL   CHECK_BUSY

              CLR     E

              CLR     RS

              CLR     R_W         //        RS与RW低电平

              SETB    E                 //E引脚来脉冲           从而实现写指令

              MOV     DB0_DB7,A

              CLR     E

推荐阅读

史海拾趣

BLACK&DECKER公司的发展小趣事

随着公司的不断发展壮大,BLACK&DECKER开始进军国际市场。1993年,公司在中国成立了第一家工厂,这标志着BLACK&DECKER全球化战略的重要一步。此后,公司通过在全球范围内设立生产基地和销售网络,不断扩大品牌影响力。同时,BLACK&DECKER还通过收购其他知名品牌,如得伟(DeWalt)等,进一步巩固了其在电子行业中的领先地位。

BOT公司的发展小趣事

广西来宾电厂是中国第一个国家正式批准的BOT试点项目。该项目由法国电力国际和通用电气阿尔斯通公司作为项目公司的主要股东,总投资为6.16亿美元。这个电厂的装机规模为72万千瓦,安装了两台36万千瓦的进口燃煤机组。在长达18年的特许经营期内,该项目为广西地区提供了稳定的电力供应,同时也为项目公司带来了可观的投资回报。随着时间的推移,该项目成为了BOT模式在中国成功应用的典范,为后来的类似项目提供了宝贵的经验。

ALSC [Alliance Semiconductor Corporation]公司的发展小趣事

为了保持竞争优势,ALSC始终将技术创新作为核心驱动力。公司投入大量资源用于研发,不断推出具有创新性的半导体产品。其中,一款具有高性能和低延迟的芯片产品赢得了市场的广泛认可,为公司的快速发展奠定了坚实的基础。

Eaton公司的发展小趣事

伊顿公司起源于1911年,由Viggo Torbensen和年轻商人Joseph Eaton共同创建的Torbensen齿轮轴承公司,这是伊顿的前身。Joseph Eaton坚信战略收购是拓展业务的最佳方法,因此在公司的发展过程中,他积极推动了一系列重要的收购活动。随着时间的推移,公司的产品逐渐多元化,从最初的齿轮轴承扩展到更广泛的能源管理领域。到1932年,公司更名为伊顿制造公司,进一步彰显了其向多元化发展的决心。

Avic公司的发展小趣事

随着中国航空工业的快速发展,Avic公司不断加强在航空电子技术领域的研发和创新。公司成功研制出一系列先进的航空电子系统,这些系统不仅提高了飞机的性能和安全性,也为中国航空工业的国际竞争力奠定了坚实基础。Avic公司在航空电子领域的突破,不仅推动了国内航空工业的发展,也为国际航空市场带来了新的选择。

CDI-DIODE公司的发展小趣事

随着环保意识的日益增强,电子行业也开始向绿色生产转型。CDI-DIODE公司积极响应这一趋势,投入大量资源研发环保型二极管产品,并采用环保材料和生产工艺。这种绿色生产方式不仅降低了公司的生产成本,也符合了社会的可持续发展需求,为公司的未来发展奠定了坚实的基础。

这五个故事虽然是虚构的,但它们反映了电子行业中企业可能面临的一些共同挑战和机遇。无论对于CDI-DIODE公司还是其他企业,这些故事都具有一定的借鉴意义。

问答坊 | AI 解惑

求救:如何将SST 89E564RD (40-c-p1 0438064-AC)变成仿真器

买了块廉价的芯片,想自己做仿真器 里面没有启动程序 想自己DIY一个仿真器 麻烦成功的大虾发一个可以用的    1电路图    2软件    3监控程序 4 其他对SST 89E564RD  用的上 [ 本帖最后由 wanzsxit ...…

查看全部问答>

2009年竞赛学生守则].doc

本帖最后由 paulhyde 于 2014-9-15 08:57 编辑 2009年竞赛学生守则].doc  …

查看全部问答>

[51] 郭天祥十天学习51单片机仿真板

大家看一下,怎么样让这个板子上的SOUNDER响啊,用kei软件,C语言编写的程序应该是什么样的,哪位大侠帮我这个刚接触单片机的菜鸟编个程序啊,我怎么弄不响啊?谢谢大家了! QQ:553695150 [ 本帖最后由 tiankai001 于 2010-4-27 10:18 编辑 ]…

查看全部问答>

nrf905通过匹配网络连接50欧姆单端天线问题

现在用nrf905设计开发一个射频智能卡测试平台的无线接口,为增强实验的可靠性,我们在设计了PCB环形差分天线的前提下,通过两个跳线,将芯片的ANT1和ANT2通过匹配网络再连接到SMA天线接口处,以备PCB环形天线不能满足实验要求时,可以经过跳线连接 ...…

查看全部问答>

[求助]求高人帮我看下程序

;-------------------------------------------------------------------------- ;[H1+H2]+[ADR]+[CMD]+[CRC] ;[L1+L2]+[ID]+[TEM_1]+[TEM_2]+[TEM_3]+[TEM_4]+[TEM_5]+[DOOR] ;-------------------------------------------------------------- ...…

查看全部问答>

STM8反汇编

发现用STM8汇编的人很少. 由于一个项目需要用到反汇编. 自己用VC写了一个STM8的反汇编程序. 运行验证没发现有问题. 现共享给大家. 未命名.JPG (227.28 KB) 下载次数:5 2010-7-1 09:45 ...…

查看全部问答>

UCOS的问题请教下。

ARM启动后,设置了PPL时钟工作频率,然后进入main函数执行,在main函数创建启动任务及其他任务,在启动任务里面创建系统滴答时钟定时器。    因为有个模块需要延时100MS复位时间,才能开始工作,初始化时间也要30MS左右。那么我能把这个 ...…

查看全部问答>

我们的发展需要你们的加入

我们寻觅那些卓然不群的开拓者、同样期待那些精益求精的坚守者,而你将成就的是一个远大的梦想、一段激情的旅程。如果不甘寂寞的你渴望今天就开始改变自己、改变世界,请申请加入我们!我们在一览LED英才网上发布招聘信息,期待您的加入。深圳市源 ...…

查看全部问答>

我解C语言面试题系列

声明:本内容来自CSDN博客,原作者ammana_babi。 本系列文章我已整理成WORD文档,在下载中心可以直接下载,下载地址如下: https://download.eeworld.com.cn/detail/tiankai001/12768 【我解C语言面试题系列】001 static有什么用途? 【题目 ...…

查看全部问答>

有符号数的整数乘法演算问题。。。

在网上看到了这样一份有符号整数乘法的演算,请问哪位能解释下。。。。 为什么这里的加法与我们的平时的不一样的,应该怎样理解。。。…

查看全部问答>