您现在的位置是:首页 >

硬体气球 51微控制器与PC机之间的硬体如何串列埠连线?

火烧 2021-12-23 05:06:50 1065
51微控制器与PC机之间的硬体如何串列埠连线? 51微控制器与PC机之间的硬体如何串列埠连线?微控制器和微机通讯的电气标准要一致,微机串列埠一般是RS232电气标准,所以要加电平转换晶片,大多用MAX

51微控制器与PC机之间的硬体如何串列埠连线?  

51微控制器与PC机之间的硬体如何串列埠连线?

微控制器和微机通讯的电气标准要一致,微机串列埠一般是RS232电气标准,所以要加电平转换晶片,大多用MAX232,一般微控制器实验板上都提供这样的标准串列埠。

要分别编写上位机和下位机软体程式,微控制器程式参照例程、教科书进行编写;上位机微机可采用VB,组态软体,Labview等软体编写,一般若是简单的通讯,上位机程式编写很简单,例如VB中学会使用msm控制元件,有VB最基础知识的一天就能学会。

大可以没有微控制器,没有MAX232,没有序列介面这些硬体就可以实现学习并掌握微控制器与微机之间的串列埠通讯。proteus可以模拟微控制器,也是主流软体。

如今的膝上型电脑几乎都没有保留串列埠,而用USB介面取而代之,不过没关系,有了虚拟串列埠和串列埠除错助手,这些都解决了。你可以搜寻一下虚拟串列埠,真的很不错的。

请问51微控制器与51微控制器之间的串列埠通讯程式怎么写?

1、查询方式:
#include<reg51.h>
main()
{
unsigned char dat;
TMOD=0x20;
TH1=TL1=0xfd;
SCON=0x50;
TR1=1;
while(1)
{
if(RI)接收
{
RI=0;
dat=SBUF;
}
SBUF=dat;传送
while(!TI);
TI=0;
}
}
2、中断方式:
#include<reg51.h>
unsigned char dat;
bit flag;
void uart_isr() interrupt 4
{
if(RI)接收
{
RI=0;
dat=SBUF;
flag=1;
}
if(TI)TI=0;
}
main()
{
TMOD=0x20;
TH1=TL1=0xfd;
SCON=0x50;
TR1=1;
EA=1;
ES=1;
flag=0;
while(1)
{
if(flag)
{
SBUF=dat;
flag=0;
}
}
}

用PC与51微控制器串列埠连线,控制30只灯亮灭,求微控制器程式

51微控制器的全部商品用上有32个埠,如果你串列埠用了两根线,刚好有30个埠用。每个埠控制一个LED灯。

在proteus中怎么模拟微控制器与PC机之间的串列埠通讯?

两种办法,假如只是简单的看个数据,输入个数据,可以在原理图里面放一个VIRTUAL TERMINAL(虚拟终端)模拟时候他会自动跳出对话方块来的,需要传送的话在右键选单里面允许输入就行。不过只能从键盘输入。
还有一种办法,安装虚拟串列埠软体,如VSPD,新增一个串列埠对,即相当于两个串列埠互联了。在模拟的原理图里面放COMPIM,并设定成两个虚拟出来的串列埠中的一个。找个串列埠除错助手,开启监视著另一个串列埠。波特率设定成一样,就能用串列埠除错助手除错模拟中的串列埠了,当然不用除错助手,用自己的串列埠通讯上位机的软体也可以。

微控制器与微控制器之间的串列埠通讯

按说 简单
A 机 传送 连线 B机 接收
A 机 接收 连线 B机 传送
讯号地 相连
当然,2 端要 设定 一致

怎么实现51微控制器与电脑串列埠之间的通讯?

首先,微控制器和微机通讯的电气标准要一致,微机串列埠一般是RS232电气标准,所以要加电平转换晶片,大多用MAX232,一般微控制器实验板上都提供这样的标准串列埠。
其次,要分别编写上位机和下位机软体程式,微控制器程式参照例程、教科书进行编写;上位机微机可采用VB,组态软体,Labview等软体编写,一般若是简单的通讯,上位机程式编写很简单,例如VB中学会使用msm控制元件,有VB最基础知识的一天就能学会。
最后,大可以没有微控制器,没有MAX232,没有序列介面这些硬体就可以实现学习并掌握微控制器与微机之间的串列埠通讯。proteus可以模拟微控制器,也是主流软体。另外,如今的膝上型电脑几乎都没有保留串列埠,而用USB介面取而代之,不过没关系,有了虚拟串列埠和串列埠除错助手,这些都解决了。你可以搜寻一下虚拟串列埠,真的很不错的。

如何将51微控制器与电脑通过串列埠连线并实现资料交流

51微控制器 埠是 TTL 电平
电脑 串列埠是 标准RS232 电平
必须 做电平转换 才能 连线,传输资料
E232-TTL 串列埠电平转换模组

硬体气球 51微控制器与PC机之间的硬体如何串列埠连线?

怎么利用vb编写pc机与微控制器之间的串列埠通讯程式码

微控制器的通讯和调变解调器差不多的
MSComm 控制元件示例
下面这个简单的例子演示了用调变解调器进行基本的序列通讯:
Private Sub Form_Load ()
' 储存输入子串的缓冲区
Dim Instring As String
' 使用 COM1。
MSComm1.CommPort = 1
' 9600 波特,无奇偶校验,8 位资料,一个停止位。
MSComm1.Settings = "9600,N,8,1"
' 当输入占用时,
' 告诉控制元件读入整个缓冲区。
MSComm1.InputLen = 0
' 开启埠。
MSComm1.PortOpen = True
' 将 attention 命令送到调变解调器。
MSComm1.Output = "ATV1Q0" & Chr$(13) ' 确保
' 调变解调器以"OK"响应。
' 等待资料返回到串列埠。
Do
DoEvents
Buffer$ = Buffer$ & MSComm1.Input
Loop Until InStr(Buffer$, "OK" & vbCRLF)
' 从串列埠读 "OK" 响应。
' 关闭串列埠。
MSComm1.PortOpen = False
End Sub
注意 MSComm 控制元件可以采用轮询或事件驱动的方法从埠获取资料。这个简单的例子使用了轮询方法。关于事件驱动方法的例子请参阅 OnComm 事件的帮助。

怎么实现51微控制器与电脑串列埠之间的无线通讯?

这个有点麻烦。电脑连个 红外收发射板,微控制器也连一个。2个对着,就可以通讯了。

C51微控制器如何从PC机串列埠接收字串?

我的程式的一部分,供参考
主流程
void main(void)
{
系统初始化
SCON = 0x50; 串列埠方式为1,SM2= 0,TB8= 1
PCON = 0x80; SMOD=1
TMOD = 0x22; 设定定时器0/1的工作模式为方式2
设定T0中断的定时时间为1/7200毫秒
TH0 = 0x00;
TL0 = 0x00;
设定非同步串列埠的波特率
TH1 = 0x0f4; OSC = 11.0592MHz bps = 4800 SMOD=1
TL1 = 0x0f4;
TH1 = 0x0fd; OSC = 11.0592MHz bps = 19200 SMOD=1
TL1 = 0x0fd;
设定中断优先顺序,T0中断为高优先顺序中断,其他为低优先顺序中断
IP = 0x02; 设定中断优先顺序--T0为高优先顺序,其他低
ET0 = 1; 定时器0中断
ES = 1; 序列介面中断
EA = 1; 系统中断允许
TR0 = 1; 启动定时器0
TR1 = 1;
......................
串列埠接收中断处理程式
传送采用查询处理
void SerialComm(void) interrupt 4
{
_pReceive[_cReceive] = SBUF;
_cReceive ++;
if(_cReceive >= RecBuffSize) _cReceive = 0;
RI = 0;
}
串列埠传送一个位元组
senddata:需要传送的资料
void SendOneByte(unsigned char senddata)
{
ES = 0;
TI = 0;
SBUF = senddata;
while(TI == 0);
TI = 0;
ES = 1;
}

  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码