PC通过485与51单片机通讯去控制继电器,如何编单片机C语言程序?首先 , 要解决一个多对一的问题,你上位机发送的指令,是给谁的 , 怎么区分?怎么解决,每台下位机给一个不同的地址,用地址区分数据是给谁的!这样 , 上位机的指令就有针对性了 , 不会出现混乱 。
利用汇编语言编写PC机与单片机之间的串口通信的程序,以PC机作为上位机,单片机作为下位机 。单片机为51系列,PC机具有RS-232-C接口,利用芯片MAX232实现电平转换 。
通过485芯片的控制脚切换 。如max487的3脚:MCU接收时,RE、DE均接低电平;MCU发送时,RE、DE均接高电平 。
这个是简单的电路图,因为单片机上电时,各IO口有个瞬间高电平脉冲;这里选用PNP三极管来驱动 。至于你说的按任意键启动 。。这个没多大意义了,这里给你的是按键开、关继电器 。
STC89C52是5V单片机,虽然技术资料上写它的输入高电平下限是2V , 但为了可靠还是硬件上进行电平转换吧 。这个用C语言很容易做到 。
继电器控制十分简单,给个使能信号就可以了 , 比如低有效那么就clr io口,高有效就setb io口 。
一个很简单的单片机C语言的485通信的问题试验RS485需要用RS232转485的转换头 。RS485的A对应串口头的9针 B对应4针.接法大家可以参考原理图 。
串口中断函数里面不能调用uart2_send_char(Rec);这个执行时间很长的函数 。你可以把中断接收的数据放到一个数组的缓冲区内,然后定义一个字符串结束字符,当收到结束字符后再讲整个字符串返回计算机 。
是半双工通信,有这样一条原则,同一时刻只能有一个节点发送数据 。就是某一节点发送数据时,其他节点必须保持静默,不能同时发送 , 所以需要一个仲裁,一般来说就是主节点 。
MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能 。MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用 。
C语言socket编程之我的应用下面用Socket实现一个windows下的c语言socket通信例子,这里我们客户端传递一个字符串 , 服务器端进行接收 。
要实现网络编程,首先得了解网络编程的原理 。大部分网络编程底层都是通过TCP/IP或者UDP协议进行通讯,不管是TCP还是UDP通讯 , 都是通过调用socket实现的 。Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口 。
一般来说,很多人都会说,Socket编程基本就是listen,accept以及send,write等几个基本的操作 。是的 , 就跟常见的文件操作一样,只要写过就一定知道 。对于网络编程,我们也言必称TCP/IP,似乎其它网络协议已经不存在了 。
sender 没有看到 i 打印 , 是由于你没有加换行,由于标准输出是行缓冲 , 所以不会马上打?。且扔龅?\n 或者进程结束才会打印 。你可以写成 printf(%d\n); 就能看到发送方的打印 。接收方也可以加上printf来打印 。
基于RS485总线的PC与多个单片机通信的C语言程序1、首先,需要搭建RS485通信的硬件环境 , 示意见附图 。其中RS232/RS485和RS485/TTL转换器很容易买到 。然后,在电脑上运行“串口调试助手”的小程序,就可以与你的单片机传送信息了 。
2、对于继电器的控制,只用高低电平就可以了 。关键是 , 你在你的程序里要有一个判断子程序,判断单片机从PC机(通过RS485)穿过来的是什么数据,从而对单片机的某位置位或者复位 。
3、利用汇编语言编写PC机与单片机之间的串口通信的程序,以PC机作为上位机 , 单片机作为下位机 。单片机为51系列,PC机具有RS-232-C接口 , 利用芯片MAX232实现电平转换 。
推荐阅读
- linux命令行换颜色 linux终端怎么换颜色
- word文档怎么删除,word文档怎么删除多余的页面
- 虾皮直播obs教程,虾皮直播软件
- mysql5.1怎么备份 mysql数据库怎么备份数据库
- 苹果6安装ios11.1,苹果6安装ios13
- 手机游戏开发,手机游戏开发教程
- 手机怎么取消部分服务功能,手机服务怎么关闭
- linux命令的输出 linux命令输出太长
- postgresql调用储存过程,plsql 调用存储过程 返回值