星空5G 导航

如何用51单片机RXD串口接收MIDI信号然后将命令转换到数码管显示-

2024-09-12编辑:本站
51单片机串口通讯:把上位机接收的数据在数码管显示~

建议把这几行代码
n=SBUF;while(! RI);RI=0; SBUF=n;while(! TI);TI=0; P0=dis[n]; dislay();改为
while(1){ while(! RI); RI=0; n=SBUF; SBUF=n; while(! TI); TI=0; P0=dis[n]; dislay(); }另外,如果是实际制作电路,P0口和数码管之间的七根连线中间要串入7个电阻才比较好,阻值在几百欧,例如200~510欧之间。

这个,建议多看一些有关编码的知识。
串口助手“以16进制发送数据”时,软件会先将“FF”转换成8位二进制数据“11111111”即十进制数据“255”发送出去。单片机接收到的实际上也是二进制数据“11111111”。
而你的单片机代码中“bai=x/100;"是我们人类的思维模式,编译器将代码编译时,实际上进行的运算是"bai=X/0b01100100"。

接收函数差不多,可以申明一个数组来接受三个值。
unsigned char recv[3];
.......
void recive(void)
{
while(RI==0);

recv[0]=SBUF;
RI=0;
while(RI==0);
recv[1]=SBUF;
RI=0;
while(RI==0);
recv[2]=SBUF;
RI=0;
}

这里和几进制的数据没关系,不管是16进制,还是10进制,还是二进制,它所存储的数值,都是不变的。要处理接到数据,必须做协议,否则,你不知道这一串数据,哪个是第一个字节,哪个又是中间字节。

直接这么传输音频流并不可靠,(异步接口无法进行同步,数据流中你如何判断哪里是cc?)如果发送端也是单片机的话,最好自定义协议进行封包。

俺提供制作过程文档。

这程序,收到后,当时还回送出去了。那么,对方,接收后,显示的什么?

  • 51单片机的串行口有几种工作方式?它们的帧格式是如何规定的?
  • 答:0 1 方式1 10位UART 可变 1 0 方式2 11位UARTFosc/64或fosc/32 1 1 方式3 11位UART 可变 (1)方式0:串行口的工作方式0为移位寄存器I/O方式,可外接移位寄存器,一扩展I/O口,也可外接同步I/O设备。发送操作:当执行一条“MOV SBUF,A”指令时,启动发送操作,由TXD输出移位脉冲,由RX...

  • 51单片机串口是什么工作方式?
  • 答:其缺点是传输速度较低。串口可以有底下四种工作方式 1、方式0 串行接口的工作方式0为移位寄存器I/O方式。在串行口外接移位寄存器以扩展I/O接口,也可以外接串行同步I/O的设备。(1)方式0输出 串行口以方式0发送时,数据以RXD端串行输出,TXD端输出同步信号。当一个数据写入串行口发送缓冲器以后,...

  • 高分求51单片机串口通信的程序
  • 答:include <reg52.h> include <intrins.h> define uchar unsigned char define uint unsigned int sbit LCD_RS = P2^0;sbit LCD_RW = P2^1;sbit LCD_EN = P2^2;define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};uchar data RXDdata[ ] = {0x20,0x20,0x20,0x20...

  • 51单片机中串口通信在哪个端口,有没有固定的。。
  • 答:51单片机中的串口通信是通过P3口的两个引脚(即P3.0和P3.1)实现的,其中P3.0口为串口接收引脚(RXD),P3.1口为串口发送引脚(TXD)。在51单片机中,串口通信的端口是固定的,即P3.0口和P3.1口。这两个引脚通过串口通信电路与串口通信芯片相连,实现串口通信功能。需要注意的是,在使用51...

  • 给51单片机下程序接哪几个引脚
  • 答:STC的芯片的话是用串口下载,接单片机的P3.0和3.1。AT的芯片的话是用ISP下载,是接在单片机的P1.5 1.6.1.7 还有复位引脚。如果有usb下载器很简单的,下载器vcc接单片机vcc(注意单片机电压时5x还是3.3v)下载器gnd接单片机gnd,下载器rxd接单片机txd,下载器txd接单片机rxd。如果是STC单片机,有...

  • 单片机串口多机通信电路如何接!
  • 答:直接把所有从机的TXD链接到主机的RXD,但是,每次只能允许一个从机发送给主机。所有,必须采用轮寻模式,也就是主机主从发一条命令给所有从机,命令其中一个从机发送数据给主机,从机绝对不允许随意主动给主机发送数据。PS:这种才叫问题,那些“跪求,给我某某程序等等的狗屁问题,直接给钱才能回到”...

  • 51单片机双机串行通信时能使用接在P3.0/RXD,P3.1/TXD 上的独立按键吗...
  • 答:51单片机双机串行通信时,必须专用P3.0/RXD,P3.1/TXD ,这两个引脚上不允许有独立按键的,否则会影响通信。如果引脚实在不够用,就要控制好使用顺序,在用TXD脚上的按键时,就不能发送数据了。而RXD上最好不要有按键,因为不知道什么时候串口有数据接收,在按键的同时,恰好有数据,就无法接收了。

  • 请教51单片机 怎么连接w5500 哪些串口相连?
  • 答:SPI连接:连接51单片机的SPI引脚(如SCK、MISO、MOSI、SS)与W5500芯片的对应SPI引脚。具体引脚连接可能因所使用的具体单片机型号和电路设计而有所不同,需参考51单片机和W5500的数据手册来确定正确的引脚连接。片选(CS)信号:将51单片机的一个GPIO引脚连接到W5500芯片的片选(CS)引脚上。片选信号用于...

  • 51单片机串口通信的DTR接单片机的哪个IO口
  • 答:不需要接DTR到IO口

  • 关于51单片机的串口方式0通讯
  • 答:严格来说,51单片机的串口方式0,并不是用于串口通信的,只用于在RXD,TXD引脚上接有74LS164,串入/并出,或74LS165,并入串出。也就是只能与串行芯片配合使用的。而真正用串口实现串行通信的是方式1。所以,你的程序要改成方式1。在方式1时,只有开中断允许标志位和接收到数据后,才会申请中断,...

    相关内容

    首页 新知 身健
    返回顶部

    © 星空5G w.xkyn.com