汇编语言 调用程序

来源:百度知道 编辑:UC知道 时间:2024/05/20 16:31:31
编程中碰到的问题,说了复杂了没人回答,说简单点吧.
从单片机输入口P3.5输入一个数据(信号),当数据为10的时候,程序转AB0
为15的话转AB2,20的话转AB3.
单片机的型号晶振随便自己用,另外写明就行.总的说就是一个判断以后调用的程序,不过没找到相关方面的程序参考,很郁闷.
曾提过差不多的问题,没人回答........希望编程前辈能帮忙编下或提供大部分相似的程序,分不是问题.
有好的论坛介绍下,我进过好多,可看点击率和回复率都很低.

楼上的回答基本差不多,但是用的是比较不相等则跳转,实际不能用,应该改动一下,
MOV A,p3
CJNE A,#10,L1
LJMP AB0
L1: CJNE A,#15,L2
LJMP AB2
L2: CJNE A,#20,L3
LJMP AB3
L3: RET
......
AB0:
......
AB1:
......
AB2:
......
另外还有一种方法就是利用P3数据,加DPTR地址指针方法也可以实现跳转。
补充:利用逻辑操作也能实现,方法好几种,不过一种应用好了就解决问题了。
在提供你一种方法:利用SUBB指令和XRL都可以
MOV A,P3
SUBB A,#10
JZ AB0
MOV A,P3
SUBB A,#15
JZ AB1
MOV A,P3
SUBB A,#20
JZ AB2
AB0: ;..............
AB1: ;..............
AB2: ;...............

你可以去专业的单片机论坛问,在这里估计能回答你的这个问题的人比较少

如果你能采集这个信号,还有什么问题啊,
不就3个跳转嘛
mov ax,10
cmp ax,p3.5
jz ab0
...
jz ab1
...
jz ab2

?数据p3.5输入数据应该是串行吧

P3.5输入一个数据?P3.5输入的只能是一个0或1信号,串行数据输入口一般应该是P3.0呀(P3.0的第二功能RXD)。如果你的问题是P3输入一个数据,就好理解些了。如是这样,以MCS-51为例,可编程:
MOV A,p3
CJNE A,#10, ab0
CJNE A,#15, ab1
CJNE A,#20, ab2
SJMP ERR