7.1 并行接口概述并行接口和串行接口的结构示意图并行接口传输速率高,一般不要求固定格式,但不适合长距离数据传输7.2 可编程并行接口芯片82C55 7.2.1 8255的基本功能 8255具有2个独立的8位I/O口(A口和B口)和2个独立的4位I/O(C口上半部和C口下半部),提供TTL兼容的并行接口。作为输入时提供三态缓冲器功能,作为输出时提供数据锁存功能。其中,A口具有双向传输功能。8255有3种工作方式,方式0、方式1和方式2,能使用无条件、查询和中断等多种数据传送方式完成CPU与I/O设备之间的数据交换。B口和C口的引脚具有达林顿复合晶体管驱动能力,在1.5V时输出1mA电流,适于作输出端口。C口除用做数据口外,当8255工作在方式1和方式2时,C口的部分引脚作为固定的联络信号线。
标签: 并行接口
上传时间: 2013-10-25
上传用户:oooool
串行编程器源程序(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
为了克服徕卡GMX902系列接收机只有串口短距离数据传输的缺陷,实现徕卡GMX902远距离传输GPS信号的目的,使其可以在野外恶劣无人坏境中实时存储GPS信号数据,并且控制中心可以远距离调控GMX902,文中提出了一种基于ARM-Linux的GPS信号存储转发系统的设计方案,并完成了系统的软件设计和整套硬件测试。长时间的综合测试数据表明,该系统能准确实时地将GPS信号存储到ARM板并转发给控制中心的上位机,实现了远距离调控和数据传输,系统性能稳定且容易操作,达到了系统设计要求。
上传时间: 2013-10-08
上传用户:gps6888
第八章 labview的编程技巧 本章介绍局部变量、全局变量、属性节点和其他一些有助于提高编程技巧的问题,恰当地运用这些技巧可以提高程序的质量。 8.1 局部变量 严格的语法尽管可以保证程序语言的严密性,但有时它也会带来一些使用上的不便。在labview这样的数据流式的语言中,将变量严格地分为控制器(Control)和指示器(Indicator),前者只能向外流出数据,后者只能接受流入的数据,反过来不行。在一般的代码式语言中,情况不是这样的。例如我们有变量a、b和c,只要需要我们可以将a的值赋给b,将b的值赋给c等等。前面所介绍的labview内容中,只有移位积存器即可输入又可输出。另外,一个变量在程序中可能要在多处用到,在图形语言中势必带来过多连线,这也是一件烦人的事。还有其他需要,因此labview引入了局部变量。
上传时间: 2013-10-27
上传用户:xieguodong1234
常见问题数据采集控制系统的组成? 1、变送器和执行器 2、信号调理器3、数据采集控制硬件4、计算机软件 选择数据采集卡要从那几个方面进行考虑? 1、通道的类型及个数2、差分或单端输入3、采样速度4、精度要求 名词解释单端输入方式:各路输入信号共用一个参考电位,即各路输入信号共地,这是最常用的接线方式。使用单端输入方式时,地线比较稳定,抗干扰能力较强。 双端输入方式:各路输入信号各自使用自己的参考电位,即各路输入信号不共地。如果输入信号来自不同的信号源,而这些信号源的参考电位(地线)略有差异,可考虑使用这种接线方式。 单极性信∶号输入信号相对于模拟地电位来讲,只偏向一侧,如输入电压为0~10V。双极性信号∶输入信号相对于模拟地电位来讲,可高可低,如输入电压为-5V~+5V。 A/D转换速率∶表明A/D转换芯片的工作速度。 初始地址∶使用板卡时,需要对卡上的一组寄存器进行操作,这组寄存器占用数个连续的地址,一般将其中最低的地址值定为此卡的初始地址。
上传时间: 2014-01-13
上传用户:sy_jiadeyi
Keil C51 V8 专业开发工具(PK51) PK51是为8051系列单片机所设计的开发工具,支持所有8051系列衍生产品,,支持带扩展存储器和扩展指令集(例如Dallas390/5240/400,Philips 51MX,Analog Devices MicroConverters)的新设备,以及支持很多公司的一流的设备和IP内核,比如Analog Devices, Atmel, Cypress Semiconductor, Dallas Semiconductor, Goal, Hynix, Infineon, Intel, NXP(founded by Philips), OKI, Silicon Labs,SMSC, STMicroeleectronics,Synopsis, TDK, Temic, Texas Instruments,Winbond等。 通过PK51专业级开发工具,可以轻松地了解8051的On-chip peripherals与及其它关键特性。 The PK51专业级开发工具包括… l μVision Ø 集成开发环境 Ø 调试器 Ø 软件模拟器 l Keil 8051扩展编译工具 Ø AX51宏汇编程序 Ø ANSI C编译工具 Ø LX51 连接器 Ø OHX51 Object-HEX 转换器 l Keil 8051编译工具 Ø A51宏汇编程序 Ø C51 ANSI C编译工具 Ø BL51 代码库连接器 Ø OHX51 Object-HEX 转换器 Ø OC51 集合目标转换器 l 目标调试器 Ø FlashMON51 目标监控器 Ø MON51目标监控器 Ø MON390 (Dallas 390)目标监控器 Ø MONADI (Analog Devices 812)目标监控器 Ø ISD51 在系统调试 l RTX51微实时内核 你应该考虑PK51开发工具包,如果你… l 需要用8051系列单片机来开发 l 需要开发 Dallas 390 或者 Philips 51MX代码 l 需要用C编写代码 l 需要一个软件模拟器或是没有硬件仿真器 l 需要在单芯片上基于小实时内核创建复杂的应用
上传时间: 2013-10-30
上传用户:yy_cn
设计了一个基于单片机的智能环境数据采集小车系统,能实现环境温湿度的采集、发送、接收、处理、显示和保存。系统采用单片机作为小车与控制台的核心。控制台通过无线射频信号控制电动小车前进、后退、左转和右转运行,小车在行进过程中实时采集环境数据并将采集到的数据通过无线信号发送给控制台,控制台将数据处理后显示,并将数据发送至PC保存。经调试,系统工作稳定、可靠,实用性强。
上传时间: 2013-11-02
上传用户:R50974
针对航天测试系统中提出的多通道数据采集要求,采用PXI采集卡,设计了多路温度、液位、电压等信号的采集系统。使用VC++2008编写了采集控制程序,可以实时显示和处理多路测试数据。本系统已成功应用于某测试任务。
上传时间: 2013-10-19
上传用户:牛津鞋
本文介绍一种基于PCI Express 总线的高速数据采集卡的设计方案及功能实现。给出系统的基本结构及单元组成,重点阐述系统硬件设计的关键技术和本地总线的控制逻辑,详细探讨了基于DriverWorks 的设备驱动程序的开发以及上层应用软件的设计。该系统通过实践验证,可用于卫星下行高速数据的接收并可适用于其他高速数据采集与处理系统。关键词:PCI Express 总线 PCIE PEX8311 DMA 板卡驱动 随着空间科学和空间电子学技术的飞速发展,空间科学实验的种类和数量以及科学实验所产生的数据量不断增加。为了使地面接收处理系统能够实时处理和显示科学图像数据,必须要设计出新的地面数据接收处理系统,实现大量高速数据的正确接收采集、处理以及存储。为了满足地面系统的要求,并为以后的计算机系统升级提供更广阔的空间,本系统拟采用第三代I/O 互连技术PCI Express(简称PCI-E)作为本数据采集卡的进机总线形式。本文通过对PCI-E 总线专用接口芯片PLX 公司的PEX8311 性能分析,特别是对突发读、写和DMA读操作的时序研究,设计出本地总线的可编程控制逻辑,并详细讨论了整个PCI-E 高速数据采集卡的硬件设计方案,以及WDM 驱动程序和上层应用程序的设计方法。
上传时间: 2013-10-28
上传用户:tianyi996
篮牙spp profile软件,主要实现无线数据传输,dev——b是slave
上传时间: 2013-12-28
上传用户:ls530720646