通过串口调试助手向单片机发送数字
不知道对不对根据网上的改了一部分在send和receive子程序里都有个anlA,SCON这是原来就有的不知道为什么这么做求指导啊org0000Hljmpstartorg...
不知道对不对 根据网上的改了一部分 在send和receive子程序里都有个anl A,SCON 这是原来就有的 不知道为什么这么做 求指导啊
org 0000H
ljmp start
org 0023H
ljmp send
org 0030H
start: mov P0,#0FFH
lcall first
here: sjmp here
first:
mov TMOD,#20H
mov TH1,#0FDH
mov TL1,#0FDH
setb TR1
mov SCON,#50H
setb EA
setb ES
setb ET1
ret
send: mov A,#02H
anl A,SCON
cjne A,#2, receive
clr TI
setb REN
receive: mov A,#01H
anl A,SCON
cjne A,#1,quit
clr RI
mov R4,SBUF
mov R3,SBUF
mov A,R4
subb A,#30H
mov 40h,a
ACALL DIS
addc A,#30H
mov SBUF,R3
clr REN
quit: reti
dis: mov r0,#40h
mov a,#01h
llp0: mov p0,b
setb p2.7
nop
nop
clr p2.7
mov a,@r0
mov dptr,#TAB
movc a,@a+dptr
mov p0,a
setb p2.6
nop
nop
clr p2.6
ret
tab: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
end 展开
org 0000H
ljmp start
org 0023H
ljmp send
org 0030H
start: mov P0,#0FFH
lcall first
here: sjmp here
first:
mov TMOD,#20H
mov TH1,#0FDH
mov TL1,#0FDH
setb TR1
mov SCON,#50H
setb EA
setb ES
setb ET1
ret
send: mov A,#02H
anl A,SCON
cjne A,#2, receive
clr TI
setb REN
receive: mov A,#01H
anl A,SCON
cjne A,#1,quit
clr RI
mov R4,SBUF
mov R3,SBUF
mov A,R4
subb A,#30H
mov 40h,a
ACALL DIS
addc A,#30H
mov SBUF,R3
clr REN
quit: reti
dis: mov r0,#40h
mov a,#01h
llp0: mov p0,b
setb p2.7
nop
nop
clr p2.7
mov a,@r0
mov dptr,#TAB
movc a,@a+dptr
mov p0,a
setb p2.6
nop
nop
clr p2.6
ret
tab: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
end 展开
2个回答
展开全部
串口接线
2-3
3-2
5-5
2-3
3-2
5-5
追问
什么意思 没看懂 能不能详细点
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哪里要这么复杂
更多追问追答
追问
就是因为不怎么会 所以才搞的这么复杂 有简单的汇编程序吗
追答
org 0000H
ljmp start
org 0023H
ljmp uart_int
org 0030H
start: mov P0,#0FFH
lcall first
here: sjmp here
first:
mov TMOD,#20H
mov TH1,#0FDH
mov TL1,#0FDH
setb TR1
mov SCON,#50H
setb EA
setb ES
setb ET1
ret
uart_int:
jb TI,send_end
jb RI,rece_end
reti
send_end:
clr TI
reti
rece_end:
clr RI
mov a,SBUF //收到数据,放到30H中
mov 30h,a
reti //返回主程序,处理收到的数据
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询