pc机与51的数据传输问题
还是分成定长的数据包吧,数据包定义一个字
我做的简单的串口程序 pan: cjne r2,#00h,pan
clr ren
mov r2,#08h
mov r1,#31h
fa: mov a,@r1
mov sbuf,a
inc r1
dec r2
cjne r2,#00h,fa
ljmp other
fj: jb ri,$
s1: clr ri
mov a,sbuf
mov @r1,a
inc r1
dec r2
ret
s2:clr ti
end
结果
不知道怎么回事呢?
你怎么说有问题呢?我刚刚用我的硬件验证了 beep equ p1.2;;;我的硬件板上的蜂鸣器口
feeddog equ p3.4;;;我的硬件板上的看门狗清零口
ORG 0000H
ajmp START
org 0023h
ajmp fj
org 0080h
START:
clr beep
mov tmod,#20h ;串口通讯设置 串口方式1 波特9600 晶振11.0592
;pc方设置:9600/DB8/none/停止位1
mov Tl1,#0fDh
mov th1,#0fDh
mov pcon,#00h
mov sp,#60h
mov scon,#050h
clr et1
setb tr1
setb ea
setb es
other: mov r1,#31h
mov r2,#08h
setb ren
pan: cpl feeddog
cjne r2,#00h,pan
mov r2,#08h
mov r1,#31h
fa: mov a,@r1
mov sbuf,a
inc r1
setb flag
cpl feeddog
jb flag, $
cpl feeddog
djnz r2,fa
ljmp other
fj: push a
push psw
jnb ri,s2
s1: clr ri
mov a,sbuf
mov @r1,a
inc r1
dec r2
s2: jnb ti,s3
clr ti
clr flag
s3: pop psw
pop a
reti
end
justrong,拜托了
还是不通阿
你选择用十六进制方式显示和发送。然后输入
我试过了
那应该是你的晶振电路有问题导致你的上下位
原理图没错不代表电路板没问题啊。
现在能排除的都排除了,估计就是波特率的问题了
是的,程序在我的板子上正确就说明程序没问
justrong,我发现的奇怪问题
我想应该从硬件着手吧,比如用的具体51型
阿?
胡乱试试,?唉!!
咳...所谓胡乱试试就是多用一些方法试啊
ea脚?ea脚要怎样?rst脚我已经弄复位电路了