51 单片机汇编语言:0~100 计数器


;单片机计数器 0~100。

;外部中断控制加减。

;高于100还是100,低于0还是0。


;题目链接:http://zhidao.baidu.com/question/239836388985984564.html


;原题的程序很乱,但是,做而论道还能看出设计思路。


;按照设计思路,程序全面改写如下:


    ORG   0000H

    AJMP  MAIN

    ORG   0003H

    AJMP  TL

    ORG   0013H

    AJMP  TH

    ORG   0050H

MAIN:

    MOV   SP, #5FH

    SETB  EA

    SETB  EX0

    SETB  EX1

    SETB  IT0

    SETB  IT1

    SETB  P1.0      ;LED灯

;-----------------------------------------

    MOV   R1, #30   ;R0初始值设为30

MAIN1:

    CALL  ZKG1

    CALL  CONV0

    CALL  SCAN1

    JMP   MAIN1

;-----------------------------------------

ZKG1:

    JB    P1.4, ZKG2 ;P1.4连接总开关

    CLR   P1.0

    MOV   P0, #255

    SJMP  ZKG1

ZKG2:

    SETB  P1.0      ;LED灯

    RET

;-----------------------------------------

TH: INC   R1

    CJNE  R1, #101, TS1

    MOV   R1, #100

TS1:RETI

;-----------------------------------------

TL: DEC   R1

    CJNE  R1, #255, TX1

    MOV   R1, #0

TX1:RETI

;-----------------------------------------

CONV0:

    MOV   DPTR, #TAB   

    MOV   R0, #33H

    MOV   A, R1

    MOV   B, #100

    DIV   AB    

    MOVC  A, @A + DPTR

    MOV   @R0, A

    INC   R0

    MOV   A, B           ;B为余数

    MOV   B, #10

    DIV   AB

    MOVC  A, @A + DPTR

    MOV   @R0, A

    INC   R0

    MOV   A, B           ;B为余数表示个位数

    MOVC  A, @A + DPTR

    MOV   @R0, A

    RET

;-----------------------------------------

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

;-----------------------------------------

SCAN1:   

    MOV   R0, #33H

    MOV   R5, #04H

    MOV   R4, #3

LOOP4:

    MOV   P0, @R0

    MOV   P2, R5

    MOV   A, R5

    RR    A

    MOV   R5, A

    INC   R0

    DJNZ  R7, $

    DJNZ  R7, $

    ANL   P2, #0

    DJNZ  R4, LOOP4

    RET

;-----------------------------------------

END


;直到最后,提问者才给出电路。


;按此电路,仿真效果如下:


51 单片机汇编语言:0~100 计数器_第1张图片


;图片链接:http://xiangce.baidu.com/picture/detail/785866ba583fa14efc6a220a75f687df4f18d90b


;提问者评价:谢啦,终于搞成功了,看来我距离大神还好远啊



你可能感兴趣的:(51汇编语言)