导航:首页 > 操作系统 > 单片机与pc串口通信

单片机与pc串口通信

发布时间:2022-09-22 20:21:43

⑴ 51单片机与PC串口通信程序,求指导 ! 具体要求如下:

功能如下:
1、程序烧进去,串口接收显示一个菜单!《如图》A、B、……分别代表一定的功能
例如:A项,代表修改ds1302的时间的数组
2、按照菜单的提示,如:发送A就进入了修改ds1302的时间函数,串口接收界面显
示 A,像图片那种,并显示修改ds1302的操作方法,如从串口发送界面发送
0162115347就表示10年10月16日21时15分34秒星期7,
3、正如第二所说,马上输入1010162115347,就成功的修改了ds1302相关数据,
并返回change success!到串口界面!
4、设置一个功能就是返回主菜单界面。然后又可以就行第二、三步的操作!
5、通过串口,读取单片机里面相关的数据,如时钟的数据
6、说明:可以不要ds1320相关的程序,可以用发光二极管亮来代表修改功能!

⑵ 如何进行单片机与PC机的串口数据读取通信

首先硬件要有MAX232芯片做电平转换 或者直接用pl2303做usb转串口.
软件要有一个串口调试工具.
至于程序就是 (1):设置串口相关寄存器 注意波特率设置
(2):把数据放在sbuf里面
(3):检查是否发送完毕没完等待 发完了就继续放

各种单片机设置方法不一样就给你一个51 的程序你参考一下:

//wx原创 串口调试程序 向pc发送数据 用于调试观察数据
#include<reg52.h>
#include<hdy.h>
sbit k1=p10;
void ckfszf(char zf);
void ckfszfc(char fsgs,char zfc[]);
bit cksnbzw=0;
char fsb[]={"abcdef"};
main()
{
PCON=0x80; //串口设置
TMOD=0x20; // 以T1定时器为波特发生器 波特率:19200
TH1=0xfD;
TL1=0xfD;
TR1=1;
SCON=0X50; //串口设置模式一完毕
while(1)
{
TI=1;
ckfszfc(6,fsb);
ckfszf(' ');
ckfszfc(9,"1234567890");
ckfszf(' ');
ckfszf(' ');
ckfszf(' ');
ckfszfc(12,"AABBCCDDEEFFGG");
ckfszf(' ');
while(1);
}
}
//字符 串口发送函数 由串口向外发送一个字符
//参数1:要发送字符
//返回值:无
//备注: 本函数内部检查上次发送是否结束
// 全局初始化要求:TI=1 保证第一次进入此函数之前TI=1
void ckfszf(char zf)
{
while(TI==0); //等待发送完毕
TI=0;
SBUF=zf;
}
//字符串 串口发送函数 由串口向外发送一个字符串
//参数1:要发送字符串个数 取值:0~255
//参数2:要发送字符串数组名 或字符串本身
//返回值:无
//备注: 本函数内部检查上次发送是否结束
// 全局初始化要求:TI=1 保证第一次进入此函数之前TI=1
void ckfszfc(uchar fsgs,char zfc[])
{
uchar i;
cksnbzw=1;
for(i=0;i<fsgs;i++)
{
ckfszf(zfc[i]);
}
}

纯手打 原创程序 给分!

⑶ 多个下位单片机与上位机pc通过串口通信的实现

如果是一个单片机具有多个串口,那么中断和地址是不同的,通信程序中更改下地址和中断就好了.
如果单片机只有一个串口,那就要更改硬件电路了,串口是1对1的,不支持1对多.
422和485可以支持1对多.
给每一个下位机编写一个不同的地址码,放入一个寄存器中,每次上传给上位机数据的时候,把地址码包含在数据包中,收到有效数据后,就可以根据地址码确认了,相当于身份ID.
如果不想在程序中修改,也可以通过拨码开关,在外部拨到地址位,每次上电后,通过读取拨码开关的值来确定自己的身份ID.
上位机向下位机发送数据的时候,如果是向单个发送的,就在数据包增加要发送下位机的地址码,如果是要向全部发送,就把地址码设为一特殊值,当作广播下发.
这个要在上下位机通讯协议中明确出来.

编程实现51单片机与PC的串口通信,要求波特率设置为9600,循环发送字符串“abc

#include "reg51.h"

void initUart(void)
{
TMOD|=0x20;
SCON=0x50;
TH1=0xfd;
TL1=0xfd;
TR1=1;
}

void main(void)
{
initUart();
EA=1;
while(1)
{
send_byte('abc');

}
}

⑸ 两个单片机之间串口通信,PC如何监听通信数据

PC要监听通信数据,三者必须采用RS485总线,而PC需要安一个RS232转RS485的转换器才行,并且电脑只能处于接收状态,两个单片机用485总线互相通信。电脑端可以用串口调试助手软件就行。

⑹ pc与单片机的串口通信,pc能正确接收单片机的数据,单片机能接收,但不能正确接收pc机的数据,怎么回事

.......
MOV SBUF,#0B0H ; 将16进制数B0发送给pc
JNB TI,$
CLR TI

JNB RI,$ ;等待接收
CLR RI
MOV P1,SBUF ;从pc接收一个16进制数

SJMP $
END

⑺ 单片机与PC怎么 通信

我就我所知道的给你说说。
单片机的逻辑0是0V,逻辑1是+5V;而PC用的是负逻辑,逻辑0在+9v~+15v之间,逻辑1在-9v~-15v之间。若用九针串口连接的话,先得电平转换,(转换芯片就是大家熟知的RS232,转3.3v
的话用RS3232).之后最重要做麻烦的就是要把时序和波特率设置好(说白了就是遵循相同的协议),这样单片机和PC之间就可以互联互通了,单片机中的串口通信讲的就是这方面的内容,这些资料网上很丰富,或者买个单片机开发板研究研究。

⑻ 51单片机与计算机串口通信无法读出数据

答:
1 判断你的硬件有没有问题;方法是 用跳线讲串口的pin2 和pin3短接,用串口调试助手发送数据看调试助手能不 能自己收到,能就说明是单片机程序有问题
2 你检查你的波特率是生成程序是否正确, 中断和主程序用 1楼给你程序,我看了 没问题。
这样就可以实现串口通信了

阅读全文

与单片机与pc串口通信相关的资料

热点内容
浙江标准网络服务器机柜云主机 浏览:585
设置网络的服务器地址 浏览:600
java图形界面设计 浏览:751
纯前端项目怎么部署到服务器 浏览:538
瓜子脸程序员 浏览:505
如何保证服务器优质 浏览:94
小微信aPP怎么一下找不到了 浏览:299
算法纂要学术价值 浏览:975
程序员你好是什么意思 浏览:801
倩女幽魂老服务器如何玩 浏览:561
电子钟单片机课程设计实验报告 浏览:999
看加密频道 浏览:381
程序员算不算流水线工人 浏览:632
三星电视我的app怎么卸载 浏览:44
简述vi编译器的基本操作 浏览:507
让程序员选小号 浏览:91
加强数字货币国际信息编译能力 浏览:584
购买的app会员怎么退安卓手机 浏览:891
程序员的种类及名称 浏览:293
美国程序员薪资 浏览:13