基于单片机的温控风扇的设计摘要温控风扇在现代社会中的生产以及人们的日常生活中都有广泛的应用,如工业生产中大型机械散热系统中的风扇、现在笔记本电脑上的广泛应用的智能CPU风扇等。
本文设计了基于单片机的温控风扇系统,采用单片机作为控制器,利用温度传感器DS18B20作为温度采集元件,并根据采集到的温度,通过一个达林顿反向驱动器ULN2803驱动风扇电机。
根据检测到的温度与系统设定的温度的比较实现风扇电机的自动启动和停止,并能根温度的变化自动改变风扇电机的转速,同时用LED八段数码管显示检测到的温度与设定的温度。
关键词:单片机、DS18B20、温控、风扇第一章整体方案设计1.1前言在现代社会中,风扇被广泛的应用,发挥着举足轻重的作用,如夏天人们用的散热风扇、工业生产中大型机械中的散热风扇以及现在笔记本电脑上广泛使用的智能CPU风扇等。
而随着温度控制技术的发展,为了降低风扇运转时的噪音以及节省能源等,温控风扇越来越受到重视并被广泛的应用。
在现阶段,温控风扇的设计已经有了一定的成效,可以使风扇根据环境温度的变化进行自动无级调速,当温度升高到一定时能自动启动风扇,当温度降到一定时能自动停止风扇的转动,实现智能控制。
随着单片机在各个领域的广泛应用,许多用单片机作控制的温度控制系统也应运而生,如基于单片机的温控风扇系统。
它使风扇根据环境温度的变化实现自动启停,使风扇转速随着环境温度的变化而变化,实现了风扇的智能控制。
它的设计为现代社会人们的生活以及生产带来了诸多便利,在提高人们的生活质量、生产效率的同时还能节省风扇运转所需的能量。
本文设计了由ATMEL公司的8052系列单片机AT89C52作为控制器,采用DALLAS公司的温度传感器DS18B20作为温度采集元件,并通过一个达林顿反向驱动器ULN2803驱动风扇电机的转动。
同时使系统检测到得环境温度以及系统预设的温度动态的显示在LED数码管上。
根据系统检测到得环境温度与系统预设温度的比较,实现风扇电机的自动启停以及转速的自动调节。
1.2系统整体设计本设计的整体思路是:利用温度传感器DS18B20检测环境温度并直接输出数字温度信号给单片机AT89C52进行处理,在LED数码管上显示当前环境温度值以及预设温度值。
其中预设温度值只能为整数方式,检测到的当前环境温度可精确到小数点后一位。
同时采用PWM脉宽调制方式来改变直流风扇电机的转速。
并通过两个按键改变预设温度值,一个提高预设温度,另一个降低预设温度值。
系统结构框图如下:结论本次设计的系统以单片机为控制核心,以温度传感器DS18B20检测环境温度,实现了根据环境温度变化调节不同的风扇电机转速,在一定范围能能实现转速的连续调节,LED数码管能连续稳定的显示环境温度和设置温度,并能通过两个独立按键调节不同的设置温度,从而改变环境温度与设置温度的差值,进而改变电机转速。
实现了基于单片机的温控风扇的设计。
本系统设计可推广到各种电动机的控制系统中,实现电动机的转速调节。
在生产生活中,本系统可用于简单的日常风扇的智能控制,为生活带来便利;
在工业生产中,可以改变不同的输入信号,实现对不同信号输入控制电机的转速,进而实现生产自动化,如在电力系统中可以根据不同的负荷达到不同的电压信号,再由电压信号调节不同的发电机转速,进而调节发电量,实现电力系统的自动化调节。
综上所述,该系统的设计和研究在社会生产和生活中具有重要地位。
附录2:程序代码#include#defineucharunsignedchar#defineuintunsignedintsbitDQ=P1^7;sbitkey1=P1^3;sbitkey2=P1^4;sbitdianji=P3^1;floatff;uinty3;ucharshi,ge,xiaoshu,sheding=20,gaonum,dinum;ucharcodedispcode[]={//段码0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};ucharcodetablel[]={//带小数点的段码0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};uchardispbitcode[]={//位选0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};uchardispbuf[8]={0,0,0,0,0,0,0,0};voidDe
2018/6/1 19:43:36 624KB 单片机 温度控制 风扇
1
sht30的基于c51单片机驱动程序:#include#include#include"I2C.h"#include"SHT30.h"#defineuintunsignedint#defineucharunsignedcharvoiddisplay();unsignedcharcodetableduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};uchardataDIS_ROME[6]={0,0,0,0,0,0};//显示缓存区(4)ucharDISP=0;//缓存区指针ucharSCANF=0xDF;//扫描指针sbitLED1=P1^0;sbitLED2=P1^1;sbitLED3=P1^2;sbitLED4=P1^3;sbitVOC_A=P3^5;sbitVOC_B=P3^6;sbitdula=P2^6;//IO口定义sbitwela=P2^7;sbitkey=P3^4;sbitbeep_dr=P2^3;uintpm1=0;uintpm2=0;uintpm10=0;ucharvr=0;uintintrcnt=0;bitF_1HZ;uintvoice_time_cnt;ucharUart_Buf;ucharRec_Addr=0;ucharmode=0;ucharRec_Uart=0;ucharRecive_Buf[30]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};#definekeyP34#defineconst_key_time150unsignedcharucKeySec=0;//被触发的按键编号unsignedintuiKeyTimeCnt1=0;//按键去抖动延时计数器unsignedcharucKeyLock1=0;//按键触发后自锁的变量标志unsignedchardisplaycnt=0;voidkeyscan(){if(key==1)//IO是高电平,说明按键没有被按下,这时要及时清零一些标志位{ucKeyLock1=0;//按键自锁标志清零uiKeyTimeCnt1=0;//按键去抖动延时计数器清零,此行非常巧妙,是我实战中摸索出来的。
}elseif(ucKeyLock1==0)//有按键按下,且是第一次被按下{uiKeyTimeCnt1++;//累加定时中断次数if(uiKeyTimeCnt1>const_key_time1){uiKeyTimeCnt1=0;ucKeyLock1=1;//自锁按键置位,避免不断触发ucKeySec=1;//触发1号键}}}voidkeyservice(){if(ucKeySec){displaycnt=!displaycnt;}ucKeySec=0;}voidUartInit(void)//9600bps@12.000MHz{TMOD=0x01;//设置定时器0为工作方式1TH0=0xf8;//重装初始值(65535-500)=65035=0xfe0bTL0=0x2f;SCON=0x50;TMOD=0X21;IP=0x10;//把串口中断设置为最高优先级,EA=1;ES=1;ET0=1;TR0=1;}voidT0_time(void)interrupt1//定时中断{TF0=0;//清除中断标志TR0=0;//关中断keyscan();keyservice();display();
2022/9/6 21:13:46 4KB sht30
1
系统介绍图书馆管理系统主要的目的是实现图书馆的信息化管理。
图书馆的主要业务就是新书的借阅和归还,因而系统最核心的功能便是实现图书的借阅和归还。
此外,还需要提供图书的信息查询、读者图书借阅情况的查询等功能。
项目实施后,能够提高图书馆的图书借阅、归还流程,提高工作效率。
整个项目需要在两个月的时间内交付用户使用。
操作注意事项(1)本系统的用户名为:tsoft,密码为:111(2)读者类型不同,可借图书的本数也有所区别。
操作流程(1)用户登录图书馆管理系统后,可看到图书借阅排行榜,通过排行榜可以看出借阅图书的名称、图书类型、借阅次数等相关信息。
(2)单击“系统设置”/“图书馆信息”命令,对图书馆信息进行设置操作。
(3)单击“系统设置”/“管理员设置”命令,对管理员信息进行添加、权限设置、查询及删除操作。
(4)单击“系统设置”/“参数设置”命令,对办证费用及有效期限信息进行添加操作。
(5)单击“系统设置”/“书架设置”命令,对书架信息进行添加、修改及删除操作。
(6)单击“读者管理”/“读者类型管理”命令,对读者类型信息进行添加、修改及删除操作。
(7)单击“读者管理”/“读者档案管理”命令,对读者信息进行添加、修改及删除操作。
(8)单击“图书管理”/“图书类型设置”命令,对图书类型信息进行添加、修改及删除操作。
(9)单击“图书管理”/“图书档案管理”命令,对图书信息进行添加、修改及删除操作。
(10)单击“图书借还”/“图书借阅”命令,对图书借阅信息添加操作。
(11)单击“图书借还”/“图书续借”命令,对图书续借信息进行添加操作。
(12)单击“图书借还”/“图书归还”命令,对图书归还信息进行添加操作。
(13)单击“系统查询”/“图书档案查询”命令,对图书档案信息进行查询操作。
(14)单击“系统查询”/“图书借阅查询”命令,对借阅的图书信息进行查询操作。
(15)单击“系统查询”/“借阅到期提醒”命令,对借阅到期提醒信息进行查询操作。
(16)单击“更改口令”按钮,对当前的用户密码进行修改操作。
(17)单击“退出系统”按钮,退出当前操作系统。
2022/9/5 10:52:42 1.9MB 图书 图书馆 图书管理 图书系统
1
C程序设计(第四版)学习辅导.pdf下载地址:http://download.csdn.net/source/3398965。
《C程序设计(第四版)》,作者:谭浩强,出版社:清华大学出版社,ISBN:9787302224464,PDF格式,大小19.1MB,本资源pdf带有书签,方便读者阅读。
内容简介:由谭浩强教授著、清华大学出版社出版的《c程序设计》是一本公认的学习c语言程序设计的经典教材。
根据c语言的发展和计算机教学的需要,作者在《c程序设计(第三版)》的基础上进行了修订。
本书按照c语言的新标准c99进行介绍,所有程序都符合c99的规定,使编写程序更加规范;
对c语言和程序设计的基本概念和要点讲解透彻,全面而深入;
按照作者提出的“提出问题—解决问题—归纳分析”三部曲进行教学、组织教材;
本书的每个例题都按以下几个步骤展开:提出任务—解题思路—编写程序—运行程序—程序分析—有关说明。
符合读者认知规律,容易入门与提高。
  本书内容先进,体系合理,概念清晰,讲解详尽,降低台阶,分散难点,例题丰富,深入浅出,文字流畅,通俗易懂,是初学者学习c程序设计的理想教材,可作为高等学校各专业的正式教材,也是一本自学的好教材。
本书还配有辅助教材《c程序设计(第四版)学习辅导》。
目录:第1章程序设计和c语言11.1什么是计算机程序11.2什么是计算机语言11.3c语言的发展及其特点31.4最简单的c语言程序51.4.1最简单的c语言程序举例61.4.2c语言程序的结构101.5运行c程序的步骤与方法121.6程序设计的任务14习题15第2章算法——程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用ns流程图表示算法282.4.5用伪代码表示算法31.2.4.6用计算机语言表示算法322.5结构化程序设计方法34习题36第章最简单的c程序设计——顺序程序设计373.1顺序程序设计举例373.2数据的表现方式及其运算393.2.1常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3c语句573.3.1c语句的作用和分类573.3.2最基本的语句——赋值语句593.4数据的输入输出653.4.1输入输出举例653.4.2有关数据输入输出的概念673.4.3用printf函数输出数据683.4.4用scanf函数输入数据753.4.5字符数据的输入输出78习题82第4章选择结构程序设计854.1选择结构和条件判断854.2用if语句实现选择结构874.2.1用if语句处理选择结构举例874.2.2if语句的一般方式894.3关系运算符和关系表达式914.3.1关系运算符及其优先次序914.3.2关系表达式924.4逻辑运算符和逻辑表达式924.4.1逻辑运算符及其优先次序934.4.2逻辑表达式944.4.3逻辑型变量964.5条件运算符和条件表达式974.6选择结构的嵌套994.7用switch语句实现多分支选择结构1024.8选择结构程序综合举例105习题111第5章循环结构程序设计1145.1为什么需要循环控制1145.2用while语句实现循环1155.3用do…while语句实现循环1175.4用for语句实现循环1205.5循环的嵌套1245.6几种循环的比较1255.7改变循环执行的状态1255.7.1用break语句提前终止循环1265.7.2用continue语句提前结束本次循环1275.7.3break语句和continue语句的区别1285.8循环程序举例131习题140第6章利用数组处理批量数据1426.1怎样定义和引用一维数组1426.1.1怎样定义一维数组1436.1.2怎样引用一维数组元素1446.1.3一维数组的初始化1456.1.4一维数组程序举例1466.2怎样定义和引用二维数组1486.2.1怎样定义二维数组1496.2.2怎样引用二维数组的元素1506.2.3二维数组的初始化1516.2.4二维数组程序举例1526.3字符数组1546.3.1怎样定义字符数组154
1
数字电路第10版中文ThomasL.Floyd,留意是中文版的教材,解压密码为111
2016/11/17 12:31:29 116.51MB pdf
1
摘要:.NET源码,商务商城,电子商务网站  B2C网站源码,数据库使用的是MSSQL2000,数据库备份文件在App_Data目录下,系统管理员用户名为:tsoft,密码为:111。
注册登录后,对网站留言和查看我的留言操作。
这款B2C电子商务网站系统具备网上在线支付功能,用到了工商银行提供的独一接口,所有前台的信息都在后台进行、添加、修改、删除等管理操作,在“订单管理”树状菜单中,对订单信息进行管理、删除、查看以及搜索操作。
在“库存管理”树状菜单中,对商品信息和类别信息进行添加、修改、删除、查看以及搜索操作。
2021/5/26 1:17:13 1.31MB ASP.NET源代码 商务商城
1
0111和田玉(玉器发卖商城源代码)
2021/6/26 7:46:18 10.75MB 0111和田玉(玉器销售商城源代
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡