《毕业设计(论文)基于AT89S52单片机温度控制器的设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于AT89S52单片机温度控制器的设计.doc(54页珍藏版)》请在三一办公上搜索。
1、南通纺织职业技术学院毕业设计(论文)基于AT89S52温度控制器的设计班 级: 09电子信息工程 专 业: 电子信息工程技术(智能电子) 教 学 系: 指导老师: 完成时间 2011年 10 月 20 日至 2011年 11 月 30 日摘 要 在某些工业生产过程中,如恒温炉、仓库储藏、花卉种植、小型温室等领域都对温度有着严格的要求,需要对其加以检测和控制。传统的温度测量方法是将温度传感器输出的模拟信号放大后送至远端A/D转换器,最后单片机对A/D转换后的数据进行分析处理。这种方法的缺点是模拟信号在传输的过程中存在损耗并且容易受到外界的干扰,导致测量的温度精度不高。 采用数字温度传感器DS18
2、B20,因其内部集成了A/D转换器,使得电路结构更加简单,而且减少了温度测量转换时的精度损失,使得测量温度更加精确。数字温度传感器DS18B20只用一个引脚即可与单片机进行通信,大大减少了接线的麻烦,使得单片机更加具有扩展性。采用单片机控制不仅具有控制方便,简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大的提高产品的质量和数量。 关键词: AT89S52、DS18B20、EEPROM、键盘 目 录摘要I1绪论1 1.1 课题的背景及意义1 1.2 相关技术的发展概况1 1.3 温度控制器设计方案2 1.3.1功能实现2 1.3.2方案设计32 硬件电路设计4 2.1 最
3、小化电路设计4 2.1.1 主控芯片简介4 2.1.2 最小化电路6 2.2 温度采集电路设计7 2.2.1温度采集芯片简介8 2.2.2 工作原理9 2.2.3 温度采集电路11 2.3 存储电路设计12 2.3.1 存储芯片简介12 2.3.2 工作原理14 2.3.3 存储电路16 2.4显示电路设计16 2.4.1 显示方案确定16 2.4.2 驱动芯片简介18 2.4.3 显示电路203 系统软件设计22 3.1 主程序流程22 3.2 子程序流程22 3.2.1 中断流程22 3.2.2 键盘扫描流程22 3.2.3 温度检测与报警流程22 3.2.4 DS18B20温度采集流程2
4、3 3.2.5 CAT24C02 读写模块流程234 系统仿真27 4.1 仿真软件简介27 4.2 仿真过程27 4.3 仿真结果285 系统制作与调试31 5.1 系统制作31 5.2 系统调试316系统设计总结33参考文献34附录一 系统原理图35附录二 程序36n 1绪论1.1 课题的背景及意义温度控制系统在国内各行各业的应用虽然己经十分广泛,但从国内生产的温度控制器来讲,总体发展水平仍然不高,同日本、美国、德国等先进国家相比,仍然有着较大的差距。成熟的温控产品主要以“点位”控制及常规的PID控制器为主,它们只能适应一般温度系统控制,而用于较高控制场合的智能化、自适应控制仪表,国内技术
5、还不十分成熟,形成商品化并广泛应用的控制仪表较少随着我国经济的发展及加入WTO,我国政府及企业对此都非常重视,对相关企业资源进行了重组,相继建立了一些国家,企业的研发中心,开展创新性研究,使我国仪表工业得到了迅速的发展。目前,温度控制器产品从模拟、集成温度控制器发展到智能数码温度控制器。智能温控器(数字温控器)是微电子技术、计算机技术和自动测试技术的结合,特点是能输出温度数据及相关的温度控制量,适配各种控制器,并且它是在硬件的基础上通过软件来实现控制功能的,其智能化程度也取决于软件的开发水平,现阶段正朝着高精度高质量的方向发展,相信以我国的实力,温控技术在不久的将来一定会为于世界前列!1.2
6、相关技术的发展概况(1)近年来国内温度控制系统的发展l 温度控制器广泛应用于家用电器,主要为冰箱、冷柜、空调、饮水机、微波炉等制冷制热产品配置。l 在工业园购地或新建厂房,增添设备,可年产温度控制器500万只。目前国内市场价每只温度控制器11元,出口价每只2美元。年产500万只温度控制器,年产值可达6000万元,年利润可达1500万元,投资回收期3.5年 左右。l 目前国内温度控制器生产企业较少,仅广东、江苏、辽宁、江西各有一家规模稍大一点的生产厂家,他们的生产能力远远不能满足电子温度控制器 市场的需求。l 温度控制器不仅在国内市场销售顺畅,而且在国际市场也十分看好,特别是日本、意大利、美国等
7、国家对温度控制器产品的需求量很大,出口前景十分乐观。l 由于沿海发达地区产业的梯度转移,科龙集团已在南昌新建分厂,上海华意集团也与江西签订了投资意向,江西境内的昌河集团微型汽车规模日益壮大,汽车、空调用温度控制器需求量也必将增大。(2) 近年来国外温度调节系统的发展 因为温度控制器环节已经被纳入为分布式控制系统(DCS),个人电脑(PC)和可编程逻辑控制器(PLC)。工业电子温度控制器全球市场的增长率在2003年为3.6%,2004年为3.5%,2005年为2.5 % 。预计2006年全球市场的增长率仅为1.2% ,而预测2010年的综合年度增长率(CAGR)仅为0.7% 。欧洲和北美工业电子
8、温度控制器市场受到这一趋势的影响最大。这两个较大地区的市场预计将在2010年出现负增长。然而,亚太市场,较小的拉丁美洲和其他地区的市场预计仍将保持增长。 中国作为一个主要的制造中心和工业电子温度控制器市场的崛起是这一增长的驱动因素。OEM厂商以及众多的终端工业厂商已经开始转移到中国大陆,以获得低成本的劳动力和原料优势。日本经济的复苏同样推动该地区走出了停滞发展时期。OEM厂家和主要终端工业公司将制造业务向中国的转移,以及温度控制器价格的下降,是欧洲和北美工业电子温度控制器市场预测下降的主要原因。此外,许多位于欧洲和北美的工业电子温度控制器供应商已经表明一旦准备充分,他们将很快在中国展开他们的制
9、造工业电子温度控制器业务。通过在中国生产电子温度控制器,供应商不但可以获得更便宜的劳动力和原料的竞争优势,而且他们这样更接近主要的发展市场。1.3 温度控制器设计方案 本设计利用单片机结合传感器技术而开发设计了这一温度控制系统,文中传感器与单片机实际应用有机结合,简单讲述了利用新型芯片探测环境温度的过程,以及实现模数转换的原理过程。1.3.1功能实现 本设计的目的是以单片机为核心设计出一个温度采集系统。通过本课题设计,综合运用单片机及接口技术、微机原理、微电子技术,锻炼动手操作能力,综合运用能力,学习论文的写作方法和步骤。设计的温度控制器有以下功能:l 测温范围:-55+125;l 测温分辨力
10、:=0.5;l 测温准确度:=0.5;l 温度显示:采用6个7段数码管;l 温限可经键盘实现简单的人机互动,灵活设定温度范围;l 超温度范围报警。1.3.2方案设计 本系统采用了单片机AT89S52,利用数字温度传感器DS18B20对环境进行测温,同时采用MAX7219驱动六位7段共阴极数码管,同时还采用EEPROM对温度上下限进行存储,此外还有键盘设备来实现温度上下限值的设置,红绿灯报警温度的越线,继电器和电机对温度进行调整等来实现该温度控制器的智能化。总体硬件结构框图如图1.1所示。AT89S52EEPROM按键继电器电机驱动LED显示报警电路温度传感器DS18B20MAX7219图 1.
11、1 系统硬件结构n 2 硬件电路设计2.1 最小化电路设计主控芯片要能正常工作,首先要提供电源,除其次要有晶振电路提供时钟脉冲信号,除此之外还要有复位电路使单片机或系统其它部件处于某种确定的初始状态,最后还要是单片机有程序。2.1.1 主控芯片简介AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash 存储器。AT89S52使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统 可编程,亦适于常规编程器。在单芯片上,AT89S52拥有灵巧的8 位CPU和在系统可编程Flash,使AT89S52为
12、众多嵌入式控制应用系统提供高灵活、超有效的解决方案。采用40引脚双列直插封装(DIP)的AT89S52单片机引脚分配如图2.1所示。(1) 主要性能参数l 与MCS51兼容 ;l 1000次擦写寿命;l 工作电压为4.0V5.5V;l 全静态工作:024MHz;l 3级程序安全加密保护;l 2568位内部RAM;l 32个可编程I/O端口;l 3个16位定时器/计数器;l 8个中断源;l 支持低功耗及掉电模式;l 支持中断从掉电模式唤醒;l 内置看门狗 。 图2.1 AT89S52引脚分配图 (2)引脚功能 P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电
13、平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8 位双向I/O 口,p1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(TTL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数和定时器/计数器2的触发输入。P2口:P2 口是
14、一个具有内部上拉电阻的8位双向I/O 口,P2输出缓冲器能驱动4个TTL 逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(TTL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX A,DPTR)时,P2口送出高八位地址。P3口:P3口是一个具有内部上拉电阻的8位双向I/O 口,P3输出缓冲器能驱动4个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(TTL)。RST:复位输
15、入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。 ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下, ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序
16、存储器取指令(或数据)时,每个机器周期两次PSEN有效, 即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP:外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。2.1.2 最小化电路 单片机工作需要3个基本条件:接电源、接石英晶体振荡器和复位电路、单片机内装入程序,如
17、图2.2所示。图2.2 单片机的基本电路(1)接电源将单片机第40脚Vcc接电源+5V,第20脚Vss接地(电源负极),为单片机工作提供电源。由于AT89S52片内带有程序存储器,当使用片内程序存储器时要将EA(31脚)接高电平,即接到电源+5V。(2)接石英晶体振荡器将单片机第19脚(XTAL1)与18脚(XTAL2)分别接外部晶体的两个引脚,由石英晶体组成振荡器,保证单片机内部各部分有序工作。晶振电路如图2.3所示。 图2.3 晶振电路 单片机运行程序的速度与振荡器的频率有关。单片机在读、写操作时都需要消耗一定的时间。机器周期是指单片机完成一个基本操作所用的时间,当外接石英晶体为12MHz
18、时,1个机器周期为1ms;当外接石英晶体为6MHz时,1个机器周期为1ms。(3)复位电路在实际应用中,复位电路有两种基本形式:一种是上电复位,另一种是上电与按键均有效的复位。上电复位要求接通电源后,单片机自动实现复位操作。常用的上电复位电路如图2.4(a)所示。上电瞬间RST引脚获得高电平,随着电容C1的充电,RST引脚的高电平将逐渐下降。RST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。该电路典型的电阻和电容参数为:晶振为12MHz时,C1为10uF,R1为8.2K;晶振为6MHz时,电容C1为22uF,R1为1K。上电与按键均有效的复位电路如图2.4(b)
19、所示。上电与按键均有效的复位电路原理与上电复位原理相同,不同的是上电与按键均有效的复位电路在单片机运行期间,能用按键来控制复位操作晶振为6MHz时,电容C1为22uF,R2为200。 图2.4(a) 上电复位电路 图2.4(b) 按键与上电复位本设计中使用后者电路复位,就是可以在单片机运行期间可以人工的复位。这样是比较方便。2.2 温度采集电路设计跟以往的采用A/D转换器进行温度测量不同的是,本系统采用的是一线协议器件DS18B20进行温度测量,测量的方法不同,温度采集不同。2.2.1温度采集芯片简介 DS1820数字温度计提供9位温度读数,指示器件的温度。信息经过单线接口送入DS1820或从
20、DS1820送出,因此从中央处理器到DS1820仅需连接一条线(和地)。读、写和完成温度变换所需的电源可以由数据线本身提供,而不需要外部电源。因为每一个DS1820有唯一的系列号,因此多个DS1820可以存在于同一条单线总线上。这允许在许多不同的地方放置温度灵敏器件。此特性的应用范围包括HVAC环境控制,建筑物、设备或机械内的温度检测,以及过程监视和控制中的温度检测。(1) DS18B20特性l 独特的单线接口仅需一个端口引脚进行通讯;l 无需外部器件;l 零待机功耗;l 测温范围-55+1250,以0. 5递增。华氏温度范围-67至257, 以0.9递增;l 温度以9位数字量读出;l 温度数
21、字量转换时间200ms(典型值);l 用户可定义的非易失性温度报警设置;l 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;l 应用包括温度控制、工业系统、消费品、温度计或任何热感测系统;(2) DS18B20引脚结构及说明DS18B20引脚结构如图2.5所示BOTTOM VIEW GND DQ VDD图2.5 引脚结构引脚说明: GND:接地。 DQ :数据输入/输出脚。 VDD:外接供电电源输入端(在寄生电源接线方式时接地)。 DS1820通过一个单线接口发送或接收信息,因此在中央微处理器和DS1820之间仅需一条连接线(加上地线)。用于读写和温度转换的电源可以从数据线本身获
22、得,无需外部电源。因为每个DS1820都有一个独特的片序列号,所以多只DS1820可以同时连在一根单线总线上,这样就可以把温度传感器放在许多不同的地方。这一特性在HVAC环境控制、探测建筑物、仪器或机器的温度以及过程监测和控制等方面非常有用。2.2.2 工作原理(1) 测温原理测温原理如图2.6所示。图2.6 测温原理(2) DSl820工作过程及时序初始化: 初始化RoM操作命令存储器操作命令处理数据单总线上的所有处理均从初始化开始。总线主机检测到DSl820的存在便可以发出ROM操作命令之一这些命令如下:ROM操作品令指令名称代码功能读ROM33H在口线上接一个器件时读其ROM码匹配ROM
23、55H找出某个指定ROM码的器件跳过ROMCCH对口线上所有器件的操作搜索ROMF0H口线上有多个器件时,找出每个器件ROM码告警搜索ECH找出各器件是否超限存储器操作命令指令名称代码功能写暂存存储器4EH主机向存储器中TH、TL和配置寄存器写数据读暂存存储器BEH主机连续读08存储器中内容复制暂存存储器48H复制TH、TL和配置寄存器内容到EEPROM中温度变换44H启动温度转换重新调出B8H从EEPROM中调出TH、TL和配置寄存器数据到存储器中读电源B4H器件向主机发送它的供电方式时序主机使用时间隙来读写DSl820的数据位和写命令字的位。u 初始化 初始化时序见图2.7主机总线to时刻
24、发送一复位脉冲(最短为480us的低电平信号)接着在tl时刻释放总线并进入接收状态DSl820在检测到总线的上升沿之后等待15-60us接着DS1820在t2时刻发出存在脉冲(低电平持续60-240 us)如图中虚线所示 图2.7 初始化时序图u 写时间隙 当主机总线t o时刻从高拉至低电平时就产生写时间隙见图2.5-1图2.5-2从to时刻开始15us之内应将所需写的位送到总线上DSl820在t0后15-60us间对总线采样若低电平写入的位是0见图2.8-1,若高电平写入的位是1,见图2.8-2,连续写2位间的间隙应大于1us。 图2.8-1 写0时序 图2.8-2 写1时序 u 读时间隙
25、见图2.9主机总线t0时刻从高拉至低电平时总线只须保持低电平l7us之后在t1时刻将总线拉高产生读时间隙,读时间隙在t1时刻后t2时刻前有效t2距t0为15us也就是说t2时刻前主机必须完成读位并在t0后的60us-120us内释放总线。读位子程序(读得的位到C中)图2.9 读时序2.2.3 温度采集电路DS18B20工作可采用两种供电方式,外接供电电源供电和寄生电源供电。当DS18B20处于写存储器操作和温度A /D变换操作时,总线上必须有强上拉。 (1)采用寄生电源供电 采用寄生电源供电,如图2.10所示。P2.0口接单线总线,为保证在有效DS18B20时钟周期内提供足够的电流,可用一个M
26、OSFET管和AT89S52的p2.0来完成对总线的上拉。采用寄生电源供电方式 图2.10 寄生电源供电时VDD和CND端 均接地。由于单线制只有一根线,因此发送接收口必须是二态的。(2)采用外部电源供电的方式采用寄生电源供电,外部电源部连接到VDD,引脚如图2.8所示。 图2.11 外部电源供电2.3 存储电路设计系统通过AT24C02存储温度信息,AT24C02内部存储地址0x00和0x01分别存储温度上下限数据信息;温度上下限数据可通过外部按键进行修改,并通过数码管实时显示。数据存储格式如表2-1所示。表2-1 数据存储格式地址0x000x010x020x030xFF数据温度上限温度下限
27、2.3.1 存储芯片简介CAT24WC02是一个2K位串行CMOS EPROM内部含有256个8位字节CATALYST公司的先进CMOS技术实质上减少了器件的功耗,CAT24WC02有一个16字节页写缓冲器该器件通过C总线接口进行操作有一个专门的写保护功能。(1)特性l 与400KHz IC总线兼容;l 1.8到6.0伏工作电压范围;l 写保护功能当WP为高电平时进入写保护状态;l 页写缓冲器;l 自定时擦写周期;l 1,000,000编程/擦除周期;l 可保存数据100年。(2) 极限参数l 工作温度工业级 -55+125;l 贮存温度-65+150;l 各管脚承受电压-2.0V+2.0V;
28、l Vcc管脚承受电压-2.0V+7.0V;l 焊接温度(10秒)300;l 输出短路电流100mA。(3) AT24C02管脚结构AT24C02管脚结构如图2.12所示。图 2.12 管脚结构管脚描述:SCL:串行时钟 CAT24WC02串行时钟输入管脚用于产生器件所有数据发送或接收的时钟这是一个输入管脚。SDA:串行数据/地址 CAT24WC01/02/04/08/16双向串行数据/地址管脚用于器件所有数据的发送或接收SDA是一个开漏输出管脚可与其它开漏输出或集电极开路输出进行线或wire-OR。A0、A1、A2:器件地址输入端 这些输入脚用于多个器件级联时设置器件地址当这些脚悬空时默认值
29、为0。使用24WC02时最大可级联8个器件,如果只有一个24WC02被总线寻址这三个地址输入脚A0、A1、A2可悬空或连接到Vss。WP:写保护如果WP管脚连接到Vcc所有的内容都被写保护只能读当WP管脚连接到Vss或悬空允许器件进行正常的读/写操作。Vcc:+1.8V6.0V工作电压。Vss:接地。2.3.2 工作原理只有在总线非忙时才被允许进行数据传送。在数据传送时,当时钟线为高电平,数据线必须为固定状态,不允许有跳变。时钟线为高电平时,数据线的任何电平变化将被当作总线的启动或停止条件。启始条件: 起始条件必须在所有操作命令之前发送。时钟线保持高电平期问,数据线电平从高到低的跳变作为IC总
30、线的启动信号。CAT24C02一直监视SDA和SCL电平信号直到条件满足时才响应。停止条件: 时钟线保持高平期问,数据线电平从低到高的跳变作为IC总线的停止信号。操作结束时必须发送停止条件。器件地址的约定: 主器件在发送启动命令后开始传送,主器件发送相应的从器件的地址(见表2-2),8位从器件地址的高4位固定为1010。接下来的3位无意义。最后一位为读写控制位。1”表示对从器件进行读操作,0”表示对从器件进行写操作。在主器件发送启动命令和发送一字节从器件地址后,如果从器件地址相吻合,CAT24C02发送一个应答信号(通过SDA线)。然后CAT24C02再根据读/写控制位进行读或写操作。 表2-
31、2 从器件寻址1010A2A1A0R/时序图CAT24C02工作时序包括起始/停止时序、应答时序、写时序和读时序。起始/停止时序图 应答时序图 写时序图 读时序图2.3.3 存储电路A0、A1、A2接地,SDA、SCL与单片机I/O口连接,通过程序软件模拟I C时序,WP引脚接地,如图2.13所示。 2.13 硬件连接图2.4显示电路设计本系统显示电路用来显示温度上下限的值和通过DS18B20采集进来的实时温度值。2.4.1 显示器简介数码管具有:低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境要求低,易一于维护,同时其精度高,测量快,精确可靠,操作简单。数码显
32、示是采用BCD编码显示数字,程序编译容易,资源占用较少。(1) 7段LED数码LED是近似于恒压的元器件,到导电时(发光)的正向压降一般约为1.6V或2.4V,反向击穿电压一般5V。工作电流通常在10-20mA,故电路中需要串联适当的限流电阻。发光强度基本上与正向电流成正比。发光效率和颜色取决于制造的材料,一般常用红色,偶尔也用于黄色或绿色。(2) 发光二级管显示驱动(点亮)的方法l 静态驱动方法:即给欲点亮的LED通过恒定的定流。这种驱动方法需要显示的位数增加时,所需的逻辑部件及连线也相应增加,成本也增加。l 动态驱动方法:是给欲点亮的LED通过脉冲电流,此时LED的脉冲电流倍数于其额定电流
33、值。利用动态驱动方法可以减少需要的逻辑部件和连线。最常用的一种数码显示器是由7段条形的LED组成,如图2.14所示。点亮适当的字段,就可以出不同的数字。此外不少于7段数码管显示器在右下角带有一个圆形的LED作小数点用,这样一共有8段,恰好适用于8位的并行系统。 图2.14(a)为共阴极接法,公共阴极接地。当各段阳极上的电平为“1”时,该段点亮;电平为“0”时,段就熄灭。图2.14(b)为共阳极接法+5V电源。当各段阴极上的电平为“0”时,该段就点亮;电平为“1”时,段就熄灭。图中的电阻是限流电阻。 图2.14(a)共阴极接法 图2.14(b)共阳极接法2.4.2 驱动芯片简介MAX7219是M
34、AXMI公司生产的一种串行接口方式7段共阴极LED显示驱动器。其片内包含有一个BCD码到B码的译码器、多路复用扫描电路、字段和字位驱动器,以及存储每个数字的8X8RAM。每位数字都可以被寻址和更新,允许对每一位数字选择B码译码或不译码。采用三线串行方式与单片机接口。电路十分简单,只需要一个10K左右的外接电阻来设置所有LED的段电流。MAX7219的引脚排列如图2.15所示。 图2.15 MAX7219的引脚排列(1)功能特点l 1OMHZ连续串行口;l 数字的译码与非译码选择;l 150uA的低功耗关闭模式;l 亮度的数字和模拟控制;l 高电压中断显示;l 共阴极LED显示驱动。(2)引脚功
35、能DIN :串行数据输入。在CLK时钟的上升沿,串行数据被移入内部移位寄存器。移入时最高位(MSB)在前。DIG07:8根字位驱动引脚,它从LED显示器吸入电流。GND:接地,两根GND引脚必须相连。LOAD:装载数据输入。在LOAD的上升沿,串行输入数据的最后16位被锁存。CLK:时钟输入。它是串行数据输入时所需的移位脉冲。最高时钟频率为10MHz,在CLK地上升沿串行数据被移入内部移位寄存器,在CLK的下降沿数据从DOUT移出。SEGAG,DP:七段和小数点驱动输出,它提供LED显示器源电流。ISET:通过一个10K电阻Rset接到V+以设置峰值段电流。V+:+5V电源电压。DOUT:串行
36、数据输出。输入到DIN的数据经过16.5个时钟周期后,在DOUT端有效。MAX7219采用串行数据传输方式,由16位数据包发送到DIN引脚的串行数据在每个CLK的上升沿被移入的内部16位移位寄存器,然后在LOAD的上升沿将数据所存到数字或控制寄存器中。LOAD信号必须在第16个时钟上升沿同时或之后,但在下一个时钟上升沿之前变高;否则将会丢失数据。DIN端的数据通过移位寄存器传送,并在16.5个时钟周期之后出现在DOUT端。DOUT端的数据在CLK的下降沿输出。串行数据以16位为一帧,其中,D11-D8为内部寄存器地址,D7-D0为寄存器数据,格式如表2-3所列。 表2-3MAX7219的串行数
37、据格式D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0XXXX地址MSN 数据 LSB(3) MAX7219的数据传输时序MAX7219的数据传输时序如图2.16所示。 图2.16 MAX7219的数据传输时序MAX7219具有14个可寻址的内部数字和控制寄存器。8个数字寄存器由一个片内8X8双端口SRAM实现,它们可以直接寻址;因此,可以对单个数字进行更新;并且只要V+超过2V,数据就可以保留下去。控制寄存器有5个,分别为译码方式、显示亮度、扫描界限(扫描数位的个数)、停机和显示测试。表2-4所列为MAX7219的内部寄存器及其地址。表2-4 MAX7219的内部
38、寄存器及其地址寄存器地址 D15-D12 D11 D10 D9 D8十六进制代码NO OPX 0 0 0 0X0H数字0X 0 0 0 1X1H数字1X 0 0 1 0X2H数字2X 0 0 1 1X3H 数字7X 1 0 0 0X8H译码方式X 1 0 0 1X9H亮度X 1 0 1 0XAH扫描界限X 1 0 1 1XBH停机X 1 1 0 0XCH显示测试X 1 1 1 1XFH2.4.3 显示电路 图2.17为89S52单片机与MAX7219的一种接口。AT89S52的P1.0口连接到MAX7219的DIN端,P1.1口连到LOAD端,P1.2连到CLK端。采用软件模拟方式产生MAX7
39、219所需的工作时序。MAX7219可以级联使用,这时需要用到空操作寄存器(NO - OP),空操作寄存器的地址为x0H。将所有级联器件的LOAD端连在一起,将DOUT端连接到相邻MAX7219的DIN端。例如,将4个MAX7219级联使用,那么要对第4片MAX7219写入时,发送所需要的16位字,其后跟3个空操作代码(X0XX)。图2.17 MAX 7219与89S52单片机接口n 3 系统软件设计3.1 主程序流程 如图3.1所示,对程序参数、端口、7219显示初始化,读取EEPROM中的数据,开中断,调用键盘扫描,调用温度监控,跳转到调用键盘扫描。 3.2 子程序流程 子程序流程包括中断
40、程序、键盘扫描程序、温度检测与报警程序、温度采集程序 、存储程序。3.2.1 中断流程如图3.2所示,判断500MS是否到,如果500到了则连续采集三次数据并通过中值滤波取中间值送到相应寄存器中,然后刷新显示缓冲,中断返回。3.2.2 键盘扫描流程 如图3.3所示,判断s1有没有按下,如果s1按下则判断温度上限值是否等于99,若等于99,则返回。若不等于99,EEPROM中的温度上限值加1并通过7219刷新温度上限值并在数码管上显示。如果s1没有按下则判断s2是否按下,如果s2按下则判断温度上限值是否等于温度下限值,若等于下限值则返回,若不等于下限值,EEPROM中的温度上限值减1并通过721
41、9刷新温度上限值并在数码管上显示。如果s2没有按下则判断s3是否按下,如果s3按下则判断温度下限值是否等于温度上限值,若等于上限值则返回,若不等于上限值,EEPROM中的温度下限值加1并通过7219刷新温度下限值并在数码管上显示。如果s3没有按下则判断s4是否按下,如果s4按下则判断温度下限值是否等于0,若等于0则返回,若不等于0,EEPROM中的温度下限值减1并通过7219刷新温度下限值并在数码管上显示。如果s4没有按下则返回。3.2.3 温度检测与报警流程如图3.4所示,判断当前温度数值是否超过EEPROM中存储的温度上限数据,若超过则通过单片机P2.6口产生高电平信号驱动直流电机工作同时
42、报警模块红色报警灯亮。若低于温度上限时P2.6口输出低电平,直流电机停止工作红色报警灯熄灭,若当前温度低于EEPROM中存储的温度下限数据,P2.7口产生高电平使继电器打开,绿色报警灯亮,当温度恢复到上下限阈值内时,P2.7口产生低电平使继电器关闭,绿色报警灯熄灭,否则返回。3.2.4 DS18B20温度采集流程如图3.5所示,DS18B20先复位,然后跳过ROM匹配,启动温度转换,准备读温度前再次复位DS18B20,然后再跳过ROM匹配,读取温度值,返回。3.2.5 CAT24C02 读写模块流程(1) .写模块流程: 如图3.6所示,AT24C02发送开始信号,然后发送设备号A0,检测应答,写入地址,检测应答,写入数据,检测应答,最后发送终止信号并结束。(2) 读模块流程:如图3.7所示,AT24C02发送开始信号,然后发送设备号A0,检测应答,写入地址,检测应答,发送起始信号,写入设备号A1,检测应答,然后读取温度值,最后再发送终止信号并结束。 图3.1主程序流程图 图3.2 500MS中断流程 图3.3 温度监控与报警流程 图3.4温度监控与报警流程 图3.5温度采集流程 图 3.6 AT24C02写 图 3.7 AT24C02读n 4 系统仿真本系统采用PROTEUS仿真软件进行仿真。4.1 仿真软件简介Protues软件是英国Labce