《单片机原理及应用》课程设计报告书消毒柜控制电路的设计

上传人:仙*** 文档编号:30478991 上传时间:2021-10-10 格式:DOC 页数:31 大小:793.56KB
收藏 版权申诉 举报 下载
《单片机原理及应用》课程设计报告书消毒柜控制电路的设计_第1页
第1页 / 共31页
《单片机原理及应用》课程设计报告书消毒柜控制电路的设计_第2页
第2页 / 共31页
《单片机原理及应用》课程设计报告书消毒柜控制电路的设计_第3页
第3页 / 共31页
资源描述:

《《单片机原理及应用》课程设计报告书消毒柜控制电路的设计》由会员分享,可在线阅读,更多相关《《单片机原理及应用》课程设计报告书消毒柜控制电路的设计(31页珍藏版)》请在装配图网上搜索。

1、31 单片机原理及应用课程设计报告书课题名称消毒柜控制电路的设计 姓 名学 号 专 业电气工程及其自动化指导教师 机电与控制工程学院 年 月 日填 写 说 明 1、正文部分: (1) 标题与正文格式定义标准如下:一级标题:1.标题1二级标题:1.1标题2三级标题:1.1.1标题3四级标题:1.1.1.1标题4 (2)表格:尽可能采用三线表。 (3)图形:直接插入的插图应有图标、图号,不能直接插入的图应留出插图空位。图中文字、符号书写要清楚,并与正文一致。 (4)文字表述:要求层次清楚,语言流畅,语句通顺,无语法和逻辑错误,无错字、别字、漏字。文字的表述应当以科学语言描述研究过程和研究结果,不要

2、以口语化的方式表达,报告中科技术语和名词应符合规定的通用词语,并使用法定计量单位和标准符号。 2、参考文献: (1)数量要求:参考文献只选择最主要的列入,应不低于5种。 (2)种类要求:参考文献的引用,可以是著作M、论文J、专利文献P、会议论文等。 (3)文献著录格式及示例。参考文献用宋体五号字。 1 作者. 书名M. 版次. 出版地: 出版者, 出版年: 起止页码 (著作图书文献) 2 作者. 文章名J. 学术刊物名称. 年. 卷(期): 起止页码 (学术刊物文献) 示例:1王社国,赵建光。基于ARM的嵌入式语音识别系统研究 J。微计算机信息,2007,2-2:149-150.3、附录或附件

3、:(可选项) 重要的测试结果、图表、设计图纸、源程序代码、大量的公式、符号、照片等不宜放入正文中的可以附录形式出现。4、如果需要可另行附页粘贴。任 务 书基于单片机的消毒柜控制电路的设计 设计一台消毒柜控制系统,要求:(1)显示消毒柜温度,保持时间。(2)可以键盘设定消毒柜温度,定时时间。(3)可以实现实时中断功能。(4)消毒后自动关机。(5)测温误差:0.5 c。(6)定时误差:20s/月目 录1、绪论 2、方案论证(规划、选定) 3、方案说明(设计) 4、硬件方案设计 5、软件方案设计6、调试 7、技术小结(结束语) 8、参考文献 9、附录(源程序代码、电路图等) 1. 绪论 该课题是设计

4、一个消毒柜其实就是设计一个智能的温度控制系统,消毒柜主要通过加热到一个指定温度,对餐具等卫生洁具进行高温消毒,消毒柜将高温控制在一个指定的范围内,并维持一定时间,杀灭细菌,极大地增强了人们的饮食卫生,大大降低了疾病的交叉传染,为提高人们的身体健康起了重要的作用。本文主要介绍了一个基于AT89C51单片机制作的消毒柜控制电路。它主要包括供电电源电路、上电复位电路、晶振电路、开关控制电路、显示电路等部分。文中对各电路的结构及工作原理作了详尽的介绍。电路运行后,能自动定时控制消毒柜的加电和断电,适时有效地完成对柜内餐具或其它物品的消毒工作。具有电路简单、制作容易、使用灵活等优点。通过该电路,可以进一

5、步了解到单片机电路的应用扩展功能和指令应用技巧。本文的消毒柜控制系统就是为了人们日常生活中的餐具消毒而设计的,采用微电脑控制技术,精确地控制消毒柜内的温度和加热时间,很大程度上改善了人们的饮食卫生,提高了人们的生活水平。本设计采用DS18B20温度传感器采集实时温度,通过DQ口送51单片机系统,实现模拟温度值的采集、转化、输出数字值,然后51单片机对采集的数据处理后送液晶显示电路,实时动态地显示当前的温度及倒计时时间。对温度的控制主要由单片机内部三种中断方式来控制启动和停止。2、方案论证21 系统设计要求2.1.1显示消毒柜温度,保持时间。2.1.2可以键盘设定消毒柜温度,定时时间。2.1.3

6、可以实现实时中断功能。22 系统组成框图DS18B20键盘控制单片机液晶屏显示发光二极管显示图2.1 系统组成框图23 系统工作原理该系统是基于AT89S51单片机的温度控制的且实现通过高温来杀灭病毒的消毒柜系统,该系统主要三大部分组成。第一部分是由温度传感器DS18B20采集实时温度转换成数字信号;第二部分的电路是由键盘控制消毒的定时和启停;第三部分是液晶显示屏的显示部分。 AT89S51单片机对键盘的扫描结果和即时温度值的处理,实现对温度的实时控制,系统设计了启动设定定时时间,设置定时时间,中断控制定时,共四个键,按下启动设定定时时间功能键即确定开始温度增减按钮时,单片机加热时间可通过温度

7、加减按钮设定,开始加热,启动定时器中断控制,当温度加热设定时间到后停止加热。23系统工作论证 通过对系统控制要求的研究,确定了控制系统的基本框图,针对其基本原理进行了分析说明,此方案能满足消毒柜控制系统的基本要求。3、方案说明 3.1 DS18B20 一线总线温度传感器特点: 1体积小,安装方便;可联网,方便分散点测量;三线二线式连接方式;测量范围-55+125;3.2 AT89C51按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128B

8、RAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.255.50V的电压工作范围和024MHz工作频率,使用AT89C51单片机时无须外扩存储器。因此,单片机最小系统为晶振、复位、电源等电路和必要的软件组成的单个单片机。3.3 1602液晶显示首先是1602液晶的管脚,总共有16个管脚,其中有三根是电源地、电源正、还有事对比度的调整电压;还有两根是LCD背光的正、负极。重要的是决定led指令的三根管脚吗,分别是RS、 R/W、E(一般接单片机的P2.0P2.2),剩下的八根式数据线分别为DB0DB7(一般接单片机的P0口)。4、硬件方案设计4.1

9、系统硬件结构框图51单片机LCD液晶显示屏实时温度,定时时间,温度上下限二极管亮灭按键DS18B20图2系统硬件结构框图4.2单片机最小系统设计单片机采用的是ATMEL公司的AT89S51芯片该款芯片是一种低功耗、高性能CMOS8位微控制器,具有 4K 在系统可编程Flash 存储器。使用Atmel 公司高密度非 易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S51为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 AT89S51具

10、有以下标准功能: 4k字节Flash,128字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,两个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S51可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 4K 字节在系统可编程 Flash AT89S51。单片机最小系统电路图如图3.2所示。图3.2 单片机最小系统电路图4.3

11、DS18B20控制电路通过P3.4口与DQ的连接实现51单片机与温度传感器DS18B20的连通工作。4.4 键盘控制电路该键盘接口电路通过按键控制定时和中断。本模块通过编制程序,扫描键盘,来比对键盘的值,来设置四个功能键。4.5 LCD液晶显示电路通过P0口控制液晶显示的输入。P0口必须外接上拉电阻。通过P2口的低三位控制RS,RW,E三个功能控制引脚,从而控制液晶显示屏LCD的工作。5、软件方案设计5.1系统软件设计原理本程序设计根据通过温度传感器采样来的温度值,经过内部转化为二进制数字量,再通过51单片机控制输出至LCD液晶显示屏,然后调用显示程序进行温度的事实显示。对于各个功能键的程序是

12、从P0口读数、再转换成十进制数、送显缓区、再根据键盘扫描的结果对温度值进行比较判断,当按下的键是加减功能键时,系统要控制加热的时间可进行调节。开始加热后,通过定时器控制加热时间到的中断,当加热时间由设定值减至0时停止加热,键盘显示实时温度。通过在主程序里面设立标志,该程序是通过延时的方法来确保温度转换为显示数据实现温度与按键的统一和“同步”,实时的控制加热的工作,以达到人们所要求达到的效果。5.2主程序流程图 开始系统初始化显示屏初始中断初始定时初始键盘设置与液晶屏显示判断定时 定时未到,继续判断 定时到 工作 图3主程序流程图5.3系统子程序设计本软件设计中,系统子程序的设计是整个程序设计的

13、重中之重,子程序以模块化的方式实现各个独立功能,再通过主程序来调用功能子程序,使整个程序实现完整的功能。按键处理子程序, DS18B20温度采样子程序,温度采样转化子程序,显示处理子程序。6、调试6.1 硬件调试6.1.1.由于本次课程设计做了实物出来,通过设计方案,在试验焊接板上进行合理布局并焊接实物图。然后根据实验指导书上的各功能芯片的端口地址,连接号各部分电路,用电表测量焊接点的正常与否,最后连上电源。6.1.2.检测LCD显示模块,因为通过键盘显示,可以直观的知道程序是否基本运行正常,是否按预定的显示。6.1.3. 调试键盘模块电路,看是否按压正常,以及二极管闪灭部分是否能够实现实时闪

14、亮。6.1.4.最后进行整体硬件电路的联调。6.2软件调试软件调试是个很重要的过程,由于软件出现错误的话就基本上各部分功能都实现都有困难,所以软件的调试时重中之重。6.2.1第一步是进行的是DS18B20的软件的调试,通过采集温度后内部转换后通过合理的内存单元的分配,存储采样后转换的值,然后同过51单片机程序看是否实现在LCD上显示实时温度值。6.2.2键盘扫描部分程序的调试,该部分是程序中的功能键实现控制温度和时间的主要的部分,如果该部分程序出现错误的话,逻辑就会出现混乱,各功能键将不能实现,在调试的过程中,我们发现,我们的键盘电路的接法接口要正确连接,一旦键盘口搞错的话,就会出现按键的功能

15、的混乱,所以在这一步分的调试上最主要是把握键盘的控制分析。6.2.3 最后一部分调试显示程序的调试,该部分程序的调试,关系到该课设是否够直观的体现温度值,以及建立一个直观的人机对话界面,在该部分程序的调试的过程中面临的最大困难就是对于显缓单元的分配,以及初始化,读写的控制,如果显缓单元分配有冲突的话,就会导致程序逻辑错误,所以应该仔细调试该部分应该边编写边调试。6.3调试结果用专门的编译软件Keil对程序进行编译,编译无误后。并让其生成HEX文件,按照软件流程图在仿真软件Proteus上进行仿真,把各个元器在仿真软件中找出来,再将它们连接起来,连接完毕后将生成的HEX文件加载到单片机中。经过详

16、细的硬件调试和软件调试之后,系统工作正常,LCD液晶显示模块共两行,分别按要求实时显示设定的最高和最低温,当前温度值,定时时间值。按下“加减键”时,系统可调节消毒加热的时间,加热时间到后点亮定时到指示灯,当时间到达到0时,停止加热。7、技术小结通过一个多星期的研究动手实践完成,简单的消毒柜控制系统初步成形。实物图也出来了,实现了课程设计的基本要求。本设计集中了按键,定时器,液晶显示等的应用。对于按键部分控制简单,因为是独立的按键控制,只需要与51单片机的任一输入输出端口相连,通过控制器高低电平即可。对于定时器和外部中断0,1的设计书写,只需要对中断和定时器控制的方法和步骤熟悉,熟练运用它们的启

17、动停止就可正确完成控制。对于我来说最难得就是LCD液晶显示的控制了,硬件连接图可根据经验和管脚说明连接就行,但软件程序编写时对其的不熟悉和难以理解,给了我很大的障碍,以至于很久弄不出程序,不能支持实物电路板的正常工作。后来经过学习参考咨询和大家交流等各种渠道,慢慢的掌握了其基本的知识,才有了后来的完整的程序。本次课设一个不足之处就是没有完成消毒后自动关机的功能,浪费单片机的内部资源。对于温度传感器电路,还存在缺憾,并不能完全掌握该部分程序的编写。本课程设计自己去焊接电路,锻炼了独立思考和实际操作的能力,一定程度上增加了课程设计的难度,但是真正对我们设计电路却是一个帮助和提高,所以我努力并认真的

18、对待着本次的设计,希望能够自行设计硬件电路根据自己设计的硬件电路来编制相应的程序在对我们掌握各硬件部分电路有更好的理解,也一定程度上复习了以前所学的其基础知识,也能更好的掌握一些电气知识。8、参考文献【1】 万福君.潘松峰.刘芳.MSC-51单片微型机原理、系统设计及应用【M】.北京:清华大学出版社,2009.9【2】 陈黎娟.万在红.吴开志.聂鹏程.单片微型计算机实验教程【M】.南昌航空大学,2006.2【3】 张永瑞. 电子测量技术基础【M】.西安:西安电子科技大学出版社,2009.1【4】 刘同法.陈忠平.彭继卫.单片机外围接口电路与工程实践【M】.北京:北京航空航天大学出版社, 200

19、9.3【5】 何立民.单片机应用技术选编 (1-8). 北京:北京航空航天大学出版社. 2001【6】 邬宽明.单片机外围器件实用手册. 数据传输接口器件分册M.北京:北京航空航天大学出版社,1998 【7】 鲍健等. 用单片机直接驱动液晶显示器.量子电子学报J.2005.2(4):651652 9、附录9.1主程序源程序:/#include /用AT89C51时就用这个头文件#include /用华邦W78E58B时必须用这个头文件#include #include #include #include #include #include #include LCD1602.h/液晶显示头文件/

20、sbit DQ = P34;/定义DQ引脚为P3.4sbit k0=P37; /确认开始温度增减的按钮sbit k3=P11; /温度加sbit k4=P13; /温度减sbit k5=P17; /确定按钮sbit LED=P30; / 温度到后亮 unsigned char min=0;unsigned char temp=0;unsigned int a=0;unsigned char b=0;unsigned char t2,*pt;/用来存放温度值,测温程序就是通过这个数组与主函数通信的/unsigned char TempBuffer19=0x2b,0x31,0x32,0x32,0x

21、2e,0x30,0x30,0x43,0;unsigned char TempBuffer117=0x2b,0x31,0x32,0x32,0x2e,0x30,0x30,0x43, 0x54,0x3a,0x30,0x30,0x43,0x3a,0x30,0x30,0;/显示实时温度,上电时显示+125.00Cunsigned char TempBuffer017=0x54,0x48,0x3a,0x2b,0x31,0x32,0x35,0x20,0x54,0x4c,0x3a,0x2b,0x31,0x32,0x34,0x43,0;/显示温度上下限,上电时显示TH:+125 TL:+124Cunsigned

22、 char code dotcode4=0,25,50,75;/*因显示分辨率为0.25,但小数运算比较麻烦,故采用查表的方法*再将表值分离出十位和个位后送到十分位和百分位*/void covert0( unsigned char TH, unsigned char TL)/将温度上下限转换为LCD显示的数据 if(TH0x7F) /判断正负,如果为负温,将其转化为其绝对值 TempBuffer03=0x2d; /0x2d为-的ASCII码TH=TH;TH+; else TempBuffer03=0x2b;/0x2B为+的ASCII码 if(TL0x7f) TempBuffer011=0x2d

23、; /0x2d为-的ASCII码 TL=TL+1; else TempBuffer011=0x2b;/0x2B为+的ASCII码 TempBuffer04=TH/100+0x30; /分离出TH的百十个位 if( TempBuffer04=0x30) TempBuffer04=0xfe; /百位数消隐 TempBuffer05=(TH%100)/10+0x30;/分离出十位 TempBuffer06=(TH%100)%10+0x30; /分离出个位 TempBuffer012=TL/100+0x30; /分离出TL的百十个位 if( TempBuffer012=0x30) TempBuffer

24、012=0xfe; /百位数消隐 TempBuffer013=(TL%100)/10+0x30;/分离出十位 TempBuffer014=(TL%100)%10+0x30; /分离出个位 /if(k0=0) b=0; if(TempBuffer12=TempBuffer114)&(TempBuffer13=TempBuffer115)&(b=1) LED=1; b=0; k0=1; void covert1(void)/将温度转换为LCD显示的数据 unsigned char x=0x00,y=0x00; t0=*pt; pt+; t1=*pt; if(t10x07) /判断正负温度 Temp

25、Buffer10=0x2d; /0x2d为-的ASCII码t1=t1; /*下面几句把负数的补码*/t0=t0; /* 换算成绝对值*/x=t0+1; /*/t0=x; /*/if(x255) /*/t1+; /*/ else TempBuffer10=0x2b;/0xfe为变+的ASCII码 t1=4;/右移4位 x=x&0x0f;/和前面两句就是取出t0的高四位 t1=t1|x;/将高低字节的有效值的整数部分拼成一个字节 TempBuffer11=t1/100+0x30; /+0x30 为变 09 ASCII码 if( TempBuffer11=0x30) TempBuffer11=0xf

26、e; /百位数消隐 TempBuffer12=(t1%100)/10+0x30;/分离出十位 TempBuffer13=(t1%100)%10+0x30; /分离出个位 t0=t0&0x0c;/取有效的两位小数 t0=2;/左移两位,以便查表 x=t0; y=dotcodex;/查表换算成实际的小数 TempBuffer15=y/10+0x30;/分离出十分位 TempBuffer16=y%10+0x30;/分离出百分位 void delay(unsigned char i)while(i-);void delay1(unsigned int z) unsigned int i,j; for(

27、i=z;i0;i-) for(j=100;j0;j-);/*设定时间函数*/void shijianset() if(k3=0) delay1(120); if(k3=0) min+; if(k4=0) delay1(120); if(k4=0) min-; TempBuffer111=min%10+0x30; TempBuffer110=min/10+0x30;/*确认开始计时函数*/void jishi() if(k5=0) delay1(120); if(k5=0) TR0=1; /开始计时 b=1; if(a=20) a=0; min-; if(min=0) TR0=0; /*设置温度

28、函数*/void setwendu() TempBuffer114=temp/10+0x30; TempBuffer115=temp%10+0x30;/*主程序*/main() unsigned char TH=110,TL=-20; /下一步扩展时可能通过这两个变量,调节上下限 LED=0; /测温函数返回这个数组的头地址 EA=1; /开总中断 EX0=1; /允许外部中断0 EX1=1; /允许外部中断1 IT0=1; /设置外部触发0为跳沿触发 IT1=1; /设置外部触发1为跳沿触发 TMOD=0X01; /设置定时器T0为工作方式1 TL0=0XB0; TH0=0X3C; /设置每

29、次定时时间为50ms ET0=1; /允许定时器中断 k0=0; while(1) pt=ReadTemperature(TH,TL,0x3f); /上限温度-22,下限-24,分辨率10位,也就是0.25C /读取温度,温度值存放在一个两个字节的数组中,delay(100); shijianset();setwendu();covert1();covert0(TH,TL);jishi();LCD_Initial();/第一个参数列号,第二个为行号,为0表示第一行/为1表示第二行,第三个参数为显示数据的首地址LCD_Print(0,0,TempBuffer0);LCD_Print(0,1,Te

30、mpBuffer1); void extern0() interrupt 0 temp+; void extern1() interrupt 2 temp-; void timer() interrupt 1 TL0=0XB0; TH0=0X3C; a+;9.2子程序9.2.1 LCD显示子程序/#include /用AT89C51时就用这个头文件#include /用华邦W78E58B时必须用这个头文件#include /注意那个LCD_Wait()函数,它是判忙标志的,在实际硬件要把注掉的那种打开/Port Definitions*sbit LcdRs= P20;sbit LcdRw= P

31、21;sbit LcdEn = P22;sfr DBPort = 0x80;/P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口/内部等待函数*unsigned char LCD_Wait(void)LcdRs=0;LcdRw=1;_nop_();LcdEn=1;_nop_();/while(DBPort&0x80);/在用Proteus仿真时,注意用屏蔽此语句,在调用GotoXY()时,会进入死循环, /可能在写该控制字时,该模块没有返回写入完备命令,即DBPort&0x80=0x80 /实际硬件时打开此语句LcdEn=0;return DBPort;/向LCD写入命令

32、或数据*#define LCD_COMMAND0 / Command#define LCD_DATA1 / Data#define LCD_CLEAR_SCREEN0x01 / 清屏#define LCD_HOMING 0x02 / 光标返回原点void LCD_Write(bit style, unsigned char input)LcdEn=0;LcdRs=style;LcdRw=0;_nop_();DBPort=input;_nop_();/注意顺序LcdEn=1;_nop_();/注意顺序LcdEn=0;_nop_();LCD_Wait();/设置显示模式*#define LCD_S

33、HOW0x04 /显示开#define LCD_HIDE0x00 /显示关 #define LCD_CURSOR0x02 /显示光标#define LCD_NO_CURSOR0x00 /无光标 #define LCD_FLASH0x01 /光标闪动#define LCD_NO_FLASH0x00 /光标不闪动void LCD_SetDisplay(unsigned char DisplayMode)LCD_Write(LCD_COMMAND, 0x08|DisplayMode);/设置输入模式*#define LCD_AC_UP0x02#define LCD_AC_DOWN0x00 / def

34、ault#define LCD_MOVE0x01 / 画面可平移#define LCD_NO_MOVE0x00 /defaultvoid LCD_SetInput(unsigned char InputMode)LCD_Write(LCD_COMMAND, 0x04|InputMode);/初始化LCD*void LCD_Initial()LcdEn=0;LCD_Write(LCD_COMMAND,0x38); /8位数据端口,2行显示,5*7点阵LCD_Write(LCD_COMMAND,0x38);LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); /开启显示,

35、 无光标LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); /清屏LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); /AC递增, 画面不动/*void GotoXY(unsigned char x, unsigned char y)if(y=0)LCD_Write(LCD_COMMAND,0x80|x);if(y=1)LCD_Write(LCD_COMMAND,0x80|(x-0x40);void Print(unsigned char *str)while(*str!=0)LCD_Write(LCD_DATA,*str);str+;voi

36、d LCD_Print(unsigned char x, unsigned char y, unsigned char *str) GotoXY(x,y); Print(str);9.2.2 DS18B20控制子程序/#include /用AT89C51时就用这个头文件#include /用华邦W78E58B时必须用这个头文件sbit DQ = P34;/定义DQ引脚为P3.4/*ds18b20延迟子函数(晶振12MHz )*/ /*DS18B20对时间要求很严,但只能长不能短*在11.0592M下也行,因为时间长些*/void delay_18B20(unsigned int i)while

37、(i-);/*ds18b20初始化函数*/void Init_DS18B20(void) unsigned char x=0; DQ = 1; /DQ复位 delay_18B20(8); /稍做延时 DQ = 0; /单片机将DQ拉低 delay_18B20(80); /精确延时 大于 480us DQ = 1; /拉高总线 delay_18B20(14); x=DQ; /稍做延时后 如果x=0则初始化成功 x=1则初始化失败 delay_18B20(20);/*ds18b20读一个字节*/ unsigned char ReadOneChar(void)unsigned char i=0;un

38、signed char dat = 0;for (i=8;i0;i-) DQ = 0; / 给脉冲信号 dat=1; DQ = 1; / 给脉冲信号 if(DQ) dat|=0x80; delay_18B20(4); return(dat);/*ds18b20写一个字节*/ void WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = dat&0x01; delay_18B20(5); DQ = 1; dat=1; /*读取ds18b20当前温度*/unsigned char *Re

39、adTemperature(char TH,char TL,unsigned char RS)unsigned char tt2;Init_DS18B20();WriteOneChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0x4E); / /写入写暂存器命令,修改TH和TL和分辩率配置寄存器/先写TH,再写TL,最后写配置寄存器WriteOneChar(TH);/写入想设定的温度报警上限WriteOneChar(TL);/写入想设定的温度报警下限WriteOneChar(RS);/写配置寄存器,格式为0 R1 R0 1,1 1 1 1/R1R0=00分辨率娄9位,R

40、1R0=11分辨率为12位delay_18B20(80); / this message is wery importantInit_DS18B20();WriteOneChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0x44); / 启动温度转换delay_18B20(80); / this message is wery importantInit_DS18B20();WriteOneChar(0xCC); /跳过读序号列号的操作WriteOneChar(0xBE); /读取温度寄存器等(共可读9个寄存器) 前两个就是温度delay_18B20(80);tt0=R

41、eadOneChar(); /读取温度值低位tt1=ReadOneChar(); /读取温度值高位return(tt);9.3消毒柜硬件连接图指导教师评 语课程设计成 绩指导教师签 字年 月 日ut2ApOdfXXc02GyBKsKCWw97MrqqWhoj5TL15Zt6jIPYytYCummtARp3v1N5luizi3xh3BhWYreKO8d9g7nmZQoWPJeTLDrw08gVS8DsDQQYGC3cE7moO2tLF0Jf1gK74IUXyBmtIVR97CkrfVqULT5fn2t6MpJR6rbzVPSortZvIj5NB5ndVvSr4iWr1TwLFKgLSPzuhRj

42、Q3CmZU98eUOuijdLSZqPmvrw9zKupxf8WFUG9l2G9277g2rTipa1YpCZEuqxpKBhtVDCooQOzxUz3vJrZmOcijyM62zchmeooTYes8EBMm932tbz2Yo09RtsZEYS8Zrd2Yktj8l6jEAzVAjnfbtryLvsm6oFbfToXVRFFn7OwIYgJlamkUNXJYbz5Rrb7r4VsuR9zpfZFMfsjhcfCA37lNW2VVLRKN7R8psz1BN6oRic5hU5Z6HCxAYqyNPOG8duYbAwqSl20CSg06Dh2sM8HLtgPkIcSkrgOPDpuHBj1LmP

43、k7lYdvC6NNMwL3fwhZFTFVYAARY7lHSSxJ10V3pH3Y19BxYR77Ib7CpZSu2tijqe3hKqkKAu9KSkCpHKXUIKvvyJZpg2YijRkqfbGgOvyqKuxNWI9oMnJtt6QilZxtyrF7d20FbmabcfiixrQKUsVNXBPPFUXyQ1fJSKFSUbkgs2DUVQC9sz4JkbgN4Qqv66pyoARjurNFJ3TxyfclZiEePtwFJthphEipDFNqnR2HjQKV2DzWtMPDJQkBcXmovdsjqCTJagjMdLsKPgaD2s0H0vmZGAHt36gyUEZ7UmANk1

44、ndREuBeqdgrx0venqGnsyIB2ilq3SIQrNL4m56t7Z8Y8da5K0KUpn5Nzg4JvjdtfFHyt82AoGQkXo4VBLmLEiy2P7HtHBho07rCfttxodYDPPdtQsO7wxD0J6fKKlGm4woDzplhtRr2XgqN13hqy59zU1GegDyQniHNTaVSieueFQcYfUCJwd3vk5I7YKmhunDmIZ ut2ApOdfXXc02GyBKsKCWw97MrqqWhoj5TL15Zt6jIPYytYCummtARp3v1N5luizi3xh3BhWYreKO8d9g7nmZQoWPJeTLDrw08gVS8

45、DsDQQYGC3cE7moO2tLF0Jf1gK74IUXyBmtIVR97CkrfVqULT5fn2t6MpJR6rbzVPSortZvIj5NB5ndVvSr4iWr1TwLFKgLSPzuhRjQ3CmZU98eUOuijdLSZqPmvrw9zKupxf8WFUG9l2G9277g2rTipa1YpCZEuqxpKBhtVDCooQOzxUz3vJrZmOcijyM62zchmeooTYes8EBMm932tbz2Yo09RtsZEYS8Zrd2Yktj8l6jEAzVAjnfbtryLvsm6oFbfToXVRFFn7OwIYgJlamkUNXJYbz5Rrb7r4VsuR9zpf

46、ZFMfsjhcfCA37lNW2VVLRKN7R8psz1BN6oRic5hU5Z6HCxAYqyNPOG8duYbAwqSl20CSg06Dh2sM8HLtgPkIcSkrgOPDpuHBj1LmPk7lYdvC6NNMwL3fwhZFTFVYAARY7lHSSxJ10V3pH3Y19BxYR77Ib7CpZSu2tijqe3hKqkKAu9KSkCpHKXUIKvvyJZpg2YijRkqfbGgOvyqKuxNWI9oMnJtt6QilZxtyrF7d20FbmabcfiixrQKUsVNXBPPFUXyQ1fJSKFSUbkgs2DUVQC9sz4JkbgN4Qqv66pyoARjurNFJ3TxyfclZiEePtwFJthphEipDFNqnR2HjQKV2DzWtMPDJQkBcXmovdsjqCTJagjMdLsKPgaD2s0H0vmZGAHt36gyUEZ7UmANk1ndREuBeqdgrx0venqGnsyIB2ilq3SIQrNL4m56t7Z8Y8da5K0KUpn5Nzg4JvjdtfFHyt82AoGQkXo4VBLmLEiy2P7HtHBho07rCfttxodYDPPdtQsO7wxD0J6fKKlGm4woDzplhtRr2XgqN13hqy59zU1GegDyQniHNTaVSieueFQcYfUCJwd3vk5I7YKmhunDmIZ

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!