欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    基于单片机的智能温控仪毕业设计.doc

    • 资源ID:11283339       资源大小:567.50KB        全文页数:47页
    • 资源格式: DOC        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于单片机的智能温控仪毕业设计.doc

    基于AT89C52的智能温控仪设计基于AT89C52的智能温控仪设计一、设计任务及要求1 设计题目:基于AT89C52的智能温控仪设计 2 设计要求:(1)采用Pt1000温度传感器,测温范围0-100;(2)系统可设定温度值;(3)设定温度值与测量温度值可实时显示;(4)控温精度:0.5。3 设计任务(1)拟定电路。(2)编制软件流程图及给出系统软件主要部分的源程序二、设计背景简介 温度是科学技术中最基本的物理量之一,物理化学生物等学科都离不开温度。在工业生产和实验研究中,像电力、化工、石油、冶金、航空航天、机械制造、粮食存储、酒类生产等领域内温度往往是表征对象和过程状态的最重要的参数之一。本文介绍采用测温范围宽、精度高的铂热电阻进行温度系统的测量和控制。温度控制系统具有非线性、时滞以及不确定性。单纯依靠传统的控制方式或现代控制方式都很难以达到高质量的控制效果。而智能控制中的模糊控制通过从专家们积累的经验中总结的控制规则,对温度进行控制,可以有效地解决温度控制系统的非线性、时滞以及不确定性。本节采用模糊控制对温度进行控制。三、系统总体框图框图说明:本系统共用到两片AT89C52单片机,即单片机A和单片机B,其中A机用于现场温度采集和显示,B机用于控制。A、B机通过max232硬件连接串口实现全双工通信。A机采用中断方式将采集的温度值不停的发往B机,B机采用查询方式实时接受A机发送的温度数据并将处理后的数据送往液晶显示。B机通过按键输入温度设定值,并可将设定温度值通过按键选择发送模式发送到B机,经A机简单处理送数码管显示。A机将接收到的温度值与当前温度值比较,将比较值作为控制加热丝和风扇风 扇控制对象双向可控继电器控制输出LED显示单片机AA/D采集电路信号调理电路设定输入加热丝单片机B实时时钟液晶显示存储电路串口通信图1 系统总体框图以及PWM占空比的依据,A机通过两个四位一体的数码管现场显示当前温度和设定温度,因此可以在现场可以动态观察到当前温度变化和当前温度与设定温度之间的差值的大小。由于需要显示日期、时间、温度等众多信息B机采用液晶显示。B机的日期、时间等信息由实时时钟芯片DS12887提供,因为DS12887在断电情况下可长时间运行,且时间误差极小所以省去时间调整环节。B机的存储电路采用24C02存储芯片,每次存储包括日期、时间和A机发送来的温度值在内的共5个字节的信息,每隔一分钟存储一次信息,存储芯片写满以后地址指针指向头地址,覆盖掉最初的温度值,由于24C02最多包含256个字节,因此最多可以保留51次存储记录,即最多能记录50分钟内的温度值。所以在查询模式下最多可以查询50分钟以内的温度。四、电路设计1.电路设计整体思路在温度测量控制系统中,实际温度值由铂电阻恒流工作调理电路进行测量。为了克服铂电阻的非线性特点,在信号调理电路加入负反馈非线性校正网络;调理电路的输出电压经8 通道、多量程双极性输入、串行输出、逐次逼近型12 bit AD 转换器max1270转换后送入单片机AT89C52;对采样数据进行滤波及标度变换处理后。由高集成化的串行输入/输出的共阴极LED驱动显示器max7219连接两个四位一体数码管显示。输入的设定值则有4位的独立式键盘电路进行调整,可分别对设定值的十位和个位进行加一减一操作,送入单片机AT89c52后,有另一4位七段数码管显示。本系统的模糊控制由单片机AT89C52的程序来实现。首先有温度采样值与设定值之差求出温度误差,进一步求出误差变化率,经量化及限幅程序处理,得到误差语言变量E和误差变化率语言变量Ec,直接查询模糊控制表就可获的控制量U,然后有定时子程序处理,发出控制信号,控制加热片及风扇工作。加热片及风扇的控制电路采用晶体管驱动的直流电磁继电器的通断时间,从而达到控制温度的目的。若系统温度偏高,则控制风扇工作,进行降温;若温度未达到设定值,则输出温度控制信号,控制加热电路,进行加热。从而实现自动控制温度的目的。2基本硬件组成(1)铂电阻测温调理电路本系统采用恒流工作调理电路,铂电阻选用标称值为1000欧的PT1000作为温度传感器,其物理、化学性能在高温和氧化性介质中非常稳定,其灵敏度远高于PT100,在-259.34630.74温域内可作为温度标准。A1、A2和A3采用低温漂移运放OP07C,由于有电流流经铂电阻传感器,所以当温度为0时,载波电阻传感器上有压降,这个电压为铂电阻传感器的偏置电压,是运放A1输出电压的一部分,是恒流工作调理电路的输出实际不为零。所以需要对这个偏置电压调零,图中R1为调零电阻,其作用是当温度为零度时,将恒流工作调理电路的输出调为零。又因为铂电阻的电阻特性为非线性,铂电阻在0100度变化范围内的非线性误差为0.4(0.4),就有可能对A/D量化和数码管显示造成影响,所以加入了线性化电路,图中运放AR3、及R5、R6和R7一起构成了负反馈非线性化校正化网络,R3用于调整运放A2的增益。电路的调整方法如下(用精密可调电阻代替铂电阻进行调整): 将精密可调电阻调整到相当于0的阻值(1000欧),用R1调零。 将精密可调电阻调整到相当于50的阻值(1193.971欧),用R3调整增益。 将精密可调电阻调整到相当于100的阻值(1385.055欧),用R6或R7调整线性。 反复调整多次,在0100温度范围内适宜为止。图2 铂电阻恒流工作调理电路(2)A/D转换电路目前A/D 转换器的种类繁多,从数据输出形式上可分为串行输出与并行输出两大类。其中串行输出AD转换器因其硬件接口简单而得到广泛应用。另外,从可接受的输入信号极性上看,A/D 转换器又可分为单极性输入和双极性输入。在很多的数据采集场合常常面对极性可变的模拟信号。当然可将待转换信号进行电位移动以将其转化为单一极性,但如此便增加了电路的复杂性。串行输出、双极性输入A/D 转换器MAX1270不增加任何硬件电路可实现对双极性模拟信号A/D 转换。MAX1270 是8 通道、多量程双极性输入、串行输出、逐次逼近型12 bit AD 转换器。其封装形式有24 脚Narrow PDIP 和28 脚SSOP 两种。PDIP 封装的引脚排列如图4所示。各有用引脚功能如下:1VDD,+5V 电源输入端;2、4DGND,数字地;5SCLK,串行时钟输入端;6/CS,片选输入端,低电平有效;7DIN,串行数据输入,即AD 转换控制字输入端;8SSTRB,串行数据输出选通输出端;10DOUT,串行数据输出端;11/SHDN,掉电模式控制输入端,图3 MAX1270 引脚排列低电平有效;12AGND,模拟地;1320CH0CH7,模拟信号输入端;21REFADJ,参考电压输出/外部调节输入;23REF,参考电压缓冲输出/ADC 的参考输入。 MAX1270 的控制字MAX1270 的8 位控制字及其功能如表1 所示。最高位START 为起始位(高电平),标志控制字的开始。/CS 为低电平期间,控制字在时钟脉冲SCLK 作用下先高位后低位通过DIN 端输入。表1 控制字格式BIT7(MSB)BIT6BIT5BIT4BIT3BIT2BIT1BIT0(LSB)STARTSEL2SEL1SEL0RNGBIPPD1PD0 时钟模式与转换速率PD1PD0 为掉电/时钟模式选择位。PD1PD010、11 时为省电模式。正常工作时MAX1270有外部时钟与内部时钟两种工作模式。PD1PD001 时为外部时钟模式,串行数据的移入、移出以及数据采集、转换都由SLCK 端的输入脉冲控制。PD1PD000 时为内部时钟模式,数据转换时钟由芯片自己产生,减轻了微处理器的负担,使得转换后的数据可在微处理器方便的任何时刻读取,利于提高微处理器的工作效率。外部时钟模式分为25SCLK/s(每个数据转换需要25 个时钟周期)和18 SCLK/s 两种方式,后者转换速率稍快的原因是在全部数据转换期间/CS 始终维持有效电平。内部时钟模式也有20、16、13 SCLK/s 等不同转换方式。不同的时钟模式和转换方式,其转换速率不同。在外部时钟模式、SCLK 速率为2MHz、18SCLK/s 时MAX1270 转换速率可达110ksps。 通道选择与输入范围SEL2SEL0 为通道选择位,000111 分别选择输入通道CH0CH7。RNGBIP 为输入范围选择位,MAX1270 有4 种输入范围RNGBIP 置00 时 05V 单极性输入, 置01 时0+10V 单极性输入; 置10 时 -5+5V 双极性输入;置11 时-10+10V 双极性输入。传输函数与输出数据格式对单极性输入,1LSBFS/4096,输出数据为12 位二进制码。对双极性输入,1LSBFS/2048,输出数据为12 位二进制补码。参考电压MAX1270 可使用芯片内的4.096V 参考电压,也可使用外部参考。图是使用片外参考和片内参考时相关管脚的接法。图4 管脚连接图 (a) 使用片内参考电压 (b)、(c)使用片外参考电压图5 AD转换电路(3)7219显示电路 MAX721 9功能和设置简介MAX7219是串行输出共阴极显示性能非常卓越的驱动芯片。其接口采用流行的同步串行外设接口SPI,可与任何一种单片机方便接口,并可同时驱动8位LED,还具有级联功能可控制更多的LED。 MAX7219为24引脚芯片,除与LED显示相连的线外,与微控制器只需3根连线相接:芯片端管脚分别为CLK DINLOAD,其中CLK为时钟输入端,DIN为数据输入端,LOAD为锁存信号。其工作时序为:时钟的上升沿MAX7219把DIN引脚数据移入内部移位寄存器,在时钟下降沿MAX7219把数据移向DOUT端, 而LOAD的上升沿则锁存最后移入的16位串行数据。对MAX7219的控制操作很方便其内部具有158位RAM 功能控制寄存器,可方便寻址,对每位数字可单独控制、刷新,不需要重写整个显示器。显示亮度可数字控制。MAX7219的这些功能,使系统编程简单方便,同时节省IO 口。MAX7219的控制寄存器分别为:不工作方式寄存器、译码方式寄存器、亮度控制寄存器、扫描个数寄存器、关闭寄存器显示测试寄存器寄存器的操作格式为2字节的串行数据,第一个字节为寄存器地址,第二个字节为控制命令或待显示数据。寄存器的地址分配及功能如下所示: 不工作寄存器(0x00):用于MAX7219级联控制。 位寄存器(0x010x08):8位LED待显示内容。 译码方式寄存器(OxOg):决定译码方式,分B码和不译码两种。 亮度控制寄存器(0x0A):LED段电流控制 扫描个数寄存器(0x0B):决定显示多少个LED。 关闭寄存器(0xOC):决定正常工作方式或关闭LED显示。 显示测试寄存器(0x0D):决定正常工作方式或显示测试 引脚功能和功能框图: MAX1279 引脚排列如图7 所示图6 MAX7219引脚排列图引脚功能如下: DIN为串行数据输入端。当CLK为上升沿时,数据被载入16 b内部移 位寄存器。 CLK为串行时钟输入端。其最大工作频率可达10 MHz。 LOAD为片选端,当LOAD为低电平时,芯片接收来自DIN的数据,接收完毕,LOAD回到高电平时,接收的数据将被锁定。图7 DIN,CLK和LOAD的工作时序。 DIG0DIG7为吸收显示器共阴极电流的位驱动线。其最大值可达500 mA,关闭状态时,输出VCC。 SEGASEGG,DP为驱动显示器7段及小数点的输出电流,一般为40 mA左右,可软件调整,关闭状态时,接入GND。 DOUT为串行数据输出端,通常直接接入下一片MAX7219的DIN端。图8 MAX7219 的功能框图串行输入数据在时钟上升沿时移入内部的16 位移位寄存器, 在装载的上升沿时数据被锁存在每一位或寄存器中。装载信号必须在第16 个时钟上升沿发生时或之后达到高电平, 但要在下一个时钟的上升沿和数据丢失之前到达。串行输入数据通过移位寄存器传输, 在以后数据输出的16. 5 个时钟循环出现,数据在时钟的下降沿记录下来。数据各位记录为D0D15 (如表2 所列) , D8D11 为移位寄存器地址, D0D7 为数据, D12D15 是无关位。第一位接收到的位是最高位D15。D7 为数据最高有效位,D0 为数据最低有效位。D15D14D13D12D11D10D9D8D7 D0xxxx地址 数据 表2串行数据格式(16位) MAX7219 控制字表3 max7219寄存器地址控制字MAX7219 有14 个可寻址的控制字寄存器(如表3) , 控制字寄存器由芯片的8 8 双端口SRAM 识别,SRAM 直接寻址, 这样单一的位能被更改或保留, 条件是电源电压明显大于2V 。控制字寄存器包括译码模式、显示强度、扫描限制(被扫描位的个数) 、关闭模式、显示测试(点亮所有的L ED) 。另外还有一个空操作寄存器, 该寄存器允许数据从DIN 直送DOU T , 在设备串接情况下, 不会改变显示或影响任何控制寄存器。基于以上优点MAX7219 已用于血氧监护仪的脉搏强度柱状图显示及血氧、脉率的L ED 显示, 节省了许多锁存器、译码器及驱动器,大大提高了仪器显示器部分的集成程度。 在很多嵌入式系统设计中,都要用到LED显示驱动芯片,MAXIM 公司生产的MAX7219串行LED驱动显示器具有接口简单占用资源少、控制灵活方便、LED级联扩展便利的优点,从而成为很多开发人员的首选。图9 max7219驱动数码管显示电路(4 ) Max232远程通信电路AT89C52单片机内部的串行接口是全双工的,即它能同时发送和接收数据。发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入。串行口还有接收缓冲作用,即从接收寄存器中读出前一个已收到的字节之前就能开始接收第二字节。 两个串行口数据缓冲器(实际上是两个寄存器)通过特殊功能寄存器SBUF来访问。写入SBUF的数据储存在发送缓冲器,用于串行发送;从SBUF读出的数据来自接收缓冲器。两个缓冲器共用一个地址99H(特殊功能寄存器SBUF的地址)。 串行口控制寄存器 控制串行口的寄存器有两个特殊功能寄存器:即串行口控制寄存器SCON和电源控制器PCON。 PCON中的波特率选择位PCON是一个特殊功能寄存器(如下图所示),没有位寻址功能,字节地址为87H。其中D7位(SMOD)为波特率选择位。其他均无意义。复位时的SMOD值为0。可用MOV PCON,#80H或MOV 87H,#80H指令使该位置1。当SMOD=1时,在串行口方式1,2或3情况下,波特率提高一倍。2 串行口控制寄存器SCON特殊功能寄存器SCON用于定义串行口的操作方式和控制它的某些功能。其字节地址为98H。寄存器中各位内容如下:D7 D6 D5 D4 D3 D2 D1 D0SM0SM1SM2RENTB8RB8TIRI SM0,SM1 串行口操作方式选择位,两个选择位对应于四种状态,所以串行口能以四种方式工作,见表4。 SM2 允许方式2和3的多机通信使能位,在方式2或3中,若SM2置为1,且接收到的第9位数据(RB8)为0,则接收中断标志RI不会被激活,在方式1中,若SM2=1,则只有收到有效的停止位时才会激活RI。在方式0中,SM2必须置为0。 REN 允许串行接收位。由软件置位或清零,使允许接收或禁止接收。 TB8 是在方式2和3中要发送的第9位数据可按需要由软件置位或复位。 RB8 是方式2和3中已接收到的第9位数据。在方式1中,若SM2=0,RB8是接收到的停止位。在方式0中,不使用RB8位。 TI 发送中断标志。在方式0中当串行发送完第8位数据时由硬件置位;在其他方式中,在发送停止位的开始时由硬件置位。当TI=1时,申请中断,CPU响应中断后,发送下一帧数据。在任何方式中,该位都必须由软件清0。 RI 接收中断标志。在方式0中串行接收到第8位结束时由硬件置位。在其他方式中,在接收到停止位的中间时刻由硬件置位。RI=1时申请中断,要求CPU取走数据。但在方式1中,当SM2=1时,若未接收到有效的停止位,则不会对RI置位。在任何工作方式中,该位都必须由软件清0。在系统复位时,SCON中的所有位都被清0。 串行接口工作方式串行口的操作方式由SM0,SM1定义,编码和功能如表3所示,表4 串行口方式选择SM0 SM1方 式功 能 说 明波 特 率0 00移位寄存器方式 fosc/120 118位UART 可变1 029位UARTfosc/64或 fosc/321 139位UART 可变1 方式0 串行口的工作方式0为移位寄存器输入输出方式,可外接移位寄存器,以扩展I/O口,也可外接同步输入输出设备。方式0主要用于使用CMOS或TTL移位寄存器进行I/O扩展的场合。2 方式1 串行口工作于方式1时,被控制为波特率可变的8位异步通信接口。传送一帧信息为10位,即1位起始位(0),8位数据位(低位在先)和1位停止位(1)。数据位由TXD发送,由RXD接收。波特率是可变的,取决于定时器1或2的溢出速率。 方式2和方式3 串行工作于方式2和方式3时,被自定义为9位的异步通信接口,发送(通过TXD)和接收(通过RXD)一帧信息都是11位,1位起始位(0),8位数据位(低位在先,)1位可编程位(即第9位数据)和1位停止位(1)。方式2和方式3的工作原理相似,唯一的差别是方式2的波特率是固定的。为fosc/32或fosc/64;方式3的波特率是可变的,利用定时器1或定时器2作波特率发生器。 波特率 串行口每秒钟发送(或接收)的位数称为波特率。假设发送一位数据所需要的时间为T,则波特率为。 串行口以方式0工作时,波特率固定为振荡器频率的1/12。为方式2时波特率为振荡器频率的1/64或1/32,它取决于特殊功能寄存器PCON中的SMOD位的状态。如果SMOD=0(复位时SMOD=0)。波特率为振荡器频率的1/64,如果SMOD=1,波特率为振荡器频率的1/32。方式1和3的波特率由定时器1的溢出率所决定。当定时器1作波特率发生器时,波特率由下式确定: 波特率=(定时器1溢出率)/n式中:定时器1=溢出率+定时1的溢出次数/秒,n为32或16,取决于特殊功能寄存器PCON中的SMOD位的状态。若SMOD=0,则n=32。若SMOD=1,则n=16。 对于定时器的不同工作方式,得到的波特率的范围是不一样的,这主要由定时器1的计数位数不同所决定。对于非常低的波特率,应选择16位定时器方式(即TMOD.5=0,TMOD.4=1),并且在定时器1中断程序中实现时间常数重新装入。在这种情况下,应该允许定时器1中断 (IE.3=1)。图10 max232远程通信电路(5) Ds12887实时时钟电路DS12887是一款集成了DS12R885裸片、32.768KHz石英晶体和一个可充电电池的时钟器件。器件内部含有14字节的实时时钟/日历、闹钟、控制/状态寄存器以及114字节的非易失、电池备份的的静态RAM。少于31天的月份,月末日期可自动调整,其中包括闰年补偿,该器件提供一个定时闹钟、三个可屏蔽中断和一个通用中断输出,以及可编程方波输出,DS12887可以工作于24小时或带AM/PM指示的12小时格式。一个精密的温度补偿电路用来监视VCC的状态,如果检测到主电源故障,该器件可以自动切换到备用电源供电。备用电源支持可充电电池或超级电容,器件内部包含一个集成的涓流充电器,涓流充电器始终有效,可通过多路复用的地址/数据总线访问ds12887,总线支持Intel和Motorola模式。DS12887可作为IBM AT 计算机的时钟和日历与MC146818和DS1287的管脚兼容在没有外部电源的情况下可工作10年,可以计算到2100年前的秒、分、小时、星期、日期、月、年七种日历信息并带闰年补偿,可以编程选择用二进制码或BCD码代表日历和闹钟信息,可以切换到夏令时。 图 11 实时时钟电路(6)24c02存储与读取电路 24C02功能概述24C02是一个2K 位串行CMOS E2PROM 内部含有256 个字节的存储空间。采用I2C总线接口可与400KHz I2C 总线兼容,工作电压范围为1.8 到6.0 V,采用低功耗CMOS 技术功耗很低。设有一个专门的写保护功能:当WP为高电平时进入写保护状态。可自定时擦写周期,具有1,000,000 编程/擦除周期,数据可保存100 年。 功能描述24WC02支持I2C 总线数据传送协议I2C总线协议规定:任何将数据传送到总线的器件作为发送器,任何从总线接收数据的器件作为接收器件。数据传送是由产生串行时钟和所有起始停止信号的主器件控制的,主器件和从器件都可以作为发送器或接收器但由主器件控制传送数据发送或接收的模式通过器件地址输入端A0 A1 和A2 可以实现将最多8 个24WC01 和24WC02 器件4 个242C04 器件,2 个24WC08 器件和1 个24WC16 器件连接到总线上。 管脚描述 SCL 串行时钟CAT24WC02串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,是一个输入管脚。 SDA 串行数据/地址CAT24WC02双向串行数据/地址管脚,用于器件所有数据的发送或接收。SDA是一个开漏输出管脚可与其它开漏输出或集电极开路输出进行线与。 A0 A1 A2 器件地址输入端这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0(24WC01 除外)当使用24WC02 时最大可级联8个器件如果只有一个24WC02 被总线寻址这三个地址输入脚A0 A1 A2 可悬空或连接到Vss; 如果只有一个24WC01 被总线寻址这三个地址输入脚A0 A1 A2 必须连接到Vss;当使用24WC04 时最多可连接4 个器件该器件仅使用A1 A2地址管脚A0管脚未用,可以连接到Vss 或悬空如果只有一个24WC04 被总线寻址A1和A2地址管脚可悬空或连接到Vss;当使用24WC08 时最多可连接2 个器件且仅使用地址管脚A2 A0 A1 管脚未用,可以连接到Vss 或悬空;如果只有一个24WC08 被总线寻址A2 管脚可悬空或连接到Vss;当使用24WC16 时最多只可连接1个器件所有地址管脚A0 A1 A2 都未用管脚可以连接到Vss 或悬空。 WP 写保护如果WP管脚连接到Vcc所有的内容都被写保护只能读,当WP管脚连接到Vss 或悬空允许器件进行正常的读/写操作。 I2C 总线协议I2C 总线协议定义如下 只有在总线空闲时才允许启动数据传送 在数据传送过程中当时钟线为高电平时数据线必须保持稳定状态不允许有跳变时钟线为高电平时数据线的任何电平变化将被看作总线的起始或停止信号起始信号时钟线保持高电平期间数据线电平从高到低的跳变作为I2C 总线的起始信号停止信号时钟线保持高电平期间数据线电平从低到高的跳变作为I2C 总线的停止信号图12 总线时序图13 写周期时序图14 起始/停止时序器件寻址主器件通过发送一个起始信号启动发送过程,然后发送它所要寻址的从器件的地址,8位从器件地址的高4 位固定为1010,接下来的3 位A2 A1 A0为器件的地址位用来定义哪个器件以及器件的哪个部分被主器件访问。上述8 个CAT24WC01/02 4 个CAT24WC04 2 CAT24WC081 个CAT24WC16 可单独被系统寻址,从器件8 位地址的最低位作为读写控制位,1表示对从器件进行读操作,0表示对从器件进行写操作。在主器件发送起始信号和从器件地址字节后,CAT24WC02监视总线并当其地址与发送的从地址相符时响应一个应答信号,通过SDA24WC02 再根据读写控制位R/W 的状态进行读或写操作应答信号I2C总线数据传送时每成功地传送一个字节数据后接收器都必须产生一个应答信号,应答的器件在第9 个时钟周期时将SDA 线拉低表示其已收到一个8 位数据。CAT24WC01/02/04/08/16 在接收到起始信号和从器件地址之后响应一个应答信号,如果器件已选择了写操作则在每接收一个8位字节之后响应一个应答信号。当CAT24WC01/02/04/08/16 工作于读模式时,在发送一个8 位数据后释放SDA线并监视一个应答信号,一旦接收到应答信号CAT24WC01/02/04/08/16 继续发送数据,如主器件没有发送应答信号器件停止传送数据且等待一个停止信号。图15 应答时序图16 从器件地址位 写操作 字节写在字节写模式下,主器件发送起始信号和从器件地址信息R/W 位置0 给从器件,在从器件送回应答信号后,主器件发送两个8 位地址字写入CAT24WC32/64 的地址指针,主器件在收到从器件的应答信号后,再发送数据到被寻址的存储单元。CAT24WC32/64 再次应答,并在主器件产生停止信号后开始内部数据的擦写,在内部擦写过程中, 24WC32/64不再应答主器件的任何请求。 页写在页写模式下,单个写周期内CAT24WC32/64 最多可以写入32 个字节数据。页写操作的启动和字节写一样,不同在于传送了一字节数据后,主器件允许继续发送31 个字节。每发送一个字节后,CAT24WC32/64 将响应一个应答位,且内部低5 位地址加1,高位地址保持不变。如果主器件在发送停止信号之前发送大于32 个字节,地址计数器将自动翻转,先前写入的数据被覆盖。当所有32 字节接收完毕,主器件发送停止信号,内部编程周期开始。此时所有接收到的数据在单个写周期内写入CAT24WC32/64。 读操作CAT24WC32/64 读操作的初始化方式和写操作时一样,仅把R/W 位置为1。有三种不同的读操作方式:立即/当前地址读选择/随机读和连续读。 立即/当前地址读CAT24WC32/64 的地址计数器内容为最后操作字节的地址加1。也就是说,如果上次读/写的操作地址为N,则立即读的地址从地址N+1开始,如果N=E (这里对24WC32 ,E=4095 ,对24WC64, E=8191)则计数器将翻转到0 且继续输出数据。CAT24WC32/64 接收到从器件地址信号后(R/W 位置1),它首先发送一个应答信号,然后发送一个8 位字节数据。主器件不需发送一个应答信号但要产生一个停止信号。 选择/随机读选择/随机读操作允许主器件对寄存器的任意字节进行读操,作主器件首先通过发送起始信号、从器件地址和它想读取的字节数据的地址执行一个伪写操作。在CAT24WC32/64 应答之后,主器件重新发送起始信号和从器件地址,此时R/W 位置“1”, CAT24WC32/64 响应并发送应答信号,然后输出所要求的一个8 位字节数据,主器件不发送应答信号但产生一个停止信号。 连续读连续读操作可通过立即读或选择性读操作方式启动。在CAT24WC32/64 发送完一个8 位字节数据后,主器件产生一个应答信号来响应,告知CAT24WC32/64 主器件要求更多的数据,对应每个主机产生的应答信号CAT24WC32/64 将发送一个8 位数据字节。当主器件不发送应答信号而发送停止位时结束此操作。从CAT24WC32/64 输出的数据按顺序由N 到N+1 输出。读操作时地址计数器在CAT24WC32/64 整个地址内增加,这样整个寄存器区域在可在一个读操作内全部读出。当读取的字节超过E (对于24WC32,E=4095; 对24WC64, E=8191) 计数器将翻转到零并继续输出数据字节。图17 24C02存储电路(7)键盘与显示电路图18 键盘与液晶显示电路在本系统中,采用独立式键盘。本键盘完成的功能为输入控制系统的设定值,以便与系统的采样值比较,求出系统的误差与误差变化率供以后的模糊控制子程序使用。为了完成预定值设置,系统中设置了4个按键,分别为图中S1、S2、S3和S3,依次代表设定温度功能键、加1键、减1键和查看存储功能键。功能键以它按下的次数来区分它的多种功能。当温度功能键第一次被按下时,液晶显示当前温度值和日期,此时按加1、减1键无响应,再按下功能键则进入温度设定模式,液晶显示当前时间和设定默认值,按加1减1键使该值每次加减0.5,设定完参数后,再按一次功能键系统将进入设定值发送状态,当液晶上显示“OK”表示设定温度已经成功发送到子机。再按一下温度设定功能键回复原来状态。当查看存储功能键按下一次时,液晶显示系统最后记录的温度,和该温度对应的日期和时间。所用的四个键全部选用按钮开关。在编写软件处理子程序时主要注重以下3个问题: 如何减少开关的使用次数以提高开关的使用寿命。 如何更快捷更方便的给出设定值。 如何更有利于总程序的总体调度。为此,采用4各按键来搭建电路,第一个按键用于查看日期、进入设定温度模式和发送设定温度到从机。第四个按键用于查看存储的温度值以及该温度值所对应的时间和日期。在设定温度模式下,按键二和按键三分别用于对设定值的加减操作;在查看已存储温度模式下,按键二和按键三分别用于向前查看和向后查看。(8)系统电源设计 图19 系统电源五、系统总体电路图图20 系统总体电路图附件1:A机源程序#include<reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned int#define delay1us _nop_(); /精确延时1微秒#define delay2us delay1us;delay1us; /精确延时2微秒#define delay4us delay2us;delay2us; /

    注意事项

    本文(基于单片机的智能温控仪毕业设计.doc)为本站会员(scccc)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开