单片机通信

单片机通信指单片机与PC之间或者单片机与单片机之间的信息交换。

通信有并行和串行两种。在现代单片机测控系统中,串行方式是比较常用的。成本高,同时收发困难。老式打印机采用并行通信,现在一般是用USB通信了。

(USB主要作为数据传输使用。因为需要协议支持所以应用在单片机中的时候是需要额外的驱动程序支持的,所以在学习单片机的时候,如果电脑上没有串口端口就可以使用USB口来连接,但是要安装相应的驱动程序。)

并行通信:一根线传输一位数据(数据线通常8位),再加上相应的控制线(响应、应答等)。并行通信应用较少,而且使用难度较低,在此不作整理。

串行通信:数据在一根数据线上一位接一位的传输,再加上相应的控制线。然后再将接收到的数据变成并行的数据(通常是以字节为单位的,Byte)。

串行通信分为异步串行通信和同步串行通信。


51单片机的串行口是一个可编程全双工的通信接口,具有UART的全部功能,能同时进行数据的发出和接收,有可以作为同步移位寄存器使用。

串行口的组成:两个独立的串行数据缓冲寄存器SBUF(serial data buffer,一个用于发送数据,一个用于接收数据),发送控制器,接收控制器,输入移位寄存器和其他若干控制门电路。

时间: 2024-10-20 19:04:05

单片机通信的相关文章

单片机通信的加密和解密

通信,有时候为了保证截获方即使得到了数据包,也不知道内容,所以加密传输即可:但有时候不需要知道数据包的内容,只要知道知道数据包能干嘛即可,比如发指令,此种情况单单对数据包进行加密就不够了. 基础知识: 1.单片机适用的数据加密算法有TEA,经过TEA加密的数据字节数和加密前的一样,只是数据不一样了 2.CRC:一个数据包,根据CRC算法的不同,可以得到不同长度的CRC值:CRC一方面保证数据不会被篡改,另一方面能检测传输过程是否出现错误 假定A为发送方,B为接收方 加密模型1: A:发送:请求临

Android与单片机通信常用数据转换方法(汇总)

下面直接贴代码 1.  将GB2312转化为中文,如BAFAC2DCB2B7→胡萝卜,两个字节合成一个文字 public static String stringToGbk(String string) throws Exception { byte[] bytes = new byte[string.length() / 2]; for (int j = 0; j < bytes.length; j++) { byte high = Byte.parseByte(string.substrin

51单片机之串口通信(三)

51单片机之串口通信(三) 已有 47 次阅读2015-12-29 00:21 |个人分类:51单片机| 单片机, 通信 用串口实现发送和接收同时可操作: 电脑显示结果如图: 源程序: /*项目名称:串口发送接收实验项目内容:串口发送接收同时进行,计算机发送数据给单片机控制P0口,从而控制LED灯的亮灭,单片机发送数据到计算机,计算机显示出来时间:2015年12月23日项目负责人:YUAN*/#include <reg52.h>typedef unsigned char uChar8;type

基于MODBUS协议的单片机与(串口屏)触摸屏通信(图文)

导读:触摸屏能够直观.生动地显示运行参数和运行状态,而且通过触摸屏画面可以直接修改系统运行参数,人机交互性好.触摸屏和单片机通信,需要根据触摸屏采用的通信协议为单片机编写相应的通信程序.Modbus协议是美国Modicon公司推出的一种有效支持控制器之间以及控制器经由网络(例如以太网)和其它设备之间进行通信的协议.关键词:触摸屏,MCS-51单片机,Modbus协议,通信 在工业控制中经常需要观察系统的运行状态或者修改运行参数.触摸屏能够直观.生动地显示运行参数和运行状态,而且通过触摸屏画面可以

深入理解51单片机串口通信

串口通信的基本认识 通信分为并行通信和串行通信,并行通信时的数据各个位同时传送,可以实现字节为单位通信,但通信线多占用资源,成本高.以前用到的的P1=0x55,一次给P1口的8个管脚分别赋值,同时进行信号输出,类似于8个车道可以过去8辆车,这样的形式是并行的,一般称P0,P1,P2,P3为51单片机的4组并行总线. 串行通信,就是一个车道,一个只能通过一辆车,如果一个0x55这样一个字节的数据要传输过去的话,假如低位在前,高位在后的话,那发送方式是:0-1-0-1-0-1-0-1,一位一位的进行

51单片机蓝牙模块

51单片机的蓝牙模块,是在蓝牙通讯的基础上,进行蓝牙51模块与外部蓝牙发射接收设备之间,相互收发数据.并且其引脚为VCC,GND,TXD,RXD,可以通过串口通信与外部上位机或单片机通信. 代码如下(注意蓝牙模块是5V供电) #include<reg52.h> void init();void delay(unsigned int ms); unsigned char input;void display(unsigned char num_decimal);unsigned char cod

Matlab与单片机的串行通信及数据处理

http://hi.baidu.com/20066203/blog/item/891edf52f73278040df3e360.html 摘要:结合单片机和Matlab两者优点,基于事件驱动中断通信机制,提出一种Matlab环境下PC机与单片机实时串行通信及数据处理方法:完成单片机数据采集系统与PC机RS-232/RS-485串行通信及其通信数据分析处理.文件存储.FIR滤波及图形显示:简化系统开发流程,提高开发效率.该方法已成功应用于一个PIC16F876单片机应用系统实例之中. 关键词:PI

51单片机-PC数据传输 温度 距离 监控系统设计

>_<:功能概述: 通过串口PC和单片机通信,可以询问单片机测得的温度,可以询问声呐测距的测量距离,同时把测量温度显示在数码管上. >_<:PC部分 这里com.cpp和com.h是串口通信的函数封装,在主函数中: 刚开始调用封装好的串口通信函数,设置打开串口COM4,波特率设置为9600,超时设置: 1 if(openport("com4")) 2 printf("open comport success\n"); 3 if(setupdc

CB1 驱动NRF24L01 无线模块 通信成功

系统:lubuntu 官方  (喜欢cb官方原版)硬件: cb   NRF24L01*2   51开发板一块   杜邦线若干 CB1 驱动NRF24L01 无线模块与STC51单片机通信成功!!! 1.废话不多说,上图上代码: 2.自制51单片机开发板:(24L01在右下角,有内置接口)   3.来张清晰的图,上面手抖了,      LCD1602显示温度,并实时通过无线发给cubieboard 1   4. 下图,第一位是正负温度指示,0x00代表正 ,0xff代表零下  . 后两位分别代表温