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


  • 欧陆娱乐



  • 


  •  深圳市欧陆娱乐产品分类列表

    联系我们

    公司名称:深圳市欧陆娱乐光电有限公司
    厂址:中国.广东省.深圳市宝安西乡臣田工业区

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

    Email:bly@sdgfj.net

    公司网址 :https://www.sdgfj.net/

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

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

    //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地图