1. 电脑上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接口与单片机(串口)连接并通讯(未考虑软件设置部分)。
2. 怎么用RS232写程序进单片机
首先确定AVR能不能用串口烧录,也就是有没有ISP(in system program 在系统编程)功能,说明一下
ISP功能是在ROM的最后1块空间(一般是512 ~1024byte)里放了1段代码,在单片机上电的时候进行特定的操作,单片机就不会从00开始执行程序,而是跳到最后那块空间开始,这块rom中的代码的功能是通过串口接收PC发送过来的数据写到其他的rom中去,这些数据包括命令和编译好的程序的机器码。所以即使有ISP功能你还得知道这些命令和数据的格式
3. 单片机RS232串口通信实验
没大问题,就是贴过来少了一些空格,
另外 倒数第四行检测TI后忘记清零TI了,
修改后的代码如下:
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN:
MOV SP,#60H
MOV TMOD, #20H
MOV TH1, #0FDH
MOV TL1, #0FDH
MOV SCON, #50H
MOV PCON, #00H
SETB TR1
MAINLOOP:
setb p1.7
jb p1.7,MAINLOOP
send$:
MOV SBUF, #41H
JNB TI, $
CLR TI
AJMP MAINLOOP
;
END
运行后如果把接到P1.7和地之间的开关接通让P1.7为低电平,串口就以9600的波特率不断发送字符A,如图所示:
4. 单片机与相位计的RS232串口通信编程问题。 硬件已经没有问题,c程序存在问题,请帮忙修改一下。
/*************************************************
如果你的相位计只需要在初始的时候发送p0 c0 l0 这三个的话,也就是说后继的数据都是由相位计发送,
单片机接收的话,初始化部分没有大问题,但接收数据的部分 ReceStr()有问题,应该是收不到数据吧?
1、串口初始化程序先确定TH1的值和单片机晶振匹配不?0xfd是用于11.0592M晶振的波特率不加倍(smod = 0)方式下的9600bps的
这个可以控制单片机发送,由pc设定9600接收,看单片机串行速率设置是否正确
2、你现在的串口接收函数执行了也收不到数据, 因为单片机串口只有一个字节的缓冲,所以一般用中断方式来接收数据,
每次有一个字节收到后,通过中断来将收到的字节放入程序缓冲去。
还有接收变量怎么会写成float的?单字节用char 。
如果是相位计的数据发过来是float类型,那需要你自己程序转换,串口发送的只会是8bit的hex数据
3、如果程序需要很准确的延迟的话,延迟函数需要调试一下的
串口接收例程:
全局变量:
unsigned char x_Buf[50] = {0};
unsigned char * pX = x_Buf;
//volatile unsigned char posBf = 0;
中断服务:
void Serial_ISR(void) interrupt 4
{
if(RI)
{
RI = 0;
*pX++ = SBUF;
if(pX == &x_Buf[49]+1) pX = x_Buf;
}
}
*************************************************/
/*------------------------------------------------
串口初始化
------------------------------------------------*/
void InitUART (void)
{
SCON = 0x50;
TMOD |= 0x20;
TH1 = 0xFD;
TR1 = 1;
ES = 1; //串口中断使能
EA = 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。