虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

rs232电平转换

  • 单片机ad转换电路

    单片机ad转换电路:通过对双积分A/ D 转换过程及其原理的分析,结合8031 单片机定时计数器的特点,设计出一种新的A/ D 转换电路. 详细介绍了这种转换电路的硬件原理及工作过程,给出了实用的硬件电路与软件设计框图. 通过比较分析,可以看出这种A/ D 转换电路性能价格比较高,软件编程简单,并且转换速度和精度优于一般的A/ D 转换电路. 这种设计思路为数模转换器(A/ D) 的升级提高指出一个明确的方向.关键词:单片机; 定时/ 计数器; A/ D 转换; 双积分

    标签: 单片机 转换电路

    上传时间: 2013-11-04

    上传用户:kernor

  • 基于单片机的红外门进控制系统设计与制作(含源程序和原理图)

    基于单片机的红外门进控制系统设计与制作:我们所做的创新实验项目“基于单片机的红外门控系统”已基本完成,现将其工作原理简要说明。该系统主要分为两大部分:一是红外传感器部分。二是单片机计数显示控制部分。基本电路图如下:其中红外传感器部分我们采用红外对管实现,红外对管平行放置,平常处于接收状态,经比较器输出低电平,当有人经过时,红外线被挡住,接收管接收不到红外线,经比较器输出高电平。这样,当有人经过时便会产生一个电平的跳变。单片机控制部分主要是通过外部两个中断判断是否有人经过,如果有人经过,由于电平跳变的产生,进入中断服务程序,这里我们采用了两对红外传感器接到两个外部中断口,中断0作为入口,实现加1操作,中断1作为出口,实现减1操作。另外,我们通过P0口控制室内灯的亮暗,当寄存器计数值为0时,熄灯,不为0时,灯亮。显示部分,采用两位数码管动态显示,如有必要,可以很方便的扩展为四位计数。精益求精!在实验过程中,我们走了非常多的弯路,做出来的东西根本不是自己想要的,我们本想做成室内只有一个门的进出计数,原理已清楚,即在门的两边放置两对红外对管,进出时,挡住两对对管的顺序不同,因此,可判断是进入还是出去,从而实现加减计数,编程时,可分别在两个中断服务程序的入口置标志位,根据标志位判断进出,详细内容在程序部分。理论如此,但在实际过程中,还是发现实现不了上述功能,我们初步判定认为是程序掌握得不够好,相信随着自己对单片机了解的深入,应该会做出更好的 (因为我们是临时学的单片机),程序的具体内容如下: $MOD52    ORG   0000H         LJMP  MAIN         ORG   0003H         LJMP  0100H         ORG   0013H         LJMP  0150H         ORG   0050HMAIN:    CLR   A         MOV   30H , A           ;初始化缓存区         MOV   31H , A         MOV   32H , A         MOV   33H , A         MOV   R6  , A         MOV   R7  , A  SETB  EA  SETB  EX0  SETB  EX1  SETB  IT0  SETB  IT1  SETB  PX1NEXT1:   ACALL HEXTOBCDD        ;调用数制转换子程序         ACALL DISPLAY          ;调用显示子程序         LJMP  NEXT1          ORG   0100H  ;中断0服务程序 LCALL  DELY mov 70h,#2 djnz 70h,next JBC  F0,NEXT         SETB F0        CLR P0.0 LCALL  DELY0 SETB   P0.0                  MOV   A , R7   ADD   A , #1   MOV   R7, A   MOV   A , R6         ADDC  A , #0  MOV   R6 , A  CJNE  R6 , #07H , NEXT  CLR   A  MOV   R6 , A  MOV   R7 , ANEXT:  RETI  ORG   0150H    ;中断1服务程序 LCALL  DELY mov 70h,#2 djnz 70h,next2 JBC  F0,NEXT2 SETB  F0 CLR P0.0 LCALL  DELY0 SETB   P0.0    CLR C                     MOV   A , R7   SUBB   A , #1  MOV   R7, A  MOV   A , R6   SUBB  A , #0  MOV   R6 , A  CJNE  R6 , #07H , NEXT2  CLR   A  MOV   R6 , A  MOV   R7 , ANEXT2:  RETI   ORG   0200HHEXTOBCDD:MOV  A , R6               ;由十六进制转化为十进制         PUSH  ACC         MOV   A , R7         PUSH  ACC  MOV   A , R2         PUSH  ACC  CLR   A         MOV   R3 , A  MOV   R4 , A  MOV   R5 , A  MOV   R2 , #10HHB3:     MOV   A  , R7              ;将十六进制中最高位移入进位位中         RLC   A  MOV   R7 , A  MOV   A  , R6  RLC   A  MOV   R6 , A  MOV   A  , R5              ;每位数加上本身相当于将这个数乘以2  ADDC  A  , R5  DA    A  MOV   R5 , A  MOV   A  , R4  ADDC  A  , R4  DA    A                   ;十进制调整  MOV   R4 , A  MOV   A  , R3  ADDC  A  , R3  DJNZ  R2 , HB3  POP   ACC   MOV   R2 , A  POP   ACC   MOV   R7 , A  POP   ACC  MOV   R6 , A  RET  ORG   0250HDISPLAY:  MOV   R0 , #30H         MOV   A  , R5  ANL   A  , #0FH  MOV   @R0 , A  MOV   A  , R5  SWAP  A  ANL   A  , #0FH  INC   R0  MOV   @R0 , A  MOV   A  , R4  ANL   A , #0FH  INC   R0  MOV   @R0 , A  MOV   A   , R4  SWAP  A  ANL   A  , #0FH  INC   R0  MOV   @R0 , A  MOV   R0 , #30H  MOV   R2 , #11111110BAGAIN:   MOV   A  , R2         MOV   P2 , A         MOV   A  , @R0  MOV   DPTR , #TAB  MOVC  A  , @A+DPTR  MOV   P1 , A  ACALL DELAY  INC   R0  MOV   A  , R2  RL    A  MOV   R2 , A  JB    ACC.4  , AGAIN   RETTAB:     DB    03FH , 06H , 5BH , 4FH , 66H , 6DH , 7DH , 07H , 7FH , 6FH   ;七段码表DELY:    MOV   R1,#80D1:        MOV    R2,#100             DJNZ   R2,$ DJNZ    R1,D1 RET DELAY:   MOV   TMOD , #01H           ;延时子程序         MOV   TL0  , #0FEH         MOV   TH0  , #0FEH  SETB  TR0WAIT:    JNB   TF0  , WAIT         CLR   TF0  CLR   TR0  RETDELY0:   MOV  R1,  #200D3:  MOV  R2,#250          DJNZ  R2,$  DJNZ  R1,D3    RET          END       该系统实际应用广泛。可用在生产线上产品数量统计、公交车智能计数问候(需添加语音芯片)、超市内人数统计等公共场合。另外,添加串口通信部分便可实现与PC数据交换的功能。   由于,实验简化了,剩下不少零件和资金,所以我们又做了两项其他的实验。

    标签: 单片机 红外 控制系统设计 原理图

    上传时间: 2013-12-22

    上传用户:tangsiyun

  • 用51单片机实现公历与农历星期的转换

    实现公历与农历的转换一般采用查表法,按日查表是速度最快的方法但51 单片机寻址能力有限不可能采用按日查表的方法除按日查外,我们可以通过按月查表和按年查表的方法再通过适当的计算来确定公历日所对应的农历日期,本文采用的是按年查表法最大限度地减少表格所占的程序空间。

    标签: 51单片机 农历 转换

    上传时间: 2013-11-25

    上传用户:ouyangmark

  • 实验指导书 (TPC-H实验台C语言版)

    《现代微机原理与接口技术》实验指导书 TPC-H实验台C语言版 1.实验台结构1)I / O 地址译码电路如上图1所示地址空间280H~2BFH共分8条译码输出线:Y0~Y7 其地址分别是280H~287H、288H~28FH、290H~297H、298H~29FH、2A0H~2A7H、2A8H~2AFH、2B0H~2B7H、2B8H~2BFH,8根译码输出线在实验台I/O地址处分别由自锁紧插孔引出供实验选用(见图2)。 2) 总线插孔采用“自锁紧”插座在标有“总线”区引出数据总线D7~D0;地址总线A9~A0,读、写信号IOR、IOW;中断请求信号IRQ ;DMA请求信号DRQ1;DMA响应信号DACK1 及AEN信号,供学生搭试各种接口实验电路使用。3) 时钟电路如图-3所示可以输出1MHZ 2MHZ两种信号供A/D转换器定时器/计数器串行接口实验使用。图34) 逻辑电平开关电路如图-4所示实验台右下方设有8个开关K7~K0,开关拨到“1”位置时开关断开,输出高电平。向下打到“0”位置时开关接通,输出低电平。电路中串接了保护电阻使接口电路不直接同+5V 、GND相连,可有效地防止因误操作误编程损坏集成电路现象。图 4 图 55) L E D 显示电路如图-5所示实验台上设有8个发光二极管及相关驱动电路(输入端L7~L0),当输入信号为“1” 时发光,为“0”时灭6) 七段数码管显示电路如图-6所示实验台上设有两个共阴极七段数码管及驱动电路,段码为同相驱动器,位码为反相驱动器。从段码与位码的驱动器输入端(段码输入端a、b、c、d、e、f、g、dp,位码输入端s1、 s2)输入不同的代码即可显示不同数字或符号。

    标签: TPC-H 实验指导书 C语言 实验台

    上传时间: 2013-11-22

    上传用户:sssnaxie

  • 从PCI总线的-12V电源获得3.3V电压

    通用的多电源总线,如VME、VXI 和PCI 总线,都可提供功率有限的3.3V、5V 和±12V(或±24V)电源,如果在这些系统中添加设备(如插卡等),则需要额外的3.3V或5V电源,这个电源通常由负载较轻的-12V电源提供。图1 电路,将-12V 电压升压到15.3V(相对于-12V 电压),进而得到3.3V 的电源电压,输出电流可达300mA。Q2 将3.3V 电压转换成适当的电压(-10.75V)反馈给IC1 的FB 引脚,PWM 升压控制器可提供1W 的输出功率,转换效率为83%。整个电路大约占6.25Cm2的线路板尺寸,适用于依靠台式PC机电源供电,需要提供1W输出功率的应用,这种应用中,由于-12V总线电压限制在1.2W以内,因此需要保证高于83%的转换效率。由于限流电阻(RSENSE)将峰值电流限制在120mA,N 沟道MOSFET(Q1)可选用廉价的逻辑电平驱动型场效应管,R1、R2 设置输出电压(3.3V 或5V)。IC1 平衡端(Pin5)的反馈电压高于PGND引脚(Pin7)1.25V,因此:VFB = -12V + 1.25V = - 10.75V选择电阻R1后,可确定:I2 = 1.25V / R1 = 1.25V / 12.1kΩ = 103μA可由下式确定R2:R2 = (VOUT - VBE)/ I2 =(3.3V - 0.7V)/ 103μA = 25.2 kΩ图1 中,IC1 的开关频率允许通过外部电阻设置,频率范围为100kHz 至500kHz,有利于RF、数据采集模块等产品的设计。当选择较高的开关频率时,能够保证较高的转换效率,并可选用较小的电感和电容。为避免电流倒流,可在电路中增加一个与R1串联的二极管。

    标签: PCI 3.3 12 总线

    上传时间: 2013-10-17

    上传用户:jixingjie

  • 串行编程器源程序(Keil C语言)

    串行编程器源程序(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;}

    标签: Keil 串行 C语言 编程器

    上传时间: 2013-11-12

    上传用户:gut1234567

  • DA与AD转换

    计算机应用中,有时需处理的信息不是数字量,而是一些随时间连续变化的模拟量,甚至是一些非电量,如温度、压力、速度等。模拟量的存储处理困难。首先将非电的模拟信号变成与之对应的模拟电信号,这要通过各种传感器来完成。计算机可处理的信息均是数字量(电脉冲信号)1和0,必须把要处理的模拟电量转换成数字化的电信号,这需要模拟(Analog)与数字(Digital)转换电路。数字到模拟转换:(Digital to Analog Convert, D/A) D/A转换电路是模拟电路加上电子开关。D/A转换电路的核心是一个运算放大器。运算放大器的特性:(Operation Amplifier)    K->无穷大, V和->0  传递函数:V0 = -Vi * R0/Ri    Ii->0,  I和=If梯形R-2R电阻网络D/A转换器Ki受一个8位二进制代码控制   某位为1,对应开关K倒向右边;   某位为0,对应开关K倒向左边。Ki不论倒向哪边,均为接地VA-VH 的电位为:     VREF,1/2VREF,..1/128VREFVO= -VREF *(1/2K7+1/4K6+…+1/256K0)V0= -(0-255/256)VREF 8位D/A转换器DAC0830系列器件国家半导体公司(NS)产品,0830、0831、0832。R-2R梯形电阻网络D/A转换器,双缓冲结构。单电源、低功耗、电流建立时间1uS。与微计算机接口方便。8位D/A转换器DAC0830系列器件ILE:        输入锁存允许;  WR1#:       加载IN REG;  WR2#:        加载DAC REG;    XFER#:       IN REG传到DAC REG;  Iout1,Iout2: 外接OA输入;  Rfb:         反馈电阻接OA输出;  VREF:        参考电源,控制输出电压变化范围。

    标签: AD转换

    上传时间: 2013-10-16

    上传用户:lu2767

  • 微型计算机总线知识

    计算机部件要具有通用性,适应不同系统与不同用户的需求,设计必须模块化。计算机部件产品(模块)供应出现多元化。模块之间的联接关系要标准化,使模块具有通用性。模块设计必须基于一种大多数厂商认可的模块联接关系,即一种总线标准。总线的标准总线是一类信号线的集合是模块间传输信息的公共通道,通过它,计算机各部件间可进行各种数据和命令的传送。为使不同供应商的产品间能够互换,给用户更多的选择,总线的技术规范要标准化。总线的标准制定要经周密考虑,要有严格的规定。总线标准(技术规范)包括以下几部分:机械结构规范:模块尺寸、总线插头、总线接插件以及按装尺寸均有统一规定。功能规范:总线每条信号线(引脚的名称)、功能以及工作过程要有统一规定。电气规范:总线每条信号线的有效电平、动态转换时间、负载能力等。总线的发展情况S-100总线:产生于1975年,第一个标准化总线,为微计算机技术发展起到了推动作用。IBM-PC个人计算机采用总线结构(Industry Standard Architecture, ISA)并成为工业化的标准。先后出现8位ISA总线、16位ISA总线以及后来兼容厂商推出的EISA(Extended ISA)32位ISA总线。为了适应微处理器性能的提高及I/O模块更高吞吐率的要求,出现了VL-Bus(VESA Local Bus)和PCI(Peripheral Component Interconnect,PCI)总线。适合小型化要求的PCMCIA(Personal Computer Memory Card International Association)总线,用于笔记本计算机的功能扩展。总线的指标计算机主机性能迅速提高,各功能模块性能也要相应提高,这对总线性能提出更高的要求。总线主要技术指标有几方面:总线宽度:一次操作可以传输的数据位数,如S100为8位,ISA为16位,EISA为32位,PCI-2可达64位。总线宽度不会超过微处理器外部数据总线的宽度。总数工作频率:总线信号中有一个CLK时钟,CLK越高每秒钟传输的数据量越大。ISA、EISA为8MHz,PCI为33.3MHz, PCI-2可达达66.6MHz。单个数据传输周期:不同的传输方式,每个数据传输所用CLK周期数不同。ISA要2个,PCI用1个CLK周期。这决定总线最高数据传输率。5. 总线的分类与层次系统总线:是微处理器芯片对外引线信号的延伸或映射,是微处理器与片外存储器及I/0接口传输信息的通路。系统总线信号按功能可分为三类:地址总线(Where):指出数据的来源与去向。地址总线的位数决定了存储空间的大小。系统总线:数据总线(What)提供模块间传输数据的路径,数据总线的位数决定微处理器结构的复杂度及总体性能。控制总线(When):提供系统操作所必需的控制信号,对操作过程进行控制与定时。扩充总线:亦称设备总线,用于系统I/O扩充。与系统总线工作频率不同,经接口电路对系统总统信号缓冲、变换、隔离,进行不同层次的操作(ISA、EISA、MCA)局部总线:扩充总线不能满足高性能设备(图形、视频、网络)接口的要求,在系统总线与扩充总线之间插入一层总线。由于它经桥接器与系统总线直接相连,因此称之为局部总线(PCI)。

    标签: 微型计算机 总线

    上传时间: 2013-11-09

    上传用户:nshark

  • PS/2鼠标和单片机的接口

    鼠标有RS232串口和PS/2二种接口,在单片机应用中,由于PS/2鼠标是1yrL电平,和单片接口更方便,通常PS/2鼠标控制芯片采用TP8452。以TP8452为例说明PS/2鼠标的工作原理,其他的PS/2鼠标控制芯片均与TP8452兼容。TP8452能接受3个按键和2组光电探头的信号,组合成一定格式的信息,传送给系统。TP8452还具有按键去抖和噪声抑制功能,组成完善的信号采集前端电路。在单片机系统中,可以直接利用鼠标作为输入设备,也可以单独使用TP8452,作为转速、距离测量的预处理电路。由于TP8452的存在,不论是高速旋转,还是慢速爬行,甚至正反振荡,都不会影响其测量的准确性。1 PS/2鼠标原标图采用TP8452的典型3键鼠标原理图如图1所示。GX、GY是2组光电探头,检测滚轮的转动。每组光电探头内有2个光敏接收管,间隔为滚轮格栅的1/4,根据2个信号的相位关系,TP8452可以确定滚轮的正反转向。K1、K2、K3是3个按键。TP8452连续监视2个滚轮和3个按键,一旦有动作,立即将信息通过PS/2接口向系统报告。

    标签: PS 鼠标 单片机 接口

    上传时间: 2013-10-29

    上传用户:xuanjie

  • 基于单片机的汽车多功能报警系统设计

    基于单片机的汽车多功能报警系统设计The Design of Automobile Multi-function AlarmingBased on Single Chip Computer刘法治赵明富宁睡达(河 南 科 技 学 院 ,新 乡 453 00 3)摘要介绍了一种基于单片机控制的汽车多功能报警系统,它能对汽车的润滑系统油压、制动系统气压、冷却系统温度、轮胎欠压及防盗进行自动检测,并在发现异常情况时,发出声光报警。阐述了该报警系统的硬件组成及软件设计方法。关键词单片机传感器数模转换报警Abstract Am ulti-fimctiona utomobilea larnungs ystemb asedo ns inglec hipc omputerco ntorlis in torducedin th isp aper.Th eo ilpr essuero flu bricatesystem, air pressure of braking system, temperature of cooling system, under pressure of tyre and guard against theft, detected automaticaly场thesystem. Audio and visual alarms wil be provided under abnormal conditions厂The hardware composition and software design of the system, described.Keywords Singlec hipc omputer Sensor Digital-t-oanaloguec onversion Alarmin 汽车多功能报苦器硬件系统设计根据 系 统 实际需要和产品性价比,选用ATMEL公司新生产的采用CMOs工艺的低功耗、高性能8位单片机AT89S52作为系统的控制器。AT89S52的片内有8k Bytes LSP Flash闪烁存储器,可进行100(〕次写、擦除操作;256Bytes内部数据存储器(RAM);3 2 根可编程输N输出线;2个可编程全双工串行通道;看门狗(WTD)电路等。系统由传感器、单片机、模数转换器、无线信号发射电路、指示灯驱动电路、声光报警驱动电KD一9563,发出三声二闪光。并触发一个高电平,驱动无线信号发射电路。

    标签: 单片机 汽车 多功能 报警

    上传时间: 2013-11-09

    上传用户:gxmm