可以用串口通讯模式3来收发。这是9位数据的收发模式,第九位可以作为奇偶校验位。
发送如下:
SPOUT:
MOV C,P ;奇偶位送C
MOV TB8,C ;送发送位
MOV SBUF,A ;发送数据
JNB TI,$
CLR TI
RET
接收如下:
SPIN:
JNB RI,$ ;等待接收数据
MOV A,SBUF;接收数据
MOV C,RB8 ;第九位送C
JC SPIN1 ;为1转
ORL C,P ;与奇偶位或运算
JC ERR ;为1(也就是不相等转错误)
SJMP SPOK
SPIN1:
ANL C,P ;与奇偶位与运算
JNC ERR ;为0则错误
SPOK:
RET
ERR:
MOV A,#0FFH
RET
程序启动时,调用下面函数即可,如果是用窗体启动,那就在启动窗体的Form_Load事件中调用CheckApp,如果是用main()过程启动,那么就在main()中调用CheckApp:
Public Sub CheckApp()
Dim iniSize As Long
Dim iniName As String
iniSize = 16384 '事先算好文件大小,此处自行更改
iniName = "工程1" '生成的exe文件名称,此处自行更改
If FileLen(AppPath & "\" & AppEXEName & "exe") <> iniSize Or AppEXEName <> iniName Then
End '退出工程
End If
End Sub
以上就是关于51单片机串口通讯代码和校验怎么弄,最好有现成的程序我参考一下!全部的内容,包括:51单片机串口通讯代码和校验怎么弄,最好有现成的程序我参考一下!、VB程序 ,要做一个自校验(检查程序的完整) , 请问要怎么写、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)