1. RS232和单片机的连接问题
两张图,都是正确的。
两张图,是配套的。
如果你想做一块很正规的板子。
在板子上,安装一个 DB9 的插座。
类似于:台式计算机。即 PC 机。
此时,你就应该选用白色的图(3出2入)。
如果你想做一个很简易的东西。
不用插座。
而是:带有一束连接线。
线的前头,有一个 DB9 的插头。
此时,你就应该选用黄色的图(2出3入)。
如果你想做一套完整的,两张图,都会用到。
别忘了采纳。
2. RS232是什么,怎么与51单片机通信的
所谓的RS-232通信标准,就是对插件样式、信号名称和意义以及所谓的驱动器/接收器的电气模式这种硬件作出规定。一般的都是9针的接口,其中包括CD接口:数据通道接收载波的检测;RD接口:接收数据;SD接口:发送数据;ER接口:数据终端就绪;SG接口:信号用接地;DR接口:数据集就绪;RS接口:请求发送;CS接口:允许发送;CI接口:被呼表示。用以上接口进行数据通信,还有对电平的要求。当然与51单片机进行通信方式很简单,首先要解决的是电平标准,51的I/O口最大输出5V电压,而RS-232要求电压在±10V,为达到电平匹配,需用到MAX232CPF电平转换芯片,将0~5V电平转换为±10V电平,从而实现电平匹配;然后,数据接口只用到了数据发送与接收2个端口,还有数据的请求发送与允许发送,共4个端口,MAX232CPF还有其他一些外围电路接口,但比较简单,都是些电容接口,从而实现单片机与RS232接口的通信。我这儿还有RS232通信接口的相关资料,需要的话我可以给你。
希望我的回答能帮助到你。
3. 单片机串口通讯rs232
上微机可用串口助手或超级终端跟单片机通信,下位机用C语言的SCANF()这个函数来接受数据就可以,设置好波特率就可以工作了!
示例代码如下:
#include <REG52.H> /* special function register declarations */
/* for the intended 8051 derivative */
#include <stdio.h> /* prototype declarations for I/O functions */
#ifdef MONITOR51 /* Debugging with Monitor-51 needs */
char code reserve [3] _at_ 0x23; /* space for serial interrupt if */
#endif /* Stop Exection with Serial Intr. */
/* is enabled */
/*------------------------------------------------
The main C function. Program execution starts
here after stack initialization.
------------------------------------------------*/
void main (void) {
int x,y,z;
#ifndef MONITOR51
SCON = 0x50; /* SCON: mode 1, 8-bit UART, enable rcvr */
TMOD |= 0x20; /* TMOD: timer 1, mode 2, 8-bit reload */
TH1 = 221; /* TH1: reload value for 1200 baud @ 16MHz */
TR1 = 1; /* TR1: timer 1 run */
TI = 1; /* TI: set TI to send first char of UART */
#endif
while(1){
printf("\nplease input x,y data \n");
scanf("%d,%d",&x,&y);
printf("\n x y x<y x>y x==y");
printf("\n%5d%5d",x,y);
z=x<y;printf("%5d",z);
z=x>y;printf("%5d",z);
z=x==y;printf("%5d",z);
}
}
4. 单片机和pc机通过rs232进行串口通信
这个简单,俺就送你一个串口发送反馈的程序吧
利用电脑上的串口助手,向单片机发送数据,单片机原封不动的再反馈回来
若满意,请记得采纳,谢谢
/***************************************************************************/
//串口波特率 9600 ,单片机晶振 11.0592
#include <REG52.h> //通用89C52头文件
char aa,fe=0;
/***************************************************************************/
void MScomm(void)//串口初始化
{
TMOD=0x20; //定时器1工作方式2,8位,,定时器0工作方式1,16位
PCON=0x00; //SMOD=0,不加倍
SCON=0x50; //串口工作方式1,允许接收
IE=0x92; //启用串口中断与定时器0中断,并开启总中断
TH1=0xfd; //定时器1设置初值,波特率9600bit/s,
TL1=0xff; //晶振频率 11.0592
TR1=1; //启动定时器T1
}
/***************************************************************************/
void main(void)//主函数
{
MScomm(); //串口初始化
while(1) //主循环
{
if(fe==1) //如果接收过数据
{
SBUF=aa; //把接收到的字符发送出去
while(!TI);//等待发送完成
TI=0; //清空发送标志位
fe=0; //设置标识符
}
}
}
/***************************************************************************/
void ser() interrupt 4//串口接收,中断方式
{
if(fe==0) //如果没接收过数据
{
aa=SBUF; //接收一个字符
while(!RI); //等待接收完成
RI=0; //清空接收标志位
fe=1; //设置标识符
}
}
/***************************************************************************/
5. 单片机rs232通讯怎么用
方法有二:【1】弄个有串口的单片机,例如C8051F300,还有一片MAX232。一头连接PC机,一头连接单片机。单片机的GPIO连接x1和x2,例如P1.0 & P1.1,并设为中断引脚。每次接收到x1 或者x2信号改变,就往PC机发送一段字符。PC机就检查这个接受的字串,做相应的动作。这里涉及到MSCOMM32 或者 Windows API的CreateFile函数;【2】MAX232直接连接x1 和x2,另一端连接PC机的CTS 和RTS。也用CreateFile函数,不用单片机。Windows(PC机)直接检查CTS 和RTS,间接有效!MS-COMM32也可以检查CTS和RTS。
6. 电脑上RS232跟单片机怎么连接
电脑通过RS232接口与单片机连接的常用实现如下图(单片机以51系列为例):
3 RS-232
规定的逻辑电平与(51)单片机的逻辑电平不同(如:RS-232的逻辑“1”是以-3~-15V来表示的,而51单片机的逻辑“1”是以+5V来表示的)。因此,单片机系统与电脑的RS-232接口通信,必须把单片机的信号电平(TTL电平)转换成计算机的RS-232C电平(或者反过来把计算机的RS-232C电平转换成单片机的TTL电平),才能成功通讯。本方案使用电平转换芯片MAX232芯片来实现电平转换(连接图中间的芯片)。
4(51)单片机使用RXD和TXD引脚执行串口数据输入/输出。
5 RS-232的RXD连接单片机TXD,TXD连接单片机RXD(中间用MAX232芯片转换电平)。
通过上述步骤即可实现电脑通过RS232接口与单片机(串口)连接并通讯(未考虑软件设置部分)。
7. rs232与单片机实施收发数据的详细步骤,及其特点
先解释一下现象:
(1)MAX232的12脚即R1OUT连接到了单片机的RX脚,因此使用探头碰MAX232的12引脚时导入了干扰信号,所以接收到了乱的数据。同时,也证明了单片机的接收电路和程序都没有问题。
(2)板子上的地接到示波器上的地,PC才能收到数据,说明单片机与PC没有共地。同时,也证明了单片机的发送电路、程序和PC的接收电路都没有问题。
原理:
(1)PC的串口即RS232有9个引脚,与单片机通信时用到三个引脚,依次是2脚RX、3脚TX、5脚信号GND。
(2)而单片机串口与此相反,2脚TX、3脚RX、5脚信号GND。
(3)只要把这三根线依次连接,2-2、3-3、5-5即可完成通信。
(4)同时,根据实际通信设备接口不同,串口线也分多种,如直连线、交叉线、公母头区别等。
故障排除流程:
(1)用万用表等测量MAX232的14脚T1OUT与开发板串行接口的2脚TX、MAX232的13脚R1IN与开发板串行接口的3脚RX、开发板串行接口的5脚与电源地是不是分别连接。如果连接没问题,则进行下一步。
(2)用万用表等测量串口线,PC端的2脚与单片机端的2脚、PC端的3脚与单片机端的3脚、PC端的5脚与单片机端的5脚是不是分别对应,如果对应连接没问题,则进行下一步。
(3)将PC上串行接口的2、3引脚短接。
(4)打开串口工具如“超级串口”等,下载地址,打开串口,在输入框中随便输入几个字符,看是不是能在接收窗口中收到。
(5)如果收不到,则说明PC的串口问题(排除串口工具没有开错串口或短接没问题的情况下),换台电脑试下。能收到,则说明电脑端收发都没问题,进行下一步。
(6)将串口线插到电脑上,开发板端的插头不插而直接将2、3脚短接。再次用串口工具发送,看是否能接收到,如果能接收到,则证明串口线没问题,进行下一步。
(7)将串口线插到开发板得串行接口上,再使用串口工具收发。
(8)如果以上都不行,则自己做3根线,也可以使用杜邦线,将PC的TX与开发板的RX、PC的RX与开发板的TX、PC的信号地与开发板的地分别相连。再用串口工具收发测试。
通过以上步骤,则可以逐步排查到问题的具体原因。不过,根据问题及之后的描述,最大的可能性是串口线用的不对,导致PC串口与开发板串口的3根线没有分别对应上。