资源简介

内含proteus仿真电路图以及程序源码。程序主要实现的功能有两个,第一,检测当前环境温度,显示在显示屏上,控制风扇转速有两种模式,分为自动和手动;自动控制模式由当前检测的环境温度决定,可以通过按键设置温度的上下限,实现温控不同风扇转速档位;手动模式为按键控制电机的转速,一共有9档,其中,0档为停止,8档最最快转速,控制电机转速用PWM脉宽控制,希望对大家有帮助

资源截图

代码片段和文件信息

/******************************************** (C) COPYRIGHT 2018 Rooftop Technology ***********************************************************
 * 文件名  :main.c
 * 描述    :温控电机转速;分为自动手动两种模式,
 * 自动模式:通过上下限,控制分为3挡,低于下限,0档,电机停止,温度介于上下限之间,1档,中速,温度高于上限,2档,全速运行
 * 手动模式:共9个档位,通过加减,控制档位增减,其中,0档位停止,8档位全速运行
 * 手动与自动模式切换由按键P12切换,开机默认自动模式,按下后,1602第一行P1后面显示 * 代表是手动模式,自动模式显示 空格
 *          
 * 实验平台:STC51单片机
 *
 * 作者    :天台网络科技工作室 
 * Q Q     :862039937
 * 闲鱼    :https://trade.taobao.com/trade/detail/tradeSnap.htm?spm=a1z09.1.0.0.2bee36068zgaEk&tradeID=223816225614320156&snapShot=true
**********************************************************************************************************************************************/


#include
#include  //包含头文件
#include“timer1.h“


#define LCD1602 P0
#define uchar unsigned char
#define uint unsigned int  //宏定义

/***********************************************************************************************************/


sbit KEY_MODE = P1^2;

bit mode_flag = 0; //手动与自动

void key_autoorhand();
void key_hand();
/***********************************************************************************************************/

//////////////////////
//sbit dj=P1^0;//电机控制端接口
sbit DQ=P1^6;//温度传感器接口
//////////按键接口/////////////////////////////////
sbit key1=P3^5;//设置温度
sbit key2=P3^6;//温度加
sbit key3=P3^7;//温度减
//////////////////////////////////////////////////////
sbit RS = P2^7;
sbit EN = P2^6;
uint wen_du; //温度变量  
uint shangxia; //对比温度暂存变量
uchar dang;//档位显示
uchar Mode=0;
uchar d1d2d3;//显示数据暂存变量
uchar code tab1[]={“ P:   T:   .  C “};
uchar code tab2[]={“TH:   C  TL:   C“};
void delay(uint ms) //延时函数,大约延时
{
uchar x;
for(ms;ms>0;ms--)
for(x=50;x>0;x--);
}
/***********ds18b20延迟子函数(晶振12MHz )*******/ 
void delay_18B20(uint i)
{
while(i--);
}
/**********ds18b20初始化函数**********************/
void Init_DS18B20() 
{
 uchar x=0;
 DQ=1;          //DQ复位
 delay_18B20(8);  //稍做延时
 DQ=0;          //单片机将DQ拉低
 delay_18B20(80); //精确延时 大于 480us
 DQ=1;          //拉高总线
 delay_18B20(14);
 x=DQ;            //稍做延时后 如果x=0则初始化成功 x=1则初始化失败
 delay_18B20(20);
}
/***********ds18b20读一个字节**************/  
uchar ReadOneChar()
{
uchar i=0;
uchar dat=0;
for (i=8;i>0;i--)
 {
  DQ=0; // 给脉冲信号
  dat>>=1;
  DQ=1; // 给脉冲信号
  if(DQ)
  dat|=0x80;
  delay_18B20(4);
 }
  return(dat);
}
/*************ds18b20写一个字节****************/  
void WriteOneChar(uchar dat)
{
  uchar i=0;
  for (i=8;i>0;i--)
  {
   DQ=0;
  DQ=dat&0x01;
     delay_18B20(5);
  DQ=1;
     dat>>=1;
}
}
/**************读取ds18b20当前温度************/
void ReadTemperature()
{
uchar a=0;
uchar b=0;
uint t=0;
float tt=0;
Init_DS18B20();
WriteOneChar(0xCC);     // 跳过读序号列号的操作
WriteOneChar(0x44);  // 启动温度转换
delay_18B20(100);       // this message is wery important
Init_DS18B20();
WriteOneChar(0xCC);  //跳过读序号列号的操作
WriteOn

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件      186688  2018-10-18 10:02  final.DSN
     文件        1078  2018-10-18 10:20  final.PWI
     文件      186688  2018-10-18 10:02  Last Loaded final.DBK
     目录           0  2018-10-20 10:40  程序\
     目录           0  2018-10-20 10:40  程序\PWM\
     文件        1988  2018-10-18 10:19  程序\PWM\timer1.c
     文件        1675  2018-10-18 10:14  程序\PWM\timer1.h
     文件        6328  2018-10-18 10:19  程序\timer1.lst
     文件        5661  2018-10-18 10:19  程序\timer1.obj
     文件       25228  2018-10-18 10:20  程序\温控风扇 程序
     文件        7644  2018-10-18 10:20  程序\温控风扇 程序.hex
     文件          57  2018-10-18 10:20  程序\温控风扇 程序.lnp
     文件       31431  2018-10-18 10:20  程序\温控风扇 程序.M51
     文件        4746  2018-10-18 10:20  程序\温控风扇 程序.plg
     文件       57643  2018-10-18 10:20  程序\温控风扇 程序.uvopt
     文件       13441  2018-10-16 17:52  程序\温控风扇 程序.uvproj
     文件       57643  2018-10-18 10:03  程序\温控风扇 程序_uvopt.bak
     文件       13267  2018-03-20 15:42  程序\温控风扇 程序_uvproj.bak
     文件       10810  2018-10-18 10:20  程序\温控风扇程序.c
     文件       25000  2018-10-18 10:20  程序\温控风扇程序.LST
     文件       22979  2018-10-18 10:20  程序\温控风扇程序.OBJ

评论

共有 条评论