基于并行AD的智能温度控制器设计

上传人:卷*** 文档编号:125742124 上传时间:2022-07-27 格式:DOC 页数:170 大小:864KB
收藏 版权申诉 举报 下载
基于并行AD的智能温度控制器设计_第1页
第1页 / 共170页
基于并行AD的智能温度控制器设计_第2页
第2页 / 共170页
基于并行AD的智能温度控制器设计_第3页
第3页 / 共170页
资源描述:

《基于并行AD的智能温度控制器设计》由会员分享,可在线阅读,更多相关《基于并行AD的智能温度控制器设计(170页珍藏版)》请在装配图网上搜索。

1、摘 要本设计系统地简介了基于ADC0809的智能温度控制系统的构成、设计方案、电路原理、程序设计以及系统仿真过程。ADC0809温度控制系统是以AT89C51单片机作为控制核心,数字温度传感Pt100为控制对象,运用C语言编程实现系统的多种功能。该系统由单片机最小系统、传感器电路、ADC0809应用电路,LED七段数码显示电路、电源电路六大部分构成。借助PROTEUS软件,实现了系统电路设计和仿真。,该系统不仅可以高精度的测 得温度的数字值,并且会及时的对温度进行控制,系统具有简朴以便、精确可靠,实时性强、 可扩展性好等长处。核心词:ADC0809,仿真,测量系统,PROTEUS,单片机ABS

2、TRACTThe design systematically introduced the composition,the design, the circuit theory, the program design and the system simulation process of the multipoint temperature measurement system which based on the DS18B20.The DS18B20 multipoint temperature measurement system, the AT89C51 MCU as its con

3、trol core, digital temperature sensing DS18B20 as its control target, use the C-language programming system to realize the functions. The system composed of six major components,which are the smallest MCU system, the sensor circuit, the alarm circuits, the LCD display circuit, the keyboard, the powe

4、r circuit. The system realize the circuit design and simulation with PROTEUS software. It applies to the power industry, coal, forest, fire, high-rise buildings and other places,it can also applies to industrial control field with the bad environment. Through the monobus technology of the DS18B20,th

5、e system achieve the measurement and monitoring of the long-range environmental temperature. Key words: DS18B20,simulation,measurement system,PROTEUS,MCU目 录第1章 绪论11.1 课题来源21.2 课题研究的目的意义21.3 国内外现状及水平21.4 课题研究内容2第2章 系统方案设计22.1 基于模拟温度传感器设计方案22.2 基于数字温度传感器设计方案22.3 方案论证2第3章 电路设计23.1 工作原理23.2 DS18B20与单片机接

6、口技术23.2.1 DS18B20的引脚功能23.2.2 DS18B20与单片机接口电路23.2.3 温度寄存器格式和温度/数据相应关系23.2.4 单片机对DS18B20的控制措施23.3 键盘电路设计23.3.1 行列式键盘与单片机接口电路23.3.2 键盘面板23.4 显示电路设计23.4.1 LCD引脚分布及功能23.4.2 单片机与图形液晶的接口电路23.5 报警电路设计23.6 电源电路设计2第4章 程序设计24.1 系统资源分派2 4.1.1 系统硬件资源分派2 4.1.2 系统软件资源分派24.2 系统流程设计24.2.1 主程序流程设计24.2.2 DS18B20程序流程设计

7、24.2.3 显示程序流程24.2.4 键盘程序程序流程24.3 程序设计24.3.1 主程序设计24.3.2 子程序设计2第5章 系统仿真25.1 PROTUES仿真环境简介25.2 原理图绘制25.3 程序加载25.3.1 程序编译25.3.2 程序加载25.4 系统仿真25.5 仿真成果分析2第6章 PCB板设计26.1 PCB板设计2 6.1.1 PCB板面规划2 6.1.2 PCB网络表导入2 6.1.3 PCB元件布局2 6.1.4 布线26.2 原理图绘制26.2.1 PCB打印26.2.2 PCB转印26.2.3 PCB蚀刻26.2.4 PCB钻孔26.2.5 PCB板表面解决

8、2结论1参照文献1道谢1附录1第1章 绪论1.1 课题来源温度是一种和人们生活环境有着密切关系的物理量,也是一种在生产、科研、生活中需要测量和控制的重要物理量,是国际单位制七个基本量之一,同步它也是一种最基本的环境参数。人民的生活与环境温度息息有关,物理、化学、生物等学科都离不开温度。在工业生产和实验研究中,在电力、化工、石油、冶金、机械制造、大型仓储室、实验室、农场塑料大棚甚至人们的居室里常常需要对环境温度进行检测,并根据实际的规定对环境温度进行控制。例如,发电厂锅炉的温度必须控制在一定的范畴之内;许多化学反映的工艺过程必须在合适的温度下才干正常进行。炼油过程中,原油必须在不同的温度和压力条

9、件下进行分流才干得到汽油、柴油、煤油等产品;没有合适的温度环境,许多电子设备不能正常工作,粮仓的储粮就会变质霉烂,酒类的品质就没有保障。可见,研究温度的测量具有重要的理论意义和推广价值。随着现代计算机和自动化技术的发展,作为多种信息的感知、采集、转换、传播相解决的功能器件,温度传感器的作用日益突出,成为自动检测、自动控制系统和计量测试中不可缺少的重要技术工具,其应用已遍及工农业生产和平常生活的各个领域。本设计就是为了满足人们在生活生产中对温度测量系统方面的需求。本设计规定系统测量的温度的点数为4个,测量精度为0.5,测温范畴为-20+80。采用液晶显示温度值和路数,显示格式为:温度的符号位,整

10、数部分,小数部分,最后一位显示。显示数据每一秒刷新一次。1.2 课题研究的目的意义21世纪科学技术的发展日新月异,科技的进步带动了测量技术的发展,现代控制设备的性能和构造发生了巨大的变化,我们已经进入了高速发展的信息时代,测量技术也成为当今科技的主流之一,被广泛地应用于生产的各个领域。对于本次设计,其目的在于:(1) 掌握数字温度传感器DS18B20的原理、性能、特点和使用措施,运用C51对系统进行编程。(2) 本课题综合了现代测控、电子信息、计算机技术专业领域方方面面的知识,具有综合性、科学性、代表性,可全面检查和增进学生的理论素养和工作能力。(3) 本课题的研究可以使学生更好地掌握基于单片

11、机应用系统的分析与设计措施,培养创新意识、协作精神和理论联系实际的学风,提高电子产品研发素质,增强针对实际应用进行控制系统设计制作的能力。1.3 国内外现状及水平传感器属于信息技术的前沿尖端产品,特别是温度传感器被广泛用于工农业生产、科学研究和生活等领域,数量高居多种传感器之首。温度传感器的发展大体经历了如下三个阶段:老式的分立式温度传感器(含敏感元件);模拟集成温度传感器;数字温度传感器。目前,国际上新型温度传感器正从模拟式向数字式、由集成化向智能化、网络化的方向发展,同步具有克制串模干扰能力强、辨别力高、线性度好、成本低等长处。随着国内四个现代化和经济发展,国内在科技和生产各领域都获得了飞

12、速的发展和进步,发展以温度传感器为载体的温度测量技术具有重大意义。1.4 课题研究内容本设计研究的重要内容如下:(1) 在广泛查阅温度检测控制理论和措施、测温技术和温度控制技术等资料的基本上,根据不同的控制规定及应用领域完毕对系统方案的总体设计。本设计采用以AT89C51为核心的单片机系统,来实现对温度的检测、报警等功能。(2) 研究比较各有关元器件的功能与特点,选择合适的元器件。(3) 系统硬件设计。系统硬件设计重要涉及:温度检测、单片机数据采集和解决、显示、键盘设定、报警电路等部分。(4) 系统软件设计。本课题采用C语言,运用Keil编译器进行编程及调试。重要研究DS18B20与单片机的通

13、信合同、时序及某些C51通用程序等。本设计的难点分为硬件和软件两个方面。其中硬件开发的难点在于多种元器件的选择和使用,如多种电阻、电容等的选择。软件开发的难点在于DS18B20的时序,如果时序不对的,将无法读出对的的温度值,对系统产生很大的影响。第2章 系统方案设计2.1 基于模拟温度传感器设计方案该方案由单片机、温度传感器Pt100、运算放大器、AD转换器、LED显示电路构成,如图2.1所示。本方案采用温度传感器Pt100作为测温元件,传感器将测量的温度变换转换成电流的变化,再通过模拟电路将电流的变化转换成电压的变化,使用运算放大器交将信号进行合适的放大,最后通过模数转换器将模拟信号转换成数

14、字信号,传送给单片机。单片机将温度值进行解决之后用LED显示。温度传感器A/DMCU89C51显示屏Pt100A/D C080909时间、温度七段数码管图2.1 基于基于并行A/D的智能温度控制器设计系统方案本方案使用的测温元件的性能指标如下:(1)AD590的测温范畴为55+150。(2)AD590的电源电压范畴为4V30V,电源电压可在4V6V范畴变化,电流变化1mA,相称于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。(3)输出电阻为710MW。 (4)精度高,AD590共有I、J、K、L、M五档,其中M档精度最高,在55+150范畴内,非线性

15、误差为0.3。 集成温度传感器具有线性好、精度适中、敏捷度高、体积小、使用以便、温度测量范畴广等长处,得到广泛应用。集成温度传感器的输出形式分为电压输出和电流输出两种。电压输出型的敏捷度一般为10mV/K,温度0时输出为0,温度25时输出2.982V。电流输出型的敏捷度一般为1mA/K。2.2 基于数字温度传感器设计方案该方案使用了AT89C51单片机作为控制核心,以数字温度传感器DS18B20为温度测量元件,采用多种温度传感器对各点温度进行检测,通过44键盘对正常温度的最大值进行设立,显示电路采用12864 LCD,使用LM386作为报警电路中的功率放大器。 图2.2 基于数字温度传感器测量

16、系统方案本课题采用数字温度传感器DS18B20作为测为测温元件,它具有如下特点:(1) 只规定一种端口即可实现通信。(2) 在DS18B20中的每个器件上均有独一无二的序列号。(3) 实际应用中不需要外部接任何元器件即可实现测温。(4) 测量温度范畴在55C到125C之间。(5) 912位辨别率可调。(6) 内部有温度上、下限告警设立。2.3 方案论证本设计规定测量的点数为4,测温范畴为-20+80,精度为0.5。采用液晶显示,同步显示路数和温度,每秒刷新1次显示数据。综合模拟温度传感器和数字温度传感器的性能指标,以上两个方案都能达到设计的规定。方案一采用模拟温度传感器AD590,转换成果需要

17、通过运算放大器和AD转换器传送给解决器。它控制虽然简朴,成本低,但是后续电路复杂,且需要进行温度标定。集成温度传感器AD590输出为电流,且输出信号较弱,因此需要后续放大及A/D转换电路。如采用一般运放则精度难以保证,而测量放大器价格较高,这样会使系统成本升高。方案二采用了数字温度传感器DS18B20,变化了老式温度测量措施。它能在现场采集温度数据,直接将温度物理量转换为数字信号并以总线方式传送到单片机,再由单片机进行数据解决,并且可根据实际规定通过简朴的编程实现9-12位的数字式读取方式,因而使用DS18B20可使系统构造更加简朴,可靠性更高,大大提高系统的抗干扰能力。DS18B20体积小、

18、经济、使用以便灵活、测试精度高、较高的性能价格比,有CRC校验,系统简要直观,适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。方案二程序设计稍微复杂某些,但在电子竞赛期间我使用DS18B20做过温度计,也调试过LCD,并且已经用PROTEUS实现了系统的仿真。因此,该方案完全具有可行性,同步体现了技术的先进性,经济上也有很大的优势。综上所述,本设计采用方案二对系统进行设计。第3章 电路设计3.1工作原理基于DS18B20多点温度测量系统以AT89C51为核心器件,以KEIL为系统开发平台,用C语言进行程序设计,以PROTEUS作为仿真软件设计而成的。系统重要由

19、单片机最小系统、传感器电路、液晶显示电路、键盘电路、报警电路、电源电路构成,系统原理图如图3.1所示。图3.1 系统原理图DS18B20是数字温度传感器,它的输入/输出采用数字量,以单总线技术,接受主机发送的命令,根据DS18B20内部的合同进行相应的解决,将转换的温度以串口发送给主机。主机按照通信合同用一种IO口(P1.7)模拟DS18B20的时序,发送命令(初始化命令、ROM命令、RAM命令)给DS18B20,转换完毕之后单片机读取温度值,在内部进行相应的数值解决,用12864LCD显示各点的温度。在系统启动的时候,可以通过44键盘设立各点温度的上限值,当某点的实际温度超过设立值时,报警器

20、开始报警,液晶显示该传感器的路数、设立温度值、实际温度值以及路数和该路的状态,从面实现了对各点温度的测量和实时监控。每个DS18B20有自己的序列号,因此本系统可以在一根总线上挂接了4个DS18B20,通过CRC校验,对各个DS18B20的ROM进行寻址,地址符合的DS18B20才作出响应,接受主机的命令,向主机发送转换的温度。采用这种寻址技术,单片机使用一种IO口即能实现对四点环境的温度数据进行采集,使系统硬件电路更加简朴,系统更加稳定。3.2 DS18B20与单片机接口技术3.2.1 DS18B20的引脚功能DS18B20的引脚功能描述见表3.1。表3.1DS18B20引脚功能描述序号名称

21、引脚功能描述1GND地信号2DQ数字输入输出引脚,开漏单总线接口引脚,当使用寄生电源时,可向电源提供电源3VDD可选择的VDD引脚,当工作于寄生电源时,该引脚必须接地3.2.2 DS18B20与单片机接口电路如图3.2所示,为单片机和DS18B20的接口电路。DS18B20只有三个引脚,一种接地,一种接电源,一种数字输入输出引脚接单片机的P1.7口,电源与数字输入输出脚间需要接一种4.7K的电阻。图3.2 DS18B20与单片机接口电路3.2.3 温度寄存器格式和温度/数据相应关系DS18B20温度寄存器如表3.2所示。寄存器有16位,高5位为符号位,低13位为数据位。当寄存器高5位为1时,表

22、达温度为负,否则为正。表3.2 温度寄存器格式 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0232221202-12-22-32-4LS ByteB bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8SSSSS262524MS Byte如果测得的温度不小于0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度不不小于0,测得的数值需要取反加1再乘0.0625,即可得到实际的温度值。如表3.3所示,是DS18B20的温度与数据的相应关系。表3.3 温度/数据的关系温度输出(2进制)输出(16进制)+1250000

23、0111 1101 000007D0H+850000 0101 0101 00000550H+20.06250000 0001 1001 00010191H+10.1250000 0000 1010 001000A2H+0.50000 0000 0000 10000008H00000 0000 0000 00000000H-0.51111 1111 1111 1000FFF8H-10.1251111 1111 0101 1110FF5EH25.06251110 1110 0110 1111EE6FH-551111 1110 1001 0000FE90H3.2.4 单片机对DS18B20的控制措

24、施DS18B20采用严格的单总线通信合同,以保证数据的完整性。该合同定义了几种信号类型:复位脉冲、应答脉冲、写0、写1、读0和读1。除了应答脉冲所有这些信号都由主机发出同步信号。总线上传播的所有数据和命令都是以字节为单位,且低位在前,高位在后。(1) 初始化序列:复位脉冲和应答脉冲在初始化过程中,主机通过拉低单总线至少480s,以产生复位脉冲(TX)。然后主机释放总线并进入接受(RX)模式。当总线被释放后,5k的上拉电阻将单总线拉高。DS18B20检测到这个上升沿后,延时15s60s,通过拉低总线60s240s产生应答脉冲。初始化脉冲如图3.3所示。图3.3 DS18B20初始化时序DS18B

25、20的初始化应答C语言程序如下所示:bit resetpulse(void)DQ=0;delay600us(); DQ=1;delay60us();return(DQ); DS18B20的初始化C语言程序如下所示: void Ds18b20_Init(void)while(1)if(!resetpulse() /收到ds18b20的应答信号DQ=1;delay600us();/延时240usbreak; else resetpulse(); /否则再发复位信号(2) DS18B20的读写控制在写时序期间,主机向DS18B20写入数据;而在读时序期间,主机读入来自DS18B20的数据。在每一种时

26、序,总线只能传播一位数据。读/写时序如图3.4所示。图3.4 DS18B20读写时序 DS18B20写时序DS18B20存在两种写时序:“写1”和“写0”。主机在写1时序时向DS18B20写入逻辑1,而在写0时序向DS18B20写入逻辑0。所有写时序至少需要60s,且在两次写时序之间至少需要1s的恢复时间。两种写时序均以主机拉低总线开始。写1时序:主机拉低总线后,必须在15s内释放总线,然后由上拉电阻将总线拉至高电平。写0时序:主机拉低总线后,必须在整个时序期间保持低电平(至少60s)。在写时序开始后的15s60s期间,DS18B20采样总线的状态。如果总线为高电平,则逻辑1被写入DS18B2

27、0;如果总线为低电平,则逻辑0被写入DS18B20。 读时序DS18B20只能在主机发出读时序时才干向主机传送数据。因此主机在发出读数据命令后,必须立即产生读时序,以便DS18B20可以传送数据。所有读时序至少60s,且在两次独立的读时序之间至少需要1s的恢复时间。每次读时序由主机发起,拉低总线至少1s。在主机发起读时序之后,DS18B20开始在总线上传送1或0。若DS18B20发送1,则保持总线为高电平;若发送0,则拉低总线。当传送0时,DS18B20在该时序结束时释放总线,再由上拉电阻将总线拉回空闲高电平状态。DS18B20发出的数据在读时序下降沿起始后的15s内有效,因此主机必须在读时序

28、开始后的15s内释放总线,并且采样总线状态。DS18B20写命令子程序如下:void ds18b20_writecommand(uchar command) uchar i; for(i=0;i8;i+) if(command & 0x01)=0) DQ=0;delay60us();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();DQ=1; _nop_();_nop_(); else DQ=0;_nop_();_nop_(); DQ=1;delay60us(); _nop_();_nop_();_nop_();_nop_();command=_c

29、ror_(command,1); DS18B20读温度子程序如下:uchar Ds18b20_Readdata(void) uchar readdata; uchar i; for(i=0;i8;i+) DQ=0; _nop_(); _nop_(); _nop_(); DQ=1; if(DQ=0) readdata=readdata&0x7f; delay60us(); elsereaddata=readdata|0x80;delay60us();if(i7)readdata=_cror_(readdata,1); return readdata; DS18B20的命令序列根据DS18B20的

30、通讯合同,主机(单片机)控制DS18B20完毕温度转换必须通过三个环节:每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才干对DS18B20进行预定的操作。ROM命令通过每个器件64-bit的ROM码,使主机指定某一特定器件(如果有多种器件挂在总线上)与之进行通信。DS18B20的ROM如表3.4所示,每个ROM命令都是8 bit长。表3.4 DS18B20 ROM命令指令合同功能读ROM33H读DS18B20中的编码(即64位地址)符合ROM55H发出此命令后,接着发出64位ROM编码,访问单总线上与该编码相相应的DS18B20,使之作出

31、响应,为下一步对该DS18B20的读写作准备搜索ROM0F0H用于拟定挂接在同一总线上DS18B20的个数和辨认64位ROM地址,为操作各器件作好准备跳过ROM0CCH忽视64位ROM地址,直接向DS18B20 温度转换命令,合用于单个DS18B20工作告警搜索命令0ECH执行后,只有温度超过报警值上限或下限的DS18B20才做出响应温度转换44H启动DS18B20进行温度转换,转换时间最长为500ms(典型为200ms),成果丰入内部9字节RAM中读暂存器BEH读内部RAM中9字节的内容写暂存器4EH发出向内部RAM的第3、4字节写上、下温度数据命令,紧该温度命令之后,传达两字节的数据复制暂

32、存器48H将RAM中第3、4字内容复制到E2PROM中重调E2PROM0B8H将E2PROM中内容恢复到RAM中的第3、4字节读供电方式0B4H读DS18B20的供电模式,寄生供电时DS18B20发送“0”,外部供电时DS18B20发送“1”3.3 键盘电路设计3.3.1 行列式键盘与单片机接口电路根据本设计需要,本系统采用了44键盘实现对温度值和功能键的设定。行列式键盘与单片机的接口电路如图3.5所示,H0-H3为行线,接单片机P2口的高4位,L0-L3为列线,接单片机P2口的低4位。初始化时键盘行线为高电平,列线为低电平。键盘的行线接4输入与门,4输入与门的输出接单片机的外部中断0引脚P3

33、.2口。当有键按下时,将产生中断,在中断程序里对按键进行扫描,得到按键的键值。图3.5 44键盘构造3.3.2 键盘面板键盘面板如图3.6所示,本系统使用的键盘有10数字键,5个功能按键。在系统启动时,先按“设立”键,然后按相应的数字键,按“左移”或者“右移”键变化其她温度的值。按“确认”键之后系统正式启动。系统在运营过程之中可以通过按“重新设立”键,对温度重新进行设立。 2 6 3 7 5 确认设立 9重新设立右移 左移 8 41 0 图3.6 键盘面板 3.4显示电路设计3.4.1 LCD引脚分布及功能(1) 12864液晶显示屏共有20个引脚,其引脚名称及引脚编号的相应关系如图3.7所示

34、:图3.7 12864液晶显示模块引脚分布图(2) 引脚功能如表3.5所示:表3.5 12864液晶显示模块引脚功能引脚符 号引 脚 功 能引脚符 号引 脚 功 能1VSS电源地15CS1CS1=1芯片选择左边64*64点2VDD电源正+5V16CS2CS2=1芯片选择右边64*64点3VO液晶显示驱动电源17/RST复位(低电平有效)4RSH:数据输入;L:指令码输入18VEELCD驱动负电源5R/WH:数据读取;L:数据写入19A背光电源(+)6E使能信号。20K背光电源(-)7-14DB0-DB7数据线有些型号的模块19、20脚为空脚3.4.2单片机与图形液晶的接口电路 LCD与单片机的

35、接口电路如图3.8所示:图3.8 LCD与单片机的接口电路单片机对LCD的控制措施将在下一章中具体简介。3.5 报警电路设计本系统设计中有报警器,使用LM386作为报警器的功率放大器,如图3.9所示。LM386是一种音频集成功放,具有自身功耗低、电压增益可调节、电源电压范畴大、外接元件少和总谐波失真小等长处,广泛应用于录音机和收音机之中。LM386的输入端接单片机的引脚P3.4,输出端接扬声器。当实际温度超过设立的温度值时,单片机引脚输出一定频率的信号,信号通过音频功放放大之后,发出报警声。图3.9 LM386功放电路3.6 电源电路设计电源是整个系统的能量来源,它直接关系到系统能否运营。在本

36、系统中单片机、液晶显示、报警等电路需要5V的电源,因此电路中选用稳压芯片7805,其最大输出电流为1.5A,可以满足系统的规定,其电路如图3.10所示。图3.10 电源电路第4章 程序设计4.1 系统资源分派4.1.1 系统硬件资源分派本系统电路连接及硬件资源分派如图4.1所示。采用AT89C51单片机作为核心器件,DS18B20作为温度测量装置,通过AT89C51的P1.7口将温度值送入单片机解决,运用12864LCD显示屏和44键盘作为人机接口。图4.1 系统硬件资源分派4.1.2 系统软件资源分派本系统采用了C语言进行程序设计,系统自动为各个变量分派内存区域。顾客可以将变量定义在DATA

37、区、IDATA区、PDATA区、XDATA区,常量定义在CODE区。用C语言写较复杂的程序时,要特别注意使用的内存不能超过单片机RAM。4.2 系统流程设计4.2.1主程序流程设计主程序先对系统资源进行初始化,调用LCD显示子程序,显示启动画面。然后进入键盘设立界面。当设立键按下后,开始设立各点的温度,设立完之后,如果确认键按下,则系统开始工作。一方面调用DS18B20初始化子程序,再发送ROM命令,读取DS18B20转换的温度值。当读取的温度不小于设立的温度值时,报警器开始报警,LCD显示温度的实际值、设立值、路数、状态。接下来对第二、三、四路温度进行采集,解决,显示。主程序流程如图4.2所

38、示: 图4.2 主程序流程图 4.2.2 DS18B20程序流程设计由上一章单片机对DS18B20的控制措施,设计出如下程序流程: 图4.3 DS18B20写命令子程序流程图 图4.4 DS18B20复位子程序流程图 图4.5 DS18B20读温度子程序流程图4.2.3 显示程序流程显示是实现人机对话的重要部分,在这里选用12864LCD显示屏,可实现对中文、字符和图片的显示, LCD的引脚功能在上面已经做了阐明,下面是其有关指令的简介。(1) 读取状态字D/IR/WDB7DB6DB5DB4DB3DB2DB1DB001BUSY0ONOFFRST0000当R/W=1,D/I=0时,在E信号为高的

39、作用下,状态分别输出到数据总线上。状态字是理解模块目前工作状态的唯一的信息渠道,在每次对模块操作之前,都要读出状态字,判断BUSY与否为“0”。若不为“0”,则单片机需要等待,直至BUSY =0为止。(2) 显示开关设立 D/IR/WDB7DB6DB5DB4DB3DB2DB1DB0000011111DD=1:开显示;D=0关显示。(3) 显示起始行设立D/IR/WDB7DB6DB5DB4DB3DB2DB1DB00011显示起始行(063)指令表中DB5DBO为显示起始行的地址,取值在03FH(164行)范畴内,它规定了显示屏上最顶一行所相应的显示存储器的行地址。(4) 页面地址设立 D/IR/

40、WDB7DB6DB5DB4DB3DB2DB1DB00010111Page(07)页面地址是DDRAM的行地址,8行为一页,DDRAM共64行即8页,DB2-DB0表达0-7页。(5) 列地址设立 D/IR/WDB7DB6DB5DB4DB3DB2DB1DB00001Y address(063)列地址是DDRAM的列地址。共64列,DB5-DB0取不同值得到0-3FH(1-64),代表某一页面上的某一单元地址,列地址计数器在每一次读写数据后它将自动加一。(6) 写显示数据 D/IR/WDB7DB6DB5DB4DB3DB2DB1DB010显 示 数 据该操作将8位数据写入先前已拟定的显示存储器的单元

41、内。操作完毕后列地址计数器自动加一。 (7) 读显示数据 D/IR/WDB7DB6DB5DB4DB3DB2DB1DB011显 示 数 据该操作将12864模块中的DDRAM存储器相应单位中的内容读出,然后列地址计数器自动加一。先使用软件对要显示中文进行取模,取出来存入程序中的数组中。中文是16*16的,使用LCD显示中文时,先调用写指令子程序设定中文的起始页地址和起始列地址,再调用写数据子程序写入中文的16列,然后页地址加1,重新设立起始列地址,调用写指令子程序设定起始页地址和起始列地址,再调用写数据子程序写入中文的底下的16列。根据上面指令结合字符、中文、图片显示原理,设计出显示子程序流程如

42、图4.6所示。 图4.6 显示子程序流程图4.2.4 键盘程序程序流程键盘中断程序是用来设在系统起动时各环境温度的上限值,其程序流程图如图4.7所示:图4.7键盘程序流程图4.3 程序设计4.3.1 主程序设计系统主程序如下所示:void main(void) uchar i; P2=0XF0; IT0=1; TMOD=0x01; TH0=0xff; TL0=0xff; ET0=1; PT0=1; EA=1; Init_lcd(); Clr_Scr(); Display_ini(); delay(1500); EX0=1;out: Clr_Scr(); display1(); delay(10

43、00); while(!flag2) KeyInput(); flag2=0; Clr_Scr(); while(1) if(flag4=1) flag4=0; goto out; Ds18b20_Init(); ds18b20_writecommand(0xcc); ds18b20_writecommand(0x44);delay(250);match_rom(ds18b20_num1); ds18b20_writecommand(0xbe); for(i=0;inum0) flag7=1;else if(zhen_temp0num1) flag7=1; else if(zhen_temp1

44、num2) flag7=1; else if(zhen_temp2num3) flag7=1;else flag7=0; goto next; flag5=0; next: display2(0); delay(1000); if(flag4=1) flag4=0; goto out; Ds18b20_Init(); ds18b20_writecommand(0xcc);ds18b20_writecommand(0x44);delay(250);match_rom(ds18b20_num2); ds18b20_writecommand(0xbe); for(i=0;inum4) flag7=1

45、;else if(zhen_temp0num1) flag7=1; else if(zhen_temp1num6)flag7=1; else if(zhen_temp2num7)flag7=1; else flag7=0; goto next1; next1: Clr_Scr(); display2(1); delay(1000); if(flag4=1) flag4=0; goto out; Ds18b20_Init(); ds18b20_writecommand(0xcc); ds18b20_writecommand(0x44); delay(250);match_rom(ds18b20_num3); ds18b20_writecommand(0xbe); for(i=0;inum8) flag7=1;else if(zhen_temp0num9) flag7=1;else if(zhen_temp1num10)flag7=1; else if(zhen_temp2num10) flag7=0; goto next2; else if(zhen_temp2=num10)

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