单片机温度采集器与PC104分站的串行通信:用PC104 模块组建的矿井变电所采集分站,具有强大的以太网和CAN 总线通信功能。在PC104模块底板上,设计了一个基于89C2051 单片机的温度采集器,用于采集温度传感器监测值并通过串口将该监测值传送到PC104 分站。该设计简化了变电所环境温度监测的软、硬件,并且编程简单,充分利用了PC104 的空闲串口资源。关键词:温度采集器; 单片机; 串行通信; PC104
上传时间: 2013-11-24
上传用户:wangchong
RS232C串行通信在控制领域里应用得很广泛但在实际应用中又会因所控制的对象所解决的问题不同而各具特点本文所涉及的是传输距离不超过15米所传输数据量较小的PC机和单片机的通信如PC机对IC卡的读写PC机对单片机烧写器的数据转输以及其它一些具有类似特点的智能化仪器和仪表中的数据通信
上传时间: 2014-12-28
上传用户:6546544
基于AT89C51应用系统的串行通信设计:介绍了基于AT89C51应用系统中的串行通信软硬件设计方法和实现过程,在基于红外成像技术的电力设备状态检测系统中,将红外测温仪检测到设备的温度数据传给控制电路,进行数据格式的转换后,在RAM 中存储,同时上传给PC机。系统利用MAX232实现RS 232C的EIA 电平与单片机的TTI 电平之闻转换,利用通用串口芯片8251A扩展串行接13',实现PC机与单片机之问的串行通信。 关键词:串行通信;单片机;接口;RS232C
上传时间: 2014-12-21
上传用户:aeiouetla
串行编程器源程序(Keil C语言)//FID=01:AT89C2051系列编程器//实现编程的读,写,擦等细节//AT89C2051的特殊处:给XTAL一个脉冲,地址计数加1;P1的引脚排列与AT89C51相反,需要用函数转换#include <e51pro.h> #define C2051_P3_7 P1_0#define C2051_P1 P0//注意引脚排列相反#define C2051_P3_0 P1_1#define C2051_P3_1 P1_2#define C2051_XTAL P1_4#define C2051_P3_2 P1_5#define C2051_P3_3 P1_6#define C2051_P3_4 P1_7#define C2051_P3_5 P3_5 void InitPro01()//编程前的准备工作{ SetVpp0V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=0; Delay_ms(20); nAddress=0x0000; SetVpp5V();} void ProOver01()//编程结束后的工作,设置合适的引脚电平{ SetVpp5V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=1;} BYTE GetData()//从P0口获得数据{ B_0=P0_7; B_1=P0_6; B_2=P0_5; B_3=P0_4; B_4=P0_3; B_5=P0_2; B_6=P0_1; B_7=P0_0; return B;} void SetData(BYTE DataByte)//转换并设置P0口的数据{ B=DataByte; P0_0=B_7; P0_1=B_6; P0_2=B_5; P0_3=B_4; P0_4=B_3; P0_5=B_2; P0_6=B_1; P0_7=B_0;} void ReadSign01()//读特征字{ InitPro01(); Delay_ms(1);//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(20); ComBuf[2]=GetData(); C2051_XTAL=1; C2051_XTAL=0; Delay_us(20); ComBuf[3]=GetData(); ComBuf[4]=0xff;//----------------------------------------------------------------------------- ProOver01();} void Erase01()//擦除器件{ InitPro01();//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 C2051_P3_3=1; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(1); SetVpp12V(); Delay_ms(1); C2051_P3_2=0; Delay_ms(10); C2051_P3_2=1; Delay_ms(1);//----------------------------------------------------------------------------- ProOver01();} BOOL Write01(BYTE Data)//写器件{//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 //写一个单元 C2051_P3_3=0; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; SetData(Data); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); Delay_us(20); C2051_P3_4=0; Delay_ms(2); nTimeOut=0; P0=0xff; nTimeOut=0; while(!GetData()==Data)//效验:循环读,直到读出与写入的数相同 { nTimeOut++; if(nTimeOut>1000)//超时了 { return 0; } } C2051_XTAL=1; C2051_XTAL=0;//一个脉冲指向下一个单元//----------------------------------------------------------------------------- return 1;} BYTE Read01()//读器件{ BYTE Data;//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 //读一个单元 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=1; C2051_P3_7=1; Data=GetData(); C2051_XTAL=1; C2051_XTAL=0;//一个脉冲指向下一个单元//----------------------------------------------------------------------------- return Data;} void Lock01()//写锁定位{ InitPro01();//先设置成编程状态//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 if(ComBuf[2]>=1)//ComBuf[2]为锁定位 { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); } if(ComBuf[2]>=2) { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=0; C2051_P3_7=0; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); }//----------------------------------------------------------------------------- ProOver01();} void PreparePro01()//设置pw中的函数指针,让主程序可以调用上面的函数{ pw.fpInitPro=InitPro01; pw.fpReadSign=ReadSign01; pw.fpErase=Erase01; pw.fpWrite=Write01; pw.fpRead=Read01; pw.fpLock=Lock01; pw.fpProOver=ProOver01;}
上传时间: 2013-11-12
上传用户:gut1234567
针对实时型相机对系统小型化、通用化及数据高速率可靠传输的需求,文中在研究高速串行器/解串器(SerDes)器件TLK2711工作原理的基础上,提出了高速串行全双工通信协议总体设计方案。文章以TLK2711为物理层、FPGA为链路层设计了高速串行全双工通信协议,对协议的实现进行了详细的描述。协议的在定制中力求做到了最简化,为上层用户提供简单的数据接口。试验中通过两块电路板的联调,完成了数据率为2.5Gbps的点对点高速传输,采用发送伪随机码测试,系统工作2小时,所测误码率小于10-12。
上传时间: 2014-12-28
上传用户:wff
针对目前工控领域,现场数据采集分散管理的不足,该文采用了Modbus RTU通信协议和串口通信技术,设计了主从式通信的采集系统,实现对各个现场的远程集中监控,即集散控制系统。详细阐述了在C#环境下基于Modbus RTU通信协议的上位机和DAM-3504系列三相多功能电量采集模块经过GPRS网络的主从式串行通信的实现。经过现场测试验证,表明该方案运行稳定,操作简便,能够对采集的数据进行实时显示,解决了对现场的统一监控和分布式管理的问题,为工业控制现场提供了一套可行性方案。
上传时间: 2013-10-29
上传用户:88mao
MotorolaMC68HC11单片机与微机的串行通信设计
标签: MotorolaMC 68 11 HC
上传时间: 2013-10-16
上传用户:dingdingcandy
介绍了SoPC(System on a Programmable Chip)系统的概念和特点,给出了基于PLB总线的异步串行通信(UART)IP核的硬件设计和实现。通过将设计好的UART IP核集成到SoPC系统中加以验证,证明了所设计的UART IP核可以正常工作。该设计方案为其他基于SoPC系统IP核的开发提供了一定的参考。
上传时间: 2013-11-12
上传用户:894448095
AVR_单片机_串口通信_串行通讯_详细例程介绍
上传时间: 2013-11-23
上传用户:xuanjie
串行通信
标签: 串行通信
上传时间: 2013-12-20
上传用户:songnanhua