毕业设计(论文)-基于单线数字温度传感器的中央空调计费系统_第1页
毕业设计(论文)-基于单线数字温度传感器的中央空调计费系统_第2页
毕业设计(论文)-基于单线数字温度传感器的中央空调计费系统_第3页
毕业设计(论文)-基于单线数字温度传感器的中央空调计费系统_第4页
毕业设计(论文)-基于单线数字温度传感器的中央空调计费系统_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

基于单线数字温度传感器的中央空调计费系统摘要通过对中央空调计费现状弊端的分析,提出了采用两个单线数字温度传感器和单片机检测用户实际使用冷气时间来测量用户消费能源的信息,并通过485总线将信息发送至系统主机,从而实现中央空调消费的合理收费,解决了物业管理部门和用户的长期争端。本设计是根据空调用户的使用档位情况进行计费,空调是简化了的模型,假设空调被简化为三个档位,第一、二、三档位分别对应的相乘系数是1、2、3。把空调的三个档位看作三路开关量信号AI1AI3分别对应P0002口三路开关量信号AI1AI3分别对应的系数是1、2、3;同时三路开关量要麽只有一个打开,要麽全部关闭,微处理器接收到任一路开关量对该开关量进行计时,当该开关量结束后进行运算处理,即将时间值与系数相乘,并将结果储存,如果其他开关量打开则继续上述过程,同时将上次的结果累积,当上位机(PC机)查询时,通过串口将结果输出,同时显示该结果。附带看门狗电路保证系统工作稳定可靠,不会因为偶然事件造成系统死机而停止工作。按键包括对系统复位的复位键、两个显示按键(实时查看单片机记录的数值并通过显示器显示,或显示温度)。关键词单线数字传感器中央空调计费系统CHARGESYSTEMOFCENTRALAIRCONDITONERBASEDONONELINEDIGITALTEMPERATURESENSORSABSTRACTAFTERANALYSISTHEDEFECTOFCHARGEFORCENTRALAIRCONDITIONERSYSTEMOFTHISTIMEASYSTEMHASBEENDESIGNED,INWHICHTWOONELINEDIGITALTEMPERATURESENSORSANDSINGLECHIPCOMPUTERWEREUSEDTOMEASURETHEINFORMATIONOFENERGYCONSUMEDBYUSERS,ANDSENDEDTHISINFORMATIONTOCENTRALCOMPUTERBY485BUSTHUSREALIZEDFAIRCHARGING,SOLVEDTHELONGTIMEDISPUTEBETWEENTHECOMSUMERANDTHERUNNERSTHISDESIGNISCARRIESONTHECOSTACCORDINGTOTHEAIRCONDITIONINGUSERSUSEFILESPOSITIONSITUATION,THEAIRCONDITIONINGSIMPLIFIEDTHEMODEL,THESUPPOSITIONAIRCONDITIONINGBYTHESIMPLIFICATIONISTHREEFILESPOSITIONS,ONE,TWO,THREERESPECTIVELYCORRESPONDMULTIPLICATIONSTHECOEFFICIENTIS1,2,3REGARDSASTHREEWAYSWITCHQUANTITYSIGNALAI1AI3THEAIRCONDITIONINGTHREEFILESPOSITIONRESPECTIVELYTOCORRESPONDTHECOEFFICIENTWHICHP0002MOUTHTHREEWAYSWITCHQUANTITYSIGNALAI1AI3CORRESPONDSSEPARATELYIS1,2,3SIMULTANEOUSLYTHETHREEWAYSWITCHQUANTITYWANTSONLYTHENONETOOPEN,WANTSTOCLOSECOMPLETELY,THEMICROPROCESSORRECEIVEASSUMESTHEPOSTAGROUPSWITCHQUANTITYTOCARRYONTHETIMETOTHISSWITCHQUANTITY,AFTERTHISSWITCHQUANTITYHADENDEDCARRIESONOPERATIONPROCESSING,SOONTHETIMEVALUEANDTHECOEFFICIENTMULTIPLICATION,ANDFINALLYWILLSTOREUP,IFOTHERSWITCHQUANTITYWILLOPENCONTINUESTHEABOVEPROCESS,SIMULTANEOUSLYTHEPREVIOUSTIMERESULTACCUMULATION,WILLWORKASWHENTHEPOSITIONMACHINEPCMACHINEWILLINQUIRE,THROUGHTHESERIALPORTFINALLYOUTPUTS,SIMULTANEOUSLYWILLDEMONSTRATETHISRESULTSUPPLEMENTARYWATCHDOGELECTRICCIRCUITGUARANTEESYSTEMWORKSTABLERELIABLE,CANNOTBUTBECAUSETHEACCIDENTCREATESTHESYSTEMTODIEMACHINETHEKNOCKOFFTHEPRESSEDKEYINCLUDINGVALUEANDTHROUGHMONITORWHICHTOTHESYSTEMREPLACEMENTREPLACEMENTKEY,TWODEMONSTRATIONPRESSEDKEYSREALTIMEEXAMINATIONMONOLITHICINTEGRATEDCIRCUITRECORDSDEMONSTRATED,ORDEMONSTRATIONTEMPERATUREKEYWORDSONELINEDIGITALSENSORCENTRALAIRCONDITIONERCALCULATEFEESYSTEM目录引言4第1章中央空调的计费原理5第2章系统设计方案821信息采集机设计8211单片机模块9212DS1820数字温度传感器1022MAX7219显示驱动器1423数码管显示16231动态扫描显示接口动态扫描显示接口17第3章信号传输2031RS232串行接口标准与RS485串行接口标准20311RS232串行接口标准20312RS485串行接口标准2132总线驱动器芯片SN751762133MAX23222第4章上位机界面的建立24总结与体会35致谢36参考文献37附录38引言随着建筑业的发展,中央空调的计费问题成为投资者最为关注的事情。迄今为止,关于中央空调计费问题,政府部门还没有出台相关规章制度来统一和衡量。各种高端酒店、写字楼、商住楼日益增多,而同时人们的量化概念越来越强烈,在以往物管收费的过程,类似电费、水费因为有据可依,故在收费的过程中并未引起较大的争端,但中央空调的使用费用做为物管收取费用中占据最大金额的费用却无法进行有效合理的收取,为物管工作带来诸多不利。以往中央空调的收费是按面积分摊,用户交费均为定值,与使用情况无关,这就容易造成各用户产生“用与不用一样,用多用少一样”“不用白不用,用了也白用”的消费概念。以至于用户很少关空调,或开着窗户使用空调,不管是否需要,空调总在使用,形成“供多少用多少”的局面,而空调机组却长期处于满负荷或超负荷的工作状态下,造成运营费用的升高同时造成管理利润降低。中央空调计费系统的面世,使中央空调的使用发生了从“供多少用多少”到“用多少供多少”质的转变,体现了按需使用,按量收费。这样不仅可以使用户在缴费问题上有据可依,减轻物业管理工作量,提高物业管理公司的工作效率;同时,提高计费工作的准确性、合理性,还可以引导用户树立正确的消费观念,促使用户节约能源,减小中央空调系统的工作负荷,延长设备的使用寿命,降低运行费用,达到减负增收的双重效果。较好的解决了用户与物业管理公司之间的收费争端,改善客、主之间的关系,树立良好的企业形象。这样不仅增加了物业管理公司的经济效益,社会效益也得到了很好的回报。可随时通过生成报表查看、打印各温控开关的实时状态信息。每日通过生成报表来查看、打印各种日用量、日运行信息。每月通过生成报表查看、打印各种月用量、费用信息。计费程序流程图如图1。图1计费程序流程图第1章中央空调的计费原理中央空调的制冷热原理是通过水泵将冷冻水热水送到各风机盘管中,由风机吹送冷热风达到降升温的目的。中央空调的热交换过程需考虑以下因素由于风机盘管表冷器面积出厂后是一定值,因此换热面积与风速成正比。由于压缩机组功率一定,正常使用时流过风机盘管的水量不变,不用考虑流过风机盘管的水量影响。热交换耗能与用户的使用空调时间即水流通时间T成正比。根据物质的热交换能量计算热力学公式QMCT2一T1T1式中Q消耗的冷量或热量,JC流体的比热,JKGKM流体的质量流量,KGST1、T2流体的进口和出口温度,KT热交换时间,S综上所述三点因素,我们可以看出,中央空调的进口水温是由主机的负荷能力决定的,同时对于一个处于正常工作状态的风机盘管,其表冷器管径是定值,进出口的水压差近似为常数,所以流过风机盘管的冷或热水流量也近似为一常数。因此,在式1中风机盘管进出口水温差T2一T1与风机风速成正比,即T2一T1V。因此我们可将式1中的M,C,T2一T1综合成一个关于风速的中央空调用户综合系数X,在标准情况下X即表示为风机盘管型号。则式1在中央空调的热交换过程中可表示为QXVT2式中Q风机盘管带走的冷或热量,JX风机盘管关于风速口的综合系数即风机盘管型号T使用空调时间即水流通时间因此,在风机盘管型号确定的情况下,计费系统所要测量的参数就是风速T,和风机盘管的有效工作时间T。我们的中央空调计费系统就是基于这一方式进行工作的通过累积电动二通阀开启的空调时间T以及同步检测风速口,结合风机盘管型号系数X,从而计算出每一个风机盘管在一段时间内交换的冷或热量累计值。该冷或热量值与能量单价相乘,即可以计算出其空调使用费3系统结构该模块原理框图如下图11所示图11接入485总线至远端由此并结合我所查的芯片及器件资料,可以利用PROTEL99画出原理图,如下图12参见附图1图12由此可生成PCB为下图13A为上层,B为底层单片机开关量显示器温度传感器按键485转接看门狗AA顶层参见附图2B底层(参见附图3)上位机通过查询知道当前查看的是哪个用户,并显示该用户的计数值。上位机和下位机通过RS485总线实现通信。RS485总线串行方案如下图14RS485总线图14RS485总线串行方案RS232RS485转换1RS232RS485转换2RS232RS485转换NRS485转换计数模块1计数模块2计数模块N上位机第2章系统设计方案利用单片机采集用户使用中央空调能源的信息冷气阀的开/关状态、冷冻水进、出口处温度,并将其传送至中央控制室的系统主机,便于计算费用。随INTERNET的发展和普及,对于用户使用空调的信息进行网上发布,如用户使用费、欠费、当月费用等,并结合INTERNET技术发放费用单、催费单等。设计的系统框图如图21所示。图21中央空调计费系统图图21中的各信息采集机安装在各住户、写字室等处,用于采集各用户消费中央空调的能源信息,并将其传送到系统主机,同时通过控制冷气阀的开关来限制恶意欠费消费的用户继续使用资源。用户消费中央空调的能源信息由如下因素决定由用户端的冷冻水入口温度TL、出口温度TH和冷气阀开的时间T来决定,即ETHTLT。为费率因子,在系统主机程序中由物管公司酌情确定。冷冻水入口温度TL、出口温度由信息采集机中的DS1820集成传感器测量。冷气阀开的时间T通过信息采集机检测其开关状态来决定,用户空调在使用状态下,室内温度的高低与用户设定温度决定冷气阀的开关状态。当室内温度高于设定温度时,冷气阀打开,只有这时用户消费了冷气,公司才能收费反之阀关闭,用户只消费了自己的电资源,而没有消费冷气,不应交费。因此,冷气阀的开关状态是时开时关。信息采集机将阀开的时间进行累加,在一定时间周期后将此信息和进、出口温度信息发送至系统主机,进行管理。因此,用户同样在使用空调,而设定温度不同,冷气阀的开关状态是不同的,收费亦不同。本系统真正反映了多消费多交费的原则,是先进的。21信息采集机设计本系统设计充分考虑安全可靠、实用价廉的原则。单片机采用AT89S52两温度的测量采用DALLAS公司生产的一种单线式数字温度传感器DS1820,它具有接口连线少,无须处理电路,测量精度较高,可靠性好等特点由于中央空调各用户地理位置范围较大,单片机的232接口通讯距离不能满足信息传输要求,故系统采用一集成芯片将单片机的232转换为485接口,从而来完成这一功能。信息采集机设计框图和DS1820与单片机接口如图22所示。图22信息采集机框图DS1820不断检测用户空调的进、出口温度,并将它们之差存入单片机存储器中单片机通过P11检测冷气阀的开关状态,并记录各次开状态下的时间。为了方便计算和管理,本系统在进、出口温度相差变化2内的开状态时间累积一次,并暂存或和温度差信息一起发送至系统主机。系统主机采用VC高级语言编程。由于采集机中的DS1820传感器具有新颖、通信协议特殊的特点,以下就其特性和本系统中AT89S52对DS1820的编程进行论211单片机模块在本设计中,单片机使用AT89S52。之所以使用AT89S52,是因为它有如下性能1、与MCS51单片机产品兼容2、8K字节在系统可编程FLASH存储器3、1000次擦写周期4、全静态操作0HZ33HZ5、三级加密程序存储器6、32个可编程I/O口线7、三个16位定时器/计数器8、八个中断源9、全双工UART串行通道10、低功耗空闲和掉电模式11、掉电后中断可唤醒12、看门狗定时器图2313、双数据指针14、掉电标识符其封装为图23功能特性描述看门狗定时器WDT是一种需要软件控制的复位方式。WDT由13位计数器和特殊功能寄存器中的看门狗定时器复位存储器(WDTRST)构成。WDT在默认情况下无法工作;为了激活WDT,户用必须往WDTRST中依次写入01EH和0E1H。当WDT激活后,晶振工作,WDT在每个机器周期都会增加。WDT计时周期依赖于外部时钟频率。除了复位(硬件复位或WDT溢出复位),没有办法停止WDT工作。当WDT溢出,它将驱动RST引脚一个高电平输出。当WDT激活后,用户必须向WDTRST写入01EH和0E1H喂狗来避免WDT溢出。当计数达到81911FFFH时,13位计数器将会溢出,这将会复位器件。晶振正常工作、WDT激活后,每一个机器周期WDT都会增加。WDT计数器不能读或写。当WDT计数器溢出时,将给RST引脚产生一个复位脉冲输出,这个复位脉冲持续96个晶振周期(TOSC),其中TOSC1/FOSC。为了很好地使用WDT,应该在一定时间内周期性写入那部分代码,以避免WDT复位。在掉电模式下,晶振停止工作,这意味着WDT也停止了工作。在这种方式下,用户不必喂狗。有两种方式可以离开掉电模式硬件复位或通过一个激活的外部中断。通过硬件复位退出掉电模式后,用户就应该给WDT喂狗,就如同通常AT89S52复位一样。中断应持续拉低很长一段时间,使得晶振稳定。当中断拉高后,执行中断服务程序。为了防止WDT在中断保持低电平的时候复位器件,WDT直到中断拉低后才开始工作。这就意味着WDT应该在中断服务程序中复位。为了确保在离开掉电模式最初的几个状态WDT不被溢出,最好在进入掉电模式前就复位WDT。在进入待机模式前,特殊寄存器AUXR的WDIDLE位用来决定WDT是否继续计数。默认状态下,在待机模式下,WDIDLE0,WDT继续计数。为了防止WDT在待机模式下复位AT89S52,用户应该建立一个定时器,定时离开待机模式,喂狗,再重新进入待机模式。编程方法对AT89S52编程之前,需根据FLASH编程模式表,采用下列步骤对AT89S52编程1在地址线上输入编程单元地址信号2在数据线上输入正确的数据3激活相应的控制信号4把EA/VPP升至12V5每给FLASH写入一个字节或程序加密位时,都要给ALE/PROG一次脉冲。字节写周期时自身定制的,典型值仅仅50US。改变地址、数据重复第1步到第5步,直到全部文件结束212DS1820数字温度传感器DS1820是DALLAS公司研制的一线式数字集成温度传感器,它主要特性是检测温度范围为55125,精度为05以9BIT的数字量来表示温度温度到数字量的转换时间为200MS可以定义一个不变化的温度设置为报警温度不需要外部元器件可通过数据线供电一线完成通信等。它有PR35T和SSOP两种封装形式,管脚安排有所不同,但主要有三根线GND地、DQ数据输入输出、VDD电源,分别对应于PR35T型的1、2、3管脚,SSOP型的9、8、7管脚。内部结构如图24所示。图24DS1820内部结构图、DS1820内部包括以下几部分A、64位激光只读存储器。B、温度传感器。它采用半导体集成温度传感器将温度转化为数字量表示C、DS1820的存储器。它由高速存储器RAM和E2RAM组成。D、电源VDD。其封装为下图25图25DS1820的封装、DS1820采用了1WIREBUS技术。该技术采用单总线技术具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等优点。单总线即只有一根数据线,系统中的数据交换、控制都有这根线完成。主机或从机通过一个漏级开关或三态端口连至该数据线,以允许设备在不发送数据时能够释放总线,而让其他设备使用总线。单总线通常要求外接一个约为47K的上拉电阻,这样,当总线闲置时,其状态为高电平。主机和从机之间的通信可通过3个步骤完成,分别为初始化1WIRE器件、识别1WIRE器件和交换数据。由于它们是主从结构,只有主机呼叫从机时,从机才能应答,因此主机访问1WIRE器件都必须严格遵守单总线命令序列,即初始化、ROM、命令功能命令。如果出现序列混乱,1WIRE器件将不响应主机。、DS1820的测温原理下图26图26温度检测系统原理图温度检测系统原理图如图26所示,采用寄生电源供电方式。无论是单点还是多点温度检测,在系统安装及工作之前,应将主机逐个与DS1820挂接,读出其序列号。其工作过程为主机TX发一个脉冲,待“”电平大于480S后,复位DS1820,待DS1820所发响应脉冲由主机RX接收后,主机TX再发读ROM命令代码33H(低位在前),然后发一个脉冲(15S)并接着读取DS1820序列号的一位。用同样方法读取序列号的56位。对于图26系统的DS1820操作的总体流程图如下图27所示。它分三步完成系统通过反复操作,搜索DS1820序列号;启动所有在线DS1820做温度A/D变换;逐个读出在线DS1820变换后的温度数据。、AT89S52中对DS1820的编程系统中AT89S52的程序主要功能有工作指示灯点亮、检测冷气阀的开关状态、串行口通信、进出口温度的测量对DS1820的编程。而对DS1820的编程则必须严格按照上述其时序步骤进行,其源程序如下。AT89S52对DS1820编程的程序清单READTEQU0BEH读温度READSEQU0ECH读状态字STARTTEQU44H启动转换INTFADDBITP10DS1820与89S52的接口地址STORETEQU30H存放从DS1820中读得的数据PTEMACALLRSTM复位DS1820MOVA,STVCACALLWTEM写启动转换命令ACALLW1S延时1秒钟PTT1ACALLRSTM复位DS1820MOVA,RDSTACALLWTEM图27总体流程图ACALLRTEM读状态字MOVA,STORETCJNEA,0FFH,PTT2AJMPPTT1PTT2JNBACC7,PTT1根据DONE判断转换是否结束ACALLRSTMMOVA,RDTMACALLWTEMACALLRTWM读测得的温度数值RET子程序复位DS1820RSTMCLRINTFADDMOVR0,0DJNZR0,DJNZR0,SETBINTFADDMOVR0,5DJNZR0,JBINTFADD,JNBINTFADD,RET写数据到DS1820WTEMMOVR1,8WTERRCAJCWTE1CLRINTFADDMOVR0,50DJNZR0,SETBINTFADDAJMPWDR1WTE1CLRINTFADDMOVR0,4DJNZR0,SETBINTFADDMOVR0,50DJNZR0,WDR1DJNZR1,WTETET从到DS1820读数据RTEMSETBINTFADDMOVR1,8RTECLRINTFADDNOPNOPNOPSETBINTFADDNOPJBINTFADD,RET1CLRCRRCAAJMPRDR1RTE1SETBCRRCARDR1SETBINTFADDMOVR0,50DJNZR0,DJNZR1,RTEMOVSTORET,ARETW1SMOVR2,2W05SMOVR1,0W1MSMOVR0,0DJNZR0,DJNZR0,DJNZR0,DJNZR1,W1MSDJNZR2,W05SRET程序处理是整个系统的关键,即简洁的硬件结构是靠复杂的软件来支持的。多个器件挂在一条总线上,为了识别不同的器件,在程序设计过程中一般有四个步骤初始化命令;传送ROM命令;传送RAM命令;数据交换命令。22MAX7219显示驱动器MAX7219芯片为MAXIM公司推出的串行输入输出共阴极显示驱动器,是用一个芯片实现以往用软件完成的动态显示电路扫描工作的器件。每片可控制显示8个七段LED数码管、条形图或64个发光二极管,控制字简单,可与各种微机接口。为24引脚芯片,除与显示器连接外,与微机串行口为3线连接,芯片外部电路仅为一限制峰值段电流的电阻,线路简单,极大地方便了对显示器件的控制。该芯片控制的显示位数多、控制字少,可对全部或个别显示位的数据进行更新,并可方便地进行多个芯片的级联,扩展显示容量。MAX7219有多种封装形式,如窄式DIP封装。其与单片机连接图如图28图28MAX7219与单片机连接图当多片MAX7219级联时,可控制更多的LED。也可以将MAX7219的一部分用于数字显示,一部分用于条图显示。显示的数据通过单片机数据处理如量程标定,线性化,漂移处理等后送至MAX7219,因而显示结果更加准确可信。MAX7219是共阴极显示驱动器,其SEGAG和SEGH为LED七段显示器段和小数点驱动端,DIG07为8位数字驱动线,输出位选信号,DIN为串行数据输入端,CLK为串行时钟输入端,DOUT为串行数据输出端,在级联时传到下一片MAX7219的DIN端,LOAD为装入数据控制端,ISET端通过一个电阻与电源相连,以提供给LED段的峰值电流。MAX7219主要包括移位寄存器、控制寄存器、译码器、数位与段驱动器以及亮度调节和多路扫描电路等。MAX7219采用串行接口方式,只需LOAD、DIN、CLK三个管脚便可实现数据传送。DIN管脚上的16位串行数据包不受LOAD状态的影响,在每个CLK的上升沿被移入到内部16位移位寄存器中。然后,在LOAD的上升沿数据被锁存到数字或控制寄存器中。LOAD必须在第16个时钟下降沿或之后、但在下一个时钟上升沿之前变高,否则数据将会丢失。DIN端的数据通过移位寄存器传送,并在165个时钟周期后出现在DOUT端,随CLK的下降沿输出。MAX7219有驱动8个数码管的能力,但实际应用中不一定恰好是8个。扫描位数寄存器用于设置显示器数码管的实际扫描个数,由扫描位数寄存器的D2D0设定,其数据为0H时,表示仅扫描数位0,数据为01H时,扫描数位0与数位1,如此类推,直至数据为7H,表示8个全扫描。8个全部扫描时,扫描速率为800HZ,只扫描N个时,扫描速率为8FOSC/N。应注意扫描的位数变化对亮度有明显影响。当扫描的数码管等于或少于3个时,单个数位驱动器将消耗较大的功率,因而必须依据使用的数码管实际数量调整电阻RSET的大小,限制消耗的电流。23数码管显示数码管实际上是由7个发光管组成8字形构成的,加上小数点就是8个。七段发光二极管(LED)显示器,用七个发光二极管做成A、B、C、G七段,并分为共阴极与共阳极两种。共阳极是将七个发光二极管的阳极接在一起并接在正电源上,阴极接到译码器的各输出端,当哪个发光二极管的阴极为低电平时哪一个发光管就亮。共阴极则与之相反。动态扫描显示接口是单片机中应用最为广泛的一种显示方式之一。其接口电路是把所有显示器的8个笔划段AH同名端连在一起,而每一个显示器的公共极COM是各自独立地受I/O线控制。CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,则取决于COM端,而这一端是由I/O控制的,所以我们就可以自行决定何时显示哪一位了。而所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1MS),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。图210(A)是字段形式,图210(B)是数字与字段的关系。图210显示数字于16进制代码之间的对应关系如表21(0为点亮1为灭)显示数字P07P06P05P04P03P02P01P0016进制代码00010100028H1011111107EH210100010A2H30110001062H40111010074H50110000161H60010000121H7011110107AH80010000020H90110000060HP05始终为1。因为它接在小数点上,没有用它而已。231动态扫描显示接口动态扫描显示接口控制程序设计本系统中单片机采用中断方式对MAX7219进行控制,传送16位数据的地址位和数据位。在主程序中,包括串行方式的设置、显示缓冲单元和各控制寄存器的地址码及数据单元的分配、对MAX7219的初始化等。以下程序中,显示缓冲区为RAM的30H37H单元,控制寄存器地址码及数据单元为40H47H单元。要显示的数据是程序执行的运算结果,以BCD码数形式存放在显示缓冲单元的数据字节中,用转换子程序BSHIFT倒序后存回原处。单片机串行发送数据的启动在主程序中进行,每发送两个字节后,在中断子程序中控制使MAX7219的LOAD引脚产生正跳变,把数据锁存入相应的寄存器中。该中断子程序既可发送一个16位数据,也可连续发送多个,非常方便。由于MAX7219易受干扰影响,因此在程序执行过程中应经常对显示进行更新。程序流程图如图211所示。主程序及发送中断子程序、数据格式转换子程序如下。;主程序;把数据格式转换为7219的方式MOVR1,31HMOVR5,8LCALLBSHIFT;把8位数均转换为7219方式;初始化7219MOVR2,8MOVR0,40HSETB;奇偶字节发送判断标志CLRP32MOVA,R0MOVSBUF,A;发送40H起内容,初始化7219;发送8个要显示的数据MOVR2,88;8个数据共16字节MOVR0,30H;30H为数据缓冲区首址SETBP32;准备7219的LOAD电平MOVA,R0MOVSBUF,A;开始发送数据;对7219的串行发送中断子程序STINT1CLRTICPLF0JNBF0,ST13SETBP32;发完16位后产生LOAD脉冲CLRP32ST13CJNER2,0,STI1;判断是否发送完SJMPSTI2STI1DECR2;没送完INCR0;地址偏移MOVA,R0MOVSBUF,A;发下一字节STI2RETI;BCD码转换为7219数据形式子程序,转换数据及结果由R1间址BSHIFTMOVA,R1ADDA,6MOVCA,APCMOVR1,AINCR1INCR1DJNZR5,BSHIFTRETDB0,80H,40H,0C0H,20H,0A0H,60H,0E0H,10H,90H图211程序流程图第3章信号传输31RS232串行接口标准与RS485串行接口标准计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式。由于串行通讯方式具有使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用。在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。RS232与RS485都是串行数据接口标准,最初都是由电子工业协会(EIA)制订并发布的311RS232串行接口标准目前RS232是PC机与通信工业中应用最广泛的一种串行接口。RS232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。RS232采取不平衡传输方式,即所谓单端通讯,收、发端的数据信号是相对于信号地,如从DTE设备发出的数据在使用DB25连接器时是2脚相对7脚(信号地)的电平,DB25各引脚定义参见图31。图31典型的RS232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在515V之间,负电平在515V之间。当无数据传输时,线上为TTL,从开始传送数据到结束,线上电平从TTL电平到RS232电平再返回TTL电平。接收器典型的工作电平在312V与312V。由于发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20KB/S。RS232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为37K。所以RS232适合本地设备之间的通信。312RS485串行接口标准针对RS232的不足,于是就不断出现了一些新的接口标准,RS485就是其中之一,它具有以下特点(1)RS485的电气特性逻辑“1”以两线间的电压差为(26)V表示;逻辑“0”以两线间的电压差为(26)V表示。接口信号电平比RS232降低了,就不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接。(2)RS485的数据最高传输速率为10MBPS3RS485接口是采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强,即抗噪声干扰性好。4RS485接口的最大传输距离标准值为4000英尺,实际上可达3000米,另外RS232接口在总线上只允许连接1个收发器,即单站能力。而RS485接口在总线上是允许连接多达128个收发器,即具有多站能力,这样用户可以利用单一的RS485接口方便地建立起设备网络。因RS485接口具有良好的抗噪声干扰性,长的传输距离和多站能力等上述优点,使其成为首选的串行接口。因为RS485接口组成的半双工网络一般只需二根连线,所以RS485接口均采用屏蔽双绞线传输。RS485接口连接器采用DB9的9芯插头座,与智能终端RS485接口采用DB9(孔),与键盘连接的键盘接口RS485采用DB9(针)。32总线驱动器芯片SN7517633MAX232MAX232是一种双组驱动器接收器,片内含有一个电容性电压发生器,在单5V电源供电时提供EIATIA232E电平,每个接收器将232电平输入转换为5VTTLCMOS电平。AT89S52的串行端口与MAX232相连,PTXDPRXD与PC机串行端口的读写相连,实现AT89S52的串行端口与PC机的通信图34单片机串行端口与PC机通信的硬件电路DESCRIPTIONTHEMAX232DEVICEISADUALDRIVER/RECEIVERTHATINCLUDESACAPACITIVEVOLTAGEGENERATORTOSUPPLYEIA232VOLTAGELEVELSFROMASINGLE5VSUPPLYEACHRECEIVERCONVERTSEIA232INPUTSTO5VTTL/CMOSLEVELSTHESERECEIVERSHAVEATYPICALTHRESHOLDOF13VANDATYPICALHYSTERESISOF05V,ANDCANACCEPT30VINPUTSEACHDRIVERCONVERTSTTL/CMOSINPUTLEVELSINTOEIA232LEVELSTHEDRIVER,RECEIVER,ANDVOLTAGEGENERATORFUNCTIONSAREAVAILABLEASCELLSINTHETEXASINSTRUMENTSLINASICLIBRARYTHEMAX232ISCHARACTERIZEDFOROPERATIONFROM0TO70THEMAX232IISCHARACTERIZEDFOROPERATIONFROM40TO85MAX232的封装和典型电路如下MAX232PINCONFIGURATIONANDTYPICALOPERATINGCIRCUITFAGUER35FAGURE35第4章上位机界面的建立上位机与下位机之间的关系是相互作用的,上位机通过输入各项设置参数来改变下位机程序的工作方式,比如温控时间等。下载后将保存到下位机,这样可以脱离PC机而独立按此时的设置工作;上载则相反,它是从机器的各项设置调入到PC机,便于查看它的各项设置情况和便于修改;实时监控实际上也就是下位机时刻都在上传到PC机,比如我们看到的监控界面报警,继电器输出,信号输入等变化图标和数据的传送等。数据转发器将同一楼层区所有信号采集器采集到的用户端风机盘管的有效工作时间以及风速信息收集起来,转发到计费工作站。计费工作站安装了中央空调计费管理软件,用于完成整个系统的数据管理、查询及报表生成等,也管理系统中用户、设备的添加、删除及设置等。它通过数据转发器与各个信号采集控制器进行数据交换。其工作流程如(图41)我的设计思路是可有两种查询途径,其一,通过直接输入所要查询的房间号,点击发送按钮,则即可从接收框中显示出所要查询的房间的计费情况;其二,通过直接点击所要查询的房间号,即可在接收框中显示出所要查询的房间的计费情况。VISALC支持面向对象的程序设计方法(OPP),支持MFC类库编程,有强大的集成开发环境DEVELOPERSTUDIO其中包括了程序自动生成向导APPWIZARD、类向导CLASSWIZARD和各种资源编辑器,以及功能强大的调试器等可视化和自动编程辅导工具。VISALC可用来开发各种类型、不同规模和图41VC是一种功能非常强大的编程语言,开发效率很高,生成的应用软件代码品质优良。VC以其灵活、高效的特点倍受程序员们的青睐。在系统软件、游戏软件等要求速度较高的领域,VC有着不可替代的地位。关于上位机的界面的建立,我们要求直观、美观、有效、实用,遵循这些原则,我们的设计如下1、建立项目打开MICROSOFTVISUALVC60,出现一个当时的提示对话框,点击结束按钮然后依次点击文件新建点击MFCAPPWIZARDEXE建立一个基于对话框的MFC应用程序SCOMMTEST,在工程框中填入名字SCOMMTEST,点击之后的浏览按钮选择存储位置D点击“确定”按钮。出现MFCAPPWIZARDSTEP1对话框,选择“基本对话框”。点击“完成”“确定”2在项目中插入MSCOMM控件首先分别点击确定、取消、TODO在这里设置对话控制,点击DELETE键,删除这几项。选择PROJECT菜单下ADDTOPROJECT子菜单中的COMPONENTSANDCONTROLS选项,在弹出的对话框中双击REGISTEREDACTIVEXCONTROLS项,选择MICROSOFTCOMMUNICATIONSCONTROL,VERSION60,单击INSERT按钮将它插入到PROJECT中来,接受缺省的选项。这时在CLASSVIEW视窗中就可以看到CMSCOMM类了,并且在控件工具栏CONTROLS中出现了电话图标,用鼠标将此图标拖到对话框中,程序运行后,这个图标是看不到的。3CLASSWIZARD定义CMSCOMM类控制对象点击“查看”“建立类向导”打开CLASSWIZARDMEMBERVIARIABLES选项卡,选择CSCOMMTESTDLG类,为IDC_MSCOMM1添加控制变量M_CTRLCOMM,这时,在对话框头文件中自动加入了/AFX_INCLUDESINCLUDE“MSCOMMH“/AFX_INCLUDES。4在对话框中添加控件向主对话框中添加三个编辑框,其中两个用于接收显示数据ID分别为IDC_EDIT_RXDATA1和IDC_EDIT_RXDATA2,另一个用于输入发送数据,ID为IDC_EDIT_TXDATA,再添加一个按钮,功能是点击该按钮就把发送编辑框中的内容发送出去,将其ID设为IDC_BUTTON_MANUALSEND。在接收编辑框的PROPERTIESSTYLES中把MILTILINE和VERTICALSCROLL属性选上,发送编辑框也选上MILTILINE。再打开CLASSWIZARDMEMBERVIARIABLES选项卡,选择CSCOMMTESTDLG类,为IDC_EDIT_RXDATA1和IDC_EDIT_RXDATA2依次添加CSTRING变量M_STRRXDATA1和M_STRRXDATA2,为IDC_EDIT_TXDATA添加CSTRING变量M_STRTXDATA。说明M_STRRXDATA1、M_STRRXDATA2和M_STRTXDATA分别用来放入接收和发送的字符数据。点击STATICTEXT分别在放在发送框和接收框上方,并分别修改属性的标题对话框为目标地址、计数值、温度。这时,可得到如下窗口图415添加串口事件消息处理函数ONCOMM打开CLASSWIZARDMESSAGEMAPS,选择类CSCOMMTESTDLG,选择IDC_MSCOMM1,双击消息ONCOMM,将弹出的对话框中将函数名改为ONCOMM,这个函数是用来处理串口消息事件的,如每当串口接收到数据,就会产生一个串口接收数据缓冲区中有字符的消息事件,刚才添加的函数就会执行,在ONCOMM函数加入相应的处理代码VOIDCSCOMMTESTDLGONCOMM/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREVARIANTVARIANT_INPCOLESAFEARRAYSAFEARRAY_INPLONGLEN,KBYTERXDATA2048/设置BYTE数组AN8BITINTEGERTHATISNOTSIGNEDCSTRINGSTRTEMPIFM_CTRLCOMMGETCOMMEVENT2/事件值为2表示接收缓冲区内有字符/以下你可以根据自己的通信协议加入处理代码VARIANT_INPM_CTRLCOMMGETINPUT/读缓冲区SAFEARRAY_INPVARIANT_INP/VARIANT型变量转换为COLESAFEARRAY型变量LENSAFEARRAY_INPGETONEDIMSIZE/得到有效数据长度FORK0KMESSAGEMAPS,选择类CSCOMMTESTDLG,选择IDC_BUTTON_MANUALSEND,双击BN_CLICKED添加ONBUTTONMANUALSEND函数,并在函数中添加如下代码VOIDCSCOMMTESTDLGONBUTTONMANUALSEND/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREUPDATEDATATRUE/读取编辑框内容M_CTRLCOMMSETOUTPUTCOLEVARIANTM_STRTXDATA/发送数据8、点击BUTTON按钮,在对话框中拖出一块矩形区域,放开鼠标,会发现生成一个按钮BUTTON1,为了使所有按钮都大小相同,将BUTTON1复制七个,并分别修改每个按钮的属性,右键点击各个按钮,点击属性,出现属性对话框,将GENERAL项中的标题分别修改为房间1、房间2、房间3、房间4、房间5、房间6、房间7、房间8。然后分别双击每个按钮,将其加入函数ONBUTTON1、ONBUTTON2、ONBUTTON3、ONBUTTON4、ONBUTTON5、ONBUTTON6、ONBUTTON7、ONBUTTON8,然后双击每个按钮为其添加函数然,并添加如下代码/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREUPDATEDATATRUE/读取编辑框内容CSTRINGTXDDATA“55AA01AA55“M_CTRLCOMMSETOUTPUTCOLEVARIANTM_STRTXDATA/发送数据VOIDCSCOMMTESTDLGONBUTTON2/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREUPDATEDATATRUE/读取编辑框内容CSTRINGTXDDATA“55AA02AA55“M_CTRLCOMMSETOUTPUTCOLEVARIANTM_STRTXDATA/发送数据VOIDCSCOMMTESTDLGONBUTTON3/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREUPDATEDATATRUE/读取编辑框内容CSTRINGTXDDATA“55AA03AA55“M_CTRLCOMMSETOUTPUTCOLEVARIANTM_STRTXDATA/发送数据VOIDCSCOMMTESTDLGONBUTTON4/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREUPDATEDATATRUE/读取编辑框内容CSTRINGTXDDATA“55AA04AA55“M_CTRLCOMMSETOUTPUTCOLEVARIANTM_STRTXDATA/发送数据VOIDCSCOMMTESTDLGONBUTTON5/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREUPDATEDATATRUE/读取编辑框内容CSTRINGTXDDATA“55AA05AA55“M_CTRLCOMMSETOUTPUTCOLEVARIANTM_STRTXDATA/发送数据VOIDCSCOMMTESTDLGONBUTTON6/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREUPDATEDATATRUE/读取编辑框内容CSTRINGTXDDATA“55AA06AA55“M_CTRLCOMMSETOUTPUTCOLEVARIANTM_STRTXDATA/发送数据VOIDCSCOMMTESTDLGONBUTTON7/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREUPDATEDATATRUE/读取编辑框内容CSTRINGTXDDATA“55AA07AA55“M_CTRLCOMMSETOUTPUTCOLEVARIANTM_STRTXDATA/发送数据VOIDCSCOMMTESTDLGONBUTTON8/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREUPDATEDATATRUE/读取编辑框内容CSTRINGTXDDATA“55AA08AA55“M_CTRLCOMMSETOUTPUTCOLEVARIANTM_STR

温馨提示

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

评论

0/150

提交评论