51单片机与PC机的串口通讯设计的一个问题
最近要做毕设了,但对这没什么基础,还望大神给些帮助!本题目要求PC通过UART与89s52通讯,控制89s52端的发光二极管的亮灭。并且可以实现单片机与PC机端的文件传输...
最近要做毕设了,但对这没什么基础,还望大神给些帮助!
本题目要求PC通过UART与89s52通讯,控制89s52端的发光二极管的亮灭。 并且可以实现单片机与PC机端的文件传输。传输出错时有语音提示。 1. 89s52通过UART与PC通讯。 2. PC端可以用现成的串口工具,也可以自己编程实现PC端的串口收发。 3. 从PC上发送特定的数可以让89s52控制发光二极管亮灭。 4. 可以实现在89s52和PC间文件的传送。 5. 传输出错时有语音提示。 展开
本题目要求PC通过UART与89s52通讯,控制89s52端的发光二极管的亮灭。 并且可以实现单片机与PC机端的文件传输。传输出错时有语音提示。 1. 89s52通过UART与PC通讯。 2. PC端可以用现成的串口工具,也可以自己编程实现PC端的串口收发。 3. 从PC上发送特定的数可以让89s52控制发光二极管亮灭。 4. 可以实现在89s52和PC间文件的传送。 5. 传输出错时有语音提示。 展开
迪凯特科技(北京)有限公司
2023-07-28
迪凯特科技(北京)有限公司
2023-07-28 广告
2023-07-28 广告
单片机串口通信数据丢失的原因可能如下:1. 按键通过串口发送对应命令,第一次按按键串口发送的指令正确且能把数据正确的显示出来,在第二次按按键串口发送的指令出现丢失的状况,可能是因为串口通信的波特率设置不正确。2. 如果单片机和外部设备的波特...
点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
展开全部
我用法VB编的PC程序 程序如下:
附 录 A
上位机程序代码
Dim data As Integer
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case 37
Text1.Text = "左"
MSComm1.OutBufferCount = 0 '...清空输出寄存器
MSComm1.Output = Hex(1) '...发送数据
Case 39
Text1.Text = "右"
MSComm1.OutBufferCount = 0 '...清空输出寄存器
MSComm1.Output = Hex(2) '...发送数据
Case 38
Text1.Text = "上"
MSComm1.OutBufferCount = 0 '...清空输出寄存器
MSComm1.Output = Hex(3) '...发送数据
Case 40
Text1.Text = "下"
MSComm1.OutBufferCount = 0 '...清空输出寄存器
MSComm1.Output = Hex(4) '...发送数据
End Select
End Sub
Private Sub Form_Load()
MSComm1.CommPort = 3
MSComm1.Settings = "4800,n,8,1"
MSComm1.PortOpen = True
Text1.Enabled = False End Sub
关于单片机接受的程序就不用写了吧,很好编,注意波特率一致就行了
我这个设计是用电脑键盘的方向键控制小车的前后左右运行 你稍微改改就行
附 录 A
上位机程序代码
Dim data As Integer
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case 37
Text1.Text = "左"
MSComm1.OutBufferCount = 0 '...清空输出寄存器
MSComm1.Output = Hex(1) '...发送数据
Case 39
Text1.Text = "右"
MSComm1.OutBufferCount = 0 '...清空输出寄存器
MSComm1.Output = Hex(2) '...发送数据
Case 38
Text1.Text = "上"
MSComm1.OutBufferCount = 0 '...清空输出寄存器
MSComm1.Output = Hex(3) '...发送数据
Case 40
Text1.Text = "下"
MSComm1.OutBufferCount = 0 '...清空输出寄存器
MSComm1.Output = Hex(4) '...发送数据
End Select
End Sub
Private Sub Form_Load()
MSComm1.CommPort = 3
MSComm1.Settings = "4800,n,8,1"
MSComm1.PortOpen = True
Text1.Enabled = False End Sub
关于单片机接受的程序就不用写了吧,很好编,注意波特率一致就行了
我这个设计是用电脑键盘的方向键控制小车的前后左右运行 你稍微改改就行
追问
有用c编程的吗?
追答
仔细看了你的问题 你这个用串口调试助手就可以
这个是51从串口接收数据的程序
#include
static int i;
void main()
{ TMOD=0x20;
TH1=0xFD;
SCON=0x50;
PCON=0x00;
TR1=1;
while(1)
{
while(RI==0)
{
i=SBUF;
P1=i;
RI=0;}
}
发送的话 用一个叫“串口调试助手”的软件,在网上找,这个软件不用写程序,直接写上一个想要发送的数字 然后点“发送”行了
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你网上找个串口助手软件,可以PC跟单片机通讯;
追问
请问你有相关的发送和接受的程序吗
追答
这类程序 你在网上一搜的话会有很多啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询