汇编语言C大调电子琴程序,51单片机 汇编语言电子琴

以前写过一个 C 语言的:

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

电路十分简单:

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

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

是不是很简单 ?

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值