基于单片机的温控风扇控制设计初稿陈军平 - 图文(5)

2019-08-03 14:09

图3-7 风扇电机驱动与调速电路

系统选用的风扇电机为12直流无刷电机,达林顿反向驱动器ULN2803输入TTL信号为5V或CMOS信号为6~15V时,输出的最大电压为50V,最大电流为500mA,工作温度范围为0~70℃。本系统中单片机I/O口输出的TTL信号为5V,因此此风扇电机可以用ULN2803来驱动。 3.2.6 电路总图

电路总图主要包括系统复位与晶振电路、独立按键连接电路、LCD1602液晶显示电路、温度采集电路、风扇电机驱动与调速电路等,如图3-8所示。

15

图3-8 电路总图

16

第四章 软件设计

4.1 程序设置

程序设计部分主要包括主程序、DS18B20初始化函数、DS18B20温度转换函数、温度读取函数、按键扫描函数、数码管显示函数、温度处理函数以及风扇电机控制函数。DS18B20初始化函数完成对DS18B20的初始化;DS18B20温度转换函数完成对环境温度的实时采集;温度读取函数完成主机对温度传感器数据的读取及数据换算,按键扫描函数则根据需要完成初值的加减设定;温度处理函数对采集到的温度进行分析处理,为电机转速的变化提供条件;风扇电机控制函数则根据温度的数值完成对电机转速及启停的控制。主程序流程图如图4-1所示。

开始 调用按键扫描函数 程序初始化 调用LCD1602显示函数 调用DS18B20初始化函数 调用温度处理函数 调用DS18B20温度转换函数 调用风扇电机控制函数 调用温度读取函数 结束 图4-1 主程序图

17

第五章 系统调试

4.1.1 程序代码

C51 COMPILER V9.01 温控风扇程序 05/02/2016 13:13:23 PAGE 1

C51 COMPILER V9.01, COMPILATION OF MODULE 蝊控风扇程序 OBJECT MODULE PLACED IN 温控风扇程序.OBJ

COMPILER INVOKED BY: D:\\Keil uVision4\\C51\\BIN\\C51.EXE 温控风扇程序.c BROWSE DEBUG OBJECTEXTEND

line level source

1 #include 2 #include

3 #include 4 #define uchar unsigned char 5 #define uint unsigned int 6 ////////////////////

7 sbit dj=P1^0;//电机控制端接口

8 sbit DQ=P1^6;//温度传感器接口P1^6 9 //////////按键接口///////////////////////////////// 10 sbit key1=P3^5;//设置温度 11 sbit key2=P3^6;//温度加

12 sbit key3=P3^7;//温度减 P3^7 13

14 sbit Beep=P1^1; //蜂鸣器 15

16 uint wen_du; 17 uchar gao,di;//pwm

18 uint shang,xia; //对比温度暂存变量 19 uchar dang;//档位显示 20 uchar flag;

21 uchar d1,d2,d3;//显示数据暂存变量 22

23 uchar xianshi[6]={0}; 24

25 void delay(uint ms) 26 {

27 1 uchar x;

28 1 for(ms;ms>0;ms--)

29 1 for(x=10;x>0;x--); 30 1 }

31 /***********ds18b20延迟子函数(晶振12MHz )*******/

18

32 void delay_18B20(uint i) 33 {

34 1 while(i--); 35 1 }

36 /**********ds18b20初始化函数**********************/ 37 void Init_DS18B20(void) 38 {

39 1 uchar x=0;

40 1 DQ=1; //DQ复位 41 1 delay_18B20(8); //稍做延时

42 1 DQ=0; //单片机将DQ拉低 43 1 delay_18B20(80); //精确延时 大于 480us 44 1 DQ=1; //拉高总线 45 1 delay_18B20(14);

46 1 x=DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败

47 1 delay_18B20(20); 48 1 }

49 /***********ds18b20读一个字节**************/ 50 uchar ReadOneChar(void) 51 {

52 1 uchar i=0; 53 1 uchar dat=0; 54 1 for (i=8;i>0;i--) 55 1 {

19


基于单片机的温控风扇控制设计初稿陈军平 - 图文(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:江南大学化工原理考研题库(计算题)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: