汇编如何 取到8051的P0口的内容呢?

overmind 2012-01-11 11:14:44

ORG 0000H
AJMP START
ORG 0030H
START: MOV P0,#00H
LOOP: LCALL DELAY
MOV P0,P0+1
AJMP LOOP

DELAY: MOV R7,#200
DL1: MOV R6,#100
DL2: MOV R5,#10
DJNZ R5,$
DJNZ R6,DL2
DJNZ R7,DL1
RET
END

我想我的问题主要出在这里 我想要把P0的内容取出来加一 再放回到P0里面去
应该怎么写呢?如何取内容?谢谢!!!!
...全文
246 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
陷落成爱 2012-01-13
  • 打赏
  • 举报
回复
mov p0,0ffh
mov A,p0
INC A
mov p0,A
Binzo 2012-01-13
  • 打赏
  • 举报
回复
MOV P0, 0xff ;需要置一,说明此刻用作输入口。
MOV A, P0
INC A
MOV P0, A
Binzo 2012-01-13
  • 打赏
  • 举报
回复
MOV P0, 0xff ;需要置一,说明此刻用作输入口。
MOV A, P0;
;long time has passed away
MOV P0, A;
overmind 2012-01-12
  • 打赏
  • 举报
回复
自己顶起
hili210 2012-01-11
  • 打赏
  • 举报
回复
单片机方面的不太会做,帮楼主在网上找了一个例子,楼主可以参考下,比较类似:



auxr equ 8eh;
main:
mov sp, #60h;
lcall comrest;调用串口初始子程序
start:
mov p0, #0ffh;读取P0口数据之前,应先将P0口置高在读取,保证读数的正确性
mov a, p0;读取数据送到A
lcall com_out;调用串口发送子程序
ljmp start;进入下一个读取、发送周期
comrest:;串口初始化子程序,设晶振频率为11.0592M,波特率为9600
mov scon, #50h;设置数据格式为8位,无奇偶校验
mov tmod, #21h;设置定时器1为8位自动重装
mov th1, #0fdh;定时器1自动重装数,改变它可达到改变串口波特率的目的,这里取
mov tl1, #0fdh;晶振频率为11.0592M,则波特率为9600
anl auxr, #10111111b;
setb tr1;
setb es;
setb ea;
ret
com_out:
clr es;
clr ti;
mov sbuf, a;
com_out1:
jnb ti,com_out1;
clr ti;
steb es;
ret
end

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧