1、基于51单片机智能温度控制器设计与实现论文(此文档为word格式,下载后您可任意编辑修改!)题目 基于51单片机智能温度控制器设计与实现 本题目要求设计者以智能温度控制器为对象,完成硬件系统和软件设计并实现其功能。1.熟悉任务,分析课题要求,熟悉温度控制器的原理,进行方案设计; 2.熟悉硬件设计技术基础、单片机应用系统设计要领,根据本课题的特点选择相应器件;3.搜集素材,优选素材,整理素材;4.完成所硬件电路的装配和调试,编写程序实现其功能;5.撰写毕业设计论文。6.参加毕业设计论文答辩。毕业设计(论文)原创性声明和使用授权说明原创性声明使用授权说明学位论文原创性声明本人郑重声明:所呈交的论文
2、是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。摘 要 近年来,随着单片机档次的不断提高,功能的不断完善,其应用日趋成熟,应用领域日趋扩大,特别是工业测控、尖端武器和日用家电等领域更是因为有了单片机而生辉增色.单片机应用技术已成为一项新的工程应用技术.本毕业设计正是以AT89S51单片机为中心设计的温度控制器.虽然温度控制器电路功能比较简单,但是设计它的意义在于能使学生将所学到的知识综合应用,提高动
3、手实践能力.本系统采用AT89S51单片机作为核心,控制系统的模块分别为:单片机最小系统、显示模块、温度设定模块。当温度传感器感应到温度变化时,本设计可以判断温度是否设定范围之内,若不在,蜂鸣器发出警报。本设计的系统实用性强、判断精确、操作简单、扩展功能强.关键词: 温度控制器 单片机 AT89S51ABSTRACTIn recent years, with the continuous improvement of the microcontroller class, functional improvement, its application matures, application f
4、ield, especially the increasing industry measurement and control, cutting-edge weapons and daily technology technology. This graduation design is designed for the center with AT89S51. Although temperature controller is simpler, but design its meaning lies in the can make students will learn knowledg
5、e comprehensive application, improving practical capability. keywords: Temperature controller single-chip microcomputer AT89S51第一章 绪论.31.1 单片机的发展.31.2 智能温度控制器的背景.41.3 智能温度控制器的意义.4第二章 整体设计.72.1 单片机的选择.7 2.1.1 单片机管脚功能说明.72.2 模块性能分析.9 2.2.1 按键.9 2.2.2 数码管.9第三章 硬件电路设计.133.1 最小系统设计.13 3.1.1 时钟电路.13 3.1.2
6、 复位电路.133.2 数码管显示电路.143.3 按键电路的设计.143.4 DS18B20 的简介.15 3.4.1 DS18B20 概述.15 3.4.2 DS18B20 技术性能描述.15 3.4.3 DS18B20 引脚.163.5 智能温度控制器实物图.16第四章 软件设计.194.1 流程图设计.194.2 主程序.21第五章 软硬件调试.315.1 硬件调试.315.2 软件调试.31 第六章 总结与展望.33第七章 结束语.35致谢.37参考文献.39附录.41附录A.41附录B.42第一章 绪 论1.1 单片机的发展单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具
7、有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种IO口和中断系统、定时器计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、AD转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。 由于单片机具有控制功能强,体积小,成本低,功耗小等一系列的特点,使它在工业控制,智能仪器,节能技术改造,通信系统,信号处理及家用电器产品中都得到广泛的应用,随着数字技术的发展及单片机在电子系统中的广泛应用,在很大程度上改变了传统的设计方法。以往采用模拟电路,数字电路实现的电路系统,大部分功能单元都可以通过对单片机硬件功能的扩展及专用程序的开发来实现系统提出的要求,这
8、意味着许多电路设计问题将转化为程序设计问题。这种用模拟技术,数字技术的综合设计系统,用软件取代硬件实现和提供系统系能的新的设计思想体系,一般称之为微控制技术。在微控制系统的设计中,系统设计和软件设计起着关键性的作用。1.2 智能温度控制器的背景二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的
9、“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。在实际生活中,比如空调的温度控制系统等,为了使其能够周围环境温度在适宜温度之内,必须要有一个系统来完成这个任务。若在实际生活之中,只靠人的感觉是很难判断
10、出温度的确定值的。利用单片机编程来设计智能温度控制器,可以使以上问题得以解决,即使两个温度仅仅相差零点几度,也能轻松的判断出目前温度是否在适宜温度范围。本文主要介绍了智能温度控制器的工作原理及设计,以及它的实际用途。1.3 智能温度控制器的意义本系统采用单片机作为整个控制核心。控制系统的模块为:单片机最小系统模块、显示模块、温度设定模块。该系统利用一个数码管来完成显示功能;用温度传感器来获取外界温度,在数码管上显示此时温度值,从而实现温度测量的过程。在设计应用中,为了知道此时确定的温度值是否处于所设定的理想范围,必须要设计一个系统来完成这个任务。如果在温度测量中,靠自身感觉是几乎无法判断出此时
11、的确切温度的。利用单片机系统来设计温度器,使以上问题得以解决,即使两个时刻的温度相差为零点几度,也可测量出准确温度。系统工作原理本系统采用AT89S51单片机作为核心。控制系统的模块分别为:单片机最小系统模块、显示模块、温度设定模块。本文主要介绍了单片机智能温度控制器设计及工作原理,以及它的实际用途。第二章 整 体 设 计2.1 单片机的选择AT89S51是一个低功耗,高性能COMS8位单片机,片内含4K Byte ISP(In-system programmable)的可反复擦写1000次的Flash的只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51
12、指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器SP Flash存储单元,AT89S51在众多嵌入式控制应用系统中得到广泛应用。2.1.1单片机管脚功能说明2VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向IO口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 图2.1 AT89S51的管脚图P1口:P1口是一个内部提供上拉电阻的8位双向IO口,P1口缓冲器能接收输
13、出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向IO口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存
14、器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向IO口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口除了作为普通IO口,还有第二功能: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(外部数据存储
15、器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 IO口作为输入口时有两种工作方式,即所谓的读端口与读引脚。读端口时实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器。只有读端口时才真正地把外部的数据读入到内部总线。89C51的P0、P1、P2、P3口作为输入时都是准双向口。除了P1口外P0、P2、P3口都还有其他的功能。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平。ALEPROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,
16、ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的16。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。 EAVPP:当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),
17、不管是否有内部程序存储器。注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。2.2 模块性能分析基于单片机的智能温度控制器的设计的主要模块为AT89S51、按键及数码管显示部分.AT89S51在上一部分已经介绍,这一部分主要介绍按键及数码管显示部分.2.2.1 按键本模块中的按键由设定键、上调键、下调键、确定键和复位键构成。设定键用来设定温度上下限,上调下调键用来设置温度上下限的准确数值。2.2.2
18、数码管数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电
19、平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。译码器的逻辑功能是将每一个输入的二进制代码译成对应的输出高、低电平信号,是编码器的反操作。数码管可以用TTL或CMOS集成电路直接驱动,所以使用译码器将BCD编码译成数码管所需要的驱动信号,以便使数码管用十进制数字显示出BCD编码表示的数值。图2.2 七段数码管应根据实际情况决定究竟采用共阳还是共阴方式,其基本原则是:若单片机口线直接驱动数码管各段,最好采用共阳极数码管,因为8051系列单片机口线输出高电平时,输出的电流很小,数码管不会太亮。若数码管通过驱动芯片与单片机相连,就要看驱动芯片对数码管极性的要求了点亮显示器分为静态和
20、动态显示两种方法。所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或是截止。例如,其段数码管的a、b、c、d、e、f导通,g截止,则显示0.这对这种显示方式每一位都要有一个8位输出口控制,所占硬件较多,一般用于显示位数较少(很少)的场合。当位数较多时,用静态显示所需的IO过多,一般采用动态显示方法。所谓动态显示,就是逐位地轮流点亮各位显示器(扫描),对于每一位显示器而言,每个一段时间点亮一次。显示器的点亮既与点亮时的导通电流有关,也与点亮时间和间隔时间比例有关。调整电流和时间参数,可是实现亮度较高、较为稳定的显示,同时可减少工作电流中的COM是选通位,对于共阳极数码管,当a
21、、b、c、d、e、f、g、=P17;bit set=0;bit Flag=0;void key_to1();void key_to2();void delay(uint);void key();void Show();void delay(uint num) while(num) ;Init_DS18B20(void) uchar x=0; DATA = 1; delay(10); DATA = 0; delay(80); DATA = 1; delay(20); x=DATA; delay(30);ReadOneChar(void) uchar i=0; uchar dat = 0; for
22、 (i=8;i0;i-) DATA = 0; dat=1; DATA = 1; if(DATA) data=0x80; delay(8); return(dat);WriteOneChar(unsigned char dat) uchar i=0; for (i=8; i0; i) DATA = 0; delay(10); DATA = 1; dat=1; delay(8);int ReadTemperature(void) uchar a=0; uchar b=0; int t=0; float tt=0; Init_DS18B20(); WriteOneChar(0xCC); WriteO
23、neChar(0x44); Init_DS18B20(); WriteOneChar(0xCC); WriteOneChar(0xBE); a=ReadOneChar(); b=ReadOneChar(); t=b; t=8; t=t|a; tt=t*0.0625; t= tt*10+0.5; return(t);void display00() dd=(temp-1); buf1=dd100; buf2=dd100; buf3=dd%10010; buf0=dd%10; for(j=0;j5) P2=0xff; P0=0x00; P2=0xfd; P0=0x80; delay(100); P
24、2=0xff; P0=0x00; P2=0xf7; P0=0x40; delay(100); P2=0xff; P0=0x00; P2=0xfb; P0=tablebuf2; delay(100); P2=0xff; P0=0x00; P2=0Xfd; P0=tablebuf3; delay(100); P2=0xff;P0=0x00;P2=0Xfe; P0=tablebuf0; delay(100); P2=0xff; void display() buf1=temp1000; buf2=temp100%10; buf3=temp%10010; buf0=temp%10; for(j=0;j
25、3) P2=0xff; P0=0x00; P2=0xfd; P0=0x80; delay(300); P2=0xff; P0=0x00; P2=0xf7; P0=tablebuf1; delay(300); P2=0xff; P0=0x00; P2=0xfb; P0=tablebuf2; delay(300); P2=0xff; P0=0x00; P2=0Xfd; P0=tablebuf3; delay(300); P2=0xff; P0=0x00; P2=0Xfe; P0=tablebuf0; delay(300); P2=0xff; void key() if(k1=1) delay(20); if(k1=1) while(k1=1) key_to1(); for(n=0;n8;n) Show(); if(k2=1) delay(20); if(k2=1) while(k2=1) key_to2(); for(n=0;n8;n) Show(); if(k3=1) TR0=1; temp=ReadTemper
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1