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

功率<b>驱动</b>

  • ADS-B接收机DIY全套资料

    制作基于PIC Mcu 的ADS-B接收机的全套资料,包括SCH、PCB、源码和PC端软件。

    标签: ADS-B DIY 接收机

    上传时间: 2013-04-24

    上传用户:cx111111

  • 无功功率自动补偿控制器

    1) 全数字化设计,交流采样,人机界面采用大屏幕点阵图形128X64 LCD中文液晶显示器。 2) 可实时显示A、B、C各相功率因数、电压、电流、有功功率、无功功率、电压总谐波畸变率、电流总谐波畸变率、电压3、5、7、9、11、13次谐波畸变率、电流3、5、7、9、 11、13次谐波畸变率频率、频率、电容输出显示及投切状态、报警等信息。 3) 设置参数中文提示,数字输入。 4) 电容器控制方案支持三相补偿、分相补偿、混合补偿方案,可通过菜单操作进行设置。 5) 电容器投切控制程序支持等容/编码(1:2、 1:2:3、 1:2:4:8…)等投切方式。 6) 具有手动补偿/自动补偿两种工作方式。 7) 提供电平控制输出接口(+12V),动态响应优于20MS。 8) 取样物理量为无功功率,具有谐波测量及保护功能。 9) 控制器具有RS-485通讯接口,MODBUS标准现场总线协议,方便接入低压配电系统。

    标签: 无功功率 控制器 自动补偿

    上传时间: 2013-11-09

    上传用户:dancnc

  • 2012TI杯陕西赛题B题--频率补偿电路

    2012TI杯陕西赛题H题,2012TI杯陕西赛题B题--频率补偿电路.

    标签: 2012 TI 频率补偿电路

    上传时间: 2013-10-07

    上传用户:ysystc670

  • 功率MOSFET的驱动电路和保护技术

    功率MOSFET的驱动电路和保护技术

    标签: MOSFET 功率 保护技术 驱动电路

    上传时间: 2013-10-22

    上传用户:wutong

  • 38V/100A可直接并联大功率AC/DC变换器

    38V/100A可直接并联大功率AC/DC变换器 随着电力电子技术的发展,电源技术被广泛应用于计算机、工业仪器仪表、军事、航天等领域,涉及到国民经济各行各业。特别是近年来,随着IGBT的广泛应用,开关电源向更大功率方向发展。研制各种各样的大功率,高性能的开关电源成为趋势。某电源系统要求输入电压为AC220V,输出电压为DC38V,输出电流为100A,输出电压低纹波,功率因数>0.9,必要时多台电源可以直接并联使用,并联时的负载不均衡度<5%。   设计采用了AC/DC/AC/DC变换方案。一次整流后的直流电压,经过有源功率因数校正环节以提高系统的功率因数,再经半桥变换电路逆变后,由高频变压器隔离降压,最后整流输出直流电压。系统的主要环节有DC/DC电路、功率因数校正电路、PWM控制电路、均流电路和保护电路等。 1 有源功率因数校正环节 由于系统的功率因数要求0.9以上,采用二极管整流是不能满足要求的,所以,加入了有源功率因数校正环节。采用UC3854A/B控制芯片来组成功率因数电路。UC3854A/B是Unitrode公司一种新的高功率因数校正器集成控制电路芯片,是在UC3854基础上的改进。其特点是:采用平均电流控制,功率因数接近1,高带宽,限制电网电流失真≤3%[1]。图1是由UC3854A/B控制的有源功率因数校正电路。   该电路由两部分组成。UC3854A/B及外围元器件构成控制部分,实现对网侧输入电流和输出电压的控制。功率部分由L2,C5,V等元器件构成Boost升压电路。开关管V选择西门康公司的SKM75GB123D模块,其工作频率选在35kHz。升压电感L2为2mH/20A。C5采用四个450V/470μF的电解电容并联。因为,设计的PFC电路主要是用在大功率DC/DC电路中,所以,在负载轻的时候不进行功率因数校正,当负载较大时功率因数校正电路自动投入使用。此部分控制由图1中的比较器部分来实现。R10及R11是负载检测电阻。当负载较轻时,R10及R11上检测的信号输入给比较器,使其输出端为低电平,D2导通,给ENA(使能端)低电平使UC3854A/B封锁。在负载较大时ENA为高电平才让UC3854A/B工作。D3接到SS(软启动端),在负载轻时D3导通,使SS为低电平;当负载增大要求UC3854A/B工作时,SS端电位从零缓慢升高,控制输出脉冲占空比慢慢增大实现软启动。 2 DC/DC主电路及控制部分分析 2.1 DC/DC主电路拓扑 在大功率高频开关电源中,常用的主变换电路有推挽电路、半桥电路、全桥电路等[2]。其中推挽电路的开关器件少,输出功率大,但开关管承受电压高(为电源电压的2倍),且变压器有六个抽头,结构复杂;全桥电路开关管承受的电压不高,输出功率大,但是需要的开关器件多(4个),驱动电路复杂。半桥电路开关管承受的电压低,开关器件少,驱动简单。根据对各种拓扑方案的工程化实现难度,电气性能以及成本等指标的综合比较,本电源选用半桥式DC/DC变换器作为主电路。图2为大功率开关电源的主电路拓扑图。

    标签: 100 38 AC DC

    上传时间: 2013-11-13

    上传用户:ukuk

  • MCS-51系列单片机实用接口技术

    本书全面、系统地介绍了MCS-51系列单片机应用系统的各种实用接口技术及其配置。   内容包括:MCS-51系列单片机组成原理:应用系统扩展、开发与调试;键盘输入接口的设计及调试;打印机和显示器接口及设计实例;模拟输入通道接口技术;A/D、D/A、接口技术及在控制系统中的应用设计;V/F转换器接口技术、串行通讯接口技术以及其它与应用系统设计有关的实用技术等。   本书是为满足广大科技工作者从事单片机应用系统软件、硬件设计的需要而编写的,具有内容新颖、实用、全面的特色。所有的接口设计都包括详细的设计步骤、硬件线路图及故障分析,并附有测试程序清单。书中大部分接口软、硬件设计实例都是作者多年来从事单片机应用和开发工作的经验总结,实用性和工程性较强,尤其是对应用系统中必备的键盘、显示器、打印机、A/D、D/A通讯接口设计、模拟信号处理及开发系统应用举例甚多,目的是让将要开始和正在从事单片机应用开发的科研人员根据自己的实际需要来选择应用,一书在手即可基本完成单片机应用系统的开发工作。   本书主要面向从事单片机应用开发工作的广大工程技术人员,也可作为大专院校有关专业的教材或教学参考书。 第一章MCS-51系列单片机组成原理   1.1概述   1.1.1单片机主流产品系列   1.1.2单片机芯片技术的发展概况   1.1.3单片机的应用领域   1.2MCS-51单片机硬件结构   1.2.1MCS-51单片机硬件结构的特点   1.2.2MCS-51单片机的引脚描述及片外总线结构   1.2.3MCS-51片内总体结构   1.2.4MCS-51单片机中央处理器及其振荡器、时钟电路和CPU时序   1.2.5MCS-51单片机的复位状态及几种复位电路设计   1.2.6存储器、特殊功能寄存器及位地址空间   1.2.7输入/输出(I/O)口   1.3MCS-51单片机指令系统分析   1.3.1指令系统的寻址方式   1.3.2指令系统的使用要点   1.3.3指令系统分类总结   1.4串行接口与定时/计数器   1.4.1串行接口简介   1.4.2定时器/计数器的结构   1.4.3定时器/计数器的四种工作模式   1.4.4定时器/计数器对输入信号的要求   1.4.5定时器/计数器的编程和应用   1.5中断系统   1.5.1中断请求源   1.5.2中断控制   1.5.3中断的响应过程   1.5.4外部中断的响应时间   1.5.5外部中断方式的选择   第二章MCS-51单片机系统扩展   2.1概述   2.2程序存贮器的扩展   2.2.1外部程序存贮器的扩展原理及时序   2.2.2地址锁存器   2.2.3EPROM扩展电路   2.2.4EEPROM扩展电路   2.3外部数据存贮器的扩展   2.3.1外部数据存贮器的扩展方法及时序   2.3.2静态RAM扩展   2.3.3动态RAM扩展   2.4外部I/O口的扩展   2.4.1I/O口扩展概述   2.4.2I/O口地址译码技术   2.4.38255A可编程并行I/O扩展接口   2.4.48155/8156可编程并行I/O扩展接口   2.4.58243并行I/O扩展接口   2.4.6用TTL芯片扩展I/O接口   2.4.7用串行口扩展I/O接口   2.4.8中断系统扩展   第三章MCS-51单片机应用系统的开发   3.1单片机应用系统的设计   3.1.1设计前的准备工作   3.1.2应用系统的硬件设计   3.1.3应用系统的软件设计   3.1.4应用系统的抗干扰设计   3.2单片机应用系统的开发   3.2.1仿真系统的功能   3.2.2开发手段的选择   3.2.3应用系统的开发过程   3.3SICE—IV型单片机仿真器   3.3.1SICE-IV仿真器系统结构   3.3.2SICE-IV的仿真特性和软件功能   3.3.3SICE-IV与主机和终端的连接使用方法   3.4KHK-ICE-51单片机仿真开发系统   3.4.1KHK—ICE-51仿真器系统结构   3.4.2仿真器系统功能特点   3.4.3KHK-ICE-51仿真系统的安装及其使用   3.5单片机应用系统的调试   3.5.1应用系统联机前的静态调试   3.5.2外部数据存储器RAM的测试   3.5.3程序存储器的调试   3.5.4输出功能模块调试   3.5.5可编程I/O接口芯片的调试   3.5.6外部中断和定时器中断的调试   3.6用户程序的编辑、汇编、调试、固化及运行   3.6.1源程序的编辑   3.6.2源程序的汇编   3.6.3用户程序的调试   3.6.4用户程序的固化   3.6.5用户程序的运行   第四章键盘及其接口技术   4.1键盘输入应解决的问题   4.1.1键盘输入的特点   4.1.2按键的确认   4.1.3消除按键抖动的措施   4.2独立式按键接口设计   4.3矩阵式键盘接口设计   4.3.1矩阵键盘工作原理   4.3.2按键的识别方法   4.3.3键盘的编码   4.3.4键盘工作方式   4.3.5矩阵键盘接口实例及编程要点   4.3.6双功能及多功能键设计   4.3.7键盘处理中的特殊问题一重键和连击   4.48279键盘、显示器接口芯片及应用   4.4.18279的组成和基本工作原理   4.4.28279管脚、引线及功能说明   4.4.38279编程   4.4.48279键盘接口实例   4.5功能开关及拨码盘接口设计   第五章显示器接口设计   5.1LED显示器   5.1.1LED段显示器结构与原理   5.1.2LED显示器及显示方式   5.1.3LED显示器接口实例   5.1.4LED显示器驱动技术   5.2单片机应用系统中典型键盘、显示接口技术   5.2.1用8255和串行口扩展的键盘、显示器电路   5.2.2由锁存器组成的键盘、显示器接口电路   5.2.3由8155构成的键盘、显示器接口电路   5.2.4用8279组成的显示器实例   5.3液晶显示LCD   5.3.1LCD的基本结构及工作原理   5.3.2LCD的驱动方式   5.3.34位LCD静态驱动芯片ICM7211系列简介   5.3.4点阵式液晶显示控制器HD61830介绍   5.3.5点阵式液晶显示模块介绍   5.4荧光管显示   5.5LED大屏幕显示器   第六章打印机接口设计   6.1打印机简介   6.1.1打印机的基本知识   6.1.2打印机的电路构成   6.1.3打印机的接口信号   6.1.4打印机的打印命令   6.2TPμP-40A微打与单片机接口设计   6.2.1TPμP系列微型打印机简介   6.2.2TPμP-40A打印功能及接口信号   6.2.3TPμP-40A工作方式及打印命令   6.2.48031与TPμP-40A的接口   6.2.5打印编程实例   6.3XLF微型打印机与单片机接口设计   6.3.1XLF微打简介   6.3.2XLF微打接口信号及与8031接口设计   6.3.3XLF微打控制命令   6.3.4打印机编程   6.4标准宽行打印机与8031接口设计   6.4.1TH3070接口引脚信号及时序   6.4.2与8031的简单接口   6.4.3通过打印机适配器完成8031与打印机的接口   6.4.4对打印机的编程   第七章模拟输入通道接口技术   7.1传感器   7.1.1传感器的分类   7.1.2温度传感器   7.1.3光电传感器   7.1.4湿度传感器   7.1.5其他传感器   7.2模拟信号放大技术   7.2.1基本放大器电路   7.2.2集成运算放大器   7.2.3常用运算放大器及应用举例   7.2.4测量放大器   7.2.5程控增益放大器   7.2.6隔离放大器   7.3多通道模拟信号输入技术   7.3.1多路开关   7.3.2常用多路开关   7.3.3模拟多路开关   7.3.4常用模拟多路开关   7.3.5多路模拟开关应用举例   7.3.6多路开关的选用   7.4采样/保持电路设计   7.4.1采样/保持原理   7.4.2集成采样/保持器   7.4.3常用集成采样/保持器   7.4.4采样保持器的应用举例   7.5有源滤波器的设计   7.5.1滤波器分类   7.5.2有源滤波器的设计   7.5.3常用有源滤波器设计举例   7.5.4集成有源滤波器   第八章D/A转换器与MCS-51单片机的接口设计与实践   8.1D/A转换器的基本原理及主要技术指标   8.1.1D/A转换器的基本原理与分类   8.1.2D/A转换器的主要技术指标   8.2D/A转换器件选择指南   8.2.1集成D/A转换芯片介绍   8.2.2D/A转换器的选择要点及选择指南表   8.2.3D/A转换器接口设计的几点实用技术   8.38位D/A转换器DAC080/0831/0832与MCS-51单片机的接口设计   8.3.1DAC0830/0831/0832的应用特性与引脚功能   8.3.2DAC0830/0831/0832与8031单片机的接口设计   8.3.3DAC0830/0831/0832的调试说明   8.3.4DAC0830/0831/0832应用举例   8.48位D/A转换器AD558与MCS-51单片机的接口设计   8.4.1AD558的应用特性与引脚功能   8.4.2AD558与8031单片机的接口及调试说明   8.4.38位D/A转换器DAC0800系列与8031单片机的接口   8.510位D/A转换器AD7522与MCS-51的硬件接口设计   8.5.1AD7522的应用特性及引脚功能   8.5.2AD7522与8031单片机的接口设计   8.610位D/A转换器AD7520/7530/7533与MCS一51单片机的接口设计   8.6.1AD7520/7530/7533的应用特性与引脚功能   8.6.2AD7520系列与8031单片机的接口   8.6.3DAC1020/DAC1220/AD7521系列D/A转换器接口设计   8.712位D/A转换器DAC1208/1209/1210与MCS-51单片机的接口设计   8.7.1DAC1208/1209/1210的内部结构与引脚功能   8.7.2DAC1208/1209/1210与8031单片机的接口设计   8.7.312位D/A转换器DAC1230/1231/1232的应用设计说明   8.7.412位D/A转换器AD7542与8031单片机的接口设计   8.812位串行DAC-AD7543与MCS-51单片机的接口设计   8.8.1AD7543的应用特性与引脚功能   8.8.2AD7543与8031单片机的接口设计   8.914位D/A转换器AD75335与MCS-51单片机的接口设计   8.9.1AD8635的内部结构与引脚功能   8.9.2AD7535与8031单片机的接口设计   8.1016位D/A转换器AD1147/1148与MCS-51单片机的接口设计   8.10.1AD1147/AD1148的内部结构及引脚功能   8.10.2AD1147/AD1148与8031单片机的接口设计   8.10.3AD1147/AD1148接口电路的应用调试说明   8.10.416位D/A转换器AD1145与8031单片机的接口设计   第九章A/D转换器与MCS-51单片机的接口设计与实践   9.1A/D转换器的基本原理及主要技术指标   9.1.1A/D转换器的基本原理与分类   9.1.2A/D转换器的主要技术指标   9.2面对课题如何选择A/D转换器件   9.2.1常用A/D转换器简介   9.2.2A/D转换器的选择要点及应用设计的几点实用技术   9.38位D/A转换器ADC0801/0802/0803/0804/0805与MCS-51单片机的接口设计   9.3.1ADC0801~ADC0805芯片的引脚功能及应用特性   9.3.2ADC0801~ADC0805与8031单片机的接口设计   9.48路8位A/D转换器ADC0808/0809与MCS一51单片机的接口设计   9.4.1ADC0808/0809的内部结构及引脚功能   9.4.2ADC0808/0809与8031单片机的接口设计   9.4.3接口电路设计中的几点注意事项   9.4.416路8位A/D转换器ADC0816/0817与MCS-51单片机的接口设计   9.510位A/D转换器AD571与MCS-51单片机的接口设计   9.5.1AD571芯片的引脚功能及应用特性   9.5.2AD571与8031单片机的接口   9.5.38位A/D转换器AD570与8031单片机的硬件接口   9.612位A/D转换器ADC1210/1211与MCS-51单片机的接口设计   9.6.1ADC1210/1211的引脚功能与应用特性   9.6.2ADC1210/1211与8031单片机的硬件接口   9.6.3硬件接口电路的设计要点及几点说明   9.712位A/D转换器AD574A/1374/1674A与MCS-51单片机的接口设计   9.7.1AD574A的内部结构与引脚功能   9.7.2AD574A的应用特性及校准   9.7.3AD574A与8031单片机的硬件接口设计   9.7.4AD574A的应用调试说明   9.7.5AD674A/AD1674与8031单片机的接口设计   9.8高速12位A/D转换器AD578/AD678/AD1678与MCS—51单片机的接口设计   9.8.1AD578的应用特性与引脚功能   9.8.2AD578高速A/D转换器与8031单片机的接口设计   9.8.3AD578高速A/D转换器的应用调试说明   9.8.4AD678/AD1678采样A/D转换器与8031单片机的接口设计   9.914位A/D转换器AD679/1679与MCS-51单片机的接口设计   9.9.1AD679/AD1679的应用特性及引脚功能   9.9.2AD679/1679与8031单片机的接口设计   9.9.3AD679/1679的调试说明   9.1016位ADC-ADC1143与MCS-51单片机的接口设计   9.10.1ADC1143的应用特性及引脚功能   9.10.2ADC1143与8031单片机的接口设计   9.113位半积分A/D转换器5G14433与MCS-51单片机的接口设计   9.11.15G14433的内部结构及引脚功能   9.11.25G14433的外部电路连接与元件参数选择   9.11.35G14433与8031单片机的接口设计   9.11.45G14433的应用举例   9.124位半积分A/D转换器ICL7135与MCS—51单片机的接口设计   9.12.1ICL7135的内部结构及芯片引脚功能   9.12.2ICL7135的外部电路连接与元件参数选择   9.12.3ICL7135与8031单片机的硬件接口设计   9.124ICL7135的应用举例   9.1312位双积分A/D转换器ICL7109与MCS—51单片机的接口设计   9.13.1ICL7109的内部结构与芯片引脚功能   9.13.2ICL7109的外部电路连接与元件参数选择   9.13.3ICL7109与8031单片机的硬件接口设计   9.1416位积分型ADC一ICL7104与MCS-51单片机的接口设计   9.14.1ICL7104的主要应用特性及引脚功能   9.14.2ICL7104与8031单片机的接口设计   9.14.3其它积分型A/D转换器简介   第十章V/F转换器接口技术   10.1V/F转换的特点及应用环境   10.2V/F转换原理及用V/F转换器实现A/D转换的方法   10.2.1V/F转换原理   10.2.2用V/F转换器实现A/D转换的方法   10.3常用V/F转换器简介   10.3.1VFC32   10.3.2LMX31系列V/F转换器   10.3.3AD650   10.3.4AD651   10.4V/F转换应用系统中的通道结构   10.5LM331应用实例   10.5.1线路原理   10.5.2软件设计   10.6AD650应用实例   10.6.1AD650外围电路设计   10.6.2定时/计数器(8253—5简介)   10.6.3线路原理   10.6.4软件设计   第十一章串行通讯接口技术   11.1串行通讯基础   11.1.1异步通讯和同步通讯   11.1.2波特率和接收/发送时钟   11.1.3单工、半双工、全双工通讯方式   11.14信号的调制与解调   11.1.5通讯数据的差错检测和校正   11.1.6串行通讯接口电路UART、USRT和USART   11.2串行通讯总线标准及其接口   11.2.1串行通讯接口   11.2.2RS-232C接口   11.2.3RS-449、RS-422、RS-423及RS485   11.2.420mA电流环路串行接口   11.3MCS-51单片机串行接口   11.3.1串行口的结构   11.3.2串行接口的工作方式   11.3.3串行通讯中波特率设置   11.4MCS-51单片机串行接口通讯技术   11.4.1单片机双机通讯技术   11.4.2单片机多机通讯技术   11.5IBMPC系列机与单片机的通讯技术   11.5.1异步通讯适配器   11.5.2IBM-PC机与8031双机通讯技术   11.5.3IBM—PC机与8031多机通讯技术   11.6MCS-51单片机串行接口的扩展   11.6.1Intel8251A可编程通讯接口   11.6.2扩展多路串行口的硬件设计   11.6.3通讯软件设计   第十二章应用系统设计中的实用技术   12.1MCS-51单片机低功耗系统设计   12.1.1CHMOS型单片机80C31/80C51/87C51的组成与使用要点   12.1.2CHMOS型单片机的空闲、掉电工作方式   12.1.3CHMOS型单片机的I/O接口及应用系统实例   12.1.4HMOS型单片机的节电运行方式   12.2逻辑电平接口技术   12.2.1集电极开路门输出接口   12.2.2TTL、HTL、ECL、CMOS电平转换接口   12.3电压/电流转换   12.3.1电压/0~10mA转换   12.3.2电压1~5V/4~20mA转换   12.3.30~10mA/0~5V转换   12.344~20mA/0~5V转换   12.3.5集成V/I转换电路   12.4开关量输出接口技术   12.4.1输出接口隔离技术   12.4.2低压开关量信号输出技术   12.4.3继电器输出接口技术   12.4.4可控硅(晶闸管)输出接口技术   12.4.5固态继电器输出接口   12.4.6集成功率电子开关输出接口   12.5集成稳压电路   12.5.1电源隔离技术   12.5.2三端集成稳压器   12.5.3高精度电压基准   12.6量程自动转换技术   12.6.1自动转换量程的硬件电路   12.6.2自动转换量程的软件设计   附录AMCS-51单片机指令速查表   附录B常用EPROM固化电压参考表   参考文献

    标签: MCS 51 单片机实用 接口技术

    上传时间: 2013-10-15

    上传用户:himbly

  • PSHLY-B回路电阻测试仪

    PSHLY-B回路电阻测试仪介绍

    标签: PSHLY-B 回路 电阻测试仪

    上传时间: 2013-11-05

    上传用户:木子叶1

  • linux 中断和设备驱动

    linux 中断和设备驱动 本章介绍L i n u x内核是如何维护它支持的文件系统中的文件的,我们先介绍 V F S ( Vi r t u a lFile System,虚拟文件系统),再解释一下L i n u x内核的真实文件系统是如何得到支持的。L i n u x的一个最重要特点就是它支持许多不同的文件系统。这使 L i n u x非常灵活,能够与许多其他的操作系统共存。在写这本书的时候, L i n u x共支持1 5种文件系统: e x t、 e x t 2、x i a、 m i n i x、 u m s d o s、 msdos 、v f a t、 p r o c、 s m b、 n c p、 i s o 9 6 6 0、 s y s v、 h p f s、 a ffs 和u f s。无疑随着时间的推移,L i n u x支持的文件系统数还会增加。

    标签: linux 中断 设备驱动

    上传时间: 2013-11-13

    上传用户:zxh122

  • PIC单片机设计电子密码锁

    介绍用PIC16F84单片机制作的电子密码锁。PIC16F84单片机共18个引脚,13个可用I/O接口。芯片内有1K×14的FLASHROM程序存储器,36×8的静态RAM的通用寄存器,64×8的EEPROM的数据存储器,8级深度的硬堆栈。 用PIC单片机设计的电子密码锁微芯公司生产的PIC8位COMS单片机,采用类RISC指令集和哈弗总线结构,以及先进的流水线时序,与传统51单片机相比其在速度和性能方面更具优越性和先进性。PIC单片机的另一个优点是片上硬件资源丰富,集成常见的EPROM、DAC、PWM以及看门狗电路。这使得硬件电路的设计更加简单,节约设计成本,提高整机性能。因此PIC单片机已成为产品开发,尤其是产品设计和研制阶段的首选控制器。本文介绍用PIC16F84单片机制作的电子密码锁。PIC16F84单片机共18个引脚,13个可用I/O接口。芯片内有1K×14的FLASHROM程序存储器,36×8的静态RAM的通用寄存器,64×8的EEPROM的数据存储器,8级深度的硬堆栈。硬件设计  电路原理见图1。Xx8位数据线接4x4键盘矩阵电路,面板布局见表1,A、B、C、D为备用功能键。RA0、RA7输出4组编码二进制数据,经74LS139译码后输出逐行扫描信号,送RB4-RB7列信号输入端。余下半个139译码器动扬声器。RB2接中功率三极管基极,驱动继电器动作。有效密码长度为4位,根据实际情况,可通过修改源程序增加密码位数。产品初始密码为3345,这是一随机数,无特殊意义,目的是为防止被套解。用户可按*号键修改密码,按#号键结束。输入密码并按#号确认之后,脚输出RB2脚输出高电平,继电器闭合,执行一次开锁动作。  若用户输入的密码正确,扬声器发出一声稍长的“滴”提示声,若输入的密码与上次修改的不符,则发出短促的“滴”声。连续3次输入密码错误之后,程序锁死,扬声器报警。直到CPU被复位或从新上电。软件设计  软件流程图见图3。CPU上电或复位之后将最近一次修改并保存到EEPROM的密码读出,最为参照密匙。然后等待用户输入开锁密码。若5分钟以内没有接受到用户的任何输入,CPU自动转入掉电模式,用户输入任意值可唤醒CPU。每次修改密码之后,CPU将新的密码存入内部4个连续的EEPROM单元,掉电后该数据任有效。每执行一次开锁指令,CPU将当前输入密码与该值比较,看是否真确,并给出相应的提示和控制。布     局  所有元件均使用SMD表贴封装,缩小体积,便于产品安装,60X60双面PCB板,顶层是一体化输入键盘,底层是元件层。成型后的产品体积小巧,能很方便的嵌入防盗铁门、保险箱柜。

    标签: PIC 单片机设计 电子密码锁

    上传时间: 2013-10-31

    上传用户:uuuuuuu

  • 驱动程序与应用程序的接口

    有两种方式可以让设备和应用程序之间联系:1. 通过为设备创建的一个符号链;2. 通过输出到一个接口WDM驱动程序建议使用输出到一个接口而不推荐使用创建符号链的方法。这个接口保证PDO的安全,也保证安全地创建一个惟一的、独立于语言的访问设备的方法。一个应用程序使用Win32APIs来调用设备。在某个Win32 APIs和设备对象的分发函数之间存在一个映射关系。获得对设备对象访问的第一步就是打开一个设备对象的句柄。 用符号链打开一个设备的句柄为了打开一个设备,应用程序需要使用CreateFile。如果该设备有一个符号链出口,应用程序可以用下面这个例子的形式打开句柄:hDevice = CreateFile("\\\\.\\OMNIPORT3",  GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ,  NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL ,NULL);文件路径名的前缀“\\.\”告诉系统本调用希望打开一个设备。这个设备必须有一个符号链,以便应用程序能够打开它。有关细节查看有关Kdevice和CreateLink的内容。在上述调用中第一个参数中前缀后的部分就是这个符号链的名字。注意:CreatFile中的第一个参数不是Windows 98/2000中驱动程序(.sys文件)的路径。是到设备对象的符号链。如果使用DriverWizard产生驱动程序,它通常使用类KunitizedName来构成设备的符号链。这意味着符号链名有一个附加的数字,通常是0。例如:如果链接名称的主干是L“TestDevice”那么在CreateFile中的串就该是“\\\\.\\TestDevice0”。如果应用程序需要被覆盖的I/O,第六个参数(Flags)必须或上FILE_FLAG_OVERLAPPED。 使用一个输出接口打开句柄用这种方式打开一个句柄会稍微麻烦一些。DriverWorks库提供两个助手类来使获得对该接口的访问容易一些,这两个类是CDeviceInterface, 和 CdeviceInterfaceClass。CdeviceInterfaceClass类封装了一个设备信息集,该信息集包含了特殊类中的所有设备接口信息。应用程序能有用CdeviceInterfaceClass类的一个实例来获得一个或更多的CdeviceInterface类的实例。CdeviceInterface类是一个单一设备接口的抽象。它的成员函数DevicePath()返回一个路径名的指针,该指针可以在CreateFile中使用来打开设备。下面用一个小例子来显示这些类最基本的使用方法:extern GUID TestGuid;HANDLE OpenByInterface(  GUID* pClassGuid,  DWORD instance,  PDWORD pError){  CDeviceInterfaceClass DevClass(pClassGuid, pError);  if (*pError != ERROR_SUCCESS)    return INVALID_HANDLE_VALUE;  CDeviceInterface DevInterface(&DevClass, instance, pError);  if (*pError != ERROR_SUCCESS)    return INVALID_HANDLE_VALUE;  cout << "The device path is "    << DevInterface.DevicePath()    << endl;   HANDLE hDev;  hDev = CreateFile(   DevInterface.DevicePath(),    GENERIC_READ | GENERIC_WRITE,    FILE_SHARE_READ | FILE_SHARE_WRITE,    NULL,    OPEN_EXISTING,    FILE_ATTRIBUTE_NORMAL,    NULL  );  if (hDev == INVALID_HANDLE_VALUE)    *pError = GetLastError();  return hDev;} 在设备中执行I/O操作一旦应用程序获得一个有效的设备句柄,它就能使用Win32 APIs来产生到设备对象的IRPs。下面的表显示了这种对应关系。Win32 API  DRIVER_FUNCTION_xxxIRP_MJ_xxx  KDevice subclass member function CreateFile  CREATE  Create ReadFile  READ  Read WriteFile  WRITE  Write DeviceIoControl  DEVICE_CONTROL  DeviceControl CloseHandle  CLOSECLEANUP  CloseCleanUp 需要解释一下设备类成员的Close和CleanUp:CreateFile使内核为设备创建一个新的文件对象。这使得多个句柄可以映射同一个文件对象。当这个文件对象的最后一个用户级句柄被撤销后,I/O管理器调用CleanUp。当没有任何用户级和核心级的对文件对象的访问的时候,I/O管理器调用Close。如果被打开的设备不支持指定的功能,则调用相应的Win32将引起错误(无效功能)。以前为Windows95编写的VxD的应用程序代码中可能会在打开设备的时候使用FILE_FLAG_DELETE_ON_CLOSE属性。在Windows NT/2000中,建议不要使用这个属性,因为它将导致没有特权的用户企图打开这个设备,这是不可能成功的。I/O管理器将ReadFile和WriteFile的buff参数转换成IRP域的方法依赖于设备对象的属性。当设备设置DO_DIRECT_IO标志,I/O管理器将buff锁住在存储器中,并且创建了一个存储在IRP中的MDL域。一个设备可以通过调用Kirp::Mdl来存取MDL。当设备设置DO_BUFFERED_IO标志,设备对象分别通过KIrp::BufferedReadDest或 KIrp::BufferedWriteSource为读或写操作获得buff地址。当设备不设置DO_BUFFERED_IO标志也不设置DO_DIRECT_IO,内核设置IRP 的UserBuffer域来对应ReadFile或WriteFile中的buff参数。然而,存储区并没有被锁住而且地址只对调用进程有效。驱动程序可以使用KIrp::UserBuffer来存取IRP域。对于DeviceIoControl调用,buffer参数的转换依赖于特殊的I/O控制代码,它不在设备对象的特性中。宏CTL_CODE(在winioctl.h中定义)用来构造控制代码。这个宏的其中一个参数指明缓冲方法是METHOD_BUFFERED, METHOD_IN_DIRECT, METHOD_OUT_DIRECT, 或METHOD_NEITHER。下面的表显示了这些方法和与之对应的能获得输入缓冲与输出缓冲的KIrp中的成员函数:Method  Input Buffer Parameter  Output Buffer Parameter METHOD_BUFFERED  KIrp::IoctlBuffer KIrp::IoctlBuffer METHOD_IN_DIRECT  KIrp::IoctlBuffer KIrp::Mdl METHOD_OUT_DIRECT  KIrp::IoctlBuffer KIrp::Mdl METHOD_NEITHER  KIrp::IoctlType3InputBuffer KIrp::UserBuffer 如果控制代码指明METHOD_BUFFERED,系统分配一个单一的缓冲来作为输入与输出。驱动程序必须在向输出缓冲放数据之前拷贝输入数据。驱动程序通过调用KIrp::IoctlBuffer获得缓冲地址。在完成时,I/O管理器从系统缓冲拷贝数据到提供给Ring 3级调用者使用的缓冲中。驱动程序必须在结束前存储拷贝到IRP的Information成员中的数据个数。如果控制代码不指明METHOD_IN_DIRECT或METHOD_OUT_DIRECT,则DeviceIoControl的参数呈现不同的含义。参数InputBuffer被拷贝到一个系统缓冲,这个缓冲驱动程序可以通过调用KIrp::IoctlBuffer。参数OutputBuffer被映射到KMemory对象,驱动程序对这个对象的访问通过调用KIrp::Mdl来实现。对于METHOD_OUT_DIRECT,调用者必须有对缓冲的写访问权限。注意,对METHOD_NEITHER,内核只提供虚拟地址;它不会做映射来配置缓冲。虚拟地址只对调用进程有效。这里是一个用METHOD_BUFFERED的例子:首先,使用宏CTL_CODE来定义一个IOCTL代码:#define IOCTL_MYDEV_GET_FIRMWARE_REV \CTL_CODE (FILE_DEVICE_UNKNOWN,0,METHOD_BUFFERED,FILE_ANY_ACCESS)现在使用一个DeviceIoControl调用:BOOLEAN b;CHAR FirmwareRev[60];ULONG FirmwareRevSize;b = DeviceIoControl(hDevice, IOCTL_MYDEV_GET_VERSION_STRING,  NULL, // no input  注意,这里放的是包含有执行操作命令的字符串指针  0, FirmwareRev,      //这里是output串指针,存放从驱动程序中返回的字符串。sizeof(FirmwareRev),& FirmwareRevSize,  NULL // not overlapped I/O );如果输出缓冲足够大,设备拷贝串到里面并将拷贝的资结束设置到FirmwareRevSize中。在驱动程序中,代码看起来如下所示:const char* FIRMWARE_REV = "FW 16.33 v5";NTSTATUS MyDevice::DeviceControl( KIrp I ){  ULONG fwLength=0;  switch ( I.IoctlCode() )  {    case IOCTL_MYDEV_GET_FIRMWARE_REV:      fwLength = strlen(FIRMWARE_REV)+1;      if (I.IoctlOutputBufferSize() >= fwLength)      {        strcpy((PCHAR)I.IoctlBuffer(),FIRMWARE_REV);        I.Information() = fwLength;         return I.Complete(STATUS_SUCCESS);      }      else      {              }    case . . .   } }

    标签: 驱动程序 应用程序 接口

    上传时间: 2013-10-17

    上传用户:gai928943