❶ 单片机的数据怎样传进,怎样传出
数据体现在单片机IO口上,不过就是两种电平而已。
单片机输出
高低电平
,这就是数据。
单片机也可以接受外来的电平信号,让程序去读这个IO的电平状态,然后把获得的数据进行处理,就是传进数据了。
❷ 51单片机怎么接收电脑发送的16位数据
51单片机是8位的,一次只能接一个字节,你这16位的,要分两次的。
电脑串口也是按两次来发送,也就是把这个16位的拆成两个字节,所以每个字节发送都是遵循串口协议的,你在单片机里面开串口接收中断即可。
你可能会疑问,要是第一个字节中断了,进入中断函数接第一个字节后,那第二个字节会不会错过,来不及接收?
这个不会的,上面说了,第二个字节也是按串口标准发的,也就是起始位,数据位,(校验位),结束位。
电脑在发一个字节后,又会接着发第二个字节。可是,要知道串口的波特率是很低的,远远比单片机的处理速度低。当你接了第一个字节,将此字节做一些处理,比如存起来时,电脑可能都还没开始发第二个字节呢,因为电脑发数据的速率是以K为单位的,而单片机处理速度是以M为单位的。
因此,不用担心第二个字节会丢失。
❸ 计算机怎么接收数据计算机怎么接收单片机发送的数据
使用单片机的串口功能与电脑通信,方法是;
准备一个pl2303串口模块(某宝上有很多且不贵)。
再准备一个电脑的串口工具软件(网上有很多免费下载)
将单片机的RXD接模块的TXD,单片机的TXD接模块的RXD,再将模块插入电脑就可以进行单片机与电脑直接的收发操作了。
但是你必须学会单片机的串口收发编程,通过程序可以将信息发给电脑,也可以收电脑的数据。这个有点复杂要努力哦。
❹ 单片机的数据怎么传给电脑,除了串口助手,另外存放在电脑的哪里,电脑上有软件要调用
1、通过max232串口。将单片机的数据通过RXD和TXD与PC进行通信;
2、其实你也可以通过下载线和串口助手(或者自己写上位机界面),上传数据;
3、买一根USB转串口线,接到电脑USB接口上,上传数据也可以;
4、可能还有其他方式。
❺ 单片机与电脑相连需要怎么连接
最方便的是COM(串口),Print(并口)也是可以的。USB我是不会用,一般是将USB转成COM口,但要通信,你要学会VC或是其他程序软件,这样才可以写上位机软件。
❻ 单片机与PC怎么 通信
我就我所知道的给你说说。
单片机的逻辑0是0V,逻辑1是+5V;而PC用的是负逻辑,逻辑0在+9v~+15v之间,逻辑1在-9v~-15v之间。若用九针串口连接的话,先得电平转换,(转换芯片就是大家熟知的RS232,转3.3v 的话用RS3232).之后最重要做麻烦的就是要把时序和波特率设置好(说白了就是遵循相同的协议),这样单片机和PC之间就可以互联互通了,单片机中的串口通信讲的就是这方面的内容,这些资料网上很丰富,或者买个单片机开发板研究研究。
❼ 51单片机接受数据怎么接受的
串口通信如例程
#include <reg52.h>
#define uchar unsigned char
#include <stdio.h>
unsigned char* c;
sbit k0=P3^2;
sbit k1=P3^3;
sbit k2=P3^4;
sbit k3=P3^5;
sbit k4=P3^7;
sbit led1=P1^7;
uchar k;
bit y0,y1,y2,y3,y4,y5;
bit t,s,ld;
uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d};
void SendOneChar(char c) //发送字节到PC
{
TI=0;
SBUF = c;
while(!TI);
TI=0;
}
void SendString(char *st) //发送字符串到PC
{
while(*st)
{
SendOneChar(*st++);
}
}
void main()
{
SCON = 0x50; //SCON: mode 1, 8-bit UART, enable rcvr
TMOD = 0x20; //TMOD: timer 1, mode 2, 8-bit reload
PCON = 0x80; // 数据位8、停止位1。效验位无 (11.0592M)
TH1 = 0xF4; //TH1: reload value for [email protected]
TR1 = 1; //启动定时器1
ES = 1; //允许串口中断位
EA = 1; //允许总中断位
c=0;
s=1;
k=0;
P1 =~table[k];
while(1)
{
if(k0==0 && y0==0)
{
y0=1;
c = "as";
SendString(c); //发送字符串
}
if(k0==1 ) { y0=0; }
if(k1==0 && y1==0)
{
y1=1;
c = "bs";
SendString(c); //发送字符串
}
if(k1==1 ) { y1=0; }
if(k2==0 && y2==0)
{
y2=1;
c = "ds";
SendString(c); //发送字符串
}
if(k2==1 ) { y2=0; }
if(k3==0 && y3==0)
{
y3=1;
c = "es";
SendString(c); //发送字符串
}
if(k3==1 ) { y3=0; }
if(k4==0 && y4==0)
{
y4=1;
c = "fs";
SendString(c); //发送字符串
}
if(k4==1 ) { y4=0; }
// for(i = 0; i < 4000; i++); //延迟一小段时间
}
}
void chuankou(void) interrupt 4
{
if(RI==1)
{
RI = 0;
if(t==1)
{
if(SBUF=='z') { k++;ld=~ld; }
s=1; t=0;
if(k==10) { k=0;}
P1 =~table[k];
led1=ld;
}
if(SBUF=='a' && s==1) { t=1;s=0;}
}
}
/////////////
#include <reg51.h> // 接收 试试
#define uchar unsigned char
unsigned char* c;
sbit led1=P3^2; // 接收 az , P.2 输出低电平, P3.3 输出高电平。
sbit led2=P3^3; // 接收 aa , P.2 输出高电平, P3.3 输出低电平。
sbit k0=P3^5;
bit y0,t,s;
uchar k;
uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d};
void SendOneChar(char c) //发送字节到PC
{
TI=0;
SBUF = c;
while(!TI);
TI=0;
}
void SendString(char *st) //发送字符串到PC
{
while(*st)
{
SendOneChar(*st++);
}
}
void main (void)
{
SCON = 0x50; // REN=1允许串行接受状态,串口工作模式1
TMOD = 0x21; // 定时器工作方式2
PCON = 0x80; // 数据位8、停止位1。效验位无 (11.0592M)
TH1 = 0xF4; // TH1 = 0xFD; 波特率 2400
TH0=(65536-54253)/256; // 50 mS
TL0=(65536-54253)%256;
TR1 = 1;
ES = 1; // 开串口中断
EA = 1; // 开总中断
led1=1;led2=0;
// ET0=1;
// TR0=1;
s=1;
k=0;
P1 =~table[k];
while(1)
{
if(k0==0 && y0==0)
{
y0=1;
c = "az";
SendString(c); //发送字符串
}
if(k0==1 ) { y0=0; }
}
}
void chuankou(void) interrupt 4
{
if(RI==1)
{
RI = 0;
if(t==1)
{
if(SBUF=='s') {led1=~led1;led2=~led2; k++; }
//if(SBUF=='s') {led1=1;led2=0; k--; }
s=1; t=0;
if(k==10) { k=0;}
if(k==255) { k=9; }
P1 =~table[k];
}
if(SBUF=='a' && s==1) { t=1;s=0;}
}
}
void T0_time()interrupt 1
{
TH0=(65536-54253)/256; // 50 mS
TL0=(65536-54253)%256;
k++;
if(k==10) // 这里修改时间
{
k=0;
led1=1;
led2=1;
}
}
❽ 求计算机高人指点,单片机如何能接收数据什么是TXD
1.首先从单片机信号说,单片机的信号不是1就是0。通信时通过通信协议来实现的,像51本身就有TXD和RXD ,也就是串口通信协议。关于协议的方面可以写一大推,但是总的来说单片机就是在通信根据通信协议的处理时检测收到的电平高低,比如串口协议,一个字节的接收和发送 较常用协议规定为 一个起始位 8个数据位 一个奇偶校验位 一个停止位 起始位为0 停止位为 1 校验位是为了检测你接收到的数据位是否正确的 也就是发送时将数据拆分为 8个字节的二进制 ,一位一位的发送(高低电平)。接收时检测接收线的电平,将接收到的高低电平组合还原,那一个字节就接收到了。51单片机串口引脚,所以。高低电平的发送细节不需要我们去定。我们只要允许串口通信 ,然后给串口通信缓存寄存器你要传的字节就可以。多字节转送就要定帧协议了。另外还有IIC SPI CAN iis 等很多通信总线,分别有不同的协议(协议就是通信规则)。 2 TXD就是串口通信里的信号发送端口 跟RXD是一对的3.通讯速率是看你配置的通信波特率,但是串口通信有速率上限的,具体记不太清了,翻翻书就能知道
❾ 单片机从PC端接受字符
PC端发送数据的时候,每次发送一个字符串即可。
单片机就可以接收到这个字符串。