- Assembly code
ORG 0000H AJMP START ORG 0030H START: MOV P0,#00H LOOP: LCALL DELAY MOV P0,[color=#FF0000]P0+1[/color] 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里面去
应该怎么写呢?如何取内容?谢谢!!!!
------解决方案--------------------
单片机方面的不太会做,帮楼主在网上找了一个例子,楼主可以参考下,比较类似:
- Assembly code
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
------解决方案--------------------
MOV P0, 0xff ;需要置一,说明此刻用作输入口。
MOV A, P0;
;long time has passed away
MOV P0, A;
------解决方案--------------------
mov p0,0ffh
mov A,p0
INC A
mov p0,A