毕业设计中期报告1_第1页
毕业设计中期报告1_第2页
毕业设计中期报告1_第3页
毕业设计中期报告1_第4页
毕业设计中期报告1_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

./目录第一章概述31.1引言31.2选题意义31.3检测项目及其性能指标要求41.4本论文主要研究的容4第二章系统原理框图及微处理器52.1设计技术路线52.2总电路框图62.3微处理器的选择62.4AT89S52简介7第三章硬件电路输入通道设计103.1三相电压模拟量的输入103.2实现缺相检测和电压检测133.21、电路原理图133.22、工作原理133.23电路设计说明153.3三个温度模拟量的输入,变压器铁芯温度检测173.4两个开关量输入18第四章硬件电路后向通道设计194.1系统配置19第五章系统软件设计285.1软件设计特点285.2主要功能模块28单片机复位模块285.3.5AT24C02储存模块305.3.6数模转换模块〔TLV1548驱动程序345.4系统软件流程框图36第六章实验结果及分析376.1实验室测试与分析376.2现场测试与分析37第七章377.1结论377.2致38参考文献38附录:40附1:40附2:42第一章概述1.1 引言改革开放以来,我国的发电设备不断竣工并网发电,输配电网经过升压改造,使原来电网末端电压偏低的现象得到改善,但如此带来电网的电压普遍偏高,特别是晚间电压更高,譬如某地区有些单位晚上220伏电压达到254伏,普遍单位接近240伏,此时用电设备在高于设备额定电压状态下运行,将会导致设备过度发热,缩短寿命,实验证明白炽灯的电源电压升高5%,寿命降低47%,荧光灯电压升高10%,寿命降低15%,而大量的电气设备〔如电动机、变压器、接触器、电磁铁等带有铁芯的电气、电压升高则会引起铁损和铜损增加。因为电气设备在高于额定电压和电流状态下运行时,铁芯损耗与总的电压的平方成正比,铜损则与电流的平方成正比,所以会降低设备的平均使用寿命。通过调整供电电压,降低不必要的损耗,可以保护终端设备,延长设备的平均使用寿命。1.2 选题意义近年来,我国的路灯建设取得了飞速的发展,道路照明质量不断提高,高强度气体放电灯被广泛使用,对改善我国的投资环境,促进经济快速发展,方便群众生活,美化城市和作为一个外向型现代化城市的建设起了很大作用,但午夜后电网在轻载情况下,电网电压明显偏高,产生以下负面影响:一是直接影响灯泡和其它电器的使用寿命,当普通灯泡的额定电压上升5%时,它的寿命将减少一半,若额定电压下降5%时,它的寿命将会延长一倍;二是在午夜后路灯可以低照度时,由于电压上升反而增加光输出,白白浪费电能;三是,增大灯泡镇流器的功率损耗,增加电费支出。所以采用自动调压控制器后,能够有效避免以上三方面的负面影响。在目前的路灯供电系统中,由于供电电压不能调节,使得光源往往不能工作在较合适的状态,现在的光源的寿命已很长,如GE的钠灯寿命已达28000小时,国产的也达18000小时,但实际使用中往往达不到,主要原因是它的工作状态达不到理想状态,根据市目前的供电变压器电压检测发现。80%的供电电压偏高,特别是后半夜有的变压器输出电压高达250伏以上,光源长期工作与此环境下,将会大大减低它的使用寿命且浪费了大量的能源。所以,通过调节供电电压的方法可以延长光源的寿命。1.3 检测项目及其性能指标要求本课题完成电力自耦变压器的自动调压装置的设计,主要用于路灯电压控制,保证路灯在电压峰谷期的正常使用,要求:三个电压模拟量输入,实现缺相检测和电压检测。三个温度模拟量输入,实现变压器铁芯温度检测。两个开关量输入,实现调压限位,避免调压器过调机械受损。一路开关量输出,接报警器。一路开关量输出,控制风冷电风扇。两路开关量输出,控制升、降压调整。设定电压调整围:180V~250V设定电压调整精度:1%~10%控制功率:3kW1.4 本论文主要研究的容实现自动温度监控报警,缺相报警、电压检测调压功能。完成硬件的设计,单片机系统的键盘、显示功能,看门狗电路;完成对接口电路的口线分配。设计系统工作流程图,设计该控制系统的PCB板图。第二章 系统原理框图及微处理器2.1 设计技术路线首先三相电压输入采用电压互感器产生电压,温度测量采用有源滤波整流电路产生。经过A/D转换,输入单片机。由键盘输入额定电压值,显示器显示工作电压,温度。当温度过高时打开风扇开关进行风冷,当温度高到一定程度时报警。2.2 总电路框图2.3 微处理器的选择微处理器是单片机测控系统的大脑。它不仅要完成对采样数据的数学处理、状态信息的逻辑推理以及与外部设备的信息交换,还要实现对其它各硬件模块的控制。因此,对微处理器的选择既要考虑其运算速度、运算能力以及数据空间的容量,又要考虑其I/O接口的驱动能力以及片程序空间的容量。只有这样才能够保证硬件的简洁。基于上述原因,为了达到系统检测和控制目的,完成系统功能,我们选择了美国ATMEL公司生产的AT89S52微处理器作为单片机测控系统的主机。2.4 AT89S52简介AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。主要性能:1、与MCS-51单片机产品兼容;2、8K字节在系统可编程Flash存储器;3、1000次擦写周期;4、全静态操作:0Hz-33MHz;5、三级加密程序存储器;6、32个可编程I/O口线;7、三个16位定时器/计数器;8、六个中断源;9、全双工UART串行通道;10、低功耗空闲和掉电模式;11、掉电后中断可唤醒;12、看门狗定时器;13、双数据指针;14、掉电标识符。引脚说明:AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写"1"时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0不具有部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写"1"时,部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于部电阻的原因,将输出电流〔IIL。此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入〔P1.0/T2和定时器/计数器2的触发输入〔P1.1/T2EX。在flash编程和校验时,P1口接收低8位地址字节。引脚号第二功能:P1.0T2〔定时器/计数器T2的外部计数输入,时钟输出P1.1T2EX〔定时器/计数器T2的捕捉/重载触发信号和方向控制P1.5MOSI〔在系统编程用P1.6MISO〔在系统编程用P1.7SCK〔在系统编程用P2口:P2口是一个具有部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写"1"时,部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于部电阻的原因,将输出电流〔IIL。在访问外部程序存储器或用16位地址读取外部数据存储器〔例如执行MOVXDPTR时,P2口送出高八位地址。在这种应用中,P2口使用很强的部上拉发送1。在使用8位地址〔如MOVXRI访问外部数据存储器时,P2口输出P2锁存器的容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个TTL逻辑电平。对P3端口写"1"时,部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于部电阻的原因,将输出电流〔IIL。P3口亦作为AT89S52特殊功能〔第二功能使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。端口引脚第二功能:P3.0RXD<串行输入口>P3.1TXD<串行输出口>P3.2INTO<外中断0>P3.3INT1<外中断1>P3.4TO<定时/计数器0>P3.5T1<定时/计数器1>P3.6WR<外部数据存储器写选通>P3.7RD<外部数据存储器读选通>此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE〔地址锁存允许输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲〔PROG。如有必要,可通过对特殊功能寄存器〔SFR区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。INT0、INT1:两个外部中断〔INT0和INT1;PSEN:程序储存允许〔PSEN输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令〔或数据时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP:外部访问允许,欲使CPU仅访问外部程序存储器〔地址为0000H-FFFFH,EA端必须保持低电平〔接地。需注意的是:如果加密位LB1被编程,复位时部会锁存EA端状态。如EA端为高电平〔接Vcc端,CPU则执行部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。XTAL1:振荡器反相放大器和部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。第三章 硬件电路输入通道设计3.1 三相电压模拟量的输入目前常用的调压方式:目前应用的交流调压方式主要有接触调压器,感应调压器,移圈调压器,磁性调压器,补偿式调压器,有载调压电力变压器,晶闸管调压器等几种不同方式。本次设计采用自耦调压式调控装置。自耦变压器与普通变压器的区别在于,自耦变压器的一、二次侧线圈不仅有磁的联系,还有电的联系,所以,在输出电压调节围不大时它的容量比较小,所以消耗的材料小,造价低,效率高,这类产品最大的优点是克服了可控硅斩波型产品产生谐波的缺陷,实现了电压的正弦波输出,结构和功能都很简单,当然可靠性也比较高。目前应用的有两种方式,即固定抽头方式和连续调节方式。1固定多档自耦降压器:由于其核心部件是一个多抽头的变压器,变压比是固定的,一般副边有三到五个降压抽头,分别降5V、10V、15V、20V,一旦接线端固定,降低电压就是固定值,当电网电压波动时,调控装置的输出电压也会上下波动,这样照明的工作电压处在不稳定波动状态,无法起到对电光源的保护作用。如图所示,当电网电压高时,节电率不是最佳状态;而电网电压低时,可能出现欠压现象,造成灯具无常点亮,反而降低灯具寿命,这是这类调控装置存在的最大安全缺陷。当用电高峰时,电压过低,电气设备也无常运行。这类调控装置为了能做到对电压的调节一般都用的都是交流接触器来进行切换,这是最简单和常用的办法。由于接触器是在电路的主回路中进行切换,所以,切换的电流是很大的,如果用接触器作为节电产品的电压调整装置的话,其安全性、可靠性和无故障工作寿命都不能保障,存在安全隐患,原因如下:交流接触器的工作原理是用电磁线圈吸合、断开,来控制触头常开或是常闭,属机械移动部件,只适用于不经常动作的开关场合,如灯具、电器的开起和关断,切换次数是有限的,不适用于频繁切换的场合。交流接触器在切换动作时,是机械的吸合和断开,所以会有短暂的10~20ms的断电,我们称之为"闪断",这样的断电会导致HID灯<HighIntensityDischargedLamp—高压气体放电灯,如高压钠灯、金卤灯、高压汞灯等>熄灭。这种灯的特性决定,在熄灭以后,必须等到灯管冷却,蒸气压下降后才能再点亮,一般需要5~10min左右,在使用中,这将是个严重故障。根据以上原因,交流接触器是不能用来控制照明调控装置进行频繁切换的。所以,生产和销售此类产品的厂家,一般做不到实时稳定电压、多时段调控等功能,这也就是这类产品的缺点所在。2连续调节自耦型调压器:它可通过电刷在线圈的表面平滑移动或滚动,改变线圈的变比而调节输出电压。优点是可实现无级平滑调节,调节精度高,但由于电刷调节回路是串在主回路中,因此承受的电流大,电刷接触不良,会产生火花,引起触点磨损。综上说述本次设计在电压的模拟输入方面采用的是电力自耦变压器。电力系统中广泛采用的是电磁式电流互感器<以下简称电流互感器>,它的工作原理和变压器相似。电流互感器的原理接线,如下图所示:电流互感器的特点是:<1>一次线圈串联在电路中,并且匝数很少,因此,一次线圈中的电流完全取决于被测电路的负荷电流.而与二次电流无关;<2>电流互感器二次线圈所接仪表和继电器的电流线圈阻抗都很小,所以正常情况下,电流互感器在近于短路状态下运行。电流互感器一、二次额定电流之比,称为电流互感器的额定互感比:kn=I1n/I2n因为一次线圈额定电流I1n己标准化,二次线圈额定电流I2n统一为5<1或0.5>安,所以电流互感器额定互感比亦已标准化。kn还可以近似地表示为互感器一、二次线圈的匝数比,即kn≈kN=N1/N2式中N1、N2为一、二线圈的匝数。电流互感器的作用就是用于测量比较大的电流。电流互感器是电力系统中很重要的一个一次设备,其原理是根据电磁感应原理而制造的.它的一次线圈匝数很少,通常采用单匝线圈,即一根铜棒或一根铜排.二次线圈主要接测量仪表或继电器的线圈.电流互感器的二次侧不能开路运行,当二次侧开路时,一次侧的电流主要用于激磁,这样会在二次侧感应出很高的电压,从而危及二次设备和人身的安全,也会造成电流互感器烧毁.其主要作用是:1、将很大的一次电流转变为标准的5安培;2、为测量装置和继电保护的线圈提供电流;3、对一次设备和二次设备进行隔离。3.2 实现缺相检测和电压检测3.21、电路原理图图1电路原理图3.22、工作原理 当三相输入电压正常时,其三相输入相电压波形如图2所示,为便于分析,将一个电源周期分为6等份,如图2所示T1、T2、T3、T4、T5、T6。在这六个区间,三相电源之间的关系如表1所示:T1T2T3T4T5T6三相电源之间的关系UA>UC>UBUA>UB>UCUB>UA>UCUB>UC>UAUC>UB>UAUC>UA>UB图2三相正常时检测电路波形图在区间T1,UA>UC>UB,A相电压最大,B相电压最小,因此,在图1中的光藕D1和二极管VD5导通,此时,控制信号UC为低电平,当时间从T1进入T2区间时,UA>UB>UC,A相电压最大,C相电压最小,因此,在图1中的光藕D1和二极管VD4导通,控制信号UC为低电平,如此类推,在区间T3、T4、T5、T6时,控制信号UC均为低电平,所以,在一个电源周期,控制信号UC为低电平,也就是说,当三相输入电压正常时〔不缺相,控制信号UC一直为低电平,从而使缺相告警信号PHFL为低电平,表示输入正常。当三相输入电压缺相时,其检测电路波形图如图3所示:图3三相缺C相时检测电路波形图由于缺C相时,线电压只有UAB一相,当UAB在过零点附近时,光藕D1不导通,其余二个光藕也不导通,此时,控制信号UC为高电平,从而使缺相告警信号PHFL为高电平,表示输入缺相,送ECU处理。3.23电路设计说明〔1控制信号的计算图1中,各点电压说明如下:VA:光藕输出;VB:电压比较器LM339第4脚输入;VC:三极管VT1基极控制信号;VR:所有比较器的比较电压基准。光藕TLP621GR的电流传输比CTR取最小值,即CTRMIN=100%。电压基准VR为:又则光藕集电极电流为:根据CTRMIN=100%,可得。在光藕原边电路中:所以原边最小电压应为当光藕原边电路线电压瞬时值大于200V时,<10.5V,则为低电平。当光藕原边电路线电压瞬时值小于200V时,>10.5V,则为高电平。因此在三相输入电压缺相时,控制信号为一个方波信号,波形见图3。一个电源周期,而线电压从0V上升到200V的时间设为,则有,则所以,则控制信号高电平维持时间为2.4ms,低电平维持时间为10-2.4=7.6ms。〔2充放电回路分析计算充放电回路由电阻R9、R10、VT2、C10、C11组成。当控制信号为高电平时,三极管VT1、VT2导通,+15V电源通过电阻R9、R10给电容C10、C11,当控制信号为低电平时,三极管VT1、VT2截止,电容C10、C11通过电阻R9放电,显然,实际上为一个直流电压迭加一个脉动信号,只要的波不小于10.5 V,则电压比较器LM339的第2脚输出就一直为低电平,缺相告警信号PHFL为高电平,表示三相输入缺相。波形见图4图4三相缺C相时波形图充电时间常数:在的2.4ms高电平维持时间,电压从0V上升到10.5V所用时间为t,则有,所以显然此时间小于2.4ms。放电时间常数:在的7.6ms低电平维持时间,电压从15V下降到电压U,则有,也就是说在整个7.6ms低电平维持时间,一直大于10.5V,所以缺相告警信号PHFL恒为高电平。3.3三个温度模拟量的输入,变压器铁芯温度检测在变压器铁芯温度检测方面,采用铂电阻测温,在铁芯放入一铂电阻,本次设计才用铂100。铂电阻温度传感器是利用其电阻和温度成一定函数关系而制成的温度传感器,由于其测量准确度高、测量围大、复现性和稳定性好等,被广泛用于中温<-200°C~650°C>围的温度测量中。但在这种检测电路中,不平衡电桥中以及铂电阻的阻值和温度之间的非线性特性给最后的温度测量来了一定的误差,不但增加了电路的复杂性,而且由于包括传感器在的各种硬件本身的缺陷和弱点,所以往往难以达到较高的指标要求。以下是两种铂电阻测温电路:这一种电路ui=Vcc*RT/<R0+RT>Rt是非线性变化,所以采用第2种的恒流源电路。LM334是三端可调恒流源器件,在工作电流恒流源可调围比为1000∶1,并且具有1~40V宽的动态电压围,恒流特性非常好。恒流源的建立只需1只外接电阻而不再需要其他元件,其输出电流的大小是由外接调节电阻RSET所决定。利用其恒流特性可将其设计为温度传感器,将温度转换为电流。它可用于制作低成本的温度检测装置,其优点是无需精密电压放大、冷端补偿。用作温度传感器典型电路如图1所示。电阻RSET的计算:ISET=IR+IBIAS=VR/RSET+IBIAS因为IBIAS仅仅是总电流ISET的百分数,所以上式可以改写成:ISET=<VR/RSET>[n/<n-1>]式中n为Iset对IBIAS的比率,n=ISET/IBIAS.当ISET在2μA~1mA,则n一般为18。通过RSET的电流是由VR决定的,根据其特性VR一般是214μV/K<64mV/298K~214μV/K>,所以上式可以写成ISET=<VR/RSET>×11059=<227μV·K-1>/RSET·T由此看来,用LM334可以作理想的温度传感器,而且是电流输出,可以长距离传输而不损失,输出的电流与绝对温度成线性比例。因为这种恒流源部的电流会使器件发热,当设定电流≥100μA时,部发热会影响很大。比如,设定电流在1mA时,温度增加014℃.因此把该器件设计为温度传感器其部工作电流应尽量小一些。如果把RSET定为227Ω,则在0℃时绝对温度T为273K,输出电流273μA.温度每增加1℃输出电流相应增加1μA,而且是线性变化。灵敏度为1μA/℃.因为每个器件的n不是绝对一致,所以要使每个传感器有相同的输出和灵敏度,RSET必须精心挑选,这样就可以制造成一个标准输出的传感器。典型测温电路如图2所示3.4两个开关量输入实现调压限位,避免调压器过调机械受损。第四章硬件电路后向通道设计4.1系统配置1.A/D转换器TLV1548TLV1548是带串行控制和4/8模拟输入的低电压10位模数转换器。TLV1548是CMOS10位开关电容逐次逼近<SAR>模拟-数字<A/D>转换器.每个器件具有芯片选择<CS>,输入-输出时钟<I/OCLK>,数据输入<DATAIN>以及数据输出<DATAOUT>,能提供主微处理器的直接4线同步串行外设接口<SPITM,QSPITM>端口.当与TMS320DSP接口时,另外的帧同步信号<FS>指示串行数据帧的开始.器件允许来自主机的高速数据传送.CLKINV输入提供进一步的串行接口定时灵活性。除了高速转换器和多种控制能力之外,器件还具有片11通道多路转换器,它能在8个模拟输入通道或三个部自测试<self-test>电压中任意选择一个.除了采样周期由异步CSTART下降沿开始的扩展采样周期外,采样保持功能是自动的.A/D转换结束时,转换结束输出变为高电平以指示转换已完成.TLV1544和TLV1548被设计成能工作于宽电源电压围且具有极低的功耗.通过软件编程的掉电方式和转换速率,节省功率的特性被进一步增强.转换器把易于比率转换的差分高阻抗基准输入,定标<scaling>,以及模拟电路与逻辑和电源噪声相隔离特点组合在一起。开关电容设计允许在整个工作温度围低误差的转换。TLV1548具有八个模拟输入通道。TLV1548有DB封装可供使用。TLV1548C的工作温度围为0℃至70℃。TLV1548I可工作于-40℃至85℃的整个工业温度围。 特点转换时间≤10μs10位分辨率ADC可编程掉电方式:1μA2.7Vdc至5.5Vdc的宽围单电源工作0V至VCC的模拟输入围具有8个模拟输入通道的置模拟多路转换器TMS320xxxDSP和微处理器SPI及QSPI兼容的串行接口转换结束<EOC>标志固有的采样-保持功能置自测试方式可编程电源与转换速率扩展采样转换的异步启动硬件I/O时钟相位调整输入TLV1548的引脚排列图 引脚功能:A0-A7 模拟输入端.模拟输入在部是多路复用的。<对于源阻抗大于1kΩ的情况,应当采用异步启动以增加采样时间>CS 芯片选择端.CS端高电平至低电平的跳变复位部计数器并控制且在最大建立时间之使DATAIN,DATAOUT和I/OCLK能工作.低电平至高电平的跳变将在建立时间之禁止DATAIN,DATAOUT和I/OCLKCSTART 采样/转换起始控制.CSTART控制来自所选多路复用通道模拟输入采样的起始。高电平至低电平的跳变启动模拟输入信号采样。低电平至高电平的跳变把采样-保持功能置为保持方式并启动转换.CSTART独立于I/OCLK并在CS为高电平时工作.低电平CSTART持续期控制开关电容阵列采样周期的持续时间。如果不使用,请把CSTART接至VCCDATAIN 串行数据输入.在正常周期中4位串行数据选择所需的模拟输入和下一个要转换的测试电压.这些位也可设置转换速率和使能掉电方式.当工作在微处理器方式时,输入数据以MSB在前的方式出现且在I/OCLK的前四个上升<CLKINV=VCC>或下降<CLKINV=GND>沿送入<在CS↓之后>.当工作在DSP方式时,输入数据以MSB在前的方式出现且在I/OCLK的前四个下降<CLKINV=VCC>或上升<CLKINV=GND>沿送入<在FS↓之后>.在四个输入数据位已被读入输入数据寄存器之后,在当前转换周期的剩余时间,DATAIN被忽略DATAOUTA/D转换结果的三态串行输出端.当CS为高电平时,DATAIN为高阻抗状态,当CS为低电平时,此端有效.在具有有效CS信号的情况下,DATAOUT离开高阻状态并被驱动至与先前转换结果的MSB或LSB值相对应的逻辑电平.DATAOUT在I/OCLK的下降<微处理器方式>或上升<DSP方式>沿发生改变EOC 转换结束.EOC在I/OCLK的第十个上升<微处理器方式>或第十个下降<DSP方式>沿从高逻辑电平变至低逻辑电平,且在转换完成和数据准备好发送之前一直保持低电平.EOC也能指示转换器是否忙FSDSP帧同步输入.FS指示串行数据帧送入或从器件输出的开始.当器件与微处理器接口时,FS连接到VCCGND 部电路的地返回端.除非另有说明,所有的电压测量均相对于GNDCLKINV 反相时钟输入.当反相的I/OCLK用作输入时钟源时,CLKINV连接到GND.这影响微处理器和DSP接口.如果I/OCLK不反相,那么CLKINV连接到VCC.CLKINV也能引起置测试方式REF+ 基准电压高端<通常为VCC>.最大输入电压围由加到REF+和REF-的电压差来确定REF- 基准电压低端<通常为地>VCC 正电源电压I/OCLK 输入/输出时钟.I/OCLK以两种方式接收串行I/O时钟并在每一种方式中实现以下四种功能:微处理器方式:1.当CLKINV=VCC时,I/OCLK在CS↓之后I/OCLK前四个上升沿使4个输入数据位送入输入数据寄存器,且在第4个上升沿之后多路转换器地址可供使用.当CLKINV=GND时,输入数据位由时钟的前四个下降沿同步送入.2.除了在扩展采样周期<在该周期中CSTART的宽度决定采样周期何时结束>之外,在I/OCLK的第4个下降沿,所选择的多路复用输入端的模拟输入电压开始对电容阵列充电,并一直充电到I/OCLK的第10个上升沿.3.不管CLKINV的状态如何,输出数据位在前10个I/O时钟下降沿发生改变.4.不管CLKINV的状态如何,I/OCLK在I/OCLK第10个上升沿把转换的控制传送到部状态机<internalstatemachine>。数字信号处理器<DSP>方式:1.当CLKINV=VCC时,I/OCLK在FS↓之后I/OCLK前四个下降沿使4个输入数据位送入输入数据寄存器,且在第4个下降沿之后多路转换器地址可供使用.当CLKINV=GND时,输入数据位由时钟的前四个上升沿同步送放.2.除了在扩展采样周期<在该周期中CSTART的宽度决定采样周期何时结束>之外,在I/OCLK的第4个上升沿,所选择的多路复用输入端的模拟输入电压开始对电容阵列充电,并一直充电到I/OCLK的第10个下降沿.3.不管CLKINV的状态如何,输出数据位在前10个I/O时钟上升沿发生改变.4.不管CLKINV的状态如何,I/OCLK在I/OCLK第10个下降沿把转换的控制传送到部状态机 使用说明:最初,在CS为高电平<无效>的情况下,DATAIN和I/OCLK被禁止,DATAOUT处于高阻状态。当串行接口使CS为低电平<有效>时,转换时序开始对I/OCLK和DATAIN使能,并使DATAOUT脱离高阻状态.然后主机把4位通道地址提供给DATAIN,把I/O时钟序列提供给I/OCLK。在此传送期间,主机串行接口也从DATAOUT接收先前转换结果。I/OCLK从主机接收输入序列,其长度处于10至16个时钟之间。开始4个I/OCLK周期把DATAIN端4位输入数据<它选择所需的模拟通道>装入输入数据寄存器.接着6个时钟周期提供用于模拟输入采样的控制时序。在开始10个时钟的I/OCLK序列之后,模拟输入的采样被保持。第10个时钟边沿也把EOC变为低电平并开始转换.I/O时钟边沿的精确位置取决于工作方式。2、存储器AT24C02AT24C02是CMOS2048位串行E2PROM,在部组织成256×8位.X24C02的特点是具有允许在简单的二线总线上工作的串行接口和软件协议。E2PROM是为需要长时间工作的应用而设计和测试的.其固有的数据保存期限为100年.它有DIP,MSOP和SOIC封装可供使用。特点:1.2.7V至5.5V电源2.低功耗CMOS:工作电流小于1mA;待机状态电流小于50μA3.部组织成256×84.自定时写周期:典型写周期时间为5ms5.2线串行接口:双向数据传送协议6.四字节页写操作:每个字节总写入时间为最小7.高可靠性:1.使用期限:100,000个周期;2.数据保存期:100年8.新型硬件——写控制功能AT24C02的引脚排列如下图所示:AT24C02支持面向双向总线的协议.协议规定任何发送数据到总线上的器件为发送器而接收器件为接收器。控制传送的器件是主机,被控制的器件为从机.主机总是启动数据的传送并提供用于发送和接收操作的时钟。因此,在所有的应用中AT24C02被认为是从机。SDA线上的数据状态仅在SCL为低电平期间才可改变.SCL为高电平期间SDA状态的改变被用来表示起始和停止条件。1.起始条件:所有命令以起始条件为前导,它是SCL为高电平时SDA从高电平至低电平的跳变.AT24C02连续监视SDA和SCL线上的起始条件,且在未符合此条件之前不对任何命令作出响应。2.停止条件:所有通信必须由停止条件来结束,停止条件是SCL为高电平时SDA从低电平至高电平的跳变.AT24C02也利用停止条件使器件在读序列之后处于待机<standbypower>方式.停止条件仅可在发送器件已释放总线之后发出。应答<确认>是用于指示数据传送成功的软件协议.发送器件<无论是主机或从机>在发送8位之后将释放总线.在第9个时钟周期接收器将把SDA线拉至低电平以确认它已接收8位数据。AT24C02在识别起始条件和它的从地址之后将以应答作出响应。如果器件和写操作二者均被选择,那么AT24C02将在每一后续8位字接收之后以应答作出响应。在读方式下,AT24C02将发送8位数据,释放SDA线并在线上监视应答<信号>。如果检测到应答且主机未产生停止条件,那么AT24C02将继续发送数据.如果未检测到应答,那么AT24C02将中止进一步的数据传送。然后主机必须送出停止条件以便使AT24C02返回到待机状态并使器件进入已知状态。在起始条件之后,主机必须输出它所访问的从机的地址.从机地址的最高4个有效位是器件类型识别符。对于AT24C02识别符固定为1010[B],接着的三个有效位对特定器件寻址。系统在总线上可以有多达八个AT24C02器件。八个地址由A0,A1和A2输入端的状态规定。从地址的最后一位定义所执行的操作.设置为1时选择读操作,设置为0时选择写操作。在起始条件之后,AT24C02监视SDA总线,把所发送的从地址与其从地址<器件类型与A0,A1和A2输入>作比较。比较相符时AT24C02在SDA线上输出应答信号。根据R/W位的状态,AT24C02将执行读或写操作。对于写操作,AT24C02要求第二个地址线.该地址域是字地址,它由八位组成,提供对256字存储器的任一个的访问.接收到字地址后,AT24C02用应答作出响应,并等待下一个八位数据,再以应答作响应。然后主机通过产生停止条件来结束传送,此时AT24C02开始部至非易失性存储器的写周期.在部写周期过程中AT24C02输入端被禁止,器件不响应来自主机的任何请求.关于地址,应答和数据传送的时序。AT24C02能进行4字节的页写操作.它以与字节写操作同样的方式开始,但是与字节写操作时不同,它不是在第一个数据字被传送之后结束写周期,而是可再发送多达三个的字节.在接收每一个字之后,AT24C02以应答作出响应。在接收每一个字之后,两个低地址位在部加1。地址的高6位保持不变.如果在产生停止条件之前主机要发送多于4个的字,那么地址计数器将"翻转<rollover>"且先前写入的数据将被重写.与字节写操作一样,所有输入将被禁止.直到部写周期完成为止。部写操作期间,输入的禁止可用于运行典型的5ms的写周期.一旦发出表示主机写操作结束的停止条件,AT24C02便开始部的写周期.ACK轮询可立即开始.这包括发出起始条件,后续用于写操作的从地址.如果AT24C02仍忙于写操作,那么没有ACK返回。如果AT24C02已完成写操作,那么ACK将被返回,于是主机可进行下一读或写操作。除了从地址的R/W位被置为1之外,读操作以与写操作相同的方式开始.有三种基本的读操作:当前地址读,随机读和顺序读.应当注意,读操作均第9个时钟周期不是"不关心"。为了结束读操作,主机必须在第9个周期期间发出停止条件或者在第9个时钟周期保持SDA为高电平,然后发出停止条件。AT24C02部包含地址计数器,它保持最后一个被访问字的地址,并可自动加1。因此,若最后一次访问<读或写>的地址为n,那么下一次读操作将访问地址n+1的数据.在接收到R/W位被置为1的从地址后,AT24C02发出应答信号并在接着的8个时钟周期发送8位字。主机通过发送停止条件来结束这次发送,省略第9个时钟周期的应答.地址。.随机读操作允许主机以随机方式访问任何一个存储器单元。在发出R/W位被置为1的从地址之前,主机必须执行一次"伪<dummy>"写操作.主机发出起始条件,从地址并后继以它将要读的字地址.在字地址应答之后,主机立即重新发出起始条件和R/W位被置为1的从地址.这之后是来自AT24C02的应答,再后面是8位字.主机通过发出停止条件结束这次发送,省略了第9个时钟周期的应答.地址。顺序读可以象当前地址读或随机访问读一样开始。第一个字的传送与其他方式一样,只是主机现在用应答作出响应,表示它需要另外的数据.AT24C02对每一个接收到的应答继续输出数据.主机通过发出停止条件结束这次发送,省略第9个时钟周期应答。数据输出是顺序的,来自地址n的数据后随来自地址n+1的数据.读操作的地址计数器所有地址位均可增量,允许在一次操作期间连续读出整个存储器的容。在地址空间的末尾<地址255>,计数器"翻转"至地址0,AT24C02对每一个接收到的应答继续输出数据。极限参数:工作温度-65℃至+135℃;储存温度-65℃至+150℃;任何引脚相对于VSS的电压-1V至+7V;直流输出电流5mA;引脚温度<焊接,10秒>300℃3、8255芯片8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片〔40引脚。其各口功能可由软件选择,使用灵活,通用性强。8255可作为单片机与多种外设连接时的中间接口电路。8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。1与CPU连接部分根据定义,8255能并行传送8位数据,所以其数据线为8根D0~D7。由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C口及控制寄存器,故地址线为两根A0~A1。此外CPU要对8255进行读、写与片选操作,所以控制线为片选、复位、读、写信号。各信号的引脚编号如下:〔1数据总线DB:编号为D0~D7,用于8255与CPU传送8位数据。〔2地址总线AB:编号为A0~A1,用于选择A、B、C口与控制寄存器。〔3控制总线CB:片选信号、复位信号RST、写信号、读信号。当CPU要对8255进行读、写操作时,必须先向8255发片选信号选中8255芯片,然后发读信号或写信号对8255进行读或写数据的操作。2与外设接口部分根据定义,8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制24路开关。各通道的引脚编号如下:〔1A口:编号为PA0~PA7,用于8255向外设输入输出8位并行数据。〔2B口:编号为PB0~PB7,用于8255向外设输入输出8位并行数据。〔3C口:编号为PC0~PC7,用于8255向外设输入输出8位并行数据,当8255工作于应答I/O方式时,C口用于应答信号的通信。3控制器8255将3个通道分为两组,即PA0~PA7与PC4~PC7组成A组,PB0~PB7与PC0~PC3组成B组。如图7.5所示,相应的控制器也分为A组控制器与B组控制器,各组控制器的作用如下:〔1A组控制器:控制A口与上C口的输入与输出。〔2B组控制器:控制B口与下C口的输入与输出。引脚功能:RESET:复位输入线,当该输入端处于高电平时,所有部寄存器〔包括控制寄存器均被清除,所有I/O口均被置成输入方式。CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输.RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。WR:写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。8255具有3个相互独立的输入/输出通道端口,用+5V单电源供电,能在以下三种方式下工作。方式0:基本输入输出方式;方式1:选通输入/出方式;方式2:双向选通输入/输出方式;PA0~PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。工作于三种方式中的任何一种;PB0~PB7:端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。不能工作于方式二;PC0~PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。'不能工作于方式一或二。A1,A0:地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器.当A1=0,A0=0时,PA口被选择;当A1=0,A0=1时,PB口被选择;当A1=1,A0=0时,PC口被选择;当A1=1.A0=1时,控制寄存器被选择4、看门狗电路看门狗电路就是一个定时计数器,一旦到达最大计数值就会把单片机复位,其作用是防止程序进入死循环,监控程序的正常运行。在程序正常执行一遍后,会清零到看门狗计数器,所以不会到达最大计数值,但是如果程序由于外部干扰等原因而进入死循环,定时计数器达最大计数值就会把单片机复位。由于AT89S52单片机自带看门狗功能,我们只需在单片机上写入喂狗程序,就能实现复位功能。这里不再多介绍。第五章系统软件设计5.1 软件设计特点5.2主要功能模块5.2.4单片机复位模块1、AT89S52中看门狗的特点AT89S52置看门狗,它由13位的计数器组成,复位后,调用喂狗指令清零计数器,然后,每个机器周期该计数器自动加1,当记数值达到8191〔1FFF时,产生一个复位信号,系统复位。因此,在启用看门狗后,至少要在8191个机器周期,调用一次喂狗指令,防止看门狗溢出复位。另外,系统在掉电模式下,晶振停止了震荡,看门狗停止。当外部中断唤醒掉电模式时,最好调用一次喂狗指令,防止看门狗溢出复位。2、启动看门狗将01EH,0E1H分别连续送入WDTRST寄存器中,启动看门狗:MOVWDTRST,#01EHMOVWDTRST,#0E1H将01EH,0E1H分别连续送入WDTRST寄存器中,清零看门狗计数器:MOVWDTRST,#01EHMOVWDTRST,#0E1H3、喂狗子程序将01EH,0E1H分别连续送入WDTRST寄存器中,用以喂狗,不让其产生溢出复位:WEIGOU:MOVWDTRST,#01EHMOVWDTRST,#0E1HRET4、使用说明在系统初始化时,调用"启动看门狗程序",启动AT89S52的看门狗功能。在程序适当的地方调用CALLWEIGOU程序,用以喂狗,以便程序在正常情况下不会产生看门狗溢出复位。5、测试程序WDTRSTEQU0A6H;如果是在AT89C51/AT89S51编译环境下,则加上这句ORG0000H第JMPLOOPORG0030HLOOP:MOVWDTRST,#01EH;启动看门狗MOVWDTRST,#0E1HMOVWDTRST,#01EH;看门狗复位MOVWDTRST,#0E1HMOVR1,#0FFH;初始化MOVP1,R1CLRP1.0CALLDELAY;延时SETBP1.0LOOP1:CALLDELAYSETBP1.0CALLWEIGOU;调用喂狗子程序JMPLOOP1DELAY:MOVR3,#200D1:MOVR4,#200DJNZR4,$DJNZR3,D1RETWEIGOU:MOVWDTRST,#01EH;喂狗子程序MOVWDTRST,#0E1HRETEND程序说明:〔1先将上面的程序中"CALLWEIGOU"〔调用喂狗子程序删除,后编译,写到单片机中执行,如果P1.0产生周期性变化,说明看门狗产生了溢出,系统在定时复位。〔2再将上面的程序编译后〔加上CALLWEIGOU,写到单片机中如果P1.0输出不变的高电平,则说明喂狗指令正确。〔3经过以上两次实验后相信可以理解,也可以将看门狗功能加到原有的程序中。6、由于AT89C51/AT89S51中没有WDTRST此特殊功能寄存器,编译时先加与AT89S52的头文件或定义WDTRSTEQU0A6H〔WDTRST位于0A6H处。5.3.5AT24C02储存模块#include"INTRINS.H"#include"reg52.h"#defineWriteDeviceAddress0xa0//写驱动地址指令#defineReadDeviceAddress0xa1//读驱动地址指令sbitAT24C02_SCL=0xa4;sbitAT24C02_SDA=0xa5;/*功能:发起始信号*/voidStart_Cond<>{AT24C02_SCL=0;_nop_<>;AT24C02_SDA=1;_nop_<>;AT24C02_SCL=1;_nop_<>;AT24C02_SDA=0;_nop_<>;}/*功能:发停止信号*/voidStop_Cond<>{AT24C02_SCL=0;_nop_<>;AT24C02_SDA=0;_nop_<>;AT24C02_SCL=1;_nop_<>;AT24C02_SDA=1;_nop_<>;}/*功能:发确认信号*/voidAck<>{AT24C02_SCL=0;_nop_<>;AT24C02_SDA=0;AT24C02_SCL=1;_nop_<>;AT24C02_SCL=0;_nop_<>;AT24C02_SDA=1;}/*功能:发无确认信号*/voidNoAck<>{AT24C02_SCL=0;_nop_<>;AT24C02_SDA=1;_nop_<>;AT24C02_SCL=1;_nop_<>;AT24C02_SCL=0;_nop_<>;}/*功能:写一个字节数据*/bitWrite8Bit<unsignedcharinput>{unsignedchari;for<i=0;i<8;i++>{AT24C02_SCL=0;input<<=1;AT24C02_SDA=CY;AT24C02_SCL=1;}AT24C02_SCL=0;_nop_<>;AT24C02_SDA=1;AT24C02_SCL=1;_nop_<>;CY=AT24C02_SDA;return<CY>;}/*功能:读一个字节数据*/unsignedcharRead8Bit<>{unsignedchartemp,rbyte=0;for<temp=8;temp!=0;temp-->{AT24C02_SCL=0;_nop_<>;rbyte=<rbyte<<1>|AT24C02_SDA;AT24C02_SCL=1;_nop_<>;}returnrbyte;}/*功能:从EEPROM中给定一个地址连续读NLEN个字节数据存放在以指针nContent开头的往下容。*/bitRead_Flash<unsignedchar*nContent,unsignedcharnAddr,unsignedcharnLen>{unsignedcharAddr;Addr=nAddr;Start_Cond<>;//写开始信号Write8Bit<WriteDeviceAddress>;//写驱动地址Write8Bit<Addr>;//写从EEPROM中读的开始地址Start_Cond<>;//写开始信号Write8Bit<ReadDeviceAddress>;//写读数据指令while<--nLen>{*nContent=Read8Bit<>;//读出容nContent++;//指针加1Ack<>;//发确认信号}*nContent=Read8Bit<>;//读一字节NoAck<>;//没有确认信号Stop_Cond<>;//发停止信号return<0>;//返回}/*功能:初始化EEPROM子程序容为FF*/bitInit_Flash<unsignedintnPage>//8Byte/1Pageinit0xFF{unsignedcharnLen;unsignedcharAddr;nLen=8;Addr=8*nPage;Start_Cond<>;Write8Bit<WriteDeviceAddress>;Write8Bit<Addr>;for<;nLen!=0;nLen-->{if<Write8Bit<0xff>>break;//ifWrite8Bit<>Return1WriteFlase}Stop_Cond<>;return<CY>;}/*功能:从EEPROM中给定一个地址连续写NLEN个字节数据存放在以指针nContent开头的往下容。*/bitWrite_Flash<unsignedchar*nContent,unsignedcharnAddr,unsignedcharnLen>{unsignedchari,temp;unsignedcharAddr;Addr=nAddr;Start_Cond<>;//写开始信号Write8Bit<WriteDeviceAddress>;//写驱动地址Write8Bit<Addr>;//写从EEPROM中写的开始地址for<i=0;i<nLen;i++>{if<Addr%8==0>//每页8字节//换页{Stop_Cond<>;_nop_<>;Start_Cond<>;Write8Bit<WriteDeviceAddress>;Write8Bit<Addr>;}temp=*nContent;if<Write8Bit<temp>>break;//CYnContent++;Addr++;}Stop_Cond<>;//发停止信号return<CY>;}/*主程序功能:实现存储器EEPROMAT24C02的数据读写操作*/voidmain<>{unsignedchardat[16],i;Read_Flash<dat,0,16>;//读出AT24C02中从地址0开始依次往后16个字节放入dat数组中Init_Flash<0>;//将AT24C02的第0页初始化为FFRead_Flash<dat,0,16>;//读出AT24C02中从地址0开始依次往后16个字节放入dat数组中for<i=0;i<16;i++>{dat[i]=i;//对数组dat初始化为0F}Write_Flash<dat,0,16>;//将dat数组中的数据写入AT24C02中地址从0开始Read_Flash<dat,1,16>;//读出AT24C02中从地址1开始依次往后16个字节放入dat数组中while<1>{i=9;}}5.3.6数模转换模块〔TLV1548驱动程序#ifndef_TLV1548_H_#define_TLV1548_H_#defineTLV1548_portPORTB#defineTLV1548_port_dirDDRB#defineTLV1548_CSPB0unsignedintTLV1548_interface<unsignedcharx>;voidTLV1548_init<void>;voidTLV1548_power_down<void>;v

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论