|
|
我用labview编写了一个串口接收程序,可是在和下位机通讯时,发生了framing error during transfer.在串口调试助手的帮助下,下位机能将数据上传到计算机,以十六进制显示,。labview的串口设置和串口调试助手一致,我把下位机的程序和上位机的程序一同穿上,盼解答。
MAIN:MOV TMOD,#21H ;//定时器1工作于模式2,定时器0工作于模式1
MOV SCON,#50H ;//串口工作于模式1,允许串口接收控制
MOV PCON,#80H ;//SMOD=1
MOV TH1,#0FDH
MOV TL1,#0FDH ;//设置波特率为9600bps
SETB TR1 ;//开启T1
MOV TH0,#0F1H ;//T0赋初值,延时4ms
MOV TL0,#0FEH ;//T0赋初值,延时4ms
SETB TR0 ;//开启T0
SETB ET0 ;//允许T0中断
SETB EA ;//开启总中断
AJMP $ ;//等待中断产生
RS232:
MOV R0,#30H ;//缓冲区首地址符给R0
MOV R5,#2 ;//发送数据长度为2
LOOP:
MOV A,@R0 ;//取数据到A
MOV SBUF,A ;//将数据 送到缓存
WAIT:
JBC TI,CONT ;//判断发送中断标志,是1,则清为0,返到CONT
SJMP WAIT
CONT:
INC R0
DJNZ R5,LOOP
RET |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|