采用的是查询法,用汇编写得程序,串口调试助手控制发送给P1(LED灯)不知道哪里不对?大侠帮帮忙
一个很简单的用串口调试助手控制LED小灯(P1口),查询法,程序如下,但是弄不出来,帮忙程序看看哪里错了
ORG 0000H
SJMP START
ORG 0030H
START:MOV SP,#60H ;给堆栈指针赋值
MOV P1,#0FBH ;给p1附初值
MOV TMOD.#20H ;设置定时器1工作方式2
MOV TL1,#0FDH
MOV TH1,#0FDH ;给定时器赋值,波特率为9600
SETB TR1 ; ;启动定时器
MOV SCON,#50H ;设置串口工作方式1
MOV PCON,#00H ;波特率不加倍
SETB RI
MAIN:JBC RI,RCV ;若TI为1,则转到RCV,否则跳转MAIN
SJMP MAIN
RCV:MOV A,SBUF ;将接受到的数据读到累加器中
MOV P1,A ;将累加器中的数据送到P1口显示
CALL DELAY ;延时
SJMP MAIN ; 跳转主程序
DELAY:MOV R1,#255
D1:MOV R2,#200
DJNZ R2,$
DJNZ R1,D1
RET
END
我没看出来你这个程序跟我的有什么区别?
追答你试试看吧。
本程序可以正常接收,这是经过试验的。
把你写的这段程序下载进去,也不行啊
追答那就检查通信线路、对方的设置,等等。
这个程序,可以接收,这是试验过的。
按你的程序如果P1接LED灯,能否清楚看到灯的状态?如果程序对的,那怎么检查我的硬件电路?总觉得我硬件电路是没问题的,因为我能用串口调试助手接受P1口的数据。谢谢!
jbc 有清零的意思
本回答被网友采纳