时钟,秒表,流水灯的单片机汇编程序 - 深圳led背光源生产厂家,lcd显示屏,lcm液晶显示模块|模组厂-尊龙凯时

  • 尊龙凯时


  • 

    •  深圳市尊龙凯时产品分类列表

      联系我们

      公司名称:深圳市尊龙凯时光电有限公司
      厂址:中国.广东省.深圳市宝安西乡臣田工业区

      营销专线
      吴先生 手机:13538278608
      胡先生 手机:13823360976
      固定电话:86-0755-28246146/
      28246906/28246536/28247229
      电话传真 :86-0755-89715671
      投诉与售后咨询 黄小姐:13823217679
      胡先生 :13928021976

      Email:bly@zgquming.com

      公司网址:https://www.zgquming.com/

      时钟,秒表,流水灯的单片机汇编程序

      时钟,秒表,流水灯的单片机汇编程序

      //HJSMSY-V1.0单片机开发板测试程序

      //———————————————

      // <<电脑钟>>

      //———————————————

      //=======主函数==================================

      ORG 0000H

      LJMP MAIN

      ORG 000BH

      LJMP T00

      // ORG 001BH

      // LJMP T11

      ORG 0030H

      //=======程序初始化=============================

      MAIN:

      MOV TMOD,#11H

      MOV TH0,#3CH

      MOV TL0,#0B0H

      MOV TH1,#0F0H

      MOV TL1,#0B0H

      SETB EA

      SETB ET0

      // SETB ET1

      SETB TR0

      // SETB TR1

      CLR P3.4

      MOV R7,#00H ;秒值

      MOV 30H,#00H ;秒个位值

      MOV 31H,#00H ;秒十位值

      MOV 32H,#00H ;分个位

      MOV 33H,#00H ;分十位

      MOV 34H,#00H ;时个位

      MOV 35H,#00H ;时十位

      MOV 44H,#00H ;秒表毫秒十位

      MOV 45H,#00H ;秒表秒毫秒百位

      MOV 46H,#00H ;秒表秒个位

      MOV 47H,#00H ;秒表秒十位

      MOV 48H,#00H ;秒表分个位

      MOV 49H,#00H ;秒表分十位

      MOV P2,#0F0H ;P2口按键初始化

      MOV 40H,#01H ;数码管休眠值 /流水灯/秒表开关数

      MOV 41H,#08H ;流水灯循环值

      MOV 42H,#00H ;秒表暂停

      // ACALL T11

      //———————————————–

      MAIN1:

      MOV P0,#0FFH

      MOV P1,#0FFH

      MOV R0,40H

      CJNE R0,#01H,ACL1

      ACALL MAIN2 ;时钟显示

      ACL1:CJNE R0,#02H,ACL2

      ACALL MAIN3 ;秒表

      ACL2:CJNE R0,#03H,ACL3

      ACALL LED ;流水灯

      ACL3:ACALL KEY ;按键扫描

      // ACALL BAO ;定时报警

      LJMP MAIN1

      //=======报警子程序============================

      BAO:MOV R4,33H

      CJNE R4,#03H,YY1

      CLR P3.2

      ACALL KEY

      LJMP YY2

      YY1:CJNE R4,#05H,YY2

      SETB P3.2

      ACALL KEY

      YY2:RET

      //======时钟扫描子程序=======================

      MAIN2:

      MOV A,30H

      MOV DPTR,#TAB

      MOVC A,@A+DPTR

      MOV P0,A

      CLR P1.0

      ACALL DELAY

      MOV A,31H

      MOV DPTR,#TAB

      MOVC A,@A+ DPTR

      MOV P0,A

      CLR P1.1

      SETB P1.0

      ACALL DELAY

      MOV A,32H

      MOV DPTR,#TAB

      MOVC A,@A+DPTR

      MOV P0,A

      CLR P1.2

      SETB P1.1

      ACALL DELAY

      MOV A,33H

      MOV DPTR,#TAB

      MOVC A,@A+DPTR

      MOV P0,A

      CLR P1.3

      SETB P1.2

      ACALL DELAY

      MOV A,34H

      MOV DPTR,#TAB

      MOVC A,@A+DPTR

      MOV P0,A

      CLR P1.4

      SETB P1.3

      ACALL DELAY

      MOV A,35H

      MOV DPTR,#TAB

      MOVC A,@A+DPTR

      MOV P0,A

      CLR P1.5

      SETB P1.4

      ACALL DELAY

      MOV P0,#7FH

      MOV P1,#0EBH

      ACALL DELAY

      MOV P1,#0FFH

      RET

      //========秒表扫描子程序=========================

      MAIN3:

      MOV A,44H

      MOV DPTR,#TAB

      MOVC A,@A+DPTR

      MOV P0,A

      CLR P1.0

      ACALL DELAY

      MOV A,45H

      MOV DPTR,#TAB

      MOVC A,@A+ DPTR

      MOV P0,A

      CLR P1.1

      SETB P1.0

      ACALL DELAY

      MOV A,46H

      MOV DPTR,#TAB

      MOVC A,@A+DPTR

      MOV P0,A

      CLR P1.2

      SETB P1.1

      ACALL DELAY

      MOV A,47H

      MOV DPTR,#TAB

      MOVC A,@A+DPTR

      MOV P0,A

      CLR P1.3

      SETB P1.2

      ACALL DELAY

      MOV A,48H

      MOV DPTR,#TAB

      MOVC A,@A+DPTR

      MOV P0,A

      CLR P1.4

      SETB P1.3

      ACALL DELAY

      MOV A,49H

      MOV DPTR,#TAB

      MOVC A,@A+DPTR

      MOV P0,A

      CLR P1.5

      SETB P1.4

      ACALL DELAY

      MOV P0,#7FH

      MOV P1,#0EBH

      ACALL DELAY

      MOV P1,#0FFH

      RET

      //=======定时器T0中断服务========================

      T00:MOV TH0,#0D8H

      MOV TL0,#0F0H

      INC R7

      CJNE R7,#64H,AA

      MOV R7,#00H

      //——-时钟跑值——————————–

      TK1:INC 30H ;每秒钟秒个位增一

      MOV R6,30H

      CJNE R6,#0AH,AA

      MOV 30H,#00H

      TK2:INC 31H

      MOV R6,31H

      CJNE R6,#06H,AA

      MOV 31H,#00H

      TK3:INC 32H

      MOV R6,32H

      CJNE R6,#0AH,AA

      MOV 32H,#00H

      TK4:INC 33H

      MOV R6,33H

      CJNE R6,#06H,AA

      MOV 33H,#00H

      TK5:INC 34H

      MOV R5,34H

      MOV R6,35H

      CJNE R5,#04H,TK6

      CJNE R6,#02H,TK6

      MOV 34H,#00H

      MOV 35H,#00H

      TK6:CJNE R5,#0AH,AA

      MOV 34H,#00H

      INC 35H

      //——-秒表跑值———————-

      AA:

      MOV R5,42H

      CJNE R5,#01H,TK7

      INC 44H

      TK7:MOV R5,44H

      CJNE R5,#0AH,AA1

      MOV 44H,#00H

      INC 45H

      MOV R5,45H

      CJNE R5,#0AH,AA1

      MOV 45H,#00H

      INC 46H

      MOV R5,46H

      CJNE R5,#0AH,AA1

      MOV 46H,#00H

      INC 47H

      MOV R5,47H

      CJNE R5,#06H,AA1

      MOV 47H,#00H

      INC 48H

      MOV R5,48H

      CJNE R5,#0AH,AA1

      MOV 48H,#00H

      INC 49H

      MOV R5,49H

      CJNE R5,#06H,AA1

      MOV 49H,#00H

      AA1:RETI

      //====定时器T1中断服务子程序====================

      //T11:MOV TH1,#0F0H

      // MOV TL1,#0B0H

      // RETI

      //******定时时间调整子程序*************************//

      TBAO:

      MOV 50H,#00H

      MOV 51H,#00H

      MOV 52H,#00H

      MOV 53H,#00H

      MOV 54H,#00H

      MOV 55H,#00H

      MOV R3,50H

      DJNZ 30H,RET1

      RET1: RET

      //======键盘扫描子程序==========================

      KEY:MOV P2,#0F0H

      MOV R3,P2

      CJNE R3,#0F0H,KE0

      LJMP KK13

      KE0:CJNE R3,#0E0H,KE1 ;P2.4行

      MOV P2,#0EFH

      JB P2.3,KK1 //用作调定时时间 ;K13 秒个位增一

      ACALL DELAY1

      ACALL TK1

      KK1:JB P2.2,KK2 ;K14 秒十增一

      ACALL DELAY1

      ACALL TK2

      KK2:JB P2.1,KK3 ;K15 分个位增一

      ACALL DELAY1

      ACALL TK3

      KK3:JB P2.0,KE1 ;K16 分十位增一

      ACALL DELAY1

      ACALL TK4

      KE1:MOV P2,#0DFH ;P2.5行

      JB P2.3,KK4 ;K9 时个位增一

      ACALL DELAY1

      ACALL TK5

      KK4:JB P2.2,KK5 ;K10 时十位增一

      ACALL DELAY1

      INC 35H

      MOV R3,35H

      CJNE R3,#03H,HH0

      MOV 35H,#00H

      LJMP KK5

      HH0:CJNE R3,#02H,HH1

      LJMP KK5

      HH1:CJNE R3,#01H,HH2

      LJMP KK5

      HH2:MOV 35H,#00H

      KK5:JB P2.1,KK6

      ACALL DELAY1 ;K11 开/关蜂鸣器

      CPL P3.2

      KK6:JB P2.0,KE2 ;K12 秒表暂停

      MOV 42H,#00H

      KE2:MOV P2,#0BFH ;P.6行

      JB P2.3,KK7 ;K5 时钟暂停/取消暂停

      ACALL DELAY1

      CPL ET0

      KK7:JB P2.2,KK8 ;K6 显示/休眠/流水灯

      ACALL DELAY2

      INC 40H

      MOV R3,40H

      CJNE R3,#04H,KK8

      MOV 40H,#01H

      KK8:JB P2.1,KK9

      // ACALL DELAY3 ;K7 秒表清0

      MOV 44H,#00H

      MOV 45H,#00H

      MOV 46H,#00H

      MOV 47H,#00H

      MOV 48H,#00H

      MOV 49H,#00H

      KK9:JB P2.0,KE3 ;K8 秒表开始跑

      MOV 42H,#01H

      KE3:MOV P2,#7FH ;P2.7行

      JB P2.3,KK10 ;K1 秒十位减一

      ACALL DELAY1

      MOV R3,31H

      CJNE R3,#00H,JA1

      LJMP KK10

      JA1:DEC 31H

      KK10:JB P2.2,KK11 ;K2 分个位减一

      ACALL DELAY1

      MOV R3,32H

      CJNE R3,#00H,JA2

      LJMP KK11

      JA2: DEC 32H

      KK11:JB P2.1,KK12 ;K3 分十位减一

      ACALL DELAY1

      MOV R3,33H

      CJNE R3,#00H,JA3

      LJMP KK12

      JA3:DEC 33H

      KK12:JB P2.0,KK13 ;K4 时个位减一

      ACALL DELAY1

      MOV R3,34H

      CJNE R3,#00H,JA4

      LJMP KK13

      JA4:DEC 34H

      KK13:RET

      //=====流水灯子程序===========================

      LED: MOV A,#0feH

      MOV 41H,#08H

      MOV P0,#0FFH

      LED1:

      MOV P1,A

      MOV R3,#100

      D0: ACALL DELAY

      DJNZ R3,D0

      MOV R3,41H

      DJNZ R3,AAA

      LJMP BB

      AAA:RL A

      MOV 41H,R3

      ACALL KEY

      LJMP LED1

      BB:

      MOV 41H,#07H

      CC: MOV P1,A

      MOV R3,#30

      D1: ACALL DELAY

      DJNZ R3,D1

      MOV R3,41H

      DJNZ R3,DD

      LJMP LED0

      DD:RR A

      MOV 41H,R3

      ACALL KEY

      LJMP CC

      LED0:RET

      //=====延时子程序==============================

      DELAY:MOV R1,#250

      DEL1:NOP

      NOP

      NOP

      NOP

      DJNZ R1,DEL1

      RET

      //====调用时钟显示作延时========================

      DELAY1:MOV R2,#20

      DELA3: ACALL MAIN2

      DJNZ R2,DELA3

      RET

      //====调用秒表显示作延时========================

      DELAY3:MOV R2,#20

      DELA5:ACALL MAIN3

      DJNZ R2,DELA5

      RET

      //====调用延时子程序作延时======================

      DELAY2:MOV R2,#100

      DELA4:ACALL DELAY

      DJNZ R2,DELA4

      RET

      //======共阳数码管段码表=================================

      TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,87H

      END

      
      首 页 | 公司简介 | 企业荣誉 | 产品中心 | 新闻中心 | 联系我们 | 集团首页

      版权所有 深圳市尊龙凯时光电有限公司     粤ICP备08129267号-1

    • XML地图