您当前的位置:五五电子网电子知识单片机-工控设备源码-程序时钟,秒表,流水灯的单片机汇编程序 正文
时钟,秒表,流水灯的单片机汇编程序

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

点击数:7746 次   录入时间:03-04 11:59:12   整理:http://www.55dianzi.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 分十位增一

[1] [2]  下一页


本文关键字:单片机  源码-程序单片机-工控设备 - 源码-程序

《时钟,秒表,流水灯的单片机汇编程序》相关文章>>>