51单片机 汇编语言电子琴

来源:互联网 发布:windows ad域管理软件 编辑:程序博客网 时间:2024/04/30 18:05

以前写过一个 C 语言的:


http://hi.baidu.com/do_sermon/item/c5e55bc1fc2dc30ec710b2f9


应网友要求,再写个汇编的。另外,还增加了显示按键号码的功能。


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


电路十分简单:


P0 外接一个共阳数码管;

P1 外接八个独立按键;

P3.7 外接扬声器。


汇编语言程序如下:


    ORG   0000H

    SJMP  START

    ORG   000BH

    CPL   P3.7

    MOV   TH0, 30H

    MOV   TL0, 31H

    RETI

START:

    INC   TMOD

    MOV   IE, #82H

M_LOOP:

    CLR   A

    JNB   P1.0, K0

    JNB   P1.1, K1

    JNB   P1.2, K2

    JNB   P1.3, K3

    JNB   P1.4, K4

    JNB   P1.5, K5

    JNB   P1.6, K6

    JNB   P1.7, K7

    SJMP  M_LOOP

K7: INC   A

K6: INC   A

K5: INC   A

K4: INC   A

K3: INC   A

K2: INC   A

K1: INC   A

K0: CLR   TR0

    PUSH  ACC

    ADD   A, #(D - $ - 2)

    MOVC  A, @A + PC

    MOV   P0, A

    POP   ACC

    RL    A

    PUSH  ACC

    ADD   A, #(M - $ - 3)

    MOVC  A, @A + PC

    MOV   30H, A

    MOV   TH0, A

    POP   ACC

    ADD   A, #(M - $ - 2)

    MOVC  A, @A + PC

    MOV   31H, A

    MOV   TL0, A

    SETB  TR0

    SJMP  M_LOOP


M:  DW    64580, 64684, 64777, 64820, 64898, 64968, 65030, 65058

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

END


题目所要求的功能,都实现了。


是不是很简单 ?


1 0
原创粉丝点击