基于单片机的智能电风扇控制系统毕业设计.docx

上传人:牧羊曲112 文档编号:4957999 上传时间:2023-05-26 格式:DOCX 页数:37 大小:110.03KB
返回 下载 相关 举报
基于单片机的智能电风扇控制系统毕业设计.docx_第1页
第1页 / 共37页
基于单片机的智能电风扇控制系统毕业设计.docx_第2页
第2页 / 共37页
基于单片机的智能电风扇控制系统毕业设计.docx_第3页
第3页 / 共37页
基于单片机的智能电风扇控制系统毕业设计.docx_第4页
第4页 / 共37页
基于单片机的智能电风扇控制系统毕业设计.docx_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《基于单片机的智能电风扇控制系统毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的智能电风扇控制系统毕业设计.docx(37页珍藏版)》请在三一办公上搜索。

1、四川信息职业技术学院毕业设计任务书学生 姓名彭涛学 号1219042班级电信12-1专业电子与信息工程技术设计题目基于单片机的智能电风扇控制系统指导教师姓名职称工作单位及所从事专业联系方式学生联系方式张万良副教授信息学院电子工程系设计内容:1、单片机分析采集到的数字温度信号,再通过可控硅对风扇电机进行调速。2、用户可以在一定范围内设置电风扇的最低工作温度和最高工作温度。当温度低于所设置温度时, 电风扇将自动关闭,当高于此温度时电风扇又将重新启动。3、温度显示在LED数码管上4、设计硬件电路,并制作实物。5、撰写毕业设计论文。进度安排: 要有较为详细的时间安排(时间具体到周);9.15-9.30

2、( 4-5周)确定任务,完成资料收集归纳,确定设计方案。10.1- 10.20 ( 6-8周)完成电路原理图绘制,绘制PCB图,确定元器件的参数型号和数量。10.21-11.3( 9-10周)调试软件,完成系统仿真。11.4-11.17( 11-12周)完成硬件焊接和硬件调试。11.18-12.1( 13-14周)完成软硬件联调测试。12.2- 12.15( 15-16周)完成论文写作,准备答辩材料答辩。主要参考文献、资料(写清楚参考文献名称、作者、出版单位):1 曹巧媛.单片机原理及应用.北京:电子工业出版社,2002.22 王伦.电风扇原理与维修技术M.北京:新时代出版社,19993 张毅

3、刚.新编MCS-51单片机应用设计.哈尔滨工业大学出版社,2006,104 梁廷贵、王裕琛.可控硅触发电路语音电路分册M.北京:科学技术文献出版社,2003审 批意见教研室负责人:年 月日备注:任务书由指导教师填写,一式二份。其中学生一份,指导教师一份目录摘 要 1第 1 章概述 21.1 STC89C5单片机简介 21.2 本设计任务和主要内容 2第 2 章方案选择 42.1 温度传感器的选用 42.2 控制核心的选择 52.3 显示电路 52.4 调速方式 62.5 控制执行部件 6第 3 章硬件设计 73.1 系统总体设计 73.2 控制装置原理 73.3 温度检测和显示电路 73.3.

4、1 DS18B20 的温度处理方法 73.3.2 温度传感器和显示电路组成 93.4 电机调速电路 93.4.1 电机调速原理 103.4.2 电机控制模块设计 11第 4章软件设计 124.1 主程序 124.2 数字温度传感器模块和显示子模块 124.3 电机调速与控制子模块 13总 结 14附录 1主要程序代码 16附录 2仿真图 31附录 3实物图 32附录 4元件清单 33摘要本设计为一种温控风扇系统,具有灵敏的温度感测和显示功能,系统 STC89C52 单片机作为控制平台对风扇转速进行控制。 可由用户设置高、 低温度值, 测得温度值 在高低温度之间时打开风扇弱风档, 当温度升高超过

5、所设定的温度时自动切换到大风 档,当温度小于所设定的温度时自动关闭风扇, 控制状态随外界温度而定。 所设高低 温值保存在温度传感器 DS18B2C内部E2R0h中,掉电后仍然能保存上次设定值,性能 稳定, 控制准确。关键词 单片机;温度传感器;智能控制。第 1 章 概述1.1 STC89C52 单片机简介STC89C52是美国ATMEL公司生产的低电压、高性能 CM0S8位单片机,片内 4bytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存储 器( RAM ),器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51指令系统,片内置用

6、8位中央处理器(CPU)和Flash存储单元,功能强大。 STC89C52 单片机可灵活应用于各种控制领域。STC89C52单片机提供以下标准功能:4K字节Flash闪速存储器,128字节内部 RAM,32个I/O 口线,两个16位定时、计数器,一个5向量两级中断结构,一个全 双工串行通信口,片内振荡器及时钟电路。同时,STC89C52单片机可降至OHz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止 CPU 的工作,但 允许RAM,定时、计数器,串行通行口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。1.2 本设计任务

7、和主要内容本文以STC89C52单片机为核心,通过数字温度传感器对外界环境温度进行数据 采集,从而建立一个控制系统,使电风扇随温度的变化而自动调节档位,实现“温度 高、风力大、温度低、风力弱”的性能。另外,通过红外发射和接收装置及按键实现 各种功能的启动与关闭, 并且可对各种功能实现遥控, 用户可以在一定范围内设置电 风扇的最低工作温度, 当温度低于所设置温度时, 电风扇将自动关闭, 当高于此温度 时电风扇又将重新启动。本设计主要内容如下:(1)风速设为从低到高共 2个档位,可由用户通过键盘设定。(2)每当温度低于下限值时 , 则电风扇风速关闭。(3) 每当温度在下限和上限之间时 , 则电风扇

8、转速缓慢。(4) 每当温度高于上限值时 , 则电风扇风速全速运转。第 2 章 方案选择本系统实现风扇的温度控制, 需要有较高的温度变化分辨率和稳定可靠的换档停 机控制部件。2.1 温度传感器的选用温度传感器可由以下几种方案可供选择: 方案一:选用热敏电阻作为感测温度的核心元件, 通过运算放大器放大由于温度 变化引起热敏电阻电阻的变化、 进而导至的输出电压变化的微弱电压变化信号, 再用 AD 转换芯片 ADC0809 将模拟信号转化为数字信号输入单片机处理。方案二:采用热电偶作为感测温度的核心元件, 配合桥式电路, 运算放大电路和 AD 转换电路,将温度变化信号送入单片机处理。方案三:采用数字式

9、集成温度传感器 DS18B20 作为感测温度的核心元件,直接 输出数字温度信号供单片机处理。对于方案一, 采用热敏电阻有价格便宜、 元件易购的优点, 但热敏电阻对温度的 细微变化不敏感,在信号采集、放大、转换过程中还会产生失真和误差,并且由于热 敏电阻的 R-T 关系的非线性, 其本身电阻对温度的变化存在较大误差, 虽然可以通过 一定电路予以纠正, 但不仅将使电路复杂稳定性降低, 而且在人体所处温度环境温度 变化中难以检测到小的温度变化。故该方案不适合本系统。对于方案二,采用热电偶和桥式测量电路相对于热敏电阻其对温度的敏感性和器 件的非线性误差都有较大提高, 其测温范围也非常宽, 从-50 摄

10、氏度到 1600 摄氏度均 可测量。 但是依然存在电路复杂, 对温度敏感性达不到本系统要求的标准, 故不采用对于方案三,由于数字式集成温度传感器 DS18B20 的高度集成化,大大降低了 外接放大转换等电路的误差因素, 温度误差很小, 并且由于其感测温度的原理与上述 两种方案的原理有着本质的不同, 使得其温度分辨力极高。 温度值在器件内部转换成 数字量直接输出,简化了系统程序设计,又由于该传感器采用先进的单总线技术(1-WRIE),与单片机的接口变的非常简洁,抗干扰能力强。关于DS18B20的详细参数参看下面“硬件设计”中的器件介绍。2.2 控制核心的选择方案一: 采用电压比较电路作为控制部件

11、。 温度传感器采用热敏电阻或热电偶等, 温 度信号转为电信号并放大, 由集成运放组成的比较电路判决控制风扇转速, 当高于或 低于某值时将风扇切换到相应档位。方案二:采用单片机作为控制核心。 以软件编程的方法进行温度判断, 并在端口输出 控制信号。对于方案一, 采用电压比较电路具有电路简单、 易于实现, 以及无需编写软件程序的 特点, 但控制方式过于单一, 不能自由设置上下限动作温度, 无法满足不同用户以及 不同环境下的多种动作温度要求,故不在本系统中采用。对于方案二, 以单片机作为控制器, 通过编写程序不但能将传感器感测到的温度通过 显示电路显示出来, 而且用户能通过键盘接口, 自由设置上下限

12、动作温度值, 满足全 方位的需求。 并且通过程序判断温度具有极高的精准度, 能精确把握环境温度的微小 变化。故本系统采用方案二。2.3 显示电路方案一:采用五位共阳数码管显示温度,动态扫描显示方式。方案二:采用液晶显示屏LCD显示温度对于方案一, 该方案成本低廉, 显示温度明确醒目, 在夜间也能看见, 功耗极低, 显示驱动程序的编写也相对简单, 这种显示方式得到广泛应用。 不足的地方是扫描显 示方式是使五个LED逐个点亮,因此会有闪烁,但是人眼的视觉暂留时间为 20MS 当数码管扫描周期小于这个时间时人眼将感觉不到闪烁, 因此可以通过增大扫描频率 来消除闪烁感。对于方案二, 液晶体显示屏具有显

13、示字符优美, 不但能显示数字还能显示字符甚 至图形的优点,这是LED数码管无法比拟的。但是液晶显示模块价格昂贵,驱动程序 复杂,从简单实用的原则考虑,本系统采用方案一。2.4 调速方式方案一:采用变压器调节方式,运用电磁感应原理将 220V 电压通过线圈降压到 不同的电压, 控制风扇电机接到不同电压值的线圈上可控制电机的转速, 从而控制风 扇风力大小。方案二:采用晶闸管构成无级调速电路。对于方案一, 由于采用变压器改变电压调节, 有风速级别限制, 不能适应人性化 要求。且在变压过程中会有损耗发热,效率不高,发热有不安全因素。对于方案二, 以电位器控制晶闸管的导通角大小, 可实现由最大风速到关闭

14、的无 级别调速,可将风力调节在关闭无风到最大风之间的任意风力,实现“自由风” 。且 在调速环节中基本无电力损耗。故本系统采用方案二。2.5 控制执行部件方案一:采用数模转换芯片 AD0832 控制,由单片机根据当前温度值送出相应数 字量到AD0832,由AD0832产生模拟信号控制晶闸管的导通角,从而配合无级调速 电路实现温控时的自动无级风力调节。对于方案一,该方案能够实现在风扇处于温控状态时也能无级调速,但是 D/A 转换芯片价格较高,与其温控状态下无级调速功能相比性价比不高。对于方案二,虽然在温控状态下只能实现弱 /大风两级调速,但采用继电器价格便宜, 控制可靠, 且出于在温控状态时无级调

15、速并不是特别需要的功能, 综合考虑采 用方案二。第3章硬件设计3.1 系统总体设计本文介绍了一种基于STC89C52单片机的智能电风扇调速器的设计,该设计巧妙 利用单片机控制技术、无级调速技术和温度传感技术,把智能控制技术应用于家用电 器的控制中,将电风扇的电机转速作为被控制量,由单片机分析采集到的数字温度信 号,再通过可控硅对风扇电机进行调速。 从而达到无须人为控制便可自动调整风速的 效果。3.3 温度检测和显示电路可以选用LM324A运算放大器作为温度传感器,将其设计成比例控制调节器,输出电压与热敏电阻的阻值成正比, 但这种方案需要多次检测后方可使采样精确,过于烦琐。所以我采用更为优秀的

16、DS18B20数字温度传感器,它可以直接将模拟温度 信号转化为数字信号,降低了电路的复杂程度,提高了电路的运行质量。3.3.1 DS18B20的温度处理方法DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智 能温度传感器。与传统的热敏电阻相比,它能够直接读出被测温度并且可根据实际要 求通过简单的编程实现912位的数字值读数方式。可以分别在 93.75 ms和750 ms 内完成9位和12位的数字量,并且从DS18B20读出的信息或写入 DS18B20的信息 仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以 向所挂接的DS18B20供电,

17、而无需额外电源,因而使用DS18B20可使系统结构更趋 简单可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较 DS1820 有 了很大的改进,给用户带来了更方便的使用和更令人满意的效果。DS18B20 简介:(1 )独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实 现微处理器与DS18B20的双向通讯。( 2)在使用中不需要任何外围元件。(3) 可用数据线供电,电压范围: +3.0 +5.5 V。(4) 测温范围:-55 +125 C。固有测温分辨率为0.5 C。(5) 通过编程可实现 912位的数字读数方式。(6) 用户可自设定非易失性的报警上下限值。(7)

18、 支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点测 温。(8) 负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。 单线( 1 wire) 技术: 该技术采用单根信号线,既可传输时钟,也能传输数据,而且是双向传输。适用于单主机系统, 主机能够控制一个或多个从机设备, 通过一个漏极开路或三态端口连 至该数据线, 以允许设备在不发送数据时能释放该线, 而让其他设备使用。 单线通常 要求外接一个 5K 的上拉电阻,这样当该线空闲时,其状态为高电平。主机和从机之间的通讯分成三个步骤: 初始化单线器件、 识别单线器件和单线数 据传输。单线 1 wire 协议由复位脉

19、冲、应答脉冲、写 0、写 1 、读 0、读 1 ,这几种信号 类型实现, 这些信号中除了应答脉冲其他都由主机发起, 并且所有指令和数据字节都 是低位在前。DS18B20直接将测量温度值转化为数字量提交给单片机,工作时必须严格遵守 单总线器件的工作时序。表3-1 部分温度值与 DS18B20输出的数字量对照表温度值/ c数字输岀(二进制)数字输岀(十六进制)+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.6250000 0001 1001 00010191H+10.1250000 0000 1010 001000A2H+0.5

20、0000 0000 0000 10000008H00000 0000 0000 00000000H-0.51111 1111 1111 1000FFF8H-10.1251111 1111 0110 1110FF5EH-25.6251111 1111 0110 1111FF6FH-551111 1100 1001 0000FC90H3.3.2 温度传感器和显示电路组成本模块用更为优秀的DS18B20作为温度传感器,STC89C52单片机作为处理器, 配以温度显示作为温度控制输出单元。整个系统力求结构简单,功能完善。电路图如 图2所示。系统工作原理如下:DS18B20数字温度传感器采集现场温度,将

21、测量到的数据送入STC89C52单片机的P2.4 口,经过单片机处理后显示当前温度值,并与设定温度值的上下限值作比 较,若高于设定上限值或低于设定下限值则控制电机转速进行自动调整。图3-2DS18B20温度计原理图3.4电机调速电路电机调速是整个控制装置中的一个相当重要的方面。通过控制改变三极翻出的导通,使输出端电压发生改变,从而使施加在电风扇的输入电压发生改变,以调节风扇的转速,实现各档位风速的无级调速。341电机调速原理双向可控硅的导通条件如下:(1 )阳-阴极间加正向电压;(2 )控制极-阴极间加正向触发电压;(3 )阳极电流IA大于可控硅的最小维持电流IH。电风扇的风速从高到低设为5、

22、4、3、2、1档,每档风速都有一个限定值。在额 定电压、额定功率下,以最高转速运转时,要求风叶最大圆周上的线速度不大于 2150m/min。且线速度可由下列公式求得V=n DnX 10(1)公式(1)中,V为扇叶最大圆周上的线速度(m/min), D为扇中的最大顶端扫出 圆的直径(mm), n为电风扇的最高转速(r/min)。代入数据求得 n5 1555r/min,取n5=1250 r/min.又因为:取n1=875r/min。则可得出五个档位的转速值:n1=875r/min,n2=980r/min,n3=1063r/min,n4=1150 r/min,n5=1250r/minsin 22(2

23、)又由于负载上电压的有效值公式(2)中,U1为输入交流电压的有效值,a为控制角。解得:(1)当a=0寸,t=0ms;当oa=23.5。时,t=1.70ms;(3)当a=46.5 时,t=2.58ms;当a=61.5。时,t=3.43ms;(5)当a=76.5 时,t=4.30ms。U0=U1上述计算出的是控制角和触发时间,当检测到过零点时,按照所求得的触发时间 延时发脉冲,便可实现预期转速。342电机控制模块设计本模块电路中采用了过零双向可控硅型光耦MOC3041M,集光电隔离、过零检测、过零触发等功能于一身,避免了输入输出通道同时控制双向可控硅触发的缺陷,简化了输出通道隔离2驱动电路的结构。

24、所设计的可控硅触发电路原理图见图3。其中RL即为电机负载,其工作原理是:单片机响应用户的参数设置,在I/O 口输出一个 高电平,经反向器反向后,送出一个低电平,使光电耦合器导通,同时触发双向可控 硅,使工作电路导通工作。给定时间内,负载得到的功率为:P UIN公式中:P为负载得到的功率(kW) ;n为给定时间内可控硅导通的正弦波个数;N 为给定时间内交流正弦波的总个数;U为可控硅在一个电源周期全导通时所对应的电 压有效值(V) ; I为可控硅在一个电源周期全导通时所对应的电流有效值(A)。由式(3)可知,当U,I,N为定值时,只要改变n值的大小即可控制功率的输出,从而达到调 节电机转速的目的。

25、图3-3电机控制原理图第4章软件设计本系统的运行程序采用 c语言编写,采用模块化设计,整体程序由主程序和显示、键盘扫描、红外线接收以及电机控制等子程序模块组成。4.1 主程序在主程序进行初始化后,开始反复检测各模块相关部分的缓冲区的标志,如果缓 冲区置位,说明相应的数据需要处理,然后主程序调用相应的处理子模块。如图7所示。图4-1 主程序模块流程图4.2 数字温度传感器模块和显示子模块如图8所示,主机控制DS18B20数字温度传感器完成温度转换工作必须经过三个步骤:初始化、ROM操作指令、存储器操作指令。单片机所用的系统频率为12MHz。图4-2 数字温度传感器模块程序流程图根据DS18B20

26、数字温度传感器进行初始化时序、读时序和写时序分别可编写3个子程序:初始化子程序、写子程序、读子程序。DS18B20芯片功能命令表如下:表4-1DS18B20功能命令表命令说明协议READ ROM读取激光ROM6竝33HMATCH ROM匹配ROM55HSKIP ROM跳过ROMCCHSEARCH ROM搜索ROMF0HALARM SEARCH告警搜索ECHWRITE SCRATCHPAD把字节写入暂存器的地址 2和34EHREAD SCRATCHPAD读取暂存器和CRC字节BEHCOPY SCRATCHPAD把暂存器内容拷贝到非易失性存储器中48HCONVERTT开始温度转换44HRECALL

27、 E2把非易失性存储器中的值召回暂存器B8HREAD POWER SUPPLY读电源供电方式:0为寄生电源,1为外电源B4H4.3 电机调速与控制子模块本模块采用双向可控硅过零触发方式, 由单片机控制双向可控硅的通断, 通过改 变每个控制周期内可控硅导通和关断交流完整全波信号的个数来调节负载功率,进而达到调速的目的。因为INTO信号反映工频电压过零时刻,所以只要在外中断 0的中断服务程序中 完成控制门的开启与关闭,并利用中断服务次数对控制量n进行计数和判断,即每中 断一次,对n进行减1计数,如果n不等于0,保持控制电平为“ 1”继续打开控制 门;如n=0,则使控制电平复位为“ 0”关闭控制门,

28、使可控硅过零触发脉冲不再通 过。这样就可以按照控制处理得到的控制量的要求,实现可控硅的过零控制,从而达 到按控制量控制的效果,实现速度可调。(1)中断服务程序:执行中断服务程序时,首先保护现场,INT0中断标志置位, 禁止主程序修改工作参数,然后开始减 1计数,判断是否关断可控硅,最后INT0中 断标志位清零,还原初始化数据,恢复现场,中断返回。(设1秒钟通过波形数N=100)(2)回路控制执行程序:主回路控制执行程序的任务是初始化数据存储单元, 确定电机工作参数nmin/nmax,并将其换算成“有效过零脉冲”的个数;确定中断优先 级、图4-3电机控制模块中断响应流程图为了保证正弦波的完整,工

29、频过零同步中断INT0确定为高一级的中断源总结本系统以STC89C5单片机为核心,单片机主要完成对外界环境温度信号的采集、 处理、显示等功能;用Altium Designer 6软件绘制电路原理图和PCB电路印刷板图, 由Protues软件进行访真测试,利用 MCS-51 C语言编制。运行程序该系统的主要特点是 :(1)适用性强,用户只需对界面参数进行设置并启动系统正常运行便可满足不同 用户对最适合温度的要求,实现对最适温度的实时监控。(2) 随时可以根据软件编写新的功能加入产品。操作界面可扩展性强, 只要稍加 改变,即可增加其他按键的使用功能。本系统温度控制采用DS18B20数字温度传感器作

30、为感温元件。可控硅串接在电源 与负载电风扇, 借改变定周期内可控硅的导通与截止时间之比来实现调速功能, 其设 计完使用方便就,适应人们睡办公等不同场合的使用。基于STC89C52单片机所设计与研制的电风扇智能调速系统,造价低且具有稳定性高、性能优越、 节约电能等优点, 在夜间无需定时, 同样能给人们带来更多的方便。本设计在模拟检测中运行较好, 但采样据不太稳定。 功能上的缺憾是对于两个档 之间的临界温度处理不好,并且档位太少 , 还有待改进参考文献1 曹巧媛 . 单片机原理及应用 . 北京:电子工业出版社, 2002.22 王伦.电风扇原理与维修技术 M. 北京:新时代出版社, 19993 张

31、毅刚.新编MCS-51单片机应用设计哈尔滨工业大学出版社,2006,1020034 梁廷贵、王裕琛 . 可控硅触发电路语音电路分册 M. 北京:科学技术文献出版社,附录 1 主要程序代码主要程序代码及说明(见注释语句)如下: 数字温度传感器模块和显示子模块程序 :#include / 调用单片机头文件#define uchar unsigned char /无符号字符型 宏定义 变量范围 0255#define uint unsigned int /无符号整型 宏定义 变量范围 065535#include eeprom52.h/ 数码管段选定义 0 1 2 3 4 5 6 7 8 9 Uch

32、arcodesmg_du=0x28,0xee,0x42,0x52,0xe5,0xa8,0x41,0xe7,0x20,0xa0, 0x60,0x25,0x39,0x26,0x31,0x71,0xff; / 断码/ 数码管位选定义uchar code smg_we=0xef,0xdf,0xbf,0x7f;uchar dis_smg8= 0x28,0xee,0x32,0xa2,0xe4,0x92,0x82,0xf8;uchar smg_i = 3;/ 显示数码管的个位数sbit dq = P2A4;/18b20 IO 口的定义bit flag_lj_en;/ 按键连加使能bit flag_lj_3_

33、en;/ 按键连 3 次连加后使能 加的数就越大了uchar key_time,key_value; / 用做连加的中间变量bit key_500ms ;sbit pwm = P2A3;uchar f_pwm_l ;/ 越小越暗uint temperature ; /bit flag_300ms ;uchar menu_1; / 菜单设计的变量uint t_high = 300,t_low = 100; / 温度上下限报警值/*1ms延时函数 */void delay_1ms(uint q)uint i,j;for(i=0;iq;i+)for(j=0;j= smg_i)i = 0;P1 = 0

34、xff;/消隐P3 = smg_wei;/ 位选P1 = dis_smgi;/ 段选*把数据保存到单片机内部 eepom中*/void write_eeprom()SectorErase(0x2000); byte_write(0x2000, t_high % 256); byte_write(0x2001, t_high / 256); byte_write(0x2002, t_low % 256); byte_write(0x2003, t_low / 256);byte_write(0x2055, a_a);把数据从单片机内部 eeprom中读出来*/void read_eeprom()

35、t_high = byte_read(0x2001);t_high = 8;t_high |= byte_read(0x2000);t_low = byte_read(0x2003);t_low = 8;t_low |= byte_read(0x2002);a_a = byte_read(0x2055);开机初始化保存的数据 */void init_eeprom()read_eeprom();/ 先读if(a_a != 22)/ 新的单片机初始单片机内问 eepromt_high = 320; t_low = 280;/ 保存数据a_a = 22; write_eeprom();18b20初始

36、化函数void init_18b20()bit q;dq = 1; delay_uint(1);dq = 0; delay_uint(80);dq = 1; delay_uint(10); q = dq;delay_uint(20); dq = 1;/ 把总线拿高/15us/ 给复位脉冲/750us/ 把总线拿高 等待/110us/ 读取 18b20 初始化信号/200us/ 把总线拿高 释放总线写 18b20 内的数据void write_18b20(uchar dat) uchar i;for(i=0;i= 1;读取 18b20 内的数据 */uchar read_18b20() ucha

37、r i,value; for(i=0;i= 1;/ 读数据是低位开始dq = 1;/释放总线if(dq = 1)/开始读写数据value |= 0x80;60us 的时间delay_uint(5);/60us 读一个时间隙最少要保持return value;/ 返回数据读取温度的值 读出来的是小数 */uint read_temp()uint value;uchar low;中断给关了,否则会影响到init_18b20();EA = 0;write_18b20(0xcc);write_18b20(0x44);EA = 1; delay_uint(50);init_18b20(); /EA =

38、0;write_18b20(0xcc);write_18b20(0xbe);low = read_18b20();value = read_18b20(); /18b20的时序/在读取温度的时候如果中断的太频繁了,初始化 18b20/ 跳过 64 位 ROM/ 启动一次温度转换命令/500us初始化 18b20/ 跳过 64 位 ROM/ 发出读取暂存器命令/ 读温度低字节就应该把EA = 1;value = 3) menu_1 = 0;smg_i = 3;/ 数码管显示 3 位if(menu_1 = 1) / 设置高温报警smg_i = 4; / 数码管显示 4 位if(key_can = 2)if(flag_lj_3_en = 0) t_high + ;elset_high += 10; /10if(t_high 990) t_high = 990;if(key_can = 3) if(flag_lj_3_en = 0) t_high - ;elset_high -= 10; /10if(t_high = t_high) t_low = t_high - 1;if(key_can = 3)if(flag_lj_3_en = 0)t_low - ;/ 按键按下未松开自动减三次else加 10t_low -= 10;/ 按

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号