《基于单片机的智能风扇控制设计--大学毕业论文.doc》由会员分享,可在线阅读,更多相关《基于单片机的智能风扇控制设计--大学毕业论文.doc(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于单片机的智能风扇控制设计摘要本文介绍一种基于单片机温控风扇的控制系统设计方案。巧妙地利用单片机技术,可控硅技术,温度传感器技术。 硬件系统采用AT89C51作为微处理器,利用DS18B20对室内温度的探测并适时显示当前温度值,通过控制可控硅的导通,从而实现对电风扇进行温度调速控制。软件系统则采用模块设计即主程序,键盘控制程序,温度显示程序,电机调速程序。文中给出AT89C51为核心的电路设计主体软件设计,着重讨论温控相关程序的设计并给出流程图和相关程序。关键词:AT89C51;DS18B20;仿真,电机调速,温度显示 AbstractThis paper introduces a cont
2、rol based on single-chip microcomputer control system design scheme of the fan. Ingenious of single chip microcomputer, thyristor technology , the temperature sensor technology.Hardware system AT89C51 as microprocessors , use of indoor temperature detection DS18B20 and display the current controlled
3、 temperature, through the control of conduction, so as to realize the fan speed control of temperature. Software system is a modular design which main program, keyboard control procedures, temperature display program, motor speed program. Given the circuit design as the core of AT89C51 main software
4、 design, emphatically discusses the design and temperature control procedures are flowchart and relevant procedure.Keywords: AT89C51, DS18B20, Simulation, motor speed, temperature display目录第1章 引言41.1 课题的设计要求41.2 课题的设计目的和意义4第2章 系统主要硬件电路设计52.1 总体硬件设计52.1.1 AT89C51介绍及说明52.1.2 AT89C51主要特性及引脚说明62.2 数字温度传
5、感器模块设计92.2.1 DS18B20介绍92.2.2 DS18B20的功能及使用说明102.2.3 DS18B20寄存器的存储器及格式112.2.4 DS18B20使用注意事项122.3 键盘输入模块122.3.1 键盘的选择与原理122.3.2 键盘电路132.4 温度显示与控制模块142.4.1 LED显示灯介绍142.5 电机调速与控制模块设计152.5.1 电机调速原理162.5.2 电机控制模块硬件设计17第3章 软件设计与说明(包括流程图)193.1 系统方案设计193.2 主要程序流程图193.2.1 主程序流程图193.2.2 数字温度传感器模块程序流程图203.2.3 显
6、示程序流程图223.2.4 电动机程序设计原理以及流程图22第4章 调试步骤、结果、使用说明24第5章 设计总结25附录A 系统原理图26附录B 程序清单27参考文献36第1章 引言1.1 课题的设计要求本课题要求以单片机为核心设计一个智能风扇控制器,具备倒数计时、时间修改、实时显示温度、预设关机温度、预设报警温度等功能。可作为家用风扇控制器,和工业用于温度控制的场合。智能风扇控制器有8个按键设置。现在想要实现以下功能:1、显示实时温度;2、可改变设定温度;3、手动控制 ;4、自动控制; 5、温度显示范围0099。 1.2 课题的设计目的和意义 单片机在检测和控制系统中得到广泛的应用, 温度则
7、是系统常需要测量、控制和保持的一个量。 本课题设计从硬件和软件两方面介绍了AT89C51单片机温度控制系统的设计。 单片机在电子产品中的应用已经越来越广泛,并且在很多电子产品中也将其用到温度检测和温度控制。为此在本文设计了基于ATMEL公司的 AT89C51的温度测量系统。 这是一种低成本的利用单片机多余 I/O口实现的温度检测电路。 由于采用了智能控制器直接控制风扇,实现了的风扇开和关。节约了电能, 积极响应了国家提出的节能减排的号召。 具有很好的市场发展前景。在夏天时,由于天气温度高,人们通常直接打开风扇的电源而不用风扇的定时功能。当夜深时,环境温度会降低。此时,如果风扇直接吹到人上,人们
8、很容易得感冒。本课题设计的智能风扇控制器,可以实时监控环境温度,当环境温度低于用户设定的温度时,风扇会自动关闭。本智能温度控制器也 可用于工业温度测量的场所,课程设计我们可以学到关于单片机在实际生活中的设计应用,也可以深入地学习到单片机的编程。第2章 系统主要硬件电路设计2.1 总体硬件设计 图2-1 系统原理框图2.1.1 AT89C51介绍及说明根据设计要求设定AT89C51为中央处理器,它是一种低功耗、高性能的处理器。作为整个控制系统的核心,AT89C51内部已包含了定时器、程序存储器、数据存储器等硬件,其硬件能符合整个控制系统的要求,不需要外接其他存储器芯片和定时器件,方便地构成一个最
9、小系统。整个系统结构紧凑,抗干扰能力强,性价比高。是比较合适的方案。AT89C51是一个低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。AT89C51是一个低功耗高性能单片机,如AT89C51引脚图,它共有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数
10、器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。2.1.2 AT89C51主要特性及引脚说明:与MCS-51 兼容 ,4K字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年 全静态工作:0Hz-24MHz三级程序存储器锁定 1288位内部RAM32可编程I/O线 两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流
11、。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管
12、脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可
13、作为AT89C51的一些特殊功能口,如下表所示:P3口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲
14、。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(000
15、0H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。2.2 数字温度传
16、感器模块设计在选定单片机类型后,通常还要对一些严重影响系统性能指标的器件,如传感器进行选择。有时一个设计合理的测控系统往往因为传感器的限制而达不到应有的效果。该电路的根本任务是温度的实时测量。因此,选用一块好的温度传感器是本设计的关键。典型的温度测控系统是由模拟温度传感器、A、D转换电路和单片机组成。但是由于模拟温度传感器输出为模拟信号,必须经过AD转换环节获得数字信号后才能与单片机等微处理器接口,使得硬件电路结构复杂,成本较高。近年来,由于以DSl8B20为代表的新型单总线数字式温度传感器的突出优点使得它得到充分利。2.2.1 DS18B20介绍DS18B20内部结构主要由四部分组成:64位
17、光刻ROM、温度传感器非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的测量温度范围是-55+125。该温度传感器的输出温度数据可与摄氏度校准,使用查找表或转换规则就可计算温度值。它采用单根信号线,既传输时钟,又传输数据,而且数据传输是双向的,因此具有节省IO口线资源、结构简单、成本低廉、便于总线扩展和维护等诸多优点。它可以直接将模拟温度信号转化为数字信号,降低了电路的复杂程度,提高了电路的运行质量。2.2.2 DS18B20的功能及使用说明DS18B20高精度数字温度传感器可以完成如下的功能:(1)采用采用AT89S52单片机和DS18B20温度传感器通信,控制温度的采集过程和进
18、行数据通信;(2)提供DS18B20的使用外围电路温度显示LED电路以及DS18B20和单片机的通信接口电路;(3)利用发光二极管指示系统的工作状态,DS18B20温度传感器内置温度上下限;(4)编写程序,完成单片机对温度数据的采集过程以及与DS18B20数据传输过程的控制。主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,当DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在
19、低脉冲,主CPU收到此信号表示复位成功。部分温度值与DS18B20输出的数字量对照表如下图表2-2-2:表2-2-2 部分温度值与DS18B20输出的数字量对照表 +85 0000 0101 0101 0000 0550H +25.625 0000 0001 1001 0001 0191H +10.125 0000 0000 1010 0010 00A2H+0.5 0000 0000 0000 1000 0008H 0 0000 0000 0000 0000 0000H-0.5 1111 1111 1111 1000 FFF8H -10.125 1111 1111 0110 1110 FF5E
20、H -25.625 1111 1111 0110 1111 FF6FH -55 1111 1100 1001 0000 FC90H2.2.3 DS18B20寄存器的存储器及格式DS18B20 温度传感器的内部存储器包括一个高速暂存RAM 和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL 和结构寄存器。暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是TH、TL 的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算
21、。第九个字节是冗余检验字节。DS18B20温度寄存器的格式:2.2.4 DS18B20使用注意事项DS18B20虽然具有测温系统简单、测温精度高、连接方便和占用口线少等优点,但是在实际应用中也应注意以下几个问题:(1)因为硬件开销较小,所以需要较复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时必须严格保证读写时序,否则将无法读取测温结果。(2)当单总线上所挂DS18B20超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意(3)在DS18B20测温程序设计中,向DS18B20发出温度转换时总要等待DS1
22、8B20的返回信号,一旦某个DS18B20接触不好或短线,当程序读该DS18B20时,将没有返回信号,程序进入死循环。这一点在进行DS18B20硬件连接和软件设计时也要加以注意。2.3 键盘输入模块键盘的基本工作原理: 键盘是单片机应用系统中不可缺少的设备,人们通过它往计算机中传递信息。常用的键盘电路有两种,即独立式键盘和矩阵式键盘。2.3.1 键盘的选择与原理独立式键盘 最简单的键盘为独立式键盘,每个键对应I/O端口的一位,没有键闭合时,I/O端口各位均处于高电平。当有一个键被按下时,就使对应位接地成为低电平。而其他位仍为高电平。这样,只要CPU检测到I/O端口的某一位为“0”,便可以辨别出
23、对应键已经被按下。矩阵式键盘 当系统所需按键较多时,为了减少键盘电路占用的I/O引脚数目,一般采用矩阵式电路。设有一个含有mn个键的键盘,如果采用独立式的键盘结构设计,需要mn条引线和mn位I/O端口。如果采用矩阵式键盘结构,便只要m+n条引线和m+n位I/O端口就行了。它由行线和列线组成,按键设置在行、列的交叉点上,行、列分别连接到按键开关的两端。行线通过上拉电阻接到+5v上。平时无按键动作时,行线处于高电平状态,而当有按键按下时,行线电平状态将由与此行线相连的列线电平决定。列线电平如果为低,则行线电平为低;列线电平如果为高,则行线电平亦为高。这一点是识别矩阵按键是否被按下的关键。由于矩阵键
24、盘中行、列线为多键共用,各按键均影响该键所在行和列的电平。因此各按键彼此将互相发生影响,所以必须将行、列信号配合起来并做适当的处理,才能确定闭合键的位置。键盘功能手动按钮:在此状态下,手动调节等级调速来实现调速自动按钮:在此状态下,自动调速以使室温等于设定温度设定按钮:按下时,温度显示设定温度,并可改变设定温度+按钮:改变设定温度使设定温度增加-按钮:改变设定温度使设定温度减小高中低档:手动控制调速等级2.3.2 键盘电路 根据所需按键个数、I/O引脚输出级电路结构以及可以利用的I/O引脚数量,确定键盘电路形式。本方案有8个按键,又考虑到I/O口的数量,采用独立式键盘电路。8个按键分别定义如下
25、:K1、自动按钮;K2、手动按钮;K3、设定键;K4、+按键K5、-按键;K6、高档;K7、中档;K8、低档,电路图如下:2.4 温度显示与控制模块在单片机控制系统中,常用LED显示器来显示各种数字和符号。这种显示器显示清晰,亮度高,接口方便,广泛用于各种控制系统中。2.4.1 LED显示灯介绍LED显示器在电路连接上有两种形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极型LED显示器;另一种是8个发光二极管的阴极都连在一起的,称为共阴极型LED显示器。显示器的显示方式有两种:静态显示和动态扫描显示。所谓静态显示,是指当显示器显示某个字符时,相应段的发光二极管处于恒定的导通或截止状态
26、,直到需要显示另一个字符为止。在这种工作方式下,LED的亮度高,软件编程也比较容易;但是它占用比较多的I/O资源,常用于现实位数不多的情况。LED显示器动态接口的基本原理是利用人眼的“视觉暂留”效应。接口电路把所有显示器的8个笔端a到h分别并联在一起,构成“字段口”,每个显示器的公共端COM各自独立的受I/O线控制,称“位扫描口”。CPU向字段输出口送出字形码时,所有的显示器都能接受到,但是究竟点亮哪个显示器,取决于此时的位扫描口德输出端接通了哪个LED显示器的公共端。所谓动态,就是利用循环扫描的方式,分时轮流选通各显示器的公共端,使各个显示器轮流导通。当扫描速度达到一定程度时,人眼就分辨不出
27、来了,认为是各个显示器。本设计是对室内温度进行显示,一般用户室内温度是两位,所以我采用两位数码管显示,共阳极、动态显示方式。P0.0P0.7连接数码管的段输出,P3.0、P3.1连接数码管的位输出,温度显示模块如下图:温度显示模块2.5 电机调速与控制模块设计电机调速是整个控制系统中的一个重要的方面。通过控制双向可控硅的导通角,使输出端电压发生改变,从而使施加在电风扇的输入电压发生改变,以调节风扇的转速,实现各档位风速的无级调速。2.5.1 电机调速原理可控硅的导通条件如下:1)阳-阴极间加正向电压;2)控制极-阴极间加正向触发电压;3)阳极电流IA 大于可控硅的最小维持电流IH。电风扇的风速
28、设为从高到低5、4、3、2、1档,各档风速都有一个限定值。在额定电压、额定功率下,以最高转速运转时,要求风叶最大圆周上的线速度不大于2150m/min。且线速度可由下列公式求得式中,V为扇叶最大圆周上的线速度(m/min),D为扇中的最大顶端扫出圆的直径(mm);n为电风扇的最高转速(r/min)。代入数据求得 1555r/min,取 =1250 r/min.又因为:取n1=875 r/min.则可得出五个档位的转速值: =1250r/min =1150r/min =1063r/min =980r/min =875r/min又由于负载上电压的有效值其中,u1为输入交流电压的有效值,为控制角。解
29、得: =0 t=0ms =23.5 t=1.70ms =46.5 t=2.58ms =61.5 t=3.43ms =76.5 t=4.30ms 以上计算出的是控制角和触发时间,当检测到过零点时,按照所求得的触发时间延时发脉冲,便可实现预期转速。2.5.2 电机控制模块硬件设计电路中采用了过零双向可控硅型光耦MOC3041 ,集光电隔离、过零检测、过零触发等功能于一身,避免了输入输出通道同时控制双向可控硅触发的缺陷, 简化了输出通道隔离2驱动电路的结构。所设计的可控硅触发电路原理图见图2-3 。其中RL即为电机负载,其工作原理是:单片机响应用户的参数设置, 在I/ O 口输出一个高电平, 经反向
30、器反向后, 送出一个低电平,使光电耦合器导通, 同时触发双向可控硅, 使工作电路导通工作。给定时间内,负载得到的功率为:式中: P 为负载得到的功率, kW; n 为给定时间内可控硅导通的正弦波个数; N 为给定时间内交流正弦波的总个数; U 为可控硅在一个电源周期全导通时所对应的电压有效值,V; I 为可控硅在一个电源周期全导通时所对应的电流有效值,A。由式(1) 可知,当U,I,N为定值时,只要改变U值的大小即可控制功率的输出,从而达到调节电机转速的目的。下图为电机的原理图:2-5-2 电机控制原理图第3章 软件设计与说明(包括流程图)3.1系统方案设计软件是单片机应用系统中的一个重要的组
31、成部分。一般计算机应用系统的软件包括系统软件和用户软件,而单片机应用系统中的软件只有用户软件,即应用系统软件。软件设计的关键是确定软件应完成的任务及选择相应的软件结构。根据系统软、硬件的功能分工,可确定出软件应完成什么功能。作为实现控制功能的软件应明确控制对象、控制信号、控制时序;作为实现处理功能的软件应明确输入是什么、要做什么处理(处理算法)、产生何种输出。本方案按照功能的不同可以把系统软件部分分成五大模块,每个独立的模块通过联系程序联系起来,再与硬件联系,从而形成一个完整的控制系统。系统的主要功能模块有:(1)主程序(2)传感器温度检测模块 (3)温度显示模块(4)按键控制模块(5)电机调
32、速模块3.2 主要程序流程图3.2.1 主程序流程图右图为主程序流程图。系统初始化,主程序便开始运行。3.2.2 数字温度传感器模块程序流程图本系统的运行程序采用汇编语言编写,采用模块化设计,整体程序由主程序和子程序构成。图3-2-2 数字温度传感器模块程序流程图如图3-2-2所示,主机控制DS18B20完成温度转换工作必须经过三个步骤:初始化、ROM操作指令、存储器操作指令。单片机所用的系统频率为12MHz。根据DS18B20初始化时序、读时序和写时序分别可编写4个子程序:初始化子程序、写子程序、读子程序、显示子程序。DS18B20芯片功能命令表如下:表2 DS18B20功能命令表命令 功能
33、描述 命令代码CONVERT 开始温度转换 44HREAD SCRATCHPAD 读温度寄存器(共9字节) BEH READ ROM 读DS18B20序列号 33HWRITE SCRATCHPAD 将警报温度值写如暂存器第2、3字节 4EH MATCH ROM 匹配ROM 55H SEARCH ROM 搜索ROM F0H ALARM SEARCH 警报搜索 ECHSKIP ROM 跳过读序列号的操作 CCHREAD POWER SUPPLY 读电源供电方式:0为寄生电源,1为外电源 B4H(该主要程序见程序清单)3.2.3显示程序流程图DSl8B20是一个典型的单总线传感器,其命令序列如下:第
34、一步:初始化;第三步:ROM命令(跟随需要交换的数据);第三步:功能命令(跟随需要交换的数据)。3.2.4 电动机程序设计原理以及流程图程序设计原理采用双向可控硅过零触发方式,由单片机控制双向可控硅的通断,通过改变每个控制周期内可控硅导通和关断交流完整全波信号的个数来调节负载功率,进而达到调速的目的。由于INT0信号反映工频电压过零时刻,因此只要在外中断0的中断服务程序中完成控制门的开启与关闭,并利用中断服务次数对控制量n进行计数和判断,即每中断一次,对n进行减1计数,如果n不等于0,保持控制电平为“1”,继续打开控制门;如n=0,则使控制电平复位为“0”,关闭控制门,使可控硅过零触发脉冲不再
35、通过。这样就可以按照控制处理得到的控制量的要求,实现可控硅的过零控制,从而达到按控制量控制的效果,实现速度可调。1)回路控制执行程序。主回路控制执行程序的任务是初始化数据存储单元,确定电机工作参数 /,并将其换算成“有效过零脉冲”的个数;确定中断优先级、开中断,为了保证正弦波的完整,工频过零同步中断INT0确定为高一级的中断源。2)断服务程序,执行中断服务程序时,首先保护现场,INT0中断标志置位,禁止主程序修改工作参数,然后开始减1计数,判断是否关断可控硅,最后INT0中断标志位清零,还原初始化数据,恢复现场,中断返回。(设1秒钟通过波形数N=100)(电动机中断程序见程序清单)第4章 调试
36、步骤、结果、使用说明系统的调试和运行,先将编好的程序写成原程序文件,人后经过汇编后生成目标文件,用仿真软件进行调试。1、- 开始菜单 - 所有程序 - Proteus 6 Professional - ISIS 6Professional。2、在桌面双击右面图标基本电路点击 Pick Devices按钮,(该按钮位于工作区左边的面板中,就是那个P按钮),这是会打开标题为Pick Devices的对话框单击 Pick Devices 对话框的OK按钮结束添加元件。3、在The Object Selector(元件列表框)单击选择所要添加的设备。4、设备选好之后,把设备放在ISIS Profess
37、ional界面内连接,然后选择元件的参数,电路原理图至此就完成了。5、编译程序先选存放位置:左键选中“Source”“Add/Remove Source Code Files”弹出一对话框“Code Generation Tool”的下拉箭头选中“ASEM51”,再点“New”会弹出一对话框,选存放位置4.ASM,然后左键点“打开”,会弹出是否新建的对话框,点“是”至此存放位置已选好了。开始输入程序:左键点“Source” “4.ASM”,在打开的“Source Editor”对话框内输入温度显示程序并保存。编译:左键选中“Source”“Build All”弹出“BUILD LOG”对话框中
38、出现no errors就可以了。6、仿真单击开始仿真启动程序。第5章 设计总结经过两个月的毕业实习,使我们与老师的交流面变广,与同学之间的合作意识增强,通过这次毕业设计使我们在这三年大学里所学的知识得以复习和巩固,同时也使我深刻认识到我们所学的内容是多么有限,学校生活的结束并不代表学习的结束,要想真正的有所发展,还将要不断的学习和进取。在这次设计中我学到了不少新知识,了解了很多的设计思想与方法,我也将继续努力,不断完善和充实自己。最后我们要感谢含辛茹苦、默默的在后面辅导我们的老师, 我们的成功离不开你的默默的努力和鞭策,在以后的工作和学习过程中我们将牢记你的指导和教诲,使自己在事业上有更好的发
39、展!附录A:系统与原理图:附录B 程序清单2.1 主程序 KEY_AUTO BIT P1.0; 定义自动按钮端口 KEY_HAND BIT P1.1;定义手动按钮端口 KEY_FOUND BIT P1.2;定义设定按钮 KEY_ADD BIT P1.3;定义设定加按钮 KEY_DEC BIT P1.4;定义设定减按钮 KEY_ONE BIT P1.5;定义高档按钮 KEY_TWO BIT P1.6;定义中档按钮 KEY_THREE BIT P1.7;定义低档按钮 OUTPUT BIT P2.7;定义电动机输出端口 ORG 0000H LJMP MAIN ORG 0100H ORG 001BHM
40、AIN: MOV SP,#60H MOV 4AH,#22;单片机复位后默认设定温度为22摄氏度 CLR OUTPUT; 上电后输出停止MAAI: LCALL TEMPER1;调用检测温度子程序 LCALL DISPLAY;调用显示子程序 LCALL KEYSCAN;调用按键子程序 LCALL OUTPUT ;调用电动机输出子程序 SJMP MAIN2.2 温度检测主要程序如下:TEMPER1: TEMPER_L EQU 29H ;用于保存读出温度的低8位 TEMPER_H EQU 28H ;用于保存读出温度的高8位 FLAG EQU 38H ;是否检测到DS18B20标志位 A_BIT EQU
41、 20H ;数码管个位数存放内存位置 B_BIT EQU 21H ;数码管十位数存放内存位置 DQ BIT P3.4MAIN: ACALL RE_TEMPER ;调用读温度子程序 ACALL TURN ;调用转化子程序 ACALL DISPLAY JMP MAIN;读出转换后的温度值RE_TEMPER: SETB DQ LCALL INIT_1820 ;先复位DS18B20 JB FLAG,ST RET 判断DS1820是否存在?若DS18B20不存在则返回ST: MOV A,#0CCH; 跳过ROM匹配 LCALL WRITE_1820 MOV A,#44H ;发出温度转换命令 LCALL WRITE_1820 ;这里通过调用显示子程序实现延时;一段时间,等待AD转换结束,12位的话750微秒 LCALL DISPLAY LCALL INIT_1820 ;准备读温度前先复位 MOV A,#0CCH ;跳过ROM匹配 LCALL WRITE_1820 MOV A,#0BEH ;发出读温度命令 LCALL WRITE_1820 LCALL READ_1820 ;将读出的温度数据保存到35H/36H RET;这是DS18B20复位初始化子程序INIT_1820: SETB DQ NOP CLR DQ;主机发出延时537微秒的复位低脉冲 MOV R1,#3