版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 单片机系统课程设计1 单片机系统单片机系统 课课 程程 设设 计计成绩评定表设计课题设计课题 : 基于 80C51 的数字温度控制器设计 学院名称学院名称 :专业班级专业班级 :学生姓名学生姓名 :学学 号号 :指导教师指导教师 :设计地点设计地点 :设计时间设计时间 :指导教师意见:成绩: 签名: 年 月 日 单片机系统课程设计2 单片机系统单片机系统课课 程程 设设 计计 课程设计名称:课程设计名称: 基于 80C51 的数字温度控制器设计 专专 业业 班班 级级 :学学 生生 姓姓 名名 :学学 号号 :指指 导导 教教 师师 :课程设计地点:课程设计地点:课程设计时间:课程设计时间:
2、 2013-12-162013-12-27 单片机系统课程设计3 目目 录录1 引言.5 1.1 研究背景 .52 方案的选择.6 2.1 系统框图.63 硬件电路设计.6 3.1 最小化电路设计.6 3.1.1 主控芯片简介.7 3.1.2 最小化电路.9 3.2 温度采集电路设计.9 3.2.1 温度采集芯片简介 .9 3.2.2 工作原理.11 3.2.3 温度采集电路.13 3.3 存储电路设计.14 3.3.1 存储芯片简介.14 3.3.2 工作原理.16 3.3.3 存储电路.18 3.4 显示电路设计 .18 3.4.1 显示方案确定.18 3.4.2 驱动芯片简介.19 3.
3、4.3 显示电路.224 软件设计.23 4.1 主程序流程.23 4.2 子程序流程.23 4.2.1 中断流程.23 4.2.2 键盘扫描流程.23 4.2.3 温度检测与报警流程.23 4.2.4 DS18B20 温度采集流程 .24 4.2.5 CAT24C02 读写模块流程.245 系统仿真.28参考文献.30附录程序.31 单片机系统课程设计41 1 引言引言1.1 研究背景研究背景 温度控制系统在国内各行各业的应用虽然己经十分广泛,但从国内生产的温度控制器来讲,总体发展水平仍然不高,同日本、美国、德国等先进国家相比,仍然有着较大的差距。成熟的温控产品主要以“点位”控制及常规的 P
4、ID控制器为主,它们只能适应一般温度系统控制,而用于较高控制场合的智能化、自适应控制仪表,国内技术还不十分成熟,形成商品化并广泛应用的控制仪表较少随着我国经济的发展及加入 WTO,我国政府及企业对此都非常重视,对相关企业资源进行了重组,相继建立了一些国家,企业的研发中心,开展创新性研究,使我国仪表工业得到了迅速的发展。目前,温度控制器产品从模拟、集成温度控制器发展到智能数码温度控制器。智能温控器(数字温控器)是微电子技术、计算机技术和自动测试技术的结合,特点是能输出温度数据及相关的温度控制量,适配各种控制器,并且它是在硬件的基础上通过软件来实现控制功能的,其智能化程度也取决于软件的开发水平,现
5、阶段正朝着高精度高质量的方向发展,相信以我国的实力,温控技术在不久的将来一定会为于世界前列!温度控制器广泛应用于家用电器,主要为冰箱、冷柜、空调、饮水机、微波炉等制冷制热产品配置。目前国内温度控制器生产企业较少,仅广东、江苏、辽宁、江西各有一家规模稍大一点的生产厂家,他们的生产能力远远不能满足电子温度控制器 市场的需求。温度控制器不仅在国内市场销售顺畅,而且在国际市场也十分看好,特别是日本、意大利、美国等国家对温度控制器产品的需求量很大,出口前景十分乐观。2 2 方案的选择方案的选择方案一 :进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一
6、只温度传感器 DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。方案二: 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行 A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到 A/D 转换电路,感温电路比较麻烦 单片机系统课程设计5 2.12.1 系统框图系统框图 温度采集电路加热电路80C51显示电路报警电路 图 1 系统框图3 3 硬件电路设计硬件电路设计3.13.1 最小化电路设计最小化电路设计主控芯片要能正常工作,首先要提供电源,除其次要有
7、晶振电路提供时钟脉冲信号,除此之外还要有复位电路使单片机或系统其它部件处于某种确定的初始状态,最后还要是单片机有程序。3.113.11 主控芯片简介主控芯片简介 此部分是电路的核心部分,系统采用了 51 系列单片机。在众多的 51 单片机系列中,AT89 系列单片机在我国得到及其广泛的应用,越来越受到人们的瞩目。AT89 系列单片机是美国 ATMEL 公司的 8 位 Flash 单片机产品。它的最大特点是在片内含有 Flash 存储器,在系统的开发过程中修改程序容易,使开发调试更为方便。AT89 系列单片机以 8031 为内核,是与 8051 系列单片机兼容的系列,其型号可以分为标准型、低档型
8、和高档型 3 类。高档型单片机有AT89S51、AT89S52、AT89S53 和 AT89S8252 等型号,其中 AT89S52 为 ATMEL 所生产的一种低功耗、高性能 CMOS8 位微控制器,内部有 8KB 的可下载 Flash 存储器,2KB 的 EEPROM,提高了存储容量,系统不必扩展外部程序存储器和数据存储器这样大大的减少了系统硬件部分。因此,本系统使用 AT89S52 单片机作为微处理器,如图所示 单片机系统课程设计6 图 2 主控芯片3.1.23.1.2 最小化电路最小化电路 单片机工作需要 3 个基本条件:接电源、接石英晶体振荡器和复位电路、单片机内装入程序,如图 3
9、所示。V Vc cc cEAX XT TA AL L1 1X XT TA AL L2 2R RS ST TV Vs ss s+ +5 5V V3 30 0p pF F3 30 0p pF F2 22 2u uF F1 1K KA AT T8 89 9S S5 52 2接接电电源源+ +5 5V V晶晶体体振振荡荡器器+ +5 5V V接接电电源源负负极极图 3 最小化电路(1)接电源)接电源将单片机第 40 脚 Vcc 接电源+5V,第 20 脚 Vss 接地(电源负极) ,为单片机工作提供电源。由于 AT89S52 片内带有程序存储器,当使用片内程序存储器 单片机系统课程设计7时要将 EA(
10、31 脚)接高电平,即接到电源+5V。(2)接石英晶体振荡器)接石英晶体振荡器将单片机第 19 脚(XTAL1)与 18 脚(XTAL2)分别接外部晶体的两个引脚,由石英晶体组成振荡器,保证单片机内部各部分有序工作。晶振电路如图4 所示。 图 4 晶振电路 单片机运行程序的速度与振荡器的频率有关。单片机在读、写操作时都需要消耗一定的时间。机器周期是指单片机完成一个基本操作所用的时间,当外接石英晶体为 12MHz 时,1 个机器周期为 1ms;当外接石英晶体为 6MHz 时,1 个机器周期为 1ms。(3)复位电路)复位电路在实际应用中,复位电路有两种基本形式:一种是上电复位,另一种是上电与按键
11、均有效的复位。上电复位要求接通电源后,单片机自动实现复位操作。常用的上电复位电路如图五所示。上电瞬间 RST 引脚获得高电平,随着电容 C1 的充电,RST 引脚的高电平将逐渐下降。RST 引脚的高电平只要能保持足够的时间(2 个机器周期) ,单片机就可以进行复位操作。该电路典型的电阻和电容参数为:晶振为12MHz 时,C1 为 10uF,R1 为 8.2K;晶振为 6MHz 时,电容 C1 为22uF,R1 为 1K。上电与按键均有效的复位电路如图 6 所示。上电与按键均有效的复位电路原理与上电复位原理相同,不同的是上电与按键均有效的复位电路在单片机运行期间,能用按键来控制复位操作晶振为 6
12、MHz 时,电容 C1 为 22uF,R2 为200。振荡器 单片机系统课程设计8 图 5 图 6本设计中使用后者电路复位,就是可以在单片机运行期间可以人工的复位。这样是比较方便。3.23.2 温度采集电路设计温度采集电路设计跟以往的采用 A/D 转换器进行温度测量不同的是,本系统采用的是一线协议器件 DS18B20 进行温度测量,测量的方法不同,温度采集不同。3.2.13.2.1 温度采集芯片简介温度采集芯片简介 DS1820 数字温度计提供 9 位温度读数,指示器件的温度。信息经过单线接口送入 DS1820 或从 DS1820 送出,因此从中央处理器到 DS1820 仅需连接一条线(和地)
13、。读、写和完成温度变换所需的电源可以由数据线本身提供,而不需要外部电源。因为每一个 DS1820 有唯一的系列号,因此多个 DS1820 可以存在于同一条单线总线上。这允许在许多不同的地方放置温度灵敏器件。此特性的应用范围包括 HVAC 环境控制,建筑物、设备或机械内的温度检测,以及过程监视和控制中的温度检测。(1) DS18B20 特性特性 独特的单线接口仅需一个端口引脚进行通讯; 无需外部器件; 零待机功耗; 测温范围-55+1250,以 0. 5递增。华氏温度范围-67至 257, 以 0.9递增; 单片机系统课程设计9 温度以 9 位数字量读出; 温度数字量转换时间 200ms(典型值
14、); 用户可定义的非易失性温度报警设置; 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件; 应用包括温度控制、工业系统、消费品、温度计或任何热感测系统;(2) DS18B20 引脚结构及说明引脚结构及说明DS18B20 引脚结构如图 7 所示图 7引脚说明:引脚说明: GND:接地。 DQ :数据输入/输出脚。 VDD:外接供电电源输入端(在寄生电源接线方式时接地) 。 DS1820 通过一个单线接口发送或接收信息,因此在中央微处理器和DS1820 之间仅需一条连接线(加上地线) 。用于读写和温度转换的电源可以从数据线本身获得,无需外部电源。因为每个 DS1820 都有一个独特的
15、片序列号,所以多只 DS1820 可以同时连在一根单线总线上,这样就可以把温度传感器放在许多不同的地方。这一特性在 HVAC 环境控制、探测建筑物、仪器或机器的温度以及过程监测和控制等方面非常有用。3.2.23.2.2 工作原理工作原理BOTTOM VIEW GND DQ VDD 单片机系统课程设计10(1) 测温原理测温原理测温原理如图 8 所示。斜斜坡坡累累加加器器预预置置比比较较低低温温度度系系数数振振荡荡器器计计数数器器预预置置= =0 0温温度度存存储储器器高高温温度度系系数数振振荡荡器器计计数数器器= =0 0停停止止增增加加L LS SB B置置位位/ /清清零零图 8 测温原理
16、(2) DSl820 工作过程及时序工作过程及时序初始化:初始化: 初始化 RoM 操作命令存储器操作命令处理数据单总线上的所有处理均从初始化开始。总线主机检测到 DSl820 的存在便可以发出 ROM 操作命令之一这些命令如下:ROM 操作品令指令名称代码功能读 ROM33H在口线上接一个器件时读其 ROM 码匹配 ROM55H找出某个指定 ROM 码的器件跳过 ROMCCH对口线上所有器件的操作搜索 ROMF0H口线上有多个器件时,找出每个器件 ROM码告警搜索ECH找出各器件是否超限存储器操作命令指令名称代码功能写暂存存储器4EH主机向存储器中 TH、TL 和配置寄存器写数 单片机系统课
17、程设计11据读暂存存储器BEH主机连续读 08 存储器中内容复制暂存存储器48H复制 TH、TL 和配置寄存器内容到 EEPROM中温度变换44H启动温度转换重新调出B8H从 EEPROM 中调出 TH、TL 和配置寄存器数据到存储器中读电源B4H器件向主机发送它的供电方式时序时序主机使用时间隙来读写 DSl820 的数据位和写命令字的位。 初始化 初始化时序见图 9 主机总线 to 时刻发送一复位脉冲(最短为 480us 的低电平信号)接着在 tl 时刻释放总线并进入接收状态 DSl820 在检测到总线的上升沿之后等待 15-60us 接着 DS1820 在 t2 时刻发出存在脉冲(低电平持
18、续 60-240 us)如图中虚线所示t t1 1t t2 2t t3 3t t4 4t t0 04 40 00 0 s s9 96 60 0 s s6 60 0 s s2 24 40 00 0 s s1 15 5 s s6 60 0 s s4 48 80 0 s s 图 9 初始化时序 写时间隙 当主机总线 t o 时刻从高拉至低电平时就产生写时间隙见图 10 图 11 从 to时刻开始 15us 之内应将所需写的位送到总线上 DSl820 在 t0 后 15-60us 间对总线采样若低电平写入的位是 0 见图 10,若高电平写入的位是 1,见图 11,连续写 2位间的间隙应大于 1us。
19、6 60 0 s s1 15 5 s s 1 1 s s 6 60 0 s s1 15 5 s s4 45 5 s s 1 1 s s1 15 5 s s6 60 0 s st t0 0t t1 1t t0 0t t1 1 单片机系统课程设计12 图 10 图 11 读时间隙 见图 12 主机总线 t0 时刻从高拉至低电平时总线只须保持低电平 l7us 之后在 t1 时刻将总线拉高产生读时间隙,读时间隙在 t1 时刻后 t2 时刻前有效 t2 距 t0为 15us 也就是说 t2 时刻前主机必须完成读位并在 t0 后的 60us-120us 内释放总线。读位子程序(读得的位到 C 中)t t0
20、 0t t1 1t t2 2t t3 3 6 60 0 s s1 15 5 s s 1 1 s s主主机机起起作作用用D DS S1 18 8B B2 20 0起起作作用用上上拉拉电电阻阻起起作作用用图 123.2.33.2.3 温度采集温度采集电路电路DS18B20 工作可采用两种供电方式,外接供电电源供电和寄生电源供电。当 DS18B20 处于写存储器操作和温度 A /D 变换操作时,总线上必须有强上拉。 (1)采用寄生电源供电采用寄生电源供电 采用寄生电源供电,如图 13 所示。P2.0 口接单线总线,为保证在有效 DS18B20 时钟周期内提供足够的电流,可用一个MOSFET 管和AT
21、89S52 的 p2.0 来完成对总线的上拉。采用寄生电源供电方式 图 13 寄生电源供电时 VDD 和 CND 端 均接地。由于单线制只有一根线,因此发送接收口必须是二态的。(2)采用外部电源供电的方式采用外部电源供电的方式采用寄生电源供电,外部电源部连接到 VDD,引脚如图 14 所示。P2.0DS18B20DS18B20+5V+5V4.7k VDDGNDGNDVDD 单片机系统课程设计13DS18B204.7k GNDVDD+5V总线P2.0 图 14 外部电源供电3.33.3 存储电路设计存储电路设计系统通过 AT24C02 存储温度信息,AT24C02 内部存储地址 0 x00 和
22、0 x01分别存储温度上下限数据信息;温度上下限数据可通过外部按键进行修改,并通过数码管实时显示。数据存储格式如表 2-1 所示。表 2-1 数据存储格式地址0 x000 x010 x020 x030 xFF数据温度上限温度下限3.3.13.3.1 存储芯片简介存储芯片简介CAT24WC02 是一个 2K 位串行 CMOS EPROM 内部含有 256 个 8 位字节CATALYST 公司的先进 CMOS 技术实质上减少了器件的功耗,CAT24WC02 有一个 16 字节页写缓冲器该器件通过 C 总线接口进行操作有一个专门的写保护功能。(1)特性特性 与 400KHz IC 总线兼容; 1.8
23、 到 6.0 伏工作电压范围; 写保护功能当 WP 为高电平时进入写保护状态; 页写缓冲器; 单片机系统课程设计14 自定时擦写周期; 1,000,000 编程/擦除周期; 可保存数据 100 年。(2) 极限参数极限参数 工作温度工业级 -55+125; 贮存温度-65+150; 各管脚承受电压-2.0V+2.0V; Vcc 管脚承受电压-2.0V+7.0V; 焊接温度(10 秒)300; 输出短路电流 100mA。(3) AT24C02 管脚结构管脚结构AT24C02 管脚结构如图 15 所示。图 15 管脚结构管脚描述:管脚描述:SCL:串行时钟:串行时钟 CAT24WC02 串行时钟输
24、入管脚用于产生器件所有数据发送或接收的时钟这是一个输入管脚。SDA:串行数据:串行数据/地址地址 CAT24WC01/02/04/08/16 双向串行数据/地址管脚用于器件所有数据的发送或接收 SDA 是一个开漏输出管脚可与其它开漏输出或集电极开路输出进行线或wire-OR。A0、A1、A2:器件地址输入端:器件地址输入端 这些输入脚用于多个器件级联时设置器件地址当这些脚悬空时默认值为0。使用 24WC02 时最大可级联 8 个器件,如果只有一个 24WC02 被总线寻址 单片机系统课程设计15这三个地址输入脚 A0、A1、A2 可悬空或连接到 Vss。WP:写保护:写保护如果 WP 管脚连接
25、到 Vcc 所有的内容都被写保护只能读当 WP 管脚连接到Vss 或悬空允许器件进行正常的读/写操作。Vcc:+1.8V6.0V 工作电压。Vss:接地。3.3.23.3.2 工作原理工作原理只有在总线非忙时才被允许进行数据传送。在数据传送时,当时钟线为高电平,数据线必须为固定状态,不允许有跳变。时钟线为高电平时,数据线的任何电平变化将被当作总线的启动或停止条件。启始条件: 起始条件必须在所有操作命令之前发送。时钟线保持高电平期问,数据线电平从高到低的跳变作为 IC 总线的启动信号。CAT24C02 一直监视 SDA 和SCL 电平信号直到条件满足时才响应。停止条件: 时钟线保持高平期问,数据
26、线电平从低到高的跳变作为 IC 总线的停止信号。操作结束时必须发送停止条件。器件地址的约定: 主器件在发送启动命令后开始传送,主器件发送相应的从器件的地址(见表2-2),8 位从器件地址的高 4 位固定为 1010。接下来的 3 位无意义。最后一位为读写控制位。1”表示对从器件进行读操作,0”表示对从器件进行写操作。在主器件发送启动命令和发送一字节从器件地址后,如果从器件地址相吻合,CAT24C02 发送一个应答信号(通过 SDA 线)。然后 CAT24C02 再根据读/写控制位进行读或写操作。 表 2-2 从器件寻址1010A2A1A0R/W时序图时序图CAT24C02 工作时序包括起始/停
27、止时序、应答时序、写时序和读时序。 单片机系统课程设计16S SD DA AS SC CL LS ST TA AR RT T B BI IT TS ST TO OP P B BI IT T 起始/停止时序图S SC CL LD DA AT TA A I IN ND DA AO OU UT TS ST TA AR RT T1 12 29 9 应答时序图S SS SD DA A L LI IN NE ES ST TA AR RT TS SL LA AV VE EA AD DD DR RE ES SS SB BY YT TE EA AD DD DR RE ES SS SD DA AT TA A P
28、PA AC CK KA AC CK KA AC CK KS ST TO OP P 写时序图 S SA AC CK KS ST TA AR RT TS ST TO OP PP PN NO OA AC CK KD DA AT TA AS SD DA A L LI IN NE ES SL LA AV VE EA AD DD DR RE ES SS S读时序图3.3.33.3.3 存储存储电路电路 单片机系统课程设计17A0、A1、A2 接地,SDA、SCL 与单片机 I/O 口连接,通过程序软件模拟 I C 时序,WP 引脚接地,如图 16 所示。 图 16 硬件连接图3.43.4 显示电路设计显示
29、电路设计本系统显示电路用来显示温度上下限的值和通过 DS18B20 采集进来的实时温度值。3.4.13.4.1 显示显示器简介器简介数码管具有:低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境要求低,易一于维护,同时其精度高,测量快,精确可靠,操作简单。数码显示是采用 BCD 编码显示数字,程序编译容易,资源占用较少。(1) 7 段段 LED 数码数码LED 是近似于恒压的元器件,到导电时(发光)的正向压降一般约为 1.6V或 2.4V,反向击穿电压一般5V。工作电流通常在 10-20mA,故电路中需要串联适当的限流电阻。发光强度基本上与正向电流成正比。发光效率
30、和颜色取决于制造的材料,一般常用红色,偶尔也用于黄色或绿色。(2) 发光二级管显示驱动(点亮)的方法发光二级管显示驱动(点亮)的方法静态驱动方法:即给欲点亮的 LED 通过恒定的定流。这种驱动方法需要显示的位数增加时,所需的逻辑部件及连线也相应增加,成本也增加。112233445566DDCCBBAATitleNumberRevisionSizeBDate:2011/11/26Sheet of File:Sheet1.SchDocDrawn By:AT89S52P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RST9P3.010P3.111P3.2/INT012
31、P3.3/INT113P3.414P3.515P3.616P3.717XTAL218XTAL119GND20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE/PROG30EA/VPP31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039VCC40U1E01E12E23GND4SDA5SCL6MODE7VCC8CAT24C02U310K10KVCC 单片机系统课程设计18动态驱动方法:是给欲点亮的 LED 通过脉冲电流,此时 LED 的脉冲电流倍数于其额定电流值。利用动态驱动方法可以减
32、少需要的逻辑部件和连线。最常用的一种数码显示器是由 7 段条形的 LED 组成,如图 2.14 所示。点亮适当的字段,就可以出不同的数字。此外不少于 7 段数码管显示器在右下角带有一个圆形的 LED 作小数点用,这样一共有 8 段,恰好适用于 8 位的并行系统。 图 17 为共阴极接法,公共阴极接地。当各段阳极上的电平为“1”时,该段点亮;电平为“0”时,段就熄灭。图 18 为共阳极接法+5V 电源。当各段阴极上的电平为“0”时,该段就点亮;电平为“1”时,段就熄灭。图中的电阻是限流电阻。 图 17 共阴极接法 图 18 共阳极接法3.4.23.4.2 驱动芯片简介驱动芯片简介MAX7219
33、是 MAXMI 公司生产的一种串行接口方式 7 段共阴极 LED 显示驱动器。其片内包含有一个 BCD 码到 B 码的译码器、多路复用扫描电路、字段和字位驱动器,以及存储每个数字的 8X8RAM。每位数字都可以被寻址和更新,允许对每一位数字选择 B 码译码或不译码。采用三线串行方式与单片机接口。电路十分简单,只需要一个 10K 左右的外接电阻来设置所有 LED 的段电流。MAX7219 的引脚排列如图 19 所示。 单片机系统课程设计19图 19 MAX7219 的引脚排列(1)功能特点功能特点 1OMHZ 连续串行口; 数字的译码与非译码选择; 150uA 的低功耗关闭模式; 亮度的数字和模
34、拟控制; 高电压中断显示; 共阴极 LED 显示驱动。(2)引脚功能引脚功能DIN :串行数据输入。在 CLK 时钟的上升沿,串行数据被移入内部移位寄存器。移入时最高位(MSB)在前。DIG07:8 根字位驱动引脚,它从 LED 显示器吸入电流。GND:接地,两根 GND 引脚必须相连。LOAD:装载数据输入。在 LOAD 的上升沿,串行输入数据的最后 16 位被锁存。CLK:时钟输入。它是串行数据输入时所需的移位脉冲。最高时钟频率为10MHz,在 CLK 地上升沿串行数据被移入内部移位寄存器,在 CLK 的下降沿数据从 DOUT 移出。SEGAG,DP:七段和小数点驱动输出,它提供 LED
35、显示器源电流。ISET:通过一个 10K 电阻 Rset 接到 V+以设置峰值段电流。V+:+5V 电源电压。DOUT:串行数据输出。输入到 DIN 的数据经过 16.5 个时钟周期后,在DOUT 端有效。 单片机系统课程设计20MAX7219 采用串行数据传输方式,由 16 位数据包发送到 DIN 引脚的串行数据在每个 CLK 的上升沿被移入的内部 16 位移位寄存器,然后在 LOAD 的上升沿将数据所存到数字或控制寄存器中。LOAD 信号必须在第 16 个时钟上升沿同时或之后,但在下一个时钟上升沿之前变高;否则将会丢失数据。DIN 端的数据通过移位寄存器传送,并在 16.5 个时钟周期之后
36、出现在 DOUT 端。DOUT端的数据在 CLK 的下降沿输出。串行数据以 16 位为一帧,其中,D11-D8 为内部寄存器地址,D7-D0 为寄存器数据,格式如表 2-3 所列。 表 2-3MAX7219 的串行数据格式D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0XXXX地址MSN 数据 LSB(3) MAX7219 的数据传输时序的数据传输时序MAX7219 的数据传输时序如图 20 所示。 C CL LK KB Bi it t1 15 5B Bi it t1 11 14 4B Bi it t0 0L LO OA AD DD DI IN N图 20 MAX7
37、219 的数据传输时序MAX7219 具有 14 个可寻址的内部数字和控制寄存器。8 个数字寄存器由一个片内 8X8 双端口 SRAM 实现,它们可以直接寻址;因此,可以对单个数字进行更新;并且只要 V+超过 2V,数据就可以保留下去。控制寄存器有 5 个,分别为译码方式、显示亮度、扫描界限(扫描数位的个数) 、停机和显示测试。表2-4 所列为 MAX7219 的内部寄存器及其地址。表 2-4 MAX7219 的内部寄存器及其地址地址寄存器 D15-D12 D11 D10 D9 D8十六进制代码NO OPX 0 0 0 0X0H数字 0X 0 0 0 1X1H数字 1X 0 0 1 0X2H
38、单片机系统课程设计21数字 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 1XFH3.4.33.4.3 显示电路显示电路 图 21 为 89S52 单片机与 MAX7219 的一种接口。AT89S52 的 P1.0 口连接到 MAX7219 的 DIN 端,P1.1 口连到 LOAD 端,P1.2 连到 CLK 端。采用软件模拟方式产生 MAX7219 所需的工作时序。MAX7219 可以级联使用,这时需要用到空操作寄存器(NO - OP
39、),空操作寄存器的地址为 x0H。将所有级联器件的 LOAD 端连在一起,将 DOUT 端连接到相邻 MAX7219 的 DIN 端。例如,将 4 个 MAX7219 级联使用,那么要对第 4 片 MAX7219 写入时,发送所需要的 16 位字,其后跟 3 个空操作代码(X0XX) 。图 21 MAX 7219 与 89S52 单片机接口 单片机系统课程设计224 系统软件设计系统软件设计4.1 主程序流程主程序流程 如图 22 所示,对程序参数、端口、7219 显示初始化,读取 EEPROM 中的数据,开中断,调用键盘扫描,调用温度监控,跳转到调用键盘扫描。 4.2 子程序流程子程序流程
40、子程序流程包括中断程序、键盘扫描程序、温度检测与报警程序、温度采集程序 、存储程序。4.2.1 中断流程中断流程如图 23 所示,判断 500MS 是否到,如果 500到了则连续采集三次数据并通过中值滤波取中间值送到相应寄存器中,然后刷新显示缓冲,中断返回。4.2.2 键盘扫描流程键盘扫描流程 如图 24 所示,判断 s1 有没有按下,如果 s1 按下则判断温度上限值是否等于 99,若等于 99,则返回。若不等于 99,EEPROM 中的温度上限值加 1 并通过 7219 刷新温度上限值并在数码管上显示。如果 s1 没有按下则判断 s2 是否按下,如果 s2 按下则判断温度上限值是否等于温度下
41、限值,若等于下限值则返回,若不等于下限值,EEPROM 中的温度上限值减 1 并通过 7219 刷新温度上限值并在数码管上显示。如果 s2 没有按下则判断 s3 是否按下,如果 s3 按下则判断温度下限值是否等于温度上限值,若等于上限值则返回,若不等于上限值,EEPROM 中的温度下限值加 1 并通过 7219 刷新温度下限值并在数码管上显示。如果 s3 没有按下则判断 s4 是否按下,如果 s4 按下则判断温度下限值是否等于0,若等于 0 则返回,若不等于 0,EEPROM 中的温度下限值减 1 并通过 7219刷新温度下限值并在数码管上显示。如果 s4 没有按下则返回。4.2.3 温度检测
42、与报警流程温度检测与报警流程如图 25 所示,判断当前温度数值是否超过 EEPROM 中存储的温度上限数据,若超过则通过单片机 P2.6 口产生高电平信号驱动直流电机工作同时报警模块红色报警灯亮。若低于温度上限时 P2.6 口输出低电平,直流电机停止工作红 单片机系统课程设计23色报警灯熄灭,若当前温度低于 EEPROM 中存储的温度下限数据,P2.7 口产生高电平使继电器打开,绿色报警灯亮,当温度恢复到上下限阈值内时,P2.7口产生低电平使继电器关闭,绿色报警灯熄灭,否则返回。4.2.4 DS18B20 温度采集流程温度采集流程如图 26 所示,DS18B20 先复位,然后跳过 ROM 匹配
43、,启动温度转换,准备读温度前再次复位 DS18B20,然后再跳过 ROM 匹配,读取温度值,返回。4.2.5 CAT24C02 读写模块流程读写模块流程(1) .写模块流程: 如图 27 所示,AT24C02 发送开始信号,然后发送设备号 A0,检测应答,写入地址,检测应答,写入数据,检测应答,最后发送终止信号并结束。(2) 读模块流程: 如图 28 所示,AT24C02 发送开始信号,然后发送设备号 A0,检测应答,写入地址,检测应答,发送起始信号,写入设备号 A1,检测应答,然后读取温度值,最后再发送终止信号并结束。初初始始化化M MA AX X7 72 21 19 9、参参数数、端端口口
44、读读取取键键盘盘扫扫描描温温度度监监控控开开中中断断开开始始2 20 00 0m ms s定定时时中中值值滤滤波波连连续续三三次次温温度度的的读读取取- -1 1? ?刷刷新新当当前前温温度度显显示示缓缓冲冲中中断断返返回回 - - 1 10 0 图 22 主程序流程图 图 23 500MS 中断流程 单片机系统课程设计24键键盘盘扫扫描描S S1 1键键按按下下?温温度度上上限限等等于于9 99 9?温温度度上上限限值值加加1 1刷刷新新温温度度上上限限显显示示缓缓冲冲S S2 2键键按按下下?温温度度上上限限等等于于下下限限?温温度度上上限限值值减减1 1刷刷新新温温度度上上限限显显示示缓
45、缓冲冲S S3 3键键按按下下?S S4 4键键按按下下?返返回回N NNN温温度度下下限限等等于于上上限限?温温度度上上限限值值加加1 1刷刷新新温温度度上上限限显显示示缓缓冲冲N温温度度下下限限等等于于0 0?温温度度下下限限值值减减1 1刷刷新新温温度度上上限限显显示示缓缓冲冲NYYYYN NN NN NY YYY YY Y 图 24 温度监控与报警流程 单片机系统课程设计25DS18B20初初始始化化跳跳过过ROM启启动动温温度度转转换换读读取取温温度度DS18B20初初始始化化跳跳过过ROMDS18B20温温度度采采集集模模块块返返回回检检测测与与报报警警模模块块 当当前前温温度度超
46、超过过上上限限?当当前前温温度度低低于于下下限限?直直流流电电机机工工作作红红色色报报警警灯灯亮亮继继电电器器工工作作绿绿色色报报警警灯灯亮亮直直流流电电机机停停止止工工作作红红色色报报警警灯灯熄熄灭灭继继电电器器停停止止工工作作绿绿色色报报警警灯灯熄熄灭灭返返回回NYNY 图 25 温度监控与报警流程 图 26 温度采集流程 单片机系统课程设计26开开始始发发送送起起始始信信号号写写入入A0检检测测应应答答写写入入地地址址检检测测应应答答写写入入数数据据检检测测应应答答发发送送终终止止信信号号结结束束开开始始发发送送起起始始信信号号写写入入A0检检测测应应答答写写入入地地址址检检测测应应答答
47、发发送送起起始始信信号号写写入入A1检检测测应应答答读读取取数数据据发发送送终终止止信信号号结结束束 图 27 AT24C02 写 图 28 AT24C02 读 单片机系统课程设计275 系统仿真系统仿真采用 PROTEUS 仿真软件进行仿真。在 Protues 软件中画好原理图后,然后双击主芯片 AT89S52 就会弹出如图 29 所示的对话框。然后再选择上面生成的*.hex 文件。最后进行运行。图 29 程序加载的界面 仿真结果仿真结果状态一状态一:当前温度在设置的温度上下限范围内。报警模块、电机、继电器均处于断开状态的电路图如图 30 所示。 单片机系统课程设计28图 30 本系统状态一
48、电路图状态二状态二 :当前温度高于所设定的温度上限值。报警模块红色指示灯亮、电机工作,继电器处于断开状态的电路图如图 31所示。图 31 本系统状态二电路图 单片机系统课程设计29状态三状态三 :当前温度低于所设定的温度下限值。报警模块绿色指示灯亮、继电器工作,电机处于断开状态的电路图如图 32所示。图 32 本系统状态三电路图参考文献参考文献【1】廖德荣.自动控制温度的方法.北京航空航天大学出版社.2006【2】李军.检测技术及仪表.中国轻工业出版社.2008.【3】徐爱钧.智能化测量控制仪表原理与设计.北京航空航天大学出版社.2004.【4】汪吉鹏.微机化原理与接口技术.高等教育出版社.2
49、004.【5】王义军.单片机原理及应用习题与实验指导书.中国电力出版社.2006.【6】杨宁.微机控制技术.高等教育出版社.2005.【7】潘新民.微机计算机控制技术.高等教育出版社.2001. 单片机系统课程设计30【8】刘丹. 例说 8051.人民邮电出版社.2006.附录二附录二 程序程序;文件名:TEMPER.ASM;*按键引脚定义*S1 EQU P1.0S2 EQU P1.1S3 EQU P1.2S4 EQU P1.3;*直流电机引脚定义*MOTO EQU P2.6;*继电器引脚定义*GDQ EQU P2.7;*AT24C02 引脚定义*SDA EQU P2.2SCL EQU P2.
50、1I2CDATA EQU 6FHADDRESS EQU 6EH;*DS18B20 引脚控制*DQ EQU P2.0FLAG EQU 00H ;18B20 存在标志位;*MAX7219 引脚控制*DIN EQU P0.0LOAD EQU P0.1 CLK EQU P0.2;*ORG 0000HLJMP MAINORG 000BHLJMP INTT0 ;定时 200MS 单片机系统课程设计31ORG 0100H;*初始化初次使用上限值为 30,下限值为 23*MAIN:CLR MOTOCLR GDQMOV ADDRESS,#00H ;开机后从 AT24C02 中 00H 开始读出数据MOV R0,
51、#40HLCALL I2C_READMOV R0,AINC R0MOV ADDRESS,#01HLCALL I2C_READMOV R0,AMOV A,40HSUBB A,#99JC M1MOV 40H,#30M1:MOV A,41HSUBB A,#99JC M2MOV 41H,#23M2:MOV TMOD,#01H ;中断参数MOV TH0,#0B1H ;T0 定时 20MSMOV TL0,#0E0HMOV R6,#10 LCALL DISIN0LCALL SHOWLCALL DS18B20SETB P1.6SETB P1.7 单片机系统课程设计32SETB 06HSETB 07HSETB
52、08HSETB 09HSETB EA SETB ET0SETB TR0LOOP:LCALL KEYLCALL WENKONG ;温控单元判断有没有高于或低于上下限值LCALL DEY_10MSLJMP LOOP;*MAX7219 初始化程序*DISIN0:MOV R4,#09H ;译码方式寄存器MOV R5,#0FFH ;#0ff=0-7 位均译为 B 码LCALL DINPUT ;调用写入命令子程序MOV R4,#0AH ;亮度寄存器MOV R5,#08H ;亮度值LCALL DINPUTMOV R4,#0BH ;扫描界限寄存器MOV R5,#05H ;显示 7 位LCALL DINPUTM
53、OV R4,#0CH ;停机寄存器MOV R5,#01H ;正常工作LCALL DINPUTRET;*7219 显示子程序*SHOW:LCALL NOWLCALL LL 单片机系统课程设计33LCALL HLRETNOW: MOV A,42H ;数据处理MOV B,#10DIV ABMOV 51H,A ;要显示温度高位放51HMOV 50H,B ;要显示温度低位放50HMOVR4,#06HMOV R5,50HLCALL DINPUTMOVR4,#05HMOVR5,51HLCALL DINPUTRETLL: MOV A,41H MOV B,#10DIV ABMOV 53H,A ;下限要显示温度高
54、位放53HMOV 52H,B ;下限要显示温度低位放 52H MOVR4,#04HMOV R5,52HLCALL DINPUTMOVR4,#03HMOVR5,53HLCALL DINPUTRETHL:MOV A,40H MOV B,#10DIV AB 单片机系统课程设计34MOV 55H,A ;上限要显示温度高位放55HMOV 54H,B ;上限要显示温度低位放 54HMOVR4,#02HMOV R5,54HLCALL DINPUTMOVR4,#01HMOVR5,55HLCALL DINPUTRET;-7219 命令写入子程序-DINPUT:MOV A,R4MOV B,#8LOOP0:RLC
55、AMOV P0.0,CCLR P0.2SETB P0.2DJNZ B,LOOP0MOV A,R5MOV B,#8LOOP1:RLC AMOV P0.0,CCLR P0.2SETB P0.2DJNZ B,LOOP1CLR P0.1SETB P0.1 单片机系统课程设计35RET;*温控单元*WENKONG:CLR CMOV A,40HSUBB A,42HJC WW1CLR MOTOSETB P1.7CLR CMOV A,42HSUBB A,41HJC WW2CLR GDQSETB P1.6LJMP EXITWW1:SETB MOTO ;温度超过上限电机转CLR p1.7LJMP EXITWW2:
56、SETB GDQ ;温度低于下限继电器动作CLR P1.6EXIT:RET;*按键扫描*KEY:JNB S1,JJASETB 06HKK1:JNB S2,JJBSETB 07HKK2:JNB S3,JJCSETB 08H 单片机系统课程设计36KK3:JNB S4,JJDSETB 09HRETJJA:LCALL DEY_10MSJNB 06H,KK1CLR 06HLCALL DEY_10MSMOV A,40HCJNE A,#99,J1SJMP EEXXJ1: INC40HLCALL HLLCALL WRITE24C02SJMP EEXXJJB:LCALL DEY_10MSJNB 07H,KK2
57、CLR 07HLCALL DEY_10MSMOV A,40HCJNE A,41H,DXSJMP EEXXDX:DEC 40HLCALL HLLCALL WRITE24C02SJMP EEXXJJC:LCALL DEY_10MSJNB 08H,KK3CLR 08HLCALL DEY_10MS 单片机系统课程设计37MOV A,41HCJNE A,40H,SXSJMP EEXXSX:INC41HLCALL LLLCALL WRITE24C02SJMP EEXXJJD: LCALL DEY_10MSJNB 09H, EEXXCLR 09HLCALL DEY_10MSMOV A,41HCJNE A,#
58、00H,J2SJMP EEXXJ2: DEC 41HLCALL LLLCALL WRITE24C02EEXX:RET;*定时 1MS 程序*INTT0:MOV TH0,#0B1HMOV TL0,#0E0HDJNZ R6,INN2MOV R6,#10LCALL DSIILCALL NOWINN2:RETI;*DS18B20 采样三次并进行中值滤波*DSII:LCALL DS18B20MOV 30H,42H 单片机系统课程设计38LCALL DS18B20MOV 31H,42HLCALL DS18B20MOV 32H,42HMID:PUSH PSWPUSH ACCMOV A,30HCLR CSUB
59、B A,31HJNC LB1MOV A,30HXCH A,31HMOV 30H,ALB1:MOV A,32HCLR CSUBB A,30HJC LB3MOV A,32HCLR CSUBB A,31HJNC LB4MOV A,31HMOV 42H,ALB2:POP ACCPOP PSWRETLB3:MOV A,31HMOV 42H,AAJMP LB2 单片机系统课程设计39LB4:MOV A,32HMOV 42H,AAJMP LB2;*AT24c02 子程序*WRITE24C02:MOVADDRESS,#00H ;从 00H 开始写MOVI2CDATA,40H ;要写入的数据LCALL I2C_WRITEMOVADDRESS,#01H ;从 00H 开始写MOVI2CDATA,41H ;要写入的数据LCALL I2C_WRITERETI2C_WRITE:LCALL I2C_STAR ;写子程序MOVA,#0A0HLCALL SEND_8BITELCALL I2C_ACKJC I2C_WRITEMOVA,ADDRESSLCALL SEND_8BITELCALL I2C_ACKMOVA,I2CDATALCALL SEND_8BITELCALL I2C_ACKLCALL I2C_STOPR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 洁净车间内部管理制度
- 海尔内部制度
- 海油职工内部制度规定
- 烘培社内部管理制度
- 煤矿内部手机管理制度
- 煤矿科室内部管理制度
- 重庆信息技术职业学院《经学概论》2024-2025学年第二学期期末试卷
- 理财子公司内部控制制度
- 监理内部规章制度
- 科室内部处分制度
- GB/T 24421.3-2023服务业组织标准化工作指南第3部分:标准编制
- 2023年湖南机电职业技术学院单招综合素质题库及答案解析
- 锚索张拉力计算表
- LY/T 1705-2007管氏肿腿蜂人工繁育及应用技术规程
- GB/T 5154-2022镁及镁合金板、带材
- 马工程《刑法学(下册)》教学课件 第17章 危害国家安全罪
- GB 30509-2014车辆及部件识别标记
- 医学导论-课件
- 细胞生物学CRISPR-CAS9-课件
- 建筑工程项目管理综合练习及答案
- 楼地面装饰工程计量与计价
评论
0/150
提交评论