c51用汇编语言产生锯齿波,单片机汇编语言编程方波源程序如下,锯齿波和三角波的源程序怎么编写? 爱问知识人...

本文提供了使用P2.0作为片选信号的锯齿波和三角波源程序。详细介绍了两种波形的实现原理及代码结构,并讨论了不同跳转指令的应用场景与注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看你的程序,你的电路图应该是这样的吧(用P2。0做片选)

锯齿波源程序如下:

ORG 0000H

AJMP START

ORG 0050H

START:    MOV DPTR,#0FEFFH

LP:        MOV A,#00H

LP1:       MOVX @DPTR,A

INC A

AJMP LP1

END

三角波源程序如下:

ORG 0000H

AJMP START

ORG 0050H

START:   MOV DPTR,#0FEFFH

TRI:       MOV A,#00H

UP:       MOVX @DPTR,A

INC A

CJNE A,#0FFH,UP

DOWN:  MOVX @DPTR,A

DEC A

CJNE A,#00H,DOWN

LJMP UP

END

(1) 可以,例如三角波中可把LJMP UP改成SJMP -12 结果是一样的

区别在于跳转的范围不同。

SJMP 在这条指令前128字节到后127字节之间跳转;

把程序存储器分32个区,每个区2K,AJMP跳转时必须与后一条指令的第一个字节在同一个 2KB范围内;

LJMP就没限制了,可在ROM中跳转到任何地方;

建议你能不用SJMP 最好别用(如果你不能准确的记住每条指令的字节数的话),偏移量算错的话,可要出大错了

(2) 可以

(3) 不可以,那样的话波形会有断点(A=0FFH 没有输出),导致三角波上面那个角是平的。

全部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值