单片机怎么通过串口发送一串数据?

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-06-28
单片机怎样通过串口向计算机发送数据

单片机怎样通过串口向计算机发送数据:
单片机可以实现与计算机的发送和接收。首先,要正确配置单片机的串口,包括波特率、使用时钟源、COM口、数据位位数、奇偶校验位、停止位位数等,同时要保证计算机的配置和单片机的一致。然后,把要发送的数据送到发送缓存,只能一个字节一个字节的发送。启动单片机发送,就可以完成发送操作。如果打开接收中断,计算机发送数据过来的时候,就会进入到接收中断,单片机进入接收数据状态。
要注意的是,单片机是TTL电平,而计算机是232电平,所以在硬件电路连接上要有电平转换芯片,常用的有MAX232等。

额 这还是个问题 单片机位数型号不同 int的长度是不一样的 拿stm32f1来说 int是32位的 就是4个char(8位) 你可以从高位开始发送四次 接收端再给他们拼凑出一个int就行了
void send (unsigned int a)
{
unsigned char s[4];
s[0] =(unsigned char) ((a &0xff000000) >> 24);
s[1] =(unsigned char) ((a &0xff0000) >> 16);
s[2] =(unsigned char) ((a &0xff00) >> 8);
s[3] =(unsigned char) (a &0xff) ;
//发送四个char就行了 接收的过程反过来
}

通过SBUF! 一块是接受,一块发送!还要设置工作方式。

单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。

通过SBUF! 一块是接受,一块发送!还要设置工作方式,去好好看下书!

/*********************************************************
*
*
* 单片机发送
*
*
*
*
*
*********************************************************/
#include "REG52.H"
sbit LED01_01 = P3^6;
sbit LED02_02 = P3^7;
#define SHUMG_DAT P0
bit value_vek;
unsigned char value_temp = 0;
unsigned char value_Date = 0;
unsigned char value_Outk = 0;
unsigned char code value_table[] =
{
0xC0,
0xF9,
0xA4,
0xB0,
0x99,
0x92,
0x82,
0xF8,
0x80,
0x90
}; //共阳极0-9显示断码
/*
* 带参数的延时1ms延时子函数
*/
void Delay_1ms(unsigned int time)
{
unsigned int x, y;
for(x = time; x > 0; x--)
for(y = 120; y > 0; y--);
}
/*
* USART串口初始化子函数
*/
void Serports_Init(void)
{
TMOD = 0x20;
TH0 = 0xFD;
TL0 = 0xFD;
TR1 = 1;
REN = 1;
SM0 = 0;
SM1 = 1;
EA = 1;
ES = 1;
}
/*
* USART串口数据发送子函数
*/
void USART_Buf(unsigned char add)
{
SBUF = add;
while(!TI);
TI = 0;
}
/*
* 单片机串口发送数据
*/
void Scan_keyOutCmd(void)
{
if(Keyat_02 == 0)
{
Delay_1ms(5);
if(Keyat_02 == 0)
{
value_Date++;
if(value_Date == 9)
{
value_Date = 0;
}
}
while(Keyat_02 == 0);
}
}
/*
* 程序函数主体
*/
int main(void)
{
P0 = P2 = 0x00;
P3 = 0xFF;
Serports_Init();
while(1)
{
Display_ShumagCmd();
Scan_keyOutCmd();
switch(value_Date) //对应发送数据
{
case 0: USART_Buf(0xC0);
break;
case 1: USART_Buf(0xF9);
break;
case 2: USART_Buf(0xA4);
break;
case 3: USART_Buf(0xB0);
break;
case 4: USART_Buf(0x99);
break;
case 5: USART_Buf(0x92);
break;
case 6: USART_Buf(0x82);
break;
case 7: USART_Buf(0xF8);
break;
case 8: USART_Buf(0x80);
break;
case 9: USART_Buf(0x90);
break;
default: break;
}
}
}
/*
* USART串口中断服务程序
*/
void Serial_sports()interrupt 4
{
RI = 0; //清除接收标志
value_Outk = SBUF; //接收
}

#include<reg52.h>
void main(void)
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
while(1)
{

}
}
void UART_SER(void)interrupt 4 //串口中断函数
{
unsigned char Temp;
if(RI) //串口接收
{
RI=0;
Temp=SBUF;
P1=Temp;
}
if(TI) //串口发送
{
TI=0;
SBUF=Temp;

}
}

最简单的例程,希望你能看懂

  • 单片机怎么通过串口发送一串数据?
    答:通过SBUF! 一块是接受,一块发送!还要设置工作方式。单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集...
  • 单片机怎样通过串口向计算机发送数据
    答:首先,要正确配置单片机的串口,包括波特率、使用时钟源、COM口、数据位位数、奇偶校验位、停止位位数等,同时要保证计算机的配置和单片机的一致。然后,把要发送的数据送到发送缓存,只能一个字节一个字节的发送。启动单片机发送,就可以完成发送操作。如果打开接收中断,计算机发送数据过来的时候,就会进入到...
  • 怎么用串口发送一个数组?用电脑上的串口助手发送,单片机接收后再发送...
    答:1.首先用中断方式循环接收数据保存到数组/***串口数据接收中断服务*功能:接收串口数据***/void get(void) interrupt 4 using 0{ unsigned char i; if(RI) { for(i=0;i<16;i++) //循环接收16字节字节数据 { while(!RI); table[i]=SBUF; RI=0; //清标志位 } } }再将用查询法数组中的数据...
  • 简述c51单片机串行口数据发送和数据接收过程
    答:MOV SBUF,A ;发送一个字符 WAIT:JBC TI,NEXT ;等待发送结束 SJMP WAIT NEXT: INC R0 ;准备下一次发送 SJMP TRAM3、接收程序 WAIT: JBC RI,NEXT ;查询等待 SJMP WAIT NEXT: MOV A,SBUF ;读取接收数据 MOV @R0,A ;保存数据 INC R0 ;准备下一次接收 SJMP WAIT 这个是用软件查询方法做的,...
  • 51单片机串口同时发送文本和数据
    答:你看一下send-string这个函数,string指的是字符串,要求输入的参数应该是指针类型,可以输入数组名称,也可以直接输入一串字符如"I love you"用引号引住,发送的是ASCI码 要想发数据,你可以写一个发数据的函数,或者将数据变量转换为地址,如 uchar a=0x38 想发a的数值可以 send-string(&a)接收端...
  • 单片机如何通过串口发送以下指令的?
    答:MOV SBUF,A ;单片机招待这条写数据发送缓冲器SBUF的指令,就启动发送,将"%"送通过串口发送出去 JNB TI,CLR TI MOV A,#" "MOV SBUF,A JNB TI,CLR TI MOV A,#"0"MOV SBUF,A JNB TI,CLR TI MOV A,#"1"MOV SBUF,A JNB TI,CLR TI MOV A,#" "MOV SBUF,A JNB TI,CLR TI MO...
  • 求大佬指导怎么让15单片机通过串口发送一个数字,然后将数字显示在数_百...
    答:首先,用单片机读取数字传感器数据,然后单片机通过串口将数据发送,PC端要有TTL电平的串口(不是RS232),将单片机的串口TXD、RXD及GND与PC端串口的RXD、TXD、GND连接,PC端串口助手和单片机的串口协议要一致,就可以把数字传感器的数据传送给串口助手。
  • 80C51单片机串口通信工作方式1怎样发送字符串?
    答:1)数据发送与接收使用方式0实现数据的移位输入输出时,实际上是把串行口变成并行口使用。串行口作为并行输出口使用时,要和CD4049或74LS164配合使用,其电路连接如图10。图(b)为74LS164的引脚图,芯片各引脚功能如下:Q0~Q7为并行输出引脚。DSA、DSB为 串行输入引脚。清零引脚,低电平时,使74LS164输出...
  • 51单片机通过串口实现数据的发送与接收程序
    答:1,配置串口参数、波特率等,开启串口中断;void Init_UART(){ } 2,中断函数里写中断响应函数,根据接收的指令或者数据,执行相应的动作;程序一般为:void UART_ISR() interrupt x using y { ;串口中断处理函数 } x - 单片机的C51中断号 y - 指定使用的当前工作寄存器组号(0-3 PSW中...
  • 怎样让单片机串口开始发送数据
    答:RX,TX信号交叉联接,确认好显示屏的通讯波特率是多少,然后查看触摸屏每个功能的数据格式,然后按格式进行收/发就可以了.另外,触摸屏的串口硬件接口可能是TTL电平的,也可能是RS232电平的,这个要注意下.