基于单片机的空调温度控制器设计_第1页
基于单片机的空调温度控制器设计_第2页
基于单片机的空调温度控制器设计_第3页
基于单片机的空调温度控制器设计_第4页
基于单片机的空调温度控制器设计_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、 接口 技术课程设计报告 基于单片机的空调温度控制器设计基于单片机的空调温度控制器设计 学 院: 机械与电子工程学院 年级专业: 08 级电子信息工程 学 号: 08808033 姓 名: 指导教师: 侯俊才 完成时间: 成 绩: 摘 要设计了基于 AT89C52 的高精度家用空调温度控制系统,系统硬件主要由电源电路、温度采集电路(DS18B20) 、键盘、显示电路、输出控制电路及其他辅助电路组成;软件采用 8051C 语言编程;该系统可以完成温度的显示、温度的设定、空调的控制等多项功能。关键词:单片机;DS18B20;温度检测;显示目录目录1 设计目的及要求.11.1 设计目的和意义.11.

2、2 设计任务与要求.12 硬件电路设计.22.1 总体方案设计.22.2 功能模块电路设计.3.3.5.5.6.6.7.82.3 总电路设计.82.4 系统所用元器件.93 软件系统设计.103.1 软件系统总体方案设计.103.2 软件流程图设计.104 系统调试.125 总结.135.1 本系统存在的问题及改进措施 .13参考文献.14附录 1:系统的源程序清单.15附录 2:系统的 PCB 图.3901 设计目的及要求1.1 设计目的和意义21 世纪的人们生活质量不断提高,同时也对高科技电子产业提出了更高的要求,为了使人们生活更人性化、智能化。我设计了这一基于单片机的空调温度控制系统,人

3、们只有生活在一定的温度环境内才能长期感觉舒服,才能保证不中暑不受冻,所以对室内温度要求要高。对于不同地区空调要求不同,有的需要升温,有的需要降温。一般都要维持在 2126C。目前,虽然我国大量生产空调制冷产品,但由于我国人口众多,需求量过盛,在我国的北方地区,还有好多家庭还没有安装有效地室内温控系统。温度不能很好的控制在一定的范围内,夏天室内温度过高,冬天温度过低,这些均对人们正常生活带来不利的影响,温度、湿度均达不到人们的要求。以前温度控制主要利用机械通风设备进行室内、外空气的交换来达到降低室内温度,实现室内温度适宜人们生活。以前通风设备的开启和关停,均是由人手动控制的,即由人们定时查看室内

4、外的温度、湿度情况,按要求开关通风设备,这样人们的劳动强度大,可靠性差,而且消耗人们体力,劳累成本过高。为此,需要有一种符合机械温控要求的低成本的控制器,在温差和湿度超过用户设定值范围时,启动制冷通风设备,否则自动关闭制冷通风设备。鉴于目前大多数制冷设备现在状况,我设计了一款基于 MCS51 单片机的空调温度控制系统。1.2 设计任务与要求系统要求利用单片机设计一空调温度控制器,能够实时检测并显示室温,能够利用键盘设定温度,并且和室温进行比较,当室温低于设定温度时,系统能够驱动加热系统工作,当室温高于设定温度时,系统能够驱动制冷系统工作,当两者温度相等时,不做动作。12 硬件电路设计2.1 总

5、体方案设计空调温度控制系统,主要要完成对温度的采集、显示以及设定等工作,从而实现对空调的控制。传统采用铂电阻充当测温器件的方案,虽然其中段测量线性度好,精度较高,但是测量电路的设计难度高 ,且测量电路系统庞大,难于调试 ,而且成本相对较高。鉴于上述原因,本系统采用 DS18B20 充当测温器件。外部温度信号经 DS18B20 将输入的模拟信号转换成 8 位的数字信号, 通过并 口传送到单片机系统( AT89C52) 。单片机系统将接收的数字信号译码处理,通过 LCD1602 将温度显示出来,同时单片机系统还将完成键盘扫描 、按键温度设定、超温报警等程序的处理 ,将处理的温度信号与系统设定温度值

6、比较,形成可以控制空调制冷、制热与停止工作三种工作状态,从而实现空调的智能化。另外,键盘输入方面,采用了软件来修正误操作输入 ,即输入的温度范围必须在系统硬件所确定的范围内,直接降低由于误操作带来的风险,提高了系统的可靠性 ,体现了人性化的系统设计原则。系统的整体框图如图 1 所示:图图1 系统整体框图系统整体框图22.2 功能模块电路设计由于本系统只需要单片机完成矩阵键盘检测以及处理 DS18B20 送来的温度数据并送 LCD1602 进行显示对于 I/O 资源以及处理速度无特殊要求,故选择 ATMEL 公司生产的 AT89C52 单片机,AT89C52 增加了在线调试功能,即程序可以通过

7、JTAG 接口下载,调试和固化,因而该芯片的开发不再需要昂贵的硬件仿真器,可实现实时仿真,所有的资源都可以为用户所使用,可以在线编程或在系统编程,更进一步地说,在线编程或在系统编程是开发的系统具有了通过网络进行升级、维护的潜在功能。AT89C52 的性能及特点1:与 MCS-51 系列单片机兼容。片内有 8K 可在线重复编程的快速内 存可擦写存储器(Flash Memory) 。存储器可循环写入/擦写 10000 次以上。存储器数据保存时间为 10 年以上。宽工作电压范围:Vcc 可为 2.7V-6.5V。全静态工作:可从 0Hz-24MHz。程序存储器具有三级加密保护。256 字节的内部 R

8、AM。32 条可编程 I/O 口线。三个 16 位定时器/计数器。中断结构具有 5 级(6 级)中断源和两个优下级。可编程全双工串行通讯。空闲维持低功耗和掉电状态保护存储数据。 AT89C52 引脚图如图 2 所示。3图图 2 AT89C52 引脚图引脚图VCC: +5V 电源输入GND:接地P0 口是一个双向 8 位三态 I/O 口,每个口可独立控制。使用时需外接上拉电阻。P1 口是一个准双向 8 位 I/O 口,它的功能是单一的,只能用作数据的输入或者输出。P2 口是一个准双向 8 位 I/O 口,输出时,从 P2.x 端口可输出 CPU 写到锁存器上的信号。当该接口用做数据输入接口是,应

9、先向该位写 1,然后,读该位即可读入输入数据。P3 口是具有第二功能的准双向 8 位 I/O 口。ALE/PROG:地址所存/编程信号线。当 P0 口工作在第二功能时从该端口可复用工作,某时刻该端口可以送出地址信号 A0A7,而另外的时刻该端口传送的是数据信号D0D7。利用 ALE 可以将地址信号 A0A7 锁存到地址锁存器。/VPP:该控制信号线也具有双重功能,是允许访问片外 ROM/编程高电压引线。EA4:程序存储器允许输出控制端,常用作片外 ROM 的读控制信号,低电平有PSEN效。RESET:复位引脚,当该端加上超过 24 个时钟周期的高电平时,可是 8051 复位。系统复位电路如图

10、2.3 所示。X1、X2:外接时钟引脚。X1 为片内振荡电路的输入端,X2 为片内振荡电路的输出端。AT89C52 内部有一个用于构成片内振荡器的高增益反相放大器, 振荡器产生的信号送到 CPU, 作为 CPU 的时钟信号,驱动 CPU 产生执行指令功能的机器周期。引脚XTAL1 和 XTAL2 是此放大器的输人端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器, 振荡电路的连接如图所示图 8 所示,外接石英晶体或陶瓷谐振器以及电容 C1 和 C2 构成并联谐振电路, 接在放大器的反馈回路中。对外接电容 C1 和 C2 的值虽然没有严格的要求, 但电容的大小

11、多少会影响振荡器频率的高低、振荡器的稳定性、起振圈内部振荡的接法的快速性和温度稳定性。外接石英晶体时, C1 和 C2 一般取(40pF-10pF) ,外接的是石英晶体, 所以,C1、C2选择标称值 30pF。系统振荡电路如图 3 所示。图图 3 振荡电路振荡电路单片机复位是使 CPU 和系统中的其他功能部件都处在一个确定的初始状态, 并从这个状态开始工作。无论是在单片机刚开始接上电源时, 还是断电后或者发生故障后都要复位。89 系列单片机的复位信号是从 RST 引脚输人到芯片的施密特触发器中的。当系统处于正常工作状态时, 且振荡器稳定后, 如果 RST 引脚有一个高电平并维持 2 个机器周期

12、(24 个振荡周期), 则 CPU 就可响应并且将系统复位。复位分为手动复位和5上电复位。本设计系统采用的是上电自动复位。系统复位电路如图 4 所示。图图 4 复位电路复位电路独立键盘与单片机连接时,每个按键都需要单片机的一个 I/O 口,若单片机系统需要较多按键,如果用独立按键会占用过多的 I/O 口资源。单片机系统中 I/O 口资源往往比较宝贵,当用到多个按键时,为了节省 I/O 口线,一般需使用矩阵键盘。本系统共需使用 16 个按键,故选择的矩阵键盘。键盘接口电路如图 5 所示。44图图 5 键盘接口电路键盘接口电路 本系统的温度测量电路采用 DS18B20 来实现。DS18B20 是美

13、国 DALLAS 半导体公司推出的第一片采用“一线总线”接口的温度传感器,它具有微型化、低功耗、高性能、抗干扰、能力强、易配微处理器等优点,可直接将温度转化成串行数字信号供处理器处理。DS18B20 的性能及特点2:6适应电压范围宽,电压范围在,在寄生电源方式下可由数据线供电。V5 . 50 . 3独特的单线接口方式,它与微处理器连接时仅需一条口线即可实现微处理器与DS18B20 的双向通信。支持多点组网功能,多个 DS18B20 可以并联在唯一的三线上,实现组网多点测温。在使用中不需要任何外接元件,全部传感元件及转换电路集成在形如一只三极管的集成电路里。测温范围-55+125,在-10+85

14、时精度为0.5。可编程分辨率为 912 位,对应的可分辨温度分别为 0.5,0.25,0.125和 0.0625,可实现高精度测温。在 9 位分辨率时,最多在 93.75ms 内把温度转换为数字;12 位分辨率时,最多在 750ms 内把温度值转换为数字。测量结果直接输出数字温度信号,以“一线总线”串行传送给 CPU,同时可传送CRC 校验码,具有极强的抗干扰纠错能力。负压特性。电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。系统温度测量电路如图 6 所示。图图 6 温度测量电路温度测量电路本系统采用 LCD1602 作为系统的显示器件,1602 字符型液晶是一种专门用来显示字母、数字、

15、符号等的点阵型液晶模块,能分两行显示,它有若干个或者等75115点阵字符位组成,每个点阵字符位都可以显示一个字符。1602 型液晶接口信号如下:1 脚 VSS:电源地。2 脚 VDD:电源正极。3 脚 VO:液晶显示对比度调节端。4 脚 RS:数据/命令选择端(H/L)。75 脚 R/:读写选择端(H/L) 。W6 脚 E:使能信号。脚:数据口。147D7D015 脚 BL1:背光电源正极。16 脚 BL2:背光电源负极。系统显示电路如图 7 所示。图图 7 系统显示电路系统显示电路系统要求在当前室温低于设定温度时,能够自动驱动加热系统工作 ;在当前室温高于设定温度时能够自动驱动制冷系统工作。

16、本系统在复位后即置 P26 脚和 P27 脚为低电平,在当前室温低于设定温度时,通过置 P27 脚为高电平来驱动后级加热系统,本系统采用红色 LED 来代替加热系统;在当前室温高于设定温度时,通过置 P26 脚高电平来驱动后级制冷系统,本系统采用蓝色 LED 来代替制冷系统。输出控制电路如图 8 所示。图图 8 输出控制电路输出控制电路82.3 总电路设计系统总电路图如图 9 所示。图图 9 系统总电路图系统总电路图2.4 系统所用元器件本系统所用的元器件清单如表 1 所示。 表表 1 系统所用元器件系统所用元器件元器件名称元器件名称数量数量点触式开关1630pF 瓷片电容210uF 电解电容

17、1蓝色 LED1红色 RED15V 电源插座1自锁开关1LCD160211/4W10K 电阻3910K 可调电阻1AT89C521DS18B20112MHz 晶振13 软件系统设计3.1 软件系统总体方案设计 系统软件由主程序模块、测温程序模块、键盘扫描程序模块以及液晶驱动程序模块组成。3.2 软件流程图设计系统软件流程图如图 10 所示。10图图 10 系统软件流程图系统软件流程图4 系统调试系统调试程序在 Keil uVision4 环境下编写,编译通过后生成.hex 文件加载到 Protuse 下可正常运行。程序默认温度为 21.0,Protuse 下设定 DS18B20 的温度也为 2

18、1.0,故开始11运行时两路 LED 灯都不点亮。当利用键盘设定的温度高于 DS18B20 默认的 21.0时,红色 LED 灯被点亮;当设定的温度低于 DS18B20 默认的 21.0时,蓝色 LED 灯被点亮。附上仿真图当设定的温度高于 DS18B20 默认的 21.0时,红色 LED 灯被点亮,如图 11 所示。图图 11 红色红色 LED 灯点亮灯点亮当设定的温度低于 DS18B20 默认的 21.0时,蓝色 LED 灯被点亮。如图 12 所示。12图图 12 蓝色蓝色 LED 灯点亮灯点亮13 5 总结总结5.1 本系统存在的问题及改进措施本系统所设计的空调温度控制器仅对温度部分实现

19、了控制,但对于实际空调中的模式选择以及定时运行等工作过程还无法实现,希望在以后的学习研究中能够解决这些问题。5.2 心得体会 本次课程设计从获得题目开始便着手准备,首先分析系统要求,在 Protuse 里完成硬件原理图的搭建,然后开始在 Keil 环境下着手编写各部分程序,调试相应的程序,在调试通过后再下载到 Protuse 里进行仿真,发现问题后再返回 Keil 下修改相应程序,直到最后仿真通过,最后在 Altium Designer 6 中画出电路原理图。在本次课程设计过程中得到了老师以及许多同学的帮助,感谢那些提供过帮助的老师和同学。14参考文献1 郭文川主编. 单片机原理与接口技术.

20、北京:中国农业出版社,2007.2 郭天祥主编. 51 单片机 C 语言教程. 北京:电子工业出版社,2009.15附录 1:系统的源程序清单global.h:ifndef _global_H#define _global_H#include#define uchar unsigned char/宏定义#define uint unsigned int#defineK_UP 0X20/定义键值#defineK_DOWN 0X21#defineK_CLEAR 0X24#defineK_OK 0X25#defineK_ONE 0X30#defineK_FOUR 0X31#defineK_SEVEN

21、 0X32#defineK_POINT 0X33#defineK_TWO 0X34#defineK_FIVE 0X43#defineK_EIGHT0X36#defineK_ZERO0X37#defineK_THREE0X3816#defineK_SIX 0X40#defineK_NINE0X41#defineK_SET 0X42extern float TEMP_NOW;extern float TEMP_SET;extern uint T_Count;extern uint S_Count;extern uint P_Count;extern uint N_Count;extern uint

22、 M_Count;extern uchar Current_Temp_Display_Buffer;extern uchar set_Temp_Display_Buffer;extern int sel;sbit lcden=P21;/液晶使能sbit lcdrs=P20;/液晶数据/命令选择端sbit DQ =P22;/DS18B20 数据端sbit XX =P25;/读写选择端sbit cold =P26;/输出信号sbit warm =P27;/输出信号#endifmain.c:#include#includeglobal.h#includekey.h#include18B20.h#in

23、cludeLCD.h/全局变量/float TEMP_NOW=0.0;float TEMP_SET=21.0;uint T_Count=0;uint S_Count=0;uint P_Count=0;uint N_Count=0;17uint M_Count=1;uchar Current_Temp_Display_Buffer= NOW:-23.5 ;uchar set_Temp_Display_Buffer= SET: 21.0 ;int sel=0;void Comparison();/定时/void timer0_init(void)TMOD =0 x00 ; /设置定时器 0 的工作

24、方式TH0 = (8192-5000)/32;/单片机晶振为 12MHz,机器周期为 1us,t=5ms, /N=5000/1=5000TL0 = (8192-5000)%32;IE =0 x82;TR0=1;void timer0() interrupt 1 TH0 = (8192-5000)/32;TL0 = (8192-5000)%32; if(+T_Count = 100) /100 为 0.5s TR0=0;Read_Temperature();Display_Temperature() ;T_Count=0;if(+P_Count = 6) N_Count=1; TR0=1;/主程

25、序/void main()18init_lcd();Init_DS18B20();timer0_init();while(1)Print();set_num();Comparison();void Comparison()if(N_Count&M_Count)if(TEMP_NOWTEMP_SET)cold=1;warm=0;if(TEMP_NOW=TEMP_SET)cold=0;warm=0;18B20.h:#ifndef _18B20_H19#define _18B20_H#includeglobal.hextern uchar Init_DS18B20(); extern voi

26、d Read_Temperature();extern void Display_Temperature();#endif18B20.c:#includeglobal.h#include intrins.h#define delayNOP() _nop_();_nop_();_nop_();_nop_();uchar code Temperature_Char8 = 0 x0c,0 x12,0 x12,0 x0c,0 x00,0 x00,0 x00,0 x00;uchar code df_Table=0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9;uchar CurrentT

27、= 0;uchar Temp_Value=0 x00,0 x00;uchar Display_Digit=0,0,0,0;bit DS18B20_IS_OK = 1;void Delay_INI(uint x) while(-x);void Delay(unsigned int n)do_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();20n-;while(n);uchar Init_DS18B20() uchar status;DQ = 1;Delay_INI(8);DQ = 0;Delay_INI

28、(90);DQ = 1;Delay_INI(8);status=DQ;Delay_INI(100);DQ = 1;return status;uchar ReadOneByte() uchar i,dat=0;DQ = 1;_nop_();for(i=0;i= 1;DQ = 1;_nop_();_nop_();if(DQ)dat |= 0X80;Delay(30);21DQ = 1;return dat;void WriteOneByte(uchar dat) uchar i;for(i=0;i= 1;void Read_Temperature() if(Init_DS18B20()=1)DS

29、18B20_IS_OK=0;elseWriteOneByte(0 xcc);WriteOneByte(0 x44);Init_DS18B20();WriteOneByte(0 xcc);WriteOneByte(0 xbe);Temp_Value0 = ReadOneByte(); Temp_Value1 = ReadOneByte();DS18B20_IS_OK=1;void Display_Temperature()22uchar t = 150, ng = 0;if(Temp_Value1&0 xf8)=0 xf8) Temp_Value1 = Temp_Value1;Temp_

30、Value0 = Temp_Value0+1;if(Temp_Value0=0 x00)Temp_Value1+;ng = 1;Display_Digit0 = df_TableTemp_Value0&0 x0f;CurrentT = (Temp_Value0&0 xf0)4) | (Temp_Value1&0 x07)4);Display_Digit3 = CurrentT/100;Display_Digit2 = CurrentT%100/10;Display_Digit1 = CurrentT%10;Current_Temp_Display_Buffer11 =

31、Display_Digit0 + 0;Current_Temp_Display_Buffer10 = .;Current_Temp_Display_Buffer9 = Display_Digit1 + 0;Current_Temp_Display_Buffer8 = Display_Digit2 + 0;Current_Temp_Display_Buffer7 = Display_Digit3 + 0;TEMP_NOW=Display_Digit2*10+Display_Digit1+Display_Digit0*0.1 ;if(Display_Digit3 = 0)Current_Temp_

32、Display_Buffer7 = ;if(Display_Digit2 = 0&Display_Digit3=0)Current_Temp_Display_Buffer8 = ;if(ng)TEMP_NOW=-(Display_Digit2*10+Display_Digit1+Display_Digit0*0.1); if(Current_Temp_Display_Buffer8 = )Current_Temp_Display_Buffer8 = -;else if(Current_Temp_Display_Buffer7 = )Current_Temp_Display_Buffer

33、7 = -;else 23Current_Temp_Display_Buffer6 = -; KEY.h:#ifndef _KEY_H#define _KEY_H#includeextern unsigned char Keys_Scan();extern void set_num();extern void set();#endifKEY.c:#include #include #include #include18B20.huchar code KeyCodeTable= 0 x11,0 x12,0 x14,0 x18,0 x21,0 x22,0 x24,0 x28,0 x41,0 x42

34、,0 x44,0 x48,0 x81,0 x82,0 x84,0 x88;void Delay_key() uchar i;for(i=0;i200;i+);uchar Keys_Scan() uchar sCode,kCode,k;P3 = 0 xf0;if(P3&0 xf0)!=0 xf0)24 Delay_key();if(P3&0 xf0)!=0 xf0) sCode = 0 xfe;for(k=0;k47)&(set_Temp_Display_Buffer1147)&(set_Temp_Display_Buffer947)&(set_Temp_

35、Display_Buffer848)&(set_Temp_Display_Buffer1148)&(set_Temp_Display_Buffer948)&(set_Temp_Display_Buffer858) set_Temp_Display_Buffer8-=1;27else if(set_Temp_Display_Buffer8=48) set_Temp_Display_Buffer8=57; if(K_ONE = key)while(Keys_Scan() = K_ONE);set_Temp_Display_Buffer11=1;sel+;if(K_TWO =

36、 key)while(Keys_Scan() = K_TWO);set_Temp_Display_Buffer11=2;sel+;if(K_THREE = key)while(Keys_Scan() = K_THREE);set_Temp_Display_Buffer11=3;sel+;if(K_FOUR = key)while(Keys_Scan() = K_FOUR);set_Temp_Display_Buffer11=4;sel+;if(K_FIVE = key)while(Keys_Scan() = K_FIVE);set_Temp_Display_Buffer11=5;28sel+;

37、if(K_SIX = key)while(Keys_Scan() = K_SIX);set_Temp_Display_Buffer11=6;sel+;if(K_SEVEN = key)while(Keys_Scan() = K_SEVEN);set_Temp_Display_Buffer11=7;sel+;if(K_EIGHT = key)while(Keys_Scan() = K_EIGHT);set_Temp_Display_Buffer11=8;sel+;if(K_NINE = key)while(Keys_Scan() = K_NINE);set_Temp_Display_Buffer

38、11=9;sel+;if(K_ZERO = key)while(Keys_Scan() = K_ZERO);set_Temp_Display_Buffer11=0;sel+;if(K_OK = key)while(Keys_Scan() = K_OK);29TEMP_SET=(set_Temp_Display_Buffer8-48)*10+(set_Temp_Display_Buffer9-48)+(set_Temp_Display_Buffer11-48)*0.1;sel=0;M_Count=1;if(sel=1)key = Keys_Scan();if(K_CLEAR = key)whil

39、e(Keys_Scan() = K_CLEAR);set_Temp_Display_Buffer8 = ;set_Temp_Display_Buffer9 = ;set_Temp_Display_Buffer10= ;set_Temp_Display_Buffer11= ; M_Count=0;cold=0;warm=0;sel=0; if(K_ONE = key)while(Keys_Scan() = K_ONE);set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=1;sel+;if(

40、K_TWO = key)while(Keys_Scan() = K_TWO);set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=2;sel+;30if(K_THREE = key)while(Keys_Scan() = K_THREE);set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=3;sel+;if(K_FOUR = key)while(Keys_Scan() = K_FOU

41、R);set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=4;sel+;if(K_FIVE = key)while(Keys_Scan() = K_FIVE);set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=5;sel+;if(K_SIX = key)while(Keys_Scan() = K_SIX);set_Temp_Display_Buffer10=set_Temp_Disp

42、lay_Buffer11 ;set_Temp_Display_Buffer11=6;sel+;if(K_SEVEN = key)while(Keys_Scan() = K_SEVEN);set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=7;sel+;31if(K_EIGHT = key)while(Keys_Scan() = K_EIGHT);set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buf

43、fer11=8;sel+;if(K_NINE = key)while(Keys_Scan() = K_NINE);set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=9;sel+;if(K_ZERO = key)while(Keys_Scan() = K_ZERO);set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=0;sel+;if(sel=2)key = Keys_Scan();

44、 if(K_CLEAR = key)while(Keys_Scan() = K_CLEAR);set_Temp_Display_Buffer8 = ;set_Temp_Display_Buffer9 = ;set_Temp_Display_Buffer10= ;set_Temp_Display_Buffer11= ; M_Count=0;cold=0;warm=0;32sel=0; if(K_POINT = key)while(Keys_Scan() = K_POINT);set_Temp_Display_Buffer9=set_Temp_Display_Buffer10 ;set_Temp_

45、Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=.;sel+;if(sel=3)key = Keys_Scan(); if(K_CLEAR = key)while(Keys_Scan() = K_CLEAR);set_Temp_Display_Buffer8 = ;set_Temp_Display_Buffer9 = ;set_Temp_Display_Buffer10= ;set_Temp_Display_Buffer11= ; M_Count=0;cold=0;warm=0;sel=0; if(K_

46、ONE = key)while(Keys_Scan() = K_ONE);set_Temp_Display_Buffer8=set_Temp_Display_Buffer9 ;set_Temp_Display_Buffer9=set_Temp_Display_Buffer10 ;set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=1;sel+;33if(K_TWO = key)while(Keys_Scan() = K_TWO);set_Temp_Display_Buffer8=set_T

47、emp_Display_Buffer9 ;set_Temp_Display_Buffer9=set_Temp_Display_Buffer10 ;set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=2;sel+;if(K_THREE = key)while(Keys_Scan() = K_THREE);set_Temp_Display_Buffer8=set_Temp_Display_Buffer9 ;set_Temp_Display_Buffer9=set_Temp_Display_Bu

48、ffer10 ;set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=3;sel+;if(K_FOUR = key)while(Keys_Scan() = K_FOUR);set_Temp_Display_Buffer8=set_Temp_Display_Buffer9 ;set_Temp_Display_Buffer9=set_Temp_Display_Buffer10 ;set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Te

49、mp_Display_Buffer11=4;sel+;if(K_FIVE = key)while(Keys_Scan() = K_FIVE);set_Temp_Display_Buffer8=set_Temp_Display_Buffer9 ;set_Temp_Display_Buffer9=set_Temp_Display_Buffer10 ;set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=5;sel+;34if(K_SIX = key)while(Keys_Scan() = K_S

50、IX);set_Temp_Display_Buffer8=set_Temp_Display_Buffer9 ;set_Temp_Display_Buffer9=set_Temp_Display_Buffer10 ;set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=6;sel+;if(K_SEVEN = key)while(Keys_Scan() = K_SEVEN);set_Temp_Display_Buffer8=set_Temp_Display_Buffer9 ;set_Temp_D

51、isplay_Buffer9=set_Temp_Display_Buffer10 ;set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=7;sel+;if(K_EIGHT = key)while(Keys_Scan() = K_EIGHT);set_Temp_Display_Buffer8=set_Temp_Display_Buffer9 ;set_Temp_Display_Buffer9=set_Temp_Display_Buffer10 ;set_Temp_Display_Buffer

52、10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=8;sel+;if(K_NINE = key)while(Keys_Scan() = K_NINE);set_Temp_Display_Buffer8=set_Temp_Display_Buffer9 ;set_Temp_Display_Buffer9=set_Temp_Display_Buffer10 ;set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=9;35sel+;if(K_ZERO = key)while(Keys_Scan() = K_ZERO);set_Temp_Display_Buffer8=set_Temp_Display_Buffer9 ;set_Temp

温馨提示

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

评论

0/150

提交评论