C8051汇编语言递归,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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一本关于 Intel 80C51 以及广大的 51 系列单片机的书 这本书介绍给读者一些 新的技术 使你的 8051 工程和开发过程变得简单 请注意 这本书的目的可不是教你各种 8051 嵌入式系统的解决方法 为使问题讨论更加清晰 在适当的地方给出了程序代码 我们以讨论项目的方法来说 明每章碰到的问题 所有的代码都可在附带的光盘上找到 你必须熟系 C 和 8051汇编 因 为本书不是一本C和汇编的指导书 你可以买到不少关于ANSI C的书 最佳选择当然是Intel 的数据书 可从你的芯片供应商处免费索取 和随编译工具附送的手册 附送光盘中有我为这本书编写和收集的程序 这些程序已经通过测试 这并不意味着 你可以随时把这些程序加到你的应用系统或工程中 有些地方必须首先经过修改才能结合 到你的程序中 这本书将教你充分使用你的工具 如果你只有 8051 的汇编程序 你也可以学习该书和 使用这些例子 但是你必须把 C 语言的程序装入你的汇编程序中 这对懂得 C 语言和 8051 汇编程序指令的人来说并不是一件困难的事 如果你有 C 编译器的话 那恭喜你 使用 C 语言进行开发是一个好的决定 你会发现 使用 C 进行开发将使你的工程开发和维护的时间大大减少 如果你已经拥有 Keil C51 那 你已经选择了一个非常好的开发工具 我发现 Keil 软件包能够提供最好的支持 本书支持 Keil C 的扩展 如果你有其它的开发工具像 Archimedes 和 Avocet 这本书也能很好地为 你服务 但你必须根据你所用的开发工具改变一些 Keil 的特殊指令 在书的一些地方有硬件图 实例程序在这些硬件上运行 这些图绘制地不是很详细 主要是方框图 但足以使读者明白软件和硬件之间的接口。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值