
求高手帮解释下这个汇编程序
为什么这个程序就能产生三角波,且是P2.0为信号输出(要是太复杂这个问题就算了)?要怎么修改输出的频率?这个程序这样算完善吗?要怎么改ORG0000HAJMPSTARTO...
为什么这个程序就能产生三角波,且是P2.0为信号输出(要是太复杂这个问题就算了)?要怎么修改输出的频率?这个程序这样算完善吗?要怎么改
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 展开
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 展开
展开全部
START: MOV DPTR,#0FEFFH
TRI: MOV A,#00H
UP: MOVX @DPTR,A
INC A
CJNE A,#0FFH,UP
这段程序设置片外DAC地址在FEFFH也就是P2.0=0的地方,P2.0又是接你的片外DAC的片选讯号,所以在P2.0=0时候片外DAC有效,之後开始做三角波的输出,上面这段程序是从0递增到FF也就是三角波的正斜率部分从0到最高点,下面这段程序是做负斜率部分,也就是从FF递减到0,也就是从最高点到0点
DOWN: MOVX @DPTR,A
DEC A
CJNE A,#00H,DOWN
LJMP UP
要改变频率,可以在每个INC A或是DEC A之後跟著一段延时的delay子程序
TRI: MOV A,#00H
UP: MOVX @DPTR,A
INC A
CJNE A,#0FFH,UP
这段程序设置片外DAC地址在FEFFH也就是P2.0=0的地方,P2.0又是接你的片外DAC的片选讯号,所以在P2.0=0时候片外DAC有效,之後开始做三角波的输出,上面这段程序是从0递增到FF也就是三角波的正斜率部分从0到最高点,下面这段程序是做负斜率部分,也就是从FF递减到0,也就是从最高点到0点
DOWN: MOVX @DPTR,A
DEC A
CJNE A,#00H,DOWN
LJMP UP
要改变频率,可以在每个INC A或是DEC A之後跟著一段延时的delay子程序
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询