1、饮水机温度控制的系统设计与仿真饮水机温度控制的系统设计与仿真摘 要本文设计并实现了一种饮水机温度控制系统。其硬件系统以AT89C52单片机为核心,用温度传感器DS18B20实现温度控制,用液晶屏显示实时温度、时间与预设温度,制作数字温度计,并可实现温度预警控制。单片机系统的软件设计采用C语言进行编程,应用软件采用KEIL和PROTEUS仿真软件模拟实现控制过程。该饮水机控制系统是基于单片机的计算机检测技术的软硬件开发的一种应用,不仅可以创造良好的经济效益,还可优化饮水机温度控制系统。关键词:AT89C52单片机;DS18B20;温度控制The Design and Simulation of
2、Drinking Machine Temperature Control SystemABSTRACTThis paper introduces a water dispenser temperature control system.This system hardware design takes AT89C52 as a core ,and realizes the temperature control with temperature sensor DS18B20.The actual temperature and the preinstall temperature are di
3、splayed with the LCD, the simple intelligent temperature control system digit thermometer is manufactured ,and may realize the temperature early warning control.The software programming uses c language to carry on the programming.The application software uses KEIL and the PROTEUS simulation software
4、 realizing the controlled process.The water dispenser control system is based on an application of the single chip computer hardware and software development of detection technology can not only create a good economic benefits ,but also optimize the fountains temperature control system. Key word :th
5、e microcontroller AT89C52 ;DS18B20;temperature control.目 录1 绪论11.1 课题来源11.2课题发展现状及意义11.3本文设计思路21.4本文结构22系统的硬件设计32.1 系统工作原理与功能32.2硬件系统组成及各模块介绍33系统的软件设计103.1软件总体设计思路103.2主程序软件设计113.3键盘子程序软件设计123.4报警子程序软件设计133.5显示子程序软件设计144系统软件仿真154.1 Protues介绍154.2 Keil uVision4调试软件164.3 Proteus ISIS的仿真步骤与结果18总 结20参考文
6、献21附 录22致 谢28饮水机温度控制系统的设计与仿真1 绪论1.1 课题来源目前市场大部分饮水机采用了热敏电阻进行温度控制,饮水机从室温把水加热到沸腾,开关断开;之后温度下降,当温度下降到一定时,温控开关闭合,然后继续加热到沸腾,周而复始。这不仅造成能源的浪费,反复烧开的热水被人体吸收后,其中还有重金属等有害物质对人体健康是及其危害的。这种水俗称“千滚水”,千滚水不仅对人体健康有害而且还会造成能源浪费。为了避免饮水机的开水因反复烧开而造成的二次污染,该设计利用AT89C52单片机芯片对水温进行智能控制,使水保持在一个较适合的温度,一方面便于使用者及时饮用,一方面节约能源资源,有较好的发展前
7、景。1.2课题发展现状及意义随着人类社会的不断进步,人类饮用水的供给方式也随其发生着变化,其过程为:河水井水自来水购买桶装水自制健康纯水。对此已形成了“喝纯净水,用自来水”的现代饮水新观念。我国现阶段的生活饮用水市场,实质上是桶装饮用水、自来水终端制水、管道直饮水三分天下的格局。其中桶装水以85%的绝对优势占据着市场的主导地位,但是桶装水存在着“二次污染”问题以及假冒伪劣等现实问题。管道分质供水在美国等发达国家的普及率为30%左右,目前国内的上海、广州、东莞等地开始试点,但由于工程浩大,近年内难有大的作为。自来水终端制水就产品来分,可以分为对自来水等进行初步过滤的净水器和各种大、中、小型的办公
8、、家用纯水机,普及率在15%左右。可见现在仍普遍用桶装水,但是为避免反复烧开造成的“千滚水”产生的重金属对身体的危害,因而本文设计用单片机来控制水温使其保持在一个较适合的温度,以适于用户的即时饮用。目前饮水机的控制方式可分为普通控制型、智能感应型和微电脑控制型三类。普通控制型饮水机其加热和制冷均自动恒温控制,是目前用户使用最多的机型,并且其价位适中一般为首选。因而,本文在此基础上,做了一些改造使其更为人性化,比如说设置一定的保温温度使其一直处在这已设定温度左右,可供随时饮用,不必担心水温过烫的问题等。该设计可以实时检测饮水机水箱的水温,并且可以通液晶显示饮水机水箱水温度数,可以人为设置水的温度
9、的保温值,当温度在设定的范围内时正常工作,当低于保温温度时控制加热器加热;当温度高于水温保温温度时继电器断开停止加热。另外,其温度检测范围为0100,精度1,并且有一定的时间延迟。该设计操作简单,可视化强,因而有较大的发展空间。1.3本文设计思路整个基于单片机的温度控制系统无论是硬件设计还是软件设计均采用模块化设计思想。先将整个设计系统划分为几个模块,然后自上到下、由大到小、分步细化,然后逐个进行详细射击,最后将各个模块组合起来。系统的设计过程如下:(1)首先根据用户对设计系统的具体要求来设计系统的总体构成。(2)模块化思想对系统硬件进行模块划分。(3)对系统硬件的各个模块在进行细化并对各个细
10、化的具体元器件进行性能比较和型号选择。(4)根据硬件电路结合控制系统的要求对软件系统进行功能划分和模块划分。(5)进行内部资源分配。(6)结合资源分配、控制要求和实际电路进行各个子模块的软件编程设计。1.4本文结构 本文第一章为绪论部分,分析了现今饮水机使用状况及应用前景,并总体概括了设计思路。第二章概要介绍了系统总体硬件设计及各个模块的详细介绍,第三章具体概括了软件部分的的具体实现,第四章为编译与仿真结果分析。2系统的硬件设计2.1 系统工作原理与功能(1)工作原理该系统主要通过传感器来输入数据,传感器将水温温度即室温温度等非电信号转化为电信号,再由信号处理电路,将传感器输出的电信号进行处理
11、(放大、滤波等),使之满足A/D 转换的要求,然后由A/D 转换电路完成将温度传感器输出的模拟信号到数字信号的转换。CPU首先写入命令给DS18B20,然后DS18B20开始转换数据,转换后通过AT89C52来处理数据,由LCD显示屏显示实时温度与时间。并且可以通过外中断来实现对温度的预设,由存储电路存储这一预设温度,通过继电器根据预设温度来控制加热与否。(2)系统功能饮水机温控系统主要是控制水的温度,让用户使用起来方便。首先,第一次加水的时候,通过单片机的控制,烧开时蜂鸣器报警,得到干净卫生的饮用水。其次,温度恒定在设计值附近,使得用户可以随时饮用适合自己温度的饮用水。水加热时,灯亮,当加热
12、到设置的温度时灯灭继电器断开,当低于设置的温度1时开始加热直到达到设定的温度。如此往复。另外,该显示器除具有显示温度功能时还可以显示时间也为其一特点。2.2硬件系统组成及各模块介绍 按系统的功能设计要求,硬件电路模块包括如下部分:1测温电路2时钟电路3数据保存电路4键盘接口电路5继电器控制模块6显示模块如图2-1所示系统组成的结构框图。图2-1系统结构图 2.2.1温度采集模块温度采集模块功能是对外界水温进行采集,然后将信号传给单片机。测量温度的关键是温度传感器,本文采用DS18B20进行测温,其温度值可以直接读出来,通过核心部件单片机AT89C52控制温度的读写和显示,通过LCD进行显示。(
13、1) DS18B20介绍Dallas单线数字温度传感器DS18B20具有“一线器件”体积更小、适用电压更宽、更经济等特点。Dallas半导体公司的数字化温度传感器DS1820是世界上第一片支持“一线总线”接口的温度传感器。“一线总线”独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。DS18B20、DS1822“一线总线”数字化温度传感器同DS18B20一样,DS18B20也支持“一线总线”接口,测量温度范围为 -55+125,在-10+85范围内,精度为0.5。DS1822的精度较差为2。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。其DS
14、18B20的管脚配置和封装结构如图2-2所示1。 图2-2 DS18B20封装引脚定义: DQ为数字信号输入/输出端; GND为电源地; VDD为外接供电电源输入端(在寄生电源接线方式时接地)。 (2)DS18B20的单线(1wire bus)系统单线总线结构是DS18B20的突出特点,也是理解和编程的难点。从两个方面来理解单线总线:一,单线总线只定义了一个信号线,而且DS18B20智能程度较低(这点可以与微控制器和SPI器件间的通信做一个比较),所以DS18B20和处理器之间的通信必然要通过严格的时序控制来完成。二,DS18B20的输出口是漏级开路输出,这种设计使总线上的器件在合适的时间驱动
15、它。显然,总线上的器件与(wired AND)关系。这就决定:(1)微控制器不能单方面控制总线状态。之所以提出这点,是因为相当多的文献资料上认为,微控制器在读取总线上数据之前的I/O口的置1操作是为了给DS18B20一个发送数据的信号。这是一个错误的观点。如果当前DS18B20发送0,即使微控制器I/O口置1,总线状态还是0;置1操作是为了是I/O口截止(cut off),以确保微控制器正确读取数据。(2)除了DS18B20发送0的时间段,其他时间其输出口自动截止。自动截止是为确保:1时,在总线操作的间隙总线处于空闲状态,即高态。2时,确保微控制器在写1的时候DS18B20可以正确读入2。本设
16、计将温度传感器DS18B20与单片机RXD引脚相连,读取温度传感器的数值。硬件如图2-3:图2-3 DS18B20硬件电路图 2.2.2时钟电路本文增加的一个功能为显示实时时间,为了更准确的显示时间,硬件电路设置了时钟电路模块,并且由LCD屏显示。本文选用DS1302做为时钟电路,DS1302的结构及工作原理:如图2-4所示DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc10.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1
17、供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据双向输入输出端,SCLK始终是输入端3。图2-4 DS1302引脚图本
18、文中RST、SCLK和I/O口分别于单片机的P1.5,P1.6和P1.7口相连。图2-5为时钟电路硬件部分:图2-5时钟电路硬件电路图 2.2.3数据保存电路图2-6数据保存硬件电路图数据保存电路功能就是数据通过单片机的数据口被单片机接收后单片机再通过串口发给计算机,在计算机中用串口调试工具就可以收到单片机发出的数据。本文数据保存电路根据系统的要求,即保存设定的温度以与实际温度比较来控制继电器开合状态,因而采用24C04A,其内存为4K。数据保存电路如图2-6所示:本设计采用24C04A保存电路SCK和SDA引脚分别接单片机P2.4和P2.5引脚。 2.2.4键盘接口电路常用的键盘接口电路有独
19、立式按键接口和矩阵式按键接口,根据本设计的功能要求采用独立式按键接口。本设计键盘接口很简单,五个开关分别直接与单片机引脚P1.0-P1.4相连,P1.0与PI.1是读和写命令,P1.2与P1.3负责写入的温度的十位与个位,P1.4引脚负责“开始”命令。 2.2.5电磁继电器控制电路电磁继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流,较低的电压去控制较大电流,较高的电压的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用4。本模块中继电器与一灯泡相连,加热状态时为灯亮即继电器闭合,保温状态时,
20、灯灭,继电器断开。继电器与单片机相连如图2-7所示:图2-7继电器硬件电路图本设计中若继电器吸合电源接通开始加热同时灯亮,反之灯灭。 2.2.6显示模块图2-8液晶显示硬件电路图 本文采用LCD显示温度与时间,因为要显示较多字符所以不选用LED。一般选用LMO16L作为液晶模块,其采用HD44780控制器,HD44780具有简单而功能较强的指令集可以实现字符移动、闪烁功能。单片机控制液晶显示屏系统总共可分为四个环节,分别是单片机控制系统、字符显示模块、控制开关模块和液晶显示屏模块。通过这四个模块的协调工作就可以完成相应的液晶屏控制和显示功能5。如上图2-8所示:本文设计数据口接0口的输入,并根
21、据不同的按键在字符型液晶上显示不同的字符。LCD的D0D7引脚分别于单片机P0P7数据口连接。 2.2.7系统的总体硬件电路本文采用AT89C52型号的单片机,此型号单片机是一个低电压,高性能CMOS 8位单片机。AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线。AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本6。由系统所要实现的功能将各个模块与单片机连接
22、构成系统整体硬件电路,如图2-9所示:图2-9总硬件电路图3系统的软件设计为了便于系统维护和功能扩充,采用了模块化程序设计方法,系统各个模块的具体功能都是通过子程序调用实现的。本设计的软件设计包括主程序,键盘子程序,报警子程序,显示模块子程序等。3.1软件总体设计思路良好的设计方案可以减少软件设计的工作量,提高软件的可读性,扩展性和通用型。本系统的设计方案和步骤如下:(1) 按照系统的功能要求来逐级划分模块。(2) 明确各模块之间的数据流传递关系,为增强各模块的独立性,力求数据传递少,便于软件编制和调试。(3) 确定软件开发环境,选择设计语言,完成模块功能设计,并分别调试通过。(4) 按照开发
23、式软件设计结构,将各模块有机的结合起来,即成一个较完善的系统。3.2主程序软件设计主程序主要包括对显示子程序,键盘子程序,报警子程序的控制和调用。下图流程图是按照其本设计所要实现的功能来的设计的。 主程序流程图如图3-1:3-1主程序流程图3.3键盘子程序软件设计在执行程序的时候只需逐位判断P3.2,P3.3,P3.4,P3.5口是高电平还是低电平,若为高电平,则表示没有按键按下;若为低电平,则表示有按键按下。在程序的设计当中,考虑了按键的去抖动问题。因为用手按下一个按键时,往往会出现所按键在闭合位置和断开位置之间跳动几下才稳定到闭合状态的情况。在释放一个键的时候,也会出现类似的情况,抖动的时
24、间是不一致的,通常小于10毫秒,若抖动的问题不解决,就会引起闭合键的多次读入。对于键的抖动处理,一般采用软件延时10毫秒的方法。在发现有按键闭合时,不是立即读入该键值,而是延时一段时间以后,再进行键闭合与否的判断,确认此时是否真的有按键下,有则进行该按键的处理,没有则不进行处理。先判断是否右键按下,再判断是哪个按键,分别按照各个功能执行。键盘子程序如图3-2:3-2 键盘子程序流程图3.4报警子程序软件设计报警子程序是在当设定的保温温度大于99时,当加热到这个预设温度时,蜂鸣器报警提示水烧开,继电器断开,停止加热,温度下降,停止报警。报警子程序中响乐用到的头文件如下:#include#defi
25、ne uchar unsigned char#define uint unsigned int#define OSC 12000000 /OSC/定义普通音符演奏的长度分率,每4分音符间隔#define MUSIC_SPACE 4/5 sbit music_out=P36;/原始频率表void playm_init_sound(void);/void playm_interrupt_timer0(void); /interrupt 1; /signature 签字 Octachord 八度音节void playm_play_music(uchar *sound,uchar signature,
26、unsigned octachord,uint speed);3-3报警子程序流程图3.5显示子程序软件设计显示模块子程序为显示温度与当前时间,其主要功能仍为显示预设温度与当前温度。首先,从外界感知温度输入到温度传感器中,读取温度值进行存储,显示出结果。然后如此循环。其流程图如图3-4所示:3-4显示子程序流程图4系统软件仿真4.1 Protues介绍Protues软件是Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前应用广泛的仿真单片机及外围器件的工具。虽然
27、目前国内推广刚起步,但已受到单片机爱好者以及从事单片机教学的教师、致力于单片机开发应用的工作者的青睐7。Proteus是世界上著名的EDA工具,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的设计,是目前世界上将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8052、HC11、PIC10/12/16/18/24/30/DsPIC33、ARM、AVR、8086和MSP430等,2010年增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器,本
28、次设计使用的是Keil编译器8。打开Proteus程序后,进入软件的主界面。通过左侧工具栏中的P(从库中选择元件命令)命令,在Pick Devices 左侧窗口中选择所需元件的关键字,然后放置元件并调整方向和位置以及参数设置,如图4-1所示。图4-14.2 Keil uVision4调试软件Keil uVision4是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,使用接近于传统C语言的语法来开发,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势9。Keil uVision4软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面,
29、能短期内很快就能学会使用keil uVision4来开发单片机应用程序10。调试过程具体操作如下:单片机的类型选取界面如下图4-2所示:图4-2在新建Keil项目时选择AT89C52单片机作为CPU,将源程序导入,在“Options For Target”对话窗口中,选中“Output”选项中的“Create HEX File”,编译链接后就可以生成.HEX文件,此文件的选取界面如下图4-3所示。图4-3用Keil编译后如图4-4所示:图4-4编译图编译无错误,之后开始仿真。 4.3 Proteus ISIS的仿真步骤与结果 Proteus仿真时,单片机需要加载程序,加载程序为.HEX文件。在
30、Proteus ISIS中,选中AT89C52并双击鼠标左键,对AT89C52进行设置,设置单片机时钟频率为12MHz,按照正确的文件路径加载.HEX文件,对单片机设置完毕后就可以开始仿真了。通过Keil与Proteus的联合调试就可以得到满意的结果。仿真过程中设置保温温度为60,当加热到100时报警表示烧开。然后进入保温阶段,当温度降到60以下时灯亮表示处于加热状态,如图4-5所示:图中显示温度降到58时,继电器吸合进入加热状态,灯亮。图4-5 仿真图当温度超过60时,如为62灯灭。如图4-6所示:当温度又降回60时,灯亮。如图4-7所示:图4-6仿真图图4-7仿真图仿真结果分析:本设计的目
31、的是为了避免反复烧开而造成产生对人体有害的重金属,从而设置了一种功能:可以让用户预设适合的温度,使水温保持一直在这一温度范围内,误差是1,以便用户可以随时饮用。由仿真结果知,基本达到了预期的效果,即显示实时时间,当温度预设为其他温度时,低于其则灯亮表示加热,灯灭则表示停止加热。如果预设温度为99时,灯灭的同时会报警,表示水烧开。基本完成了本设计所要实现的功能,简单实用,有较好的应用前景。总 结大学四年的时光我们基本上都在学习理论知识中度过,很少有机会将这些理论知识用于实践中,而这次的毕业设计正好给了我们展示这四年学业成果的好机会。在整个的设计过程中,实际上是自己对四年学习的总结,它不但加深了自
32、己对理论知识的深化认知,更让自己学会了如何去正确运用理论知识解决实际问题,也就是“从理论中来,到实践中去”,从中也使自己学到和积累了许多经验。我的设计还具有很大的扩展空间,例如在硬件电路上增加不同颜色的灯,在不同的状态有不同的颜色显示,使其更加美观。同时还可以与红外遥控连接,这样就省去了很多麻烦,我们可以利用遥控器对其进行远距离的控制等操作。通过这次设计使我认识到我对单片机方面的知识知道的太少了,对于书本上的很多知识还不能灵活运用,有很多我们需要掌握的知识在等着我去学习,我会在以后的学习生活中弥补我所缺少的知识。本次设计使我从中学到了一些很重要的东西,那就是如何从理论到实践的转化,怎样将我所学
33、到的知识运用到我以后的工作中去。在大学的课堂的学习只是在给我们灌输专业知识,而我们应把所学的用到我们现实的生活中去,此次的温度控制系统设计给我奠定了一个实践基础,我会在以后的学习、生活中磨练自己,使自己适应于以后的竞争。参考文献1 李全利.单片机原理及应用技术(第二版)M.北京:高等教育出版社,2000:32-40.2 韩志军,王振波,沈晋源.单片机应用系统设计M.北京:机械工业出版社,2006:22-32.3 李光飞,楼然苗,胡佳文,谢象佐.单片机课程设计实例指导M.北京:航空航天大学出版社,2008:23-43.4 李朝清.单片机原理与接口技术M.北京:航空航天大学出版社,2000:56-
34、98.5 余永权.ATMEL89系列单片机应用技术M.北京:航空航天大学出版社,2008:56-98.6 周志敏.周纪海等编.LED驱动电路设计与应用M.北京:人民邮电出版社,2006:67-98.7 袁宇正.电子爱好者实用电子制作M.北京:人民邮电出版社,2007:34-78.8 华成英,童诗白.模拟电子技术基础M.北京:高等教育出版社,2004:67-98.9 孙育才.MCS-51系列单片机微型计算机及其应用M.南京:东南大学出版社,2005:212-234.10 杨振江,杜铁军,李群编著.流行单片机实用子程序及应用实例M.西安:电子科技大学出版社,2002:32-78.附 录主程序:28
35、#includeds1302.h#includelcd1602.h#includeds18b20.h#includei2c.h#includeds1302.h#includeplaymusic.hunsigned char code Music_Code= 0x17,0x17, 0x17,0x17, 0x17,0x17, 0x17,0x17, 0x17,0x17, 0x17,0x17, 0x17,0x17, 0x17,0x17, 0x0D,0x03, 0x18,0x04, 0x0D,0x03, 0x16,0x04, 0x0B,0x03, 0x11,0x04, 0x10,0x03, 0x11,0
36、x04, 0x15,0x02, 0x10,0x16, 0x00,0x00 ;extern uchar tempflag; /温度正负标志位extern uchar qian,bai,shi,ge;extern uchar time7,timestr9,datestr11,weekstr2;sbit relay=P37;sbit speaker=P36;sbit key_read=P10;sbit key_write=P11;sbit key_shi=P12;sbit key_ge=P13;sbit key_start=P14;uchar convert_parameter(uchar t_sh
37、i,uchar t_ge);void main(void) bit t_cflag=1,time_flag=1; uchar t_shi=0,t_ge=0,temp=0,vtemp=0; lcd1602_init(); ds1302_init(); playm_init_sound(); temp=i2c_read_data(7); /*start*/ /*while(time_flag) i=0;if(!key_read)i+; if(i7)i=0;switch(i)case 0: lcd1602_setxy(0,1); lcd1602_printstr(year:); case 1: lc
38、d1602_setxy(0,1); lcd1602_printstr(month:); case 2: lcd1602_setxy(0,1); lcd1602_printstr(day:); case 3: lcd1602_setxy(0,1); lcd1602_printstr(week:); case 4: lcd1602_setxy(0,1); lcd1602_printstr(hour:); case 5: lcd1602_setxy(0,1); lcd1602_printstr(minute:); case 6: lcd1602_setxy(0,1); lcd1602_printst
39、r(year:); default:break;if(!key_start)t_cflag=0; lcd1602_init();/clear screen lcd1602_printstr(set temperature); delayms(1000); while(!key_start); /*/ while(t_cflag) if(!key_read)lcd1602_init();/clear screen lcd1602_write_cmd(0x80); lcd1602_printstr(last input T: ); lcd1602_setxy(8,1); lcd1602_write
40、_data(0xdf); lcd1602_write_data(0x43); lcd1602_setxy(6,1); t_shi=temp/10; t_ge=temp%10; lcd1602_write_data(0x30+t_shi); lcd1602_write_data(0x30+t_ge); delayms(1000); while(!key_read);lcd1602_write_cmd(0x80);lcd1602_printstr(please input T: );lcd1602_write_cmd(0x80+0x40);lcd1602_setxy(8,1);lcd1602_wr
41、ite_data(0xdf);lcd1602_write_data(0x43);lcd1602_setxy(6,1);lcd1602_write_data(0x30+t_shi);lcd1602_write_data(0x30+t_ge);if(!key_shi) if(t_shi9)t_shi+; else t_shi=0;while(!key_shi);if(!key_ge) if(t_ge9)t_ge+; else t_ge=0;while(!key_ge);if(!key_write)temp=t_shi*10+t_ge; i2c_write_data(7,temp); lcd1602
42、_init();/clear screen lcd1602_write_cmd(0x80); lcd1602_printstr( writing. ); delayms(1000); while(!key_write);if(!key_start)t_cflag=0; lcd1602_init();/clear screen lcd1602_printstr( start ); delayms(1000); temp=t_shi*10+t_ge; while(!key_start); lcd1602_init();/clear screen while(1) /*/ds1302_get_tim
43、e(&time);convert_timestring(&time);convert_datestring(&time);convert_weekstring(&time);lcd1602_setxy(0,1); lcd1602_printstr(×tr);lcd1602_setxy(0,0);lcd1602_printstr(&datestr);lcd1602_printstr(week );lcd1602_printstr(&weekstr);/lcd1602_setxy(12,1);/lcd1602_write_data(0x32);/lcd1602_setxy(9,1);/l
44、cd1602_write_data(timestr0);/lcd1602_setxy(10,1);/lcd1602_display(timestr1);/lcd1602_setxy(13,1);/lcd1602_printstr(0x31);/*/ ds18b20_read_temp(); lcd1602_setxy(9,1); /lcd1602_write_data(0x54); if(tempflag) lcd1602_write_data(-); if(qian!=0) lcd1602_display(qian); if(qian!=0|bai!=0)lcd1602_display(bai); lcd1602_display(shi); lcd1602_write_data(.); lcd1602_display(ge); lcd1602_write_data(0xdf); lcd1602_write_dat
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100