|
这是一个下位机(89c52)的程序,下位机和上位机通过串口通信,当上位机发送字符a,下位机就发送msga中的字符串给上位机,当上位机发送b,下位机就发送msgb给上位机,一次类推.程序还没有正式测试,请大家帮忙挑挑错
;;;;;;;;;;;;;;;;;;;;;;;;;;下位机程序;;;;;;;;;;;;;;;;;;;;;;;;;;;
org 0000h
ajmp main
org 0023h
clr ri
clr es
mov r0,sbuf;接受数据
jnb ri,$
clr ri
pop dph
pop dpl
mov dptr,#sendproc;跳到发送去
push dpl
push dph
reti
main: mov tmod,#20h;采用定时器1,工作方式为方式2做波特率发生器
mov th1,#0e6h;波特率1200,晶振12Mhz
mov tl1,#0e6h
mov scon,#50h;1200,0,8,1
setb tr1
setb ea
setb es
setb ren
back: sjmp $
sendproc: clr ren
cjne r0,#'a',label1;判断上位机发送的字符以便发送相应的字符串
mov dptr,#msga
sjmp label3
label1: cjne r0,#'b',label2
mov dptr,#msgb
sjmp label3
label2: cjne r0,#'c',main
mov dptr,#msgc
label3: mov a,#0
movc a,@a+dptr
cjne a,'*',label4
sjmp main
label4: mov sbuf,a
jnb ti,$
clr ti
inc dptr
sjmp label3
msga: db 'areaID:099!tel:123!pulse:0.45$*';字符串
msgb: db 'areaID:045!tel:455!pulse:0.32$*'
msgc: db 'areaID:088!tel:788!pulse:0.66$*'
end
|
|