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

双<b>电源供</b>电

  • 溫度華氏轉變攝氏 #include <stdio.h> #include <stdlib.h> enum x {A,B,C,D,E} int main(void)

    溫度華氏轉變攝氏 #include <stdio.h> #include <stdlib.h> enum x {A,B,C,D,E} int main(void) { int a=73,b=85,c=66 { if (a>=90) printf("a=A等級!!\n") else if (a>=80) printf("73分=B等級!!\n") else if (a>=70) printf("73分=C等級!!\n") else if (a>=60) printf("73分=D等級!!\n") else if (a<60) printf("73分=E等級!!\n") } { if (b>=90) printf("b=A等級!!\n") else if (b>=80) printf("85分=B等級!!\n") else if (b>=70) printf("85分=C等級!!\n") else if (b>=60) printf("85分=D等級!!\n") else if (b<60) printf("85分=E等級!!\n") } { if (c>=90) printf("c=A等級!!\n") else if (c>=80) printf("66分=B等級!!\n") else if (c>=70) printf("66分=C等級!!\n") else if (c>=60) printf("66分=D等級!!\n") else if (c<60) printf("66分=E等級!!\n") } system("pause") return 0 }

    标签: include stdlib stdio gt

    上传时间: 2013-12-12

    上传用户:亚亚娟娟123

  • 给定两个集合A、B

    给定两个集合A、B,集合内的任一元素x满足1 ≤ x ≤ 109,并且每个集合的元素个数不大于105。我们希望求出A、B之间的关系。 任 务 :给定两个集合的描述,判断它们满足下列关系的哪一种: A是B的一个真子集,输出“A is a proper subset of B” B是A的一个真子集,输出“B is a proper subset of A” A和B是同一个集合,输出“A equals B” A和B的交集为空,输出“A and B are disjoint” 上述情况都不是,输出“I m confused!”

    标签:

    上传时间: 2017-03-15

    上传用户:yulg

  • 电子式互感器的关键技术及其相关理论研究.rar

    电子式互感器与传统电磁式互感器相比,在带宽、绝缘和成本等方面具有优势,因而代表了高电压等级电力系统中电流和电压测量的一种极具吸引力的发展方向。随着信息技术的发展和电力市场中竞争机制的形成,电子式互感器成为人们研究的热点;越来越多的新技术被引入到电子式互感器设计中,以提高其工作可靠性,降低运行总成本,减小对生态环境的压力。本文围绕电子式互感器实用化中的关键技术而展开理论与实验研究,具体包括新型传感器、双传感器的数据融合算法、数字接口、组合式电源、低功耗技术和自监测功能的实现等。 目前电子式电流互感器(ECT)大多数采用单传感器开环结构,对每个环节的精度和可靠性的要求都很高,严重制约了ECT整体性能的提高,影响其实用化。本文介绍了新型传感器~铁心线圈式低功率电流传感器(LPET)和印刷电路板(PCB)空心线圈及其数字积分器,在此基础上设计了一种基于LPCT和PCB空心线圈的组合结构的新型电流传感器。该结构具有并联的特点,结合了这两种互感器的优点,采用数据融合算法来处理两路信号,实现高精度测量和提高系统可靠性,并探索出辨别LPET饱和的新方法。试验和仿真结果表明,这种新型电流传感器可以覆盖较大的电流测量范围,达到IEC 60044-8标准中关于测量(幅值误差)、保护(复合误差)和暂态响应(峰值)的准确度要求,能够作为多用途电流传感器使用。 在电子式电压互感器方面,基于精密电阻分压器的新型传感器在原理、结构和输出信号等方面与传统的电压互感器有很大不同,本文设计了一种可替代10kV电磁式电压互感器的精密电阻分压器。通过试验研究与计算分析,得出其性能主要受电阻特性和杂散电容的影响,并给出了减小其误差的方法。测试结果表明,设计的10kV精密电阻分压器的准确度满足IEC 60044-7标准要求,可达0.2级。 电子式互感器的关键技术之一是内部的数字化以及其标准化接口,本文以10kV组合型电子式互感器为对象设计了一种实用化的数字系统。以精密电阻分压器作为电压传感器,电流传感器则采用基于数据融合算法的LPCT和PCB空心线圈的组合结构。本文首先解决了互感器间的同步与传感器间的内部同步问题,进而依照IEC61850-9-1标准,实现了组合型电子式互感器的100M以太网接口。 电子式电流互感器在高电压等级的应用研究中,ECT高压侧的电源问题是关键技术之一。论文首先分析了两种电源方案:取电CT电源和激光电源。取电CT电源通过一个特制的电流互感器(取电CT),直接从高压侧母线电流中获取电能。在取电CT和整流桥之间设计一个串联电感,大大降低了施加在整流桥上的的感应电压并限制了取电CT的输出电流,起到了稳定电压和保护后续电路的作用。激光电源方案以先进的光电转换器、半导体激光二极管和光纤为基础,单独一根上行光纤同时完成供能和控制信号的传输,在不影响光供能稳定性的情况下,数据通信完成在短暂的供能间隔中。在高电位端控制信号通过在能量变换电路中增加一个比较器电路被提取出来。本文还提出了一种将两种供能方式结合使用的组合电源,并设计了这两种电源之间的切换方法,解决了取电CT电源的死区问题,延长了激光器的使用寿命。作为综合应用实例,设计并完成了以LPCT为传感器、由组合电源供能、采用低功耗技术的高压电子式电流互感器。互感器高压侧的一次转换器能够提供两路传感器数据通道,并且具有温度补偿和采集通道的自校正功能,在更宽温度、更大电流范围内保证了极高的测量精度:互感器低电位端的二次转换器具有数字和模拟接口,可以接收数据并发送命令来控制一次转换器,包括同步和校正命令在内的数据信号可以通过同一根供能光纤传送到一次转换器。该互感器具有在线监测功能,这种预防性维护和自检测功能够提示维护或提出警告,提高了可靠性。系统测试表明:具有低功耗光纤发射驱动电路的一次转换器平均功耗在40mw以下:上行光纤中通信波特率可以达到200kb/s,下行光纤中更是高达2Mb/s;系统准确度同时满足IEC6044-8标准对0.2S级测量和5TPE级保护电子式互感器的要求。

    标签: 电子式互感器 关键技术

    上传时间: 2013-06-09

    上传用户:handless

  • 电位计讯号转换器

    电位计讯号转换器 AT-PM1-P1-DN-ADL 1.产品说明 AT系列转换器/分配器主要设计使用于一般讯号迴路中之转换与隔离;如 4~20mA、0~10V、热电偶(Type K, J, E, T)、热电阻(Rtd-Pt100Ω)、荷重元、电位计(三線式)、电阻(二線式)及交流电压/电流等讯号,机种齐全。 此款薄型设计的转换器/分配器,除了能提供两组讯号输出(输出间隔离)或24V激发电源供传送器使用外,切换式电源亦提供了安装的便利性。上方并设计了电源、输入及输出指示灯及可插拔式接线端子方便现场施工及工作状态检视。 2.产品特点 可选择带指拨开关切换,六种常规输出信号0-5V/0~10V/1~5V/2~10V/4~20mA/ 0~20mA 可自行切换。 双回路输出完全隔离,可选择不同信号。 设计了电源、输入及输出LED指示灯,方便现场工作状态检视。 规格选择表中可指定选购0.1%精度 17.55mm薄型35mm导轨安装。 依据CE国际标准规范设计。 3.技术规格 用途:信号转换及隔离 过载输入能力:电流:10×额定10秒 第二组输出:可选择 输入范围:P1:0 Ω ~ 50.0 Ω / ~ 2.0 KΩ P2:0 Ω ~ 2.0 KΩ / ~ 100.0 KΩ 精确度: ≦±0.2% of F.S. ≦±0.1% of F.S. 侦测电压:1.6V 输入耗损: 交流电流:≤ 0.1VA; 交流电压:≤ 0.15VA 反应时间: ≤ 250msec (10%~90% of FS) 输出波紋: ≤ ±0.1% of F.S. 满量程校正范围:≤ ±10% of F.S.,2组输出可个别调整 零点校正范围:≤ ±10% of F.S.,2组输出可个别调整 隔离:AC 2.0 KV 输出1与输出2之间 隔离抗阻:DC 500V 100MΩ 工作电源: AC 85~265V/DC 100~300V, 50/60Hz 或 AC/DC 20~56V (选购规格) 消耗功率: DC 4W, AC 6.0VA 工作溫度: 0~60 ºC 工作湿度: 20~95% RH, 无结露 温度系数: ≤ 100PPM/ ºC (0~50 ºC) 储存温度: -10~70 ºC 保护等级: IP 42 振动测试: 1~800 Hz, 3.175 g2/Hz 外观尺寸: 94.0mm x 94.0mm x 17.5mm 外壳材质: ABS防火材料,UL94V0 安装轨道: 35mm DIN導軌 (EN50022) 重量: 250g 安全规范(LVD): IEC 61010 (Installation category 3) EMC: EN 55011:2002; EN 61326:2003 EMI: EN 55011:2002; EN 61326:2003 常用规格:AT-PM1-P1-DN-ADL 电位计讯号转换器,一组输出,输入范围:0 Ω ~ 50.0 Ω / ~ 2.0 KΩ,输出一组输出4-20mA,工作电源AC/DC20-56V

    标签: 电位计 讯号 转换器

    上传时间: 2013-11-05

    上传用户:feitian920

  • 基于2SD315AI的静电除尘用高频高压电源研制

    研制了一种新型的用于除尘系统的大功率高频高压供电电源。给出了电源主电路和控制电路的设计过程,着重研究了基于2SD315AI模块的驱动电路设计。电源的主电路由整流电路、逆变电路、高频变压器和高压整流电路组成;控制电路由主控芯片、升压调理电路、驱动电路和故障反馈电路组成。实验结果表明文中设计的控制电路及驱动电路工作稳定,性能较好能够满足大功率高频高压除尘电源的需求。

    标签: 2SD 315 SD AI

    上传时间: 2014-01-15

    上传用户:古谷仁美

  • 交直流转换器

    交直流转换器 AT-VA2-D-A3-DD-ADL 1.产品说明 AT系列转换器/分配器主要设计使用于一般讯号迴路中之转换与隔离;如 4~20mA、0~10V、热电偶(Type K, J, E, T)、热电阻(Rtd-Pt100Ω)、荷重元、电位计(三線式)、电阻(二線式)及交流电压/电流等讯号,机种齐全。 此款薄型设计的转换器/分配器,除了能提供两组讯号输出(输出间隔离)或24V激发电源供传送器使用外,切换式电源亦提供了安装的便利性。上方并设计了电源、输入及输出指示灯及可插拔式接线端子方便现场施工及工作状态检视。 2.产品特点 可选择带指拨开关切换,六种常规输出信号0-5V/0~10V/1~5V/2~10V/4~20mA/ 0~20mA 可自行切换。 双回路输出完全隔离,可选择不同信号。 设计了电源、输入及输出LED指示灯,方便现场工作状态检视。 规格选择表中可指定选购0.1%精度 17.55mm薄型35mm导轨安装。 依据CE国际标准规范设计。 3.技术规格 用途:信号转换及隔离 过载输入能力:电流:10×额定10秒 第二组输出:可选择 精确度: 交流: ≦±0.5% of F.S. 直流: ≦±0.2% of F.S. 输入耗损: 交流电流:≤ 0.1VA; 交流电压:≤ 0.15VA 反应时间: ≤ 250msec (10%~90% of FS) 输出波紋: ≤ ±0.1% of F.S. 满量程校正范围:≤ ±10% of F.S.,2组输出可个别调整 零点校正范围:≤ ±10% of F.S.,2组输出可个别调整 隔离:AC 2.0 KV 输出1与输出2之间 隔离抗阻:DC 500V 100MΩ 工作电源: AC 85~265V/DC 100~300V, 50/60Hz 或 AC/DC 20~56V (选购规格) 消耗功率: DC 4W, AC 6.0VA 工作溫度: 0~60 ºC 工作湿度: 20~95% RH, 无结露 温度系数: ≤ 100PPM/ ºC (0~50 ºC) 储存温度: -10~70 ºC 保护等级: IP 42 振动测试: 1~800 Hz, 3.175 g2/Hz 外观尺寸: 94.0mm x 94.0mm x 17.5mm 外壳材质: ABS防火材料,UL94V0 安装轨道: 35mm DIN導軌 (EN50022) 重量: 250g 安全规范(LVD): IEC 61010 (Installation category 3) EMC: EN 55011:2002; EN 61326:2003 EMI: EN 55011:2002; EN 61326:2003 常用规格:AT-VA2-D-A3-DD-ADL 交直流转换器,2组输出,输入交流输入0-19.99mA,输出1:4-20mA,输出2:4-20mA,工作电源AC/DC20-56V

    标签: 交直流 转换器

    上传时间: 2013-11-22

    上传用户:nem567397

  • 电源仿真

    双输出电源仿真,可以实现正负5负,正负12负,正负15负的稳定电压,实物效果和仿真一致。纹波系数小,带负载能力强。

    标签: 电源仿真

    上传时间: 2013-11-25

    上传用户:清山绿水

  • AVR mega128开发板

    AVR mega128开发板 联系  杨迪 15336417867  0531-55508458 QQ:1347978253  http://www.easyele.cn 产品概述:AVR mega128开发板是AVRVi开发的基于Atmega128单片机的综合学习开发系统,板载学习资源,集成JTAG仿真器和ISP下载功能,核心板可拆卸独立使用,是你学习AVR单片机,参加各类电子设计竞赛,快速搭建产品的不二选择。AVR mega128开发板亦可以作为单片机培训,高校实验室,课程设计等的实验器材。为了更好的支持客户的学习和开发,此开发板板通讯接口升级为USB接口,方便计算机没有串口的朋友,学习起来更加简捷。货号:EasyAVRM128SK-A  规格: 套  重量:300克  单价498/套。 参数特色: 1.采用核心板和主板分离的形式,在系统的学习之后,可以把核心板直接用于产品中,快速搭建系统。 2.开发板上集成了AVR JTAG ICE仿真器和AVR ISP编程器,超高性价比。 3.您只需要再拥有一台计算机,而不需要购买仿真器和编程器就可以学习开发了。 4.信号调理电路,输入0~10V,轨至轨信号调理。 5.系统资源适中,性价比高。 6.丰富的学习资源,完善的产品支持。 7.EasyAVR教给你从开发环境建立,软件编译,到下载,传真,硬件设计等一系列电子工程师必备的技能,真正学以致用。 AVR mega128开发板板上资源: M128 所有引脚引出,可以利用杜邦头很方便的进行接插扩展,标准2.54针距,可以直接插在万用板上使用,便于进行实验 m128 DB Core 自带5V、3V3 双路电源稳压 m128 DB Core 外部晶振多种选择,既可以使用板上已经焊接好的14.7456M的晶振,也可以自己根据自己的需求扩展,晶振的切换通过跳线实现m128 DB Core 带有JTAG ISP 标准接口 m128 DB Core 自带一路标准RS232-TTL转换电路,方便实现串口通信 AVR mega128 开发板底板:板载JTAG 仿真器 板载STK500 下载内核 2路独立可调的信号调理电路,可控增益G=0.1-10 2路RS232 串行接口 1路RS485 接口 8 路LED 显示 4 位动态7 段数码管,利用74HC595进行驱动 4 位独立按键 板载IIC 总线PCF8563 实时钟芯片 板载IIC 总线EEPROM AT24c01 1 路有源蜂鸣器 1 路18B20 温度传感器接口,支持单总线器件。(12820可选:10元每个) 1602LCD 接口(送1602液晶) 12232、12864 LCD 接口(LCD12864可选:80元每个)     想找一份好工作吗?     你想成为一名电子设计工程师吗?     你对电子设计有浓厚兴趣,而没有工具吗?     看了很久的程序方面的书籍,却没有实践的机会吗?     需要开发产品,想快速入门?     想参加电子设计大赛,机器人大赛吗?     这个性价比高的专业工具是你的不二选择,它不仅仅是一个AVR mega128 开发板,他还是一个强大的开发工具,通过它进行学习后,对电子产品的设计有进一步的认知,建立起学习ARM,DSP,FPGA的良好基础。AVR mega128 开发板集成了AVR学习板,AVR开发板,AVR编程器,AVR仿真器,AVR核心板的功能,并且可以分开独立使用。 销售清单: 1、调试好的AVR mega128开发板一块(板载JTAG ISP 二合一,已经写入自检程序) 2、ATmega128核心板一块 3、USB供电线一条 4、标准串口(RS232)通讯线缆一条 5、资料光盘一张 6、使用说明书(实验讲义)一本 7、保修卡即订单清单一份 8、赠送LCD1602液晶一块

    标签: mega AVR 128 开发板

    上传时间: 2013-11-10

    上传用户:zm7516678

  • MSP430系列flash型超低功耗16位单片机

    MSP430系列flash型超低功耗16位单片机MSP430系列单片机在超低功耗和功能集成等方面有明显的特点。该系列单片机自问世以来,颇受用户关注。在2000年该系列单片机又出现了几个FLASH型的成员,它们除了仍然具备适合应用在自动信号采集系统、电池供电便携式装置、超长时间连续工作的设备等领域的特点外,更具有开发方便、可以现场编程等优点。这些技术特点正是应用工程师特别感兴趣的。《MSP430系列FLASH型超低功耗16位单片机》对该系列单片机的FLASH型成员的原理、结构、内部各功能模块及开发方法与工具作详细介绍。MSP430系列FLASH型超低功耗16位单片机 目录  第1章 引 论1.1 MSP430系列单片机1.2 MSP430F11x系列1.3 MSP430F11x1系列1.4 MSP430F13x系列1.5 MSP430F14x系列第2章 结构概述2.1 引 言2.2 CPU2.3 程序存储器2.4 数据存储器2.5 运行控制2.6 外围模块2.7 振荡器与时钟发生器第3章 系统复位、中断及工作模式3.1 系统复位和初始化3.1.1 引 言3.1.2 系统复位后的设备初始化3.2 中断系统结构3.3 MSP430 中断优先级3.3.1 中断操作--复位/NMI3.3.2 中断操作--振荡器失效控制3.4 中断处理 3.4.1 SFR中的中断控制位3.4.2 中断向量地址3.4.3 外部中断3.5 工作模式3.5.1 低功耗模式0、1(LPM0和LPM1)3.5.2 低功耗模式2、3(LPM2和LPM3)3.5.3 低功耗模式4(LPM4)22 3.6 低功耗应用的要点23第4章 存储空间4.1 引 言4.2 存储器中的数据4.3 片内ROM组织4.3.1 ROM 表的处理4.3.2 计算分支跳转和子程序调用4.4 RAM 和外围模块组织4.4.1 RAM4.4.2 外围模块--地址定位4.4.3 外围模块--SFR4.5 FLASH存储器4.5.1 FLASH存储器的组织4.5.2 FALSH存储器的数据结构4.5.3 FLASH存储器的控制寄存器4.5.4 FLASH存储器的安全键值与中断4.5.5 经JTAG接口访问FLASH存储器39第5章 16位CPU5.1 CPU寄存器5.1.1 程序计数器PC5.1.2 系统堆栈指针SP5.1.3 状态寄存器SR5.1.4 常数发生寄存器CG1和CG25.2 寻址模式5.2.1 寄存器模式5.2.2 变址模式5.2.3 符号模式5.2.4 绝对模式5.2.5 间接模式5.2.6 间接增量模式5.2.7 立即模式5.2.8 指令的时钟周期与长度5.3 指令组概述5.3.1 双操作数指令5.3.2 单操作数指令5.3.3 条件跳转5.3.4 模拟指令的简短格式5.3.5 其他指令第6章 硬件乘法器6.1 硬件乘法器6.2 硬件乘法器操作6.2.1 无符号数相乘(16位×16位、16位×8位、8位×16位、8位×8位)6.2.2 有符号数相乘(16位×16位、16位×8位、8位×16位、8位×8位)6.2.3 无符号数乘加(16位×16位、16位×8位、8位×16位、8位×8位)6.2.4 有符号数乘加(16位×16位、16位×8位、8位×16位、8位×8位)6.3 硬件乘法器寄存器6.4 硬件乘法器的软件限制6.4.1 寻址模式6.4.2 中断程序6.4.3 MACS第7章 基础时钟模块7.1 基础时钟模块7.2 LFXT1与XT27.2.1 LFXT1振荡器7.2.2 XT2振荡器7.2.3 振荡器失效检测7.2.4 XT振荡器失效时的DCO7.3 DCO振荡器7.3.1 DCO振荡器的特性7.3.2 DCO调整器7.4 时钟与运行模式7.4.1 由PUC启动7.4.2 基础时钟调整7.4.3 用于低功耗的基础时钟特性7.4.4 选择晶振产生MCLK7.4.5 时钟信号的同步7.5 基础时钟模块控制寄存器7.5.1 DCO时钟频率控制7.5.2 振荡器与时钟控制寄存器7.5.3 SFR控制位第8章 输入输出端口8.1 引 言8.2 端口P1、P28.2.1 P1、P2的控制寄存器8.2.2 P1、P2的原理8.2.3 P1、P2的中断控制功能8.3 端口P3、P4、P5和P68.3.1 端口P3、P4、P5和P6的控制寄存器8.3.2 端口P3、P4、P5和P6的端口逻辑第9章 看门狗定时器WDT9.1 看门狗定时器9.2 WDT寄存器9.3 WDT中断控制功能9.4 WDT操作第10章 16位定时器Timer_A10.1 引 言10.2 Timer_A的操作10.2.1 定时器模式控制10.2.2 时钟源选择和分频10.2.3 定时器启动10.3 定时器模式10.3.1 停止模式10.3.2 增计数模式10.3.3 连续模式10.3.4 增/减计数模式10.4 捕获/比较模块10.4.1 捕获模式10.4.2 比较模式10.5 输出单元10.5.1 输出模式10.5.2 输出控制模块10.5.3 输出举例10.6 Timer_A的寄存器10.6.1 Timer_A控制寄存器TACTL10.6.2 Timer_A寄存器TAR10.6.3 捕获/比较控制寄存器CCTLx10.6.4 Timer_A中断向量寄存器10.7 Timer_A的UART应用 第11章 16位定时器Timer_B11.1 引 言11.2 Timer_B的操作11.2.1 定时器长度11.2.2 定时器模式控制11.2.3 时钟源选择和分频11.2.4 定时器启动11.3 定时器模式11.3.1 停止模式11.3.2 增计数模式11.3.3 连续模式11.3.4 增/减计数模式11.4 捕获/比较模块11.4.1 捕获模式11.4.2 比较模式11.5 输出单元11.5.1 输出模式11.5.2 输出控制模块11.5.3 输出举例11.6 Timer_B的寄存器11.6.1 Timer_B控制寄存器TBCTL11.6.2 Timer_B寄存器TBR11.6.3 捕获/比较控制寄存器CCTLx11.6.4 Timer_B中断向量寄存器第12章 USART通信模块的UART功能12.1 异步模式12.1.1 异步帧格式12.1.2 异步通信的波特率发生器12.1.3 异步通信格式12.1.4 线路空闲多机模式12.1.5 地址位多机通信格式12.2 中断和中断允许12.2.1 USART接收允许12.2.2 USART发送允许12.2.3 USART接收中断操作12.2.4 USART发送中断操作12.3 控制和状态寄存器12.3.1 USART控制寄存器UCTL12.3.2 发送控制寄存器UTCTL12.3.3 接收控制寄存器URCTL12.3.4 波特率选择和调整控制寄存器12.3.5 USART接收数据缓存URXBUF12.3.6 USART发送数据缓存UTXBUF12.4 UART模式,低功耗模式应用特性12.4.1 由UART帧启动接收操作12.4.2 时钟频率的充分利用与UART的波特率12.4.3 多处理机模式对节约MSP430资源的支持12.5 波特率计算 第13章 USART通信模块的SPI功能13.1 USART同步操作13.1.1 SPI模式中的主模式13.1.2 SPI模式中的从模式13.2 中断与控制功能 13.2.1 USART接收/发送允许位及接收操作13.2.2 USART接收/发送允许位及发送操作13.2.3 USART接收中断操作13.2.4 USART发送中断操作13.3 控制与状态寄存器13.3.1 USART控制寄存器13.3.2 发送控制寄存器UTCTL13.3.3 接收控制寄存器URCTL13.3.4 波特率选择和调制控制寄存器13.3.5 USART接收数据缓存URXBUF13.3.6 USART发送数据缓存UTXBUF第14章 比较器Comparator_A14.1 概 述14.2 比较器A原理14.2.1 输入模拟开关14.2.2 输入多路切换14.2.3 比较器14.2.4 输出滤波器14.2.5 参考电平发生器14.2.6 比较器A中断电路14.3 比较器A控制寄存器14.3.1 控制寄存器CACTL114.3.2 控制寄存器CACTL214.3.3 端口禁止寄存器CAPD14.4 比较器A应用14.4.1 模拟信号在数字端口的输入14.4.2 比较器A测量电阻元件14.4.3 两个独立电阻元件的测量系统14.4.4 比较器A检测电流或电压14.4.5 比较器A测量电流或电压14.4.6 测量比较器A的偏压14.4.7 比较器A的偏压补偿14.4.8 增加比较器A的回差第15章 模数转换器ADC1215.1 概 述15.2 ADC12的工作原理及操作15.2.1 ADC内核15.2.2 参考电平15.3 模拟输入与多路切换15.3.1 模拟多路切换15.3.2 输入信号15.3.3 热敏二极管的使用15.4 转换存储15.5 转换模式15.5.1 单通道单次转换模式15.5.2 序列通道单次转换模式15.5.3 单通道重复转换模式15.5.4 序列通道重复转换模式15.5.5 转换模式之间的切换15.5.6 低功耗15.6 转换时钟与转换速度15.7 采 样15.7.1 采样操作15.7.2 采样信号输入选择15.7.3 采样模式15.7.4 MSC位的使用15.7.5 采样时序15.8 ADC12控制寄存器15.8.1 控制寄存器ADC12CTL0和ADC12CTL115.8.2 转换存储寄存器ADC12MEMx15.8.3 控制寄存器ADC12MCTLx15.8.4 中断标志寄存器ADC12IFG.x和中断允许寄存器ADC12IEN.x15.8.5 中断向量寄存器ADC12IV15.9 ADC12接地与降噪第16章 FLASH型芯片的开发16.1 开发系统概述16.1.1 开发技术16.1.2 MSP430系列的开发16.1.3 MSP430F系列的开发16.2 FLASH型的FET开发方法16.2.1 MSP430芯片的JTAG接口16.2.2 FLASH型仿真工具16.3 FLASH型的BOOT ROM16.3.1 标准复位过程和进入BSL过程16.3.2 BSL的UART协议16.3.3 数据格式16.3.4 退出BSL16.3.5 保护口令16.3.6 BSL的内部设置和资源附录A 寻址空间附录B 指令说明B.1 指令汇总B.2 指令格式B.3 不增加ROM开销的模拟指令B.4 指令说明(字母顺序)B.5 用几条指令模拟的宏指令附录C MSP430系列单片机参数表附录D MSP430系列单片机封装形式附录E MSP430系列器件命名

    标签: flash MSP 430 超低功耗

    上传时间: 2014-04-28

    上传用户:sssnaxie

  • 12345

    /****************temic*********t5557***********************************/    #include   <at892051.h>     #include   <string.h>    #include   <intrins.h>     #include   <stdio.h>     #define    uchar    unsigned char     #define    uint     unsigned int     #define    ulong    unsigned long     //STC12C2051AD的SFR定义     sfr  WDT_CONTR = 0xe1;//stc2051的看门狗??????     /**********全局常量************/    //写卡的命令     #define    write_command0       0//写密码     #define    write_command1       1//写配置字     #define    write_command2       2//密码写数据     #define    write_command3       3//唤醒     #define    write_command4       4//停止命令     #define    TRUE       1     #define    FALSE      0     #define    OK         0     #define    ERROR      255     //读卡的时间参数us     #define ts_min          250//270*11.0592/12=249//取近似的整数     #define ts_max          304//330*11.0592/12=304     #define t1_min          73//90*11.0592/12=83:-10调整     #define t1_max          156//180*11.0592/12=166     #define t2_min          184//210*11.0592/12=194     #define t2_max          267//300*11.0592/12=276     //***********不采用中断处理:采用查询的方法读卡时关所有中断****************/     sbit p_U2270B_Standby = P3^5;//p_U2270B_Standby PIN=13     sbit p_U2270B_CFE = P3^3;//p_U2270B_CFE     PIN=6     sbit p_U2270B_OutPut = P3^7;//p_U2270B_OutPut  PIN=2     sbit wtd_sck = P1^7;//SPI总线     sbit wtd_si = P1^3;    sbit wtd_so = P1^2;    sbit iic_data = P1^2;//lcd IIC     sbit iic_clk = P1^7;    sbit led_light = P1^6;//测试绿灯     sbit led_light1 = P1^5;//测试红灯     sbit led_light_ok  = P1^1;//读卡成功标志     sbit fengmingqi = P1^5;    /***********全局变量************************************/       uchar data Nkey_a[4] = {0xA0, 0xA1, 0xA2, 0xA3};//初始密码             //uchar idata card_snr[4];   //配置字     uchar data bankdata[28] = {1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7};     //存储卡上用户数据(1-7)7*4=28     uchar data cominceptbuff[6] = {1,2,3,4,5,6};//串口接收数组ram     uchar command; //第一个命令     uchar command1;//     //uint  temp;     uchar j,i;    uchar myaddr = 8;    //uchar ywqz_count,time_count;             //ywqz jishu:     uchar bdata DATA;    sbit BIT0 = DATA^0;    sbit BIT1 = DATA^1;    sbit BIT2 = DATA^2;    sbit BIT3 = DATA^3;    sbit BIT4 = DATA^4;    sbit BIT5 = DATA^5;    sbit BIT6 = DATA^6;    sbit BIT7 = DATA^7;    uchar bdata DATA1;    sbit BIT10 = DATA1^0;    sbit BIT11 = DATA1^1;    sbit BIT12 = DATA1^2;    sbit BIT13 = DATA1^3;    sbit BIT14 = DATA1^4;    sbit BIT15 = DATA1^5;    sbit BIT16 = DATA1^6;    sbit BIT17 = DATA1^7;    bit i_CurrentLevel;//i_CurrentLevel  BIT 00H(Saves current level of OutPut pin of U2270B)     bit timer1_end;    bit read_ok = 0;    //缓存定时值,因用同一个定时器     union HLint { uint W;    struct   {    uchar H;uchar L;   }   B; };//union HLint idata a     union HLint data a;    //缓存定时值,因用同一个定时器     union HLint0 { uint W;    struct {   uchar H;   uchar L; } B; };//union HLint idata a     union HLint0 data b;    /**********************函数原型*****************/    //读写操作     void f_readcard(void);//全部读出1~7 AOR唤醒     void f_writecard(uchar x);//根据命令写不同的内容和操作     void f_clearpassword(void);//清除密码     void f_changepassword(void);//修改密码     //功能子函数     void write_password(uchar data *data p);//写初始密码或数据     void write_block(uchar x,uchar data *data p);//不能用通用指针     void write_bit(bit x);//写位     /*子函数区*****************************************************/    void delay_2(uint x)    //延时,时间x*10us@12mhz,最小20us@12mhz     {    x--; x--;    while(x)    {      _nop_();      _nop_();      x--;    }    _nop_();//WDT_CONTR=0X3C;不能频繁的复位     _nop_();    }    /////////////////////////////////////////////////////////////////////     void initial(void)    {    SCON = 0x50; //串口方式1,允许接收     //SCON  =0x50;     //01010000B:10位异步收发,波特率可变,SM2=0不用接收到有效停止位才RI=1,     //REN=1允许接收     TMOD = 0x21; //定时器1 定时方式2(8位),定时器0 定时方式1(16位)     TCON = 0x40; //设定时器1 允许开始计时(IT1=1)     TH1 = 0xfD;  //FB 18.432MHz 9600 波特率     TL1 = 0xfD;  //fd 11.0592 9600     IE = 0X90;     //EA=ES=1     TR1 = 1;     //启动定时器     WDT_CONTR = 0x3c;//使能看门狗     p_U2270B_Standby = 0;//单电源     PCON = 0x00;    IP = 0x10;//uart you xian XXXPS PT1 PX1 PT0 PX0     led_light1 = 1;    led_light = 0;    p_U2270B_OutPut = 1;    }    /************************************************/    void f_readcard()//读卡     {    EA = 0;//全关,防止影响跳变的定时器计时     WDT_CONTR = 0X3C;//喂狗     p_U2270B_CFE = 1;//      delay_2(232);  //>2.5ms            /*   //   aor    用唤醒功能来防碰撞   p_U2270B_CFE = 0; delay_2(18);//start gap>150us   write_bit(1);//10=操作码读0页   write_bit(0);       write_password(&bankdata[24]);//密码block7   p_U2270B_CFE =1 ;//    delay_2(516);//编程及确认时间5.6ms   */    WDT_CONTR = 0X3C;//喂狗     led_light = 0;    b.W = 0;    while(!(read_ok == 1))    {             //while(p_U2270B_OutPut);//等一个稳定的低电平?超时判断?              while(!p_U2270B_OutPut);//等待上升沿的到来同步信号检测1       TR0 = 1;      //deng xia jiang       while(p_U2270B_OutPut);//等待下降沿       TR0 = 0;   a.B.H = TH0;   a.B.L = TL0;   TH0 = TL0 = 0;   TR0 = 1;//定时器晚启动10个周期       //同步头       if((324 < a.W) && (a.W < 353)) ;//检测同步信号1                  else     {     TR0 = 0;     TH0 = TL0 = 0;     goto read_error;    }      //等待上升沿        while(!p_U2270B_OutPut);   TR0 = 0;   a.B.H = TH0;   a.B.L = TL0;   TH0 = TL0 = 0;   TR0 = 1;//b.N1<<=8;            if(a.B.L < 195);//0.5p       else     {     TR0 = 0;     TH0 = TL0 = 0;     goto read_error;    }      //读0~7块的数据       for(j = 0;j < 28;j++)      {       //uchar i;                  for(i = 0;i < 16;i++)//8个位        {        //等待下降沿的到来         while(p_U2270B_OutPut);                TR0 = 0;     a.B.H = TH0;     a.B.L = TL0;     TH0 = TL0 = 0;     TR0 = 1;              if(t2_max < a.W/*)&&(a.W < t2_max)*/)//1P          {         b.W >>= 2;//先左移再赋值          b.B.L += 0xc0;                             i++;        }        else if(t1_min < a.B.L/*)&&(a.B.L < t1_max)*/)//0.5p         {         b.W >>= 1;         b.B.L += 0x80;                           }        else      {      TR0 = 0;      TH0 = TL0 = 0;      goto read_error;     }        i++;        while(!p_U2270B_OutPut);//上升                   TR0 = 0;     a.B.H = TH0;     a.B.L = TL0;     TH0 = TL0 = 0;     TR0 = 1;                      if(t2_min < a.W/*)&&(a.W < t2_max)*/)//1P          {         b.W >>= 2;         i++;        }        else if(t1_min < a.B.L/*a.W)&&(a.B.L < t1_max)*/)//0.5P         //else if(!(a.W==0))         {         b.W >>= 1;         //temp+=0x00;          //led_light1=0;led_light=1;delay_2(40000);         }        else      {      TR0 = 0;      TH0 = TL0 = 0;      goto read_error;     }        i++;       }       //取出奇位        DATA = b.B.L;       BIT13 = BIT7;    BIT12 = BIT5;    BIT11 = BIT3;    BIT10 = BIT1;       DATA = b.B.H;       BIT17 = BIT7;    BIT16 = BIT5;    BIT15 = BIT3;    BIT14 = BIT1;       bankdata[j] = DATA1;      }              read_ok = 1;//读卡完成了     read_error:    _nop_();    }       }    /***************************************************/    void f_writecard(uchar x)//写卡     {    p_U2270B_CFE = 1;    delay_2(232);  //>2.5ms            //psw=0 standard write     if (x == write_command0)//写密码:初始化密码     {      uchar i;      uchar data *data p;      p = cominceptbuff;      p_U2270B_CFE = 0;   delay_2(31);//start gap>330us       write_bit(1);//写操作码1:10       write_bit(0);//写操作码0       write_bit(0);//写锁定位0       for(i = 0;i < 35;i++)      {       write_bit(1);//写数据位1       }      p_U2270B_CFE = 1;      led_light1 = 0;   led_light = 1;   delay_2(40000);//测试使用       //write_block(cominceptbuff[4],p);       p_U2270B_CFE = 1;      bankdata[20] = cominceptbuff[0];//密码存入       bankdata[21] = cominceptbuff[1];      bankdata[22] = cominceptbuff[2];      bankdata[23] = cominceptbuff[3];    }    else if (x == write_command1)//配置卡参数:初始化     {      uchar data *data p;      p = cominceptbuff;      write_bit(1);//写操作码1:10       write_bit(0);//写操作码0       write_bit(0);//写锁定位0               write_block(cominceptbuff[4],p);      p_U2270B_CFE=  1;    }    //psw=1  pssword mode     else if(x == write_command2)  //密码写数据    {      uchar data*data p;      p = &bankdata[24];      write_bit(1);//写操作码1:10       write_bit(0);//写操作码0       write_password(p);//发口令       write_bit(0);//写锁定位0       p = cominceptbuff;      write_block(cominceptbuff[4],p);//写数据            }    else if(x == write_command3)//aor    //唤醒 {      //cominceptbuff[1]操作码10 X xxxxxB       uchar data *data p;      p = cominceptbuff;      write_bit(1);//10       write_bit(0);             write_password(p);//密码       p_U2270B_CFE = 1;//此时数据不停的循环传出     }    else //停止操作码     {      write_bit(1);//11       write_bit(1);             p_U2270B_CFE = 1;         }    p_U2270B_CFE = 1;    delay_2(560);//5.6ms     }    /************************************/    void f_clearpassword()//清除密码     {    uchar data *data p;    uchar i,x;          p = &bankdata[24];//原密码     p_U2270B_CFE = 0; delay_2(18);//start gap>150us     //操作码10:10xxxxxxB     write_bit(1);    write_bit(0);              for(x = 0;x < 4;x++)//发原密码     {             DATA = *(p++);      for(i = 0;i < 8;i++)      {       write_bit(BIT0);       DATA >>= 1;      }    }    write_bit(0);//锁定位0:0     p = &cominceptbuff[0];    write_block(0x00,p);//写新配置参数:pwd=0             //密码无效:即清除密码     DATA = 0x00;//停止操作码00000000B     for(i = 0;i < 2;i++)    {    write_bit(BIT7);    DATA <<= 1;    }    p_U2270B_CFE = 1;       delay_2(560);//5.6ms     }    /*********************************/    void f_changepassword()//修改密码            {       uchar data *data p;    uchar i,x,addr;    addr = 0x07;//block7     p = &Nkey_a[0];//原密码     DATA = 0x80;//操作码10:10xxxxxxB     for(i = 0;i < 2;i++)    {      write_bit(BIT7);      DATA <<= 1;    }    for(x = 0;x < 4;x++)//发原密码     {             DATA = *(p++);      for(i = 0;i < 8;i++)      {       write_bit(BIT7);       DATA >>= 1;      }    }    write_bit(0);//锁定位0:0     p = &cominceptbuff[0];    write_block(0x07,p);//写新密码     p_U2270B_CFE = 1;    bankdata[24] = cominceptbuff[0];//密码存入     bankdata[25] = cominceptbuff[1];    bankdata[26] = cominceptbuff[2];    bankdata[27] = cominceptbuff[3];    DATA = 0x00;//停止操作码00000000B     for(i = 0;i < 2;i++)    {      write_bit(BIT7);      DATA <<= 1;    }    p_U2270B_CFE = 1;       delay_2(560);//5.6ms     }    /***************************子函数***********************************/    void write_bit(bit x)//写一位     {    if(x)    {      p_U2270B_CFE = 1;   delay_2(32);//448*11.0592/120=42延时448us       p_U2270B_CFE = 0;   delay_2(28);//280*11.0592/120=26写1     }    else    {      p_U2270B_CFE = 1;   delay_2(92);//192*11.0592/120=18       p_U2270B_CFE = 0;   delay_2(28);//280*11.0592/120=26写0     }    }    /*******************写一个block*******************/    void write_block(uchar addr,uchar data *data p)    {    uchar i,j;        for(i = 0;i < 4;i++)//block0数据     {             DATA = *(p++);      for(j = 0;j < 8;j++)      {       write_bit(BIT0);       DATA >>= 1;      }    }    DATA = addr <<= 5;//0地址     for(i = 0;i < 3;i++)    {      write_bit(BIT7);      DATA <<= 1;    }                   }    /*************************************************/    void write_password(uchar data *data p)    {    uchar i,j;        for(i = 0;i < 4;i++)//     {             DATA = *(p++);      for(j = 0;j < 8;j++)      {       write_bit(BIT0);       DATA >>= 1;      }    }        }   /*************************************************/   void main()    {    initial();    TI = RI = 0;    ES = 1;    EA = 1;  delay_2(28);   //f_readcard();     while(1) {   f_readcard();      //读卡   f_writecard(command1);  //写卡    f_clearpassword();   //清除密码     f_changepassword();    //修改密码 } }

    标签: 12345

    上传时间: 2017-10-20

    上传用户:my_lcs