基于单片机和组态王的温度控制系统设计 毕业设计_第1页
基于单片机和组态王的温度控制系统设计 毕业设计_第2页
基于单片机和组态王的温度控制系统设计 毕业设计_第3页
基于单片机和组态王的温度控制系统设计 毕业设计_第4页
基于单片机和组态王的温度控制系统设计 毕业设计_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

河南理工大学毕业设计(论文)说明书图4-10增量式PID控制系统框图4.4.3PID参数的整定PID参数的设定决定了升温速度和系统的稳定性。面对不同的控制对象参数都不相同,根据这些参数在整个PID控制过程中的作用,根据实验现象具体调节。(1)温度很迅速就能达到目标值,但是过冲很大。出现这种现象的可能原因是:比例系数太大,致使在达到设定值之前温度上升比例过高;微分系数过小,致使对控制对象的反应不够灵敏。(2)温度经常达不到目标值,小于目标值的时间较长.出现这种现象的可能原因是:比例系数过小,升温比例不够;积分系数过小,对恒定偏差补偿不足。(3)基本上能够控制在目标温度上,但上下偏差很大经常波动.出现这种现象的可能原因是:微分系数过小,对即时变化反应不够迅速;积分系数过大,使微分反应被淹没钝化;设定的基本控制周期过短,加热没来得及传到测温点上。PID参数的调整步骤一般为先比例,后积分,再微分的整定步骤。编程时先设定他们的大概数值,然后通过反复实验调试,根据实验现象最终选定比较理想的参数值。对温度控制系统,通过实验测量,被控对象的纯滞后时间为120秒,即γ=120s。测得加热炉丝的温度相对时间的阶跃响应曲线.由阶跃响应曲线可以确定T=240s,K=0.5,对象的数学模型为一阶惯带延迟的近似环节特性:G(S)=[0.5/(240s+1)]e℡(其中TEL为-120s)(4-4)采样周期的选择是温度控制系统的关键问题之一,通过对电烤箱加热试验,选择瓦--20s是由控制系统的稳定条件以及微控制器执行控制程序所耗费的时间反复试验确定的。得到对象的数学近似模型,结合MATLAB仿真结果.结合试验反复调试其控制参数,直到得到满意的输出控制曲线为止,温度控制曲线如图4-11所示。最后得PID参数:K=4.5,Ti=66.7,Td=10,控制曲线的这种惯性环节其动态及稳态特性均令人满意。具体实现程序见附录B。图4-11温度控制曲线4.4.4PWM波的设计PWM控制采用软件定时器实现,定时器以工频周期为基本计数周期进行加法定时。定时器采用工作方式0,时基定为100毫秒。这里假定PWM波的周期为10秒,把每个周期分成M=100份,由PID算法得到一个0~100之间整数形式的输出控制量N。一个周期开始时M=0,P2.6脚输出高电平,加热器停止加热,每100毫秒M加l,当M小于等于由PID算法得出的控制量时,P2.6脚电平翻转输出低电平,这时加热器开始加热,直到M加到100,重新开始下一个控制周期。等到下一周期开始P2.6脚电平又被置为高电平,如此反复进行便产生温度控制的PWM波。具体实现程序见附录B。4.5通讯程序单片机与组态王的通讯方法主要有三种:一是利用组态王的驱动程序开发包进行驱动开发自己的通讯驱动程序,该方法适用于专业厂商;二是通过动态数据交换(DDE)方式进行通讯,该方法比较复杂且实时性较差;三是利用组态王提供的与单片机的通用通讯协议,该方法是简单且实时性好,适用于一般用户。本系统采用第三种通信方案。组态王提供的与通用单片机的通讯协议可以支持ASCII型和HEX型,其中HEX型效率较高,下面就介绍HEX型单片机通用协议。通讯参数:通讯参数包括数据位、停止位、波特率、校验方式。数据位、停止位、波特率由单片机决定,组态王中的设定和单片机一致即可。校验方式参照“数据传输格式”中相关部分。其数据传输格式见表4-2, 其中协议指令说明如下:表4-2数据传输格式格式名格式内容含义说明格式1ENQStaEOTCRC组态王发送地址请求格式(此时检验位为1)格式2ACKStaETXCRC单片机应答地址格式(此时校验位为0)格式3ENQRDataTypeDataAddrDataNumEOTCRC组态王读数据请求格式(此时校验位为0)格式4ACKDataLongData….ETXCRC单片机应答读数据格式(正确)(此时校验位为0)格式5ZAKErrorCodeETXCRC单片机应答读数据格式(错误)(此时校验位为0)格式6ENQWDataTypeDataAddrData….EOTCRC组态王写数据请求格式(此时校验位为0)格式7ACKErrorCodeETXCRC单片机应答写数据格式(正确)(此时校验位为0)(2)读写时序:表4-3读数据时序组态王单片机第一步:格式1————第二步:格式2第三步:格式3————第四步:格式4第五步:如果第四步单片机执行格式4,结束。否则,执行格式1。————第六步:格式2第七步:格式3————第八步:格式4或格式5表4-4写数据时序表组态王单片机第一步:格式1————第二步:格式2第三步:格式6————第四步:格式7第五步:如果第四步单片机执行格式7的ErrorCode=0,结束。否则,执行格式1。————第六步:格式2第七步:格式6————第八步:格式7(3)协议说明:参数传输中所有数据均为16进制数,与参数传输相关代码及指令如下表。表4-5参数传输代码表指令对应16进制数含义说明ENQ(头)H05询问请求帧的开始代码ACK(头)H06确认ACK应答帧的开始代码NAK(头)H15否认NAK应答帧的开始代码EOT(尾)H04正文的结束请求帧的结束ASCII代码ETX(尾)H03结束正文应答帧的结束ASCII代码Sta:设备地址1字节R:读标志1字节(Ox52)W:写标志1字节(Ox57)DataType:需要交换的数据类型,1字节。即DataType的值表示的不同含义:1.字节;2.字;3.浮点型DataNum:要读取得数据的数量,1字节DataAddr:数据偏移地址2字节,低字节在前,高字节在后Data:实际传输的数据,低字节在前,高字节在后DataLong:单片机返回Data的字节数,2字节,低字节在前,高字节在后CRC:为从第一个字节至CRC前的所有字节的异或值,1字节ErrorCode其含义如下表:表4-6ErrorCode数值含义ErrorCode数值含义0正确应答1数据类型错误2数据范围超限3指令无法识别,应为R或W4校验错误串行中断服务程序必须严格根据组态王的单片机通信协议编写,中断服务程序流程图如图4-12所示:图4-12中断服务程序流程图4.6组态王监控界面设计组态王的通讯参数设置要和单片机一致,如图4-13,包括数据位、停止位、波特率等,通信方式选RS232。监控的设定画面如图4-14所示。图4-13通讯参数设置图4-14设定画面该画面包括监控日期和时间、温度测量的三个通道、三个实测温度值和设定值,三个温度曲线、历史温度曲线按钮和报警窗口及退出按钮等。通过这个设定画面,我们可以同时观察到三个通道的实测温度,点击设定值将弹出输入数据窗口,我们可以给予温度合适的设定值。此外,点击“曲线”按钮可显示相应的实时温度曲线,并以设定温度曲线作参考。按下“历史温度曲线”和“报警消息”按钮,即可显示相应的画面,“退出”按钮按下即可退出运行系统,这样使得操作更加方便快捷。5系统调试AT89S52单片机功能虽然很强,但只是一个芯片,本身无自开发能力,必须借助一定的开发系统来开发软件和对硬件电路进行诊断、调试。本设计软件调试是采用KeilC51,硬件电路采用DXP2004,还尝试用proteus进行系统仿真,但结果不是很理想。proteus仿真系统可以对硬件电路进行诊断与检查,KeilC51具有程序的输入与修改,运行、调试、排错等功能,而且具有较全的开发软件,支持多种语言进行软件开发。5.1硬件部分调试按照电路图焊接好电路板后,就需要对硬件电路进行调试了,硬件部分的调试主要是对照设计的电路图,利用万用表来检测各个引脚之间有没有虚焊,硬件板上各个相邻引脚之间有没有短路。1.系统板焊接完后,测试单片机各个功能管脚,当测到(RESET)脚时,发现不复位时,此脚的电压也为高电平。原因及解决方法:复位电路中有一些地方焊接得不对。解决方法:把复位电路中的错误地方拆下来,再按照正确的方式焊接上。2.单片机复位电路中,经查,22uf电容的两个引脚发生短路,导致复位电路失效。经重新焊接,使该部分功能恢复正常。3.温度控制电路的调试在调试温度控制电路时,由于控制比较复杂,所以采用先用面板上进行插接,通过给一个高电平到控制电路输入,看是否能控制继电器的通断以至控制加热电路的通断。在面板上调试成功后再焊接到电路板上。调试的目的是排除硬件和软件的故障,使研制的样机符合预定设计目标,下面就调试过程中遇到的问题及其解决方法作以下叙述。4.加热后温度上升很缓慢原因分析:在设计控制电路时,采用普通的电阻作为热源,控制DS18B20周围的温度,但是由于电阻选择不是很到位,产生的热量太小。解决办法:用热敏电阻加热,并且把DS18B20靠近其一些,相对温度控制能好些。5.控制电路不能正常工作,不能实现控制温度的作用。使用万用表对电路进行检查,发现三极管不能承受太大的电压,已经被烧坏。解决方法:在连接控制电路时,在三极管与单片机数据口之间加入电阻,进行分压,防止烧坏单片机。6.单片机最小系统不能正常工作,全部接好后,从单片机ALE口不能输出方波信号。经过分析发现有很多原因都可能导致这个问题,可能的情况有:电路接线焊接不对、有虚焊点、元器件已经烧坏等。解决方法:首先,查看了电路焊接是否正确,经过与电路的仔细对照,发现电路没有问题,接着,利用万用表察看是否有虚焊点,在测量之后,发现有一个点没有焊接牢固,改正之后,电路工作正常。7.焊接好温度传感器后,没有正常测温。经查,在实验箱上温度测量系统工作正常,排除了温度传感器损坏的原因。查看电路后,发现温度传感器DQ端接到单片机的一个接口上,该接口没有接电源。解决方法:把单片机接温度传感器的接口同时也接到+5V电源上。5.2软件部分调试任何人在编制软件时基本上不可能一次成功,因为软件的开发是一项仔细的严谨的系统工作,是一个重复的不断进行修改和完善的过程,尤其是一些复杂的功能强大的系统,对软件的要求也就更规范严格,要求符合软件设计的各项指标。本多点测温系统的硬件电路确定之后,系统的功能将依赖于软件设计,所以软件设计好坏直接影响系统功能的实现和系统的运行,在设计和调试软件时尽量使软件符合软件开发的要求,各个功能模块明确,使软件功能强大。软件开发调试系统使用了伟福编译系统,对于编制的软件程序,可以在伟福系统的编译环境下运行,本系统软件的调试步骤如下:1.温度传感器不能正常测量温度。原因:由于DS18B20是数字式温度传感器,使用时必须遵循严格的时序关系,在编程时没有弄清楚温度传感器的时序。解决方法:查阅了大量资料,对照时序图和文字说明理清时序关系。2.把系统分成若干个模块,包括温度测量、数据采集、读出温度、温度转换、温度计算,分别进行编译、调试。3.对各模块输入变量赋值,单步运行,看其运算是否正确,最终输出是否合乎要求。4.将各个模块连接起来,单步运行,检查各模块接口处运行是否正确及各模块之间的逻辑关系。6总结经过近两个月的的分析和研究,在同学的配合以及指导老师的帮助下,终于顺利完成了这次设计。通过这次设计,使自己对基于DS18B20的多点温度测量系统和单片机控制系统有了全面的认识,对组态监控软件的使用有了更深的了解,这些都代表着温度测量与控制新的发展趋势,DS18B20的使用体现了数字化、节约材料、提高效率的优点;单片机的出现则是大大简化了控制系统;组态王的使用,更是方便了操作人员对系统的管理和维护。该基于单片机和组态王的温度测量系统设计具有硬件结构简单、易于制作、价格低廉、测量值精确和易于操作等许多优点,但由于实验室条件所限,暂时只做三点的温度测量,并且控制端只能对三点采集温度的平均值作为参考点进行控制。但在实际应用中可根据具体情况进行更多点的扩展和对多点分别进行控制。随着现代信息技术的飞速发展和传统工业改造的逐步实现,基于单片机和组态王的温度测量系统已经广泛应用于控制、化工等诸多领域。总之,本次毕业设计顺利完成,基本达到了毕业设计的要求。本文在深入分析多点智能测温系统的工作原理基础上,完成了该系统设计和调试任务,并且系统的性能误差达到了任务书的要求,使之能达到现场运行水平。首先,总结一个学期的论文工作,得到以下结论:1.针对一般测温系统的特点,提出了一套应用数字式温度传感器DS81B20组建温度测控网络新型方案,该方案的突出特点是系统的数字化、快速化及其经济实用性。2.以单总线为基本结构,采用ATMEL公司的AT89S52单片机为总线命令,实现与DSl8B20的总线接口,并提供具体电路设计。4.软件编程采用模块化、结构化设计,易于修改和维护。5.设计采用国产组态软件KingView对系统进行在线实时监控,实现了人员管理的便捷性,并提供了具体可行的人机界面设计方案。其次,由于时间和精力的限制,对后续的研究还应在以下方面逐步完善:1.应用软件的完善。温度采集方面,一次命令全部单总线上的DS18B20进行温度转换,减少系统所需时间。2.进一步完善系统的可靠性。由于实际经验的欠缺,设计上难免有考虑不周之处。当某一个传感器出现故障时,虽然系统能发现该测温点故障,但是更换传感器时涉及到其序列号的修改和应用程序的修改,这些还需要在今后应用时加以完善。3.控制部分的控制效果并不是很理想,以后要在该部分PID参数调节上多下功夫,以更好的提高控制精度。4.由于实际情况未研究远程控制方案,以后可在通讯部分改用RS485,控制部分采用对各个传感器的分别控制,那样效果会更好些。最后,本论文在新型数字温度测控系统方面做了一定的研究工作。该系统初步完成了温度测控方案的预定目标,为今后实现数字化与网络化的温度测控系统工程提供了一种新的参考。总之,毕业设计完成了,大学生活很快也要结束了,之后就要面临着工作了。我相信我会带上自己的热情和自己的所学,积极投入自己的工作中,不断努力,不断进取,做更好的自己!参考文献[1]余发山,王福忠.单片机原理及应用技术.徐州:中国矿业大学出版社,2008.6[2]刘春华,高继森.基于组态软件和单片机的多点温度监控系统总体设计.宜春学院学报,2008,(30)[3]周润景,徐宏伟,丁莉等.单片机电路设计、分析与制作.北京:机械工业出版社,2010.5[4]马国华.监控组态软件及其应用.北京:清华大学出版社,2001.8[5]北京亚控科技发展有限公司.组态王Version6.53使用说明书及技术资料[6]张开生,郭国法.MCS-51单片机温度控制系统的设计[J].微计算机信息,2005,21,(7):08-09[7]叶景.基于单片机的温度控制系统的设计.中国新通信(技术版)2008.7[8]张艳艳.基于PID算法和89C52单片机的温度控制系统[J].现代电子技术,2009,(21)[9]陶永华.新型PID控制及其应用[M].北京:机械工业出版社.2002.[10]马云峰.数字温度传感器DS18B20的原理与应用[J].电子元器件应用.2003.[11]DallasSemiconductor.DS18B20Datasheet[P].2002.[12]马忠梅.单片机的C语言应用程序设计[M].北京:北京航空航天大学出版社.2003.[13]赵娜,赵刚,于珍珠等.基于51单片机的温度测量系统[J].微计算机信息,2007,1-2:146-148[14]贾畅鹏.固态继电器的特性及应用[J].煤炭技术,2007,26(1):33-34[15]金伟正.单线数字温度传感器的原理及应用[J].电子技术应用,2000(6):66-68[16]沙占友.智能化集成温度传感器原理与应用[M].北京:机械工业出版社,2002.致谢本课题研究是在陶慧老师的悉心指导下完成的,在此期间我所做的每一个决定都得到老师的支持和帮助,不管是在选题、开题、设计方案的确定与细化等方面老师都给了我耐心、细致的指导;同时,陶老师还仔细地审阅我的论文,为我指出错误、提出修改方法。陶老师诲人不倦、一丝不苟、严肃认真的治学风格给我留下了深刻印象,值得我认真学习。在此,谨向指导老师陶老师致以真诚的谢意!期间,我还得到了很多同学的热心帮助。最后,衷心感谢所有关心、帮助和支持过我的老师、同学和朋友们。还有,一直在背后默默理解、支持和帮助我的家人和朋友们。附录A电气原理图附录B主要程序1.ds18b20.h#ifndef__DS18B20_H__#define__DS18B20_H__#defineucharunsignedchar#defineuintunsignedintsbitDS=P1^0;//定义DS18B20接口sbitDS1=P1^1;sbitDS2=P1^2;voiddelayb(uintcount){uinti;while(count){i=200;while(i>0)i--;count--;}}voiddsreset(void){uinti;DS=0;DS1=0;DS2=0;i=103;while(i>0)i--;DS=1;DS1=1;DS2=1;i=4;while(i>0)i--;}bittmpreadbit(void){uinti;bitdat;DS=0;i++;//小延时一下DS=1;i++;i++;dat=DS;i=8;while(i>0)i--;return(dat);}bittmpreadbit1(void){uinti;bitdat1;DS1=0;i++;//小延时一下DS1=1;i++;i++;dat1=DS1;i=8;while(i>0)i--;return(dat1);}bittmpreadbit2(void){uinti;bitdat2;DS2=0;i++;//小延时一下DS2=1;i++;i++;dat2=DS2;i=8;while(i>0)i--;return(dat2);}/*************读一个字节**************/uchartmpread(void){uchari,j,dat;dat=0;for(i=1;i<=8;i++){j=tmpreadbit();dat=(j<<7)|(dat>>1);//读出的数据最低位在最前面,这样刚好//一个字节在DAT里}return(dat);//将一个字节数据返回}uchartmpread1(void){uchari,j,dat1;dat1=0;for(i=1;i<=8;i++){j=tmpreadbit1();dat1=(j<<7)|(dat1>>1);//读出的数据最低位在最前面,这样刚好//一个字节在DAT里}return(dat1);//将一个字节数据返回}uchartmpread2(void){uchari,j,dat2;dat2=0;for(i=1;i<=8;i++){j=tmpreadbit2();dat2=(j<<7)|(dat2>>1);//读出的数据最低位在最前面,这样刚好//一个字节在DAT里}return(dat2);//将一个字节数据返回}/*************写一个字节*****************/voidtmpwritebyte(uchardat){uinti;ucharj;bittestb;for(j=1;j<=8;j++){testb=dat&0x01;dat=dat>>1;if(testb)//写1部分{DS=0; DS1=0; DS2=0; i++;i++;DS=1; DS1=1; DS2=1; i=8; while(i>0)i--;}else{DS=0;//写0部分 DS1=0; DS2=0; i=8; while(i>0)i--;DS=1; DS1=1; DS2=1;i++;i++;}}}/***********发送温度转换命令***************/voidtmpchange(void){dsreset();//初始化DS18B20delayb(1);//延时tmpwritebyte(0xcc);//跳过序列号命令tmpwritebyte(0x44);//发送温度转换命令}/******获得温度******/inttmp(){inttemp;uchara,b;dsreset();delayb(1);tmpwritebyte(0xcc);tmpwritebyte(0xbe);//发送读取数据命令a=tmpread();//连续读两个字节数据b=tmpread();temp=b;temp<<=8;temp=temp|a; //两字节合成一个整型变量。returntemp;//返回温度值}inttmp1(){inttemp1;uchara,b;dsreset();delayb(1);tmpwritebyte(0xcc);tmpwritebyte(0xbe);//发送读取数据命令a=tmpread1();//连续读两个字节数据b=tmpread1();temp1=b;temp1<<=8;temp1=temp1|a; //两字节合成一个整型变量。returntemp1;//返回温度值}inttmp2(){inttemp2;uchara,b;dsreset();delayb(1);tmpwritebyte(0xcc);tmpwritebyte(0xbe);//发送读取数据命令a=tmpread2();//连续读两个字节数据b=tmpread2();temp2=b;temp2<<=8;temp2=temp2|a; //两字节合成一个整型变量。returntemp2;//返回温度值}/*******读取温度序列号********/voidreadrom() {ucharsn1,sn2;dsreset();delayb(1);tmpwritebyte(0x33);sn1=tmpread();sn2=tmpread();}#endif2.温控继电器程序: //头文件:#include"reg51.h"#include"ds18b20.h" //引入DS18B20头文件#defineucharunsignedchar#defineuintunsignedint//变量定义:ucharly_dis[4];//定义显示缓冲区codeuchartable[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d, 0x7d,0x07,0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71};//数码管编码表:共阴数码管0-9ucharl_posit=0; //显示位置ucharoldkey=0xff; //保按键接口状态ucharkey;uchard;//5种显示状态uchark,l,d=1;intltemp[5];//引脚定义: sbitFMQ=P2^4; //蜂鸣器控制sbitJDQ=P2^5; //继电器控制sbitSMG_q=P2^0; //定义数码管阴级控制脚(千位)sbitSMG_b=P2^1; //定义数码管阴级控制脚(百位)sbitSMG_s=P2^2; //定义数码管阴级控制脚(十位)sbitSMG_g=P2^3; //定义数码管阴级控制脚(个位)sbitkey1=P3^7; //定义按键1sbitkey2=P3^6; //定义按键2sbitkey3=P3^5; //定义按键3sbitkey4=P3^4; //定义按键4//函数声明:voiddisplay(uintdig,ucharn);//子显示函数,显示缓冲区内容voiddisplay_all(void);//总显示函数voiddelay(void);unsignedcharReadKey(void);//主函数,C语言的入口函数: voidmain(){ uinti=0; uintj=0; floattt[3]; floatt_test; intltemp_test; ltemp[3]=402;//报警温度 ltemp[4]=342;//加热温度 JDQ=0; while(1){ if(i==0) tmpchange(); //温度转换 if(i==20) {t_test=tmp()*0.0625; //得到真实十进制温度值,因为DS18B20 tt[0]=tmp()*0.0625; //得到真实十进制温度值,因为DS18B20 tt[1]=tmp1()*0.0625; tt[2]=tmp2()*0.0625;//可以精确到0.0625度,所以读回数据的最低位代表的是0.0625度。 for(j=0;j<3;j++) { ltemp[j]=(tt[j]*10+0.5); //放大十倍,这样做的目的将小数点后第一位也转换为可显示数字,同时进行一个四舍五入操作。 } ltemp_test=t_test*10+0.5; } i++; if((ltemp[0]<ltemp[4])&&(ltemp[1]<ltemp[4])&&(ltemp[2]<ltemp[4])) //低于下线温度启动继电器 JDQ=1;if((ltemp[0]>=ltemp[4])||(ltemp[1]>=ltemp[4])||(ltemp[2]>=ltemp[4])) JDQ=0; if((ltemp[0]>=ltemp[3])||(ltemp[1]>=ltemp[3])||(ltemp[2]>=ltemp[3])) //达到上线温度启动蜂鸣器 FMQ=1; if((ltemp[0]<ltemp[3])&&(ltemp[1]<ltemp[3])&&(ltemp[2]<ltemp[3])) FMQ=0; if(i==300) i=0; //display(ltemp[3],4); //调用显示 display_all(); //按键处理 key=ReadKey(); if(key==1) {d++; if(d==5)d=1; } while(key==4) { switch(ReadKey()) { //读取键值做以下相应处理 case1:key=1;break; //返回 case2:ltemp[3]++; //2键温度值减1 break; case3:ltemp[3]--; //3键温度值加1 break; case4:key=1; //返回 break; } display(ltemp[3],4); } }}//显示函数,参数为显示内容voiddisplay(uintdig,uchark){uinttemp;ucharn;n=k; temp=dig;if(n==0){ly_dis[0]=temp/1000;}//第一位显示百位值 if(n==1){ly_dis[0]=10;}//第一位显示Aif(n==2){ly_dis[0]=11;}//第一位显示B if(n==3){ly_dis[0]=12;}//第一位显示Cif(n==4){ly_dis[0]=13;}//第一位显示D ly_dis[1]=temp%1000/100; //显示温度十位值 ly_dis[2]=temp%100/10; //显示温度个位值 ly_dis[3]=temp%10; //显示小数点后一位 P0=0XFF; //关完 switch(l_posit){ case0: //选择千位数码管,关闭其它位 SMG_q=0; SMG_b=1; SMG_s=1; SMG_g=1; P0=table[ly_dis[0]]; //输出显示内容 break; case1: //选择百位数码管,关闭其它位 SMG_q=1; SMG_b=0; SMG_s=1; SMG_g=1; P0=table[ly_dis[1]]; break; case2: //选择十位数码管,关闭其它位 SMG_q=1; SMG_b=1; SMG_s=0; SMG_g=1; P0=table[ly_dis[2]]|0x80; break; case3: //选择个位数码管,关闭其它位 SMG_q=1; SMG_b=1; SMG_s=1; delayb(1); P0=0x00;//消隐 delay(); l_posit++; //每调用一次将轮流显示一位 if(l_posit>3) l_posit=0; }voiddisplay_al

温馨提示

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

评论

0/150

提交评论