单片机汇编语言编程 方波源程序如下,锯齿波和三角波的源程序怎么编写?

方波源程序ORG0000HAJMPSTARTORG0050HSTART:MOVDPTR,#0FEFFHLP:MOVA,#0FFHMOVX@DPTR,ALCALLDELAY... 方波源程序
ORG 0000H
AJMP START
ORG 0050H
START: MOV DPTR,#0FEFFH
LP: MOV A,#0FFH
MOVX @DPTR,A
LCALL DELAY
MOV A,#00H
MOVX @DPTR,A
LCALL DELAY
SJMP LP
DELAY: MOV R3,#11
D1: NOP
NOP
NOP
NOP
NOP
DJNZ R3,D1
RET
END
展开
 我来答
bleseme
推荐于2017-09-24 · TA获得超过103个赞
知道答主
回答量:58
采纳率:0%
帮助的人:67.2万
展开全部

看你的程序,你的电路图应该是这样的吧(用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)锯齿波和三角波程序的倒数第二句 AJMP LP1和 LJMP UP中的AJMP和LJMP可以换成SJMP吗?他们有什么区别吗?
(2)三角波程序的倒数第二句 LJMP UP可以改为LJMP TRI吗?
(3) DEC A 可以放在MOVX @DPTR,A 前面吗?
要考试了,会给你加分的~
追答
(1)  可以,例如三角波中可把LJMP UP改成SJMP  -12    结果是一样的
区别在于跳转的范围不同。SJMP 在这条指令前128字节到后127字节之间跳转;
把程序存储器分32个区,每个区2K,AJMP跳转时必须与后一条指令的第一个字节在同一个 2KB范围内;
LJMP就没限制了,可在ROM中跳转到任何地方;
建议你能不用SJMP 最好别用(如果你不能准确的记住每条指令的字节数的话),偏移量算错的话,可要出大错了
(2) 可以
(3) 不可以,那样的话波形会有断点(A=0FFH 没有输出),导致三角波上面那个角是平的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式