51单片机汽车车窗除霜系统设计案例

发布者:雅逸之风最新更新时间:2023-08-30 来源: elecfans关键字:51单片机  汽车车窗 手机看文章 扫描二维码
随时随地手机看文章

一、功能简介


本项目使用Proteus8.12仿真51单片机控制器,使用LCD1602显示模块、光线传感器、DS18B20温度传感器、PCF8691 ADC模块、继电器加热模块等。



主要功能:


系统运行后,LCD1602显示温度和光线强度值;


当车窗光线强度低于一定值,且车窗温度低于一定值,车窗开启加热;当光线强度达到要求或者温度达到要求,关闭加热。


主要功能如下:


(1)温度/光线检测;


(2)LCD1602显示;


(3)自动加热除霜。


二、软件设计


//系统数据获取

void sys_data_get(void)

{

  static u8 i=0;



  while(1)

  {

    //温度获取

    i++;

    if(i%10==0)

      sys_ctrl.temp=ds18b20_read_temperture();

    //光线值获取

    sys_ctrl.light=pcf8591_read_adcvalue(0);

    sys_ctrl.light=cal_map(sys_ctrl.light,0,255,0,99);  



    break;

  }  

}



//系统数据显示

void sys_data_show(void)

{

  u8 temp=0;

  while(1)

  {

    //温度显示

    if(sys_ctrl.temp >=0)

    {

      temp=sys_ctrl.temp;

      lcd1602_show_string(5,0," ");

    }

    else 

    {

      temp=-sys_ctrl.temp;

      lcd1602_show_string(5,0,"-");

    }

    lcd1602_show_nums(6,0,temp,2,0);

    //光线强度显示

    lcd1602_show_nums(6,1,sys_ctrl.light,2,0);  



    break;      

  }

}



//系统功能控制

void sys_fun_ctrl(void)

{

  //如果光线强度小于最大值

  if(sys_ctrl.light< LIGHT_MAX)

  {

    //如果加热温度小于最大值

    if(sys_ctrl.temp< TEMP_MAX)

      RELAY=0;//加热  

    //如果车窗温度很高,无需加热

    else

      RELAY=1;//关闭加热    

  }

  //如果车窗光线很强,无需加热

  else

  {

    RELAY=1;//关闭加热    

  }  

}



//应用控制系统

void appdemo_show(void)

{

  u8 i=10;

  sys_parm_init();//系统参数初始化

  lcd1602_init();

  ds18b20_init();

  //间隔一段时间,等待数据稳定

  while(i--)

  {

    //温度获取

    sys_ctrl.temp=ds18b20_read_temperture();

    //光线值获取

    sys_ctrl.light=pcf8591_read_adcvalue(0);

    sys_ctrl.light=cal_map(sys_ctrl.light,0,255,0,99);

    delay_ms(100);  

  }

  sys_open_show();//系统开机界面显示



  while(1)

  {  

    sys_data_get();//系统数据获取

    sys_data_show();//系统数据显示

    sys_fun_ctrl();//系统功能控制

  }

}

三、实验现象

图片

图片

图片


关键字:51单片机  汽车车窗 引用地址:51单片机汽车车窗除霜系统设计案例

上一篇:基于51单片机的自行车测速系统
下一篇:MSC-51单片机的引脚排列图

推荐阅读最新更新时间:2024-11-09 12:48

基于51单片机的万年历时钟仿真设计
仿真图proteus7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0051 1.主要功能: 基于51单片机的万年历时钟仿真设计 1、采用DS1302记录日历和时间,仿真开机显示当前实时时间; 2、按键设置日期、时间; 3、采用DS18B20检测温度,可以实时显示当前温度值; 4、采用LCD12864液晶做显示; 需注意仿真中51单片机芯片是通用的,AT89C51,AT89C52都是51单片机的具体型号,内核是兼容的。无论stc还是at都一样,引脚功能都是一样的,程序也是一样的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。 以下为本设计资
[单片机]
基于<font color='red'>51单片机</font>的万年历时钟仿真设计
STC系列51单片机在Windows下的开发
简介 STC的8位MCU有89/90/10/11/12/15/8(A/F/G/H)这几个大系列, 都是8051衍生的8位单片机, 每个系列的特点如下 STC89系列 传统的8051单片机, 功能上和AT89系列兼容, 不同之处在于可以直接用串口烧录 属于12T单片机, 即指令需要12个时钟周期完成 带RC/RD+后缀的型号, 有6T模式 STC89LE52AD、54AD、58AD、516AD这几款带8通道8位ADC, 在P1口上 STC89C51, STC89C52系列工作频率可以到35MHz STC89C51RC/RD+系列工作频率可以到40MHz STC90系列 STC89系列的改进型 12T单片机 STC90C54AD这
[单片机]
STC系列<font color='red'>51单片机</font>在Windows下的开发
51单片机延时计算方法
keil里面选取delay为断点 记录程序运行到此处所用的时间t_start 运行delay(1) 记录程序运行完后的时间t_end t_end-t_start即为运行1次的时间。
[单片机]
51单片机快速入门指南】3:中断系统
普中51-单核-A2 STC89C52 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 硬知识 选自《普中51单片机开发攻略_V1.2》、《STC89C52系列单片机器件手册》 中断概念 中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的, 中断功能的存在,很大程度上提高了单片机处理外部或内部事件的能力。它也是单片机最重要的功能之一,是我们学习单片机必须要掌握的。很多初学者被困在中断中,学了很久仍然不知道中断究竟是如何运作的。千万不要认为它有多难, 其实只要掌握正确的学习方法,没有哪个知识点是学不会的。 为了能让大
[单片机]
【<font color='red'>51单片机</font>快速入门指南】3:中断<font color='red'>系统</font>
51单片机 动态数码管显示
本章博客写的内容主要围绕动态数码管显示,动态数码管显示与静态数码管显示比较稍有变化,主要在添加延时函数这点上 1.首先将上一章节使用子函数方法的代码复制过来 将Nixie( , )移到下方while循环中(因为要实现效果为动态的) void main() { while(1) { Nixie(1,1); Nixie(2,2); Nixie(3,3); } } 编译下载后效果为: 对于这种效果要进行消影的处理 因为单片机编译处理顺序是按照:位选 段选 (清零),位选 段选 ,位选 段选 由上一段的段选到下一部分的位选需要进行清零处理 接下来主要进行:增添延时函数和清零
[单片机]
<font color='red'>51单片机</font> 动态数码管显示
51单片机数据传送指令
51单片机数据传送指令   数据传送指令共有29条,数据传送指令一般的操作是把源操作数传送到目的操作数,指令执行完成后,源操作数不变,目的操作数等于源操作数。   如果要求在进行数据传送时,目的操作数不丢失,则不能用直接传送指令,而采用交换型的数据传送指令,数据传送指令不影响标志C,AC和OV,但可能会对奇偶标志P有影响。 以累加器A为目的操作数类指令(4条)   这4条指令的作用是把源操作数指向的内容送到累加器A。有直接、立即数、寄存器和寄存器间接寻址方式: MOV A,data;   (data)→(A) 直接单元地址中的内容送到累加器A MOV A,#data;   #data →(A) 立即数送到累加器A中 M
[单片机]
C51单片机对液晶片的驱动
Keil C51编写的192*64液晶片驱动程序,感谢很多网友提供了参考源程序 本程序是在网友们提供的程序基础上改写而成,有很多地方得到高手们的耐 心指导,在此深表谢意。这是一个完整的C51源程序,我觉得对一位初学C51 的人来说,提供一个完整的简单程序比较容易上手。 --------------------------------------------------------------------------------------------------*/ /*写汉字液晶子程 液晶屏分为4行*12列汉字,全部使用模拟接口方式。 /* TGLCMLIMIT64A接口程序(模拟方式) 液晶模块供应商: Email
[单片机]
51单片机的功能和用法详细介绍
51单片机是一个芯片,内部有n个寄存器,外部长着n个脚,由于51单片机系列种类众多,具体有多少寄存器、长着几个脚要看具体型号。一般来说,在做产品的时候,以够用为原则。 单片机属于数字器件,所以它的引脚只有两种状态,即高低电平,5V的单片机,高电平是5V,低电平是0V;3.3V的单片机,高电平是3.3V,低电平是0V。即高电平的电压等于电源电压。部分单片机内部集成有DAC功能,即数模转换器,把数字量转换成模拟量的模块,带有DAC功能的单片机DAC输出引脚可以输出0到电源电压之间的任何电压值。有些单片机内部集成ADC功能,可以把连接到引脚上的0到电源电压之间的任何电压值转换成数字量存储到单片机内部寄存器。 单片机就是靠着它自身
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved