单片机风扇模拟控制系统设计

2020-07-30来源: 51hei关键字:单片机  风扇模拟控制系统

引言

单片机原理应用广泛根据单片机原理及应用课程的要求,主要进行两个方面的设计,即单片机最小系统和存储器扩展设计、接口技术应用设计。其中,单片机最小系统主要要求学生熟悉单片机的内部结构和引脚功能、引脚的使用、复位电路、时钟电路、4个并行接口和一个串行接口的实际应用,从而可构成最小应用系统,并编程进行简单使用。电风扇模拟控制系统具有电路简单、成本较低、操作方便、灵敏可靠等优点,经使用效果良好, 具有较高的推广价值,在很多领域都有广泛的应用。


本文设计出以STC89S52单片机为核心的电风扇模拟控制系统,采用了LCD1206直接指示,显示状态,并自动复位的设计思想,它能根据按键输入的信号,经过单片机的控制处理并产生不同的与输入信号相对应的输出信号,最后通过LCD1206显示相应的状态,分别显示当前电机实时温度以及当前风力,充分利用了单片机系统结构简单、功能强大、可靠性好、实用性强的特点。


一、方案设计

1.1简介

本人首先设计了硬件电路,硬件电路充分体现了模块化的思想,主要由以下几个模块组成,

  • STC89C52单片机最小系统;

  • 按键模块:共六个按键,三个控制风力的大小,两个控制电机的摇头以及睡眠定时功能;

  • LED指示灯模块: 共四个绿色LED指示灯,分别指示风扇电机运行状态,自然风(natural wild),常风(ordinary wind),睡眠风(sleep wind),无风(no wind)

  • 电机温度实时测量模块: 本系统采用DS18B20测量电机实时温度

  • 电机驱动模块:本系统采用LM298N集成驱动芯片驱动电机转动

  • LCD显示模块: 本系统采用LCD1206模块显示电风扇实时状态


1.2课程设计目的

(1) 综合所学的单片机原理及接口技术等课程的理论知识完成本课程设计;

(2) 学习并掌握基本电路设计与使用方法,单片机的编程与应用方法;

(3) 提高综合分析、解决实际问题的能力。


1.3任务和要求

本设计以STC89C52处理器为核心,单片机作为外围检测与控制电路设计实现智能家居系统。其中单片机系统通过传感器检测到相关信息,向嵌入式平台发送相对应的信息,嵌入式平台做出相应判断与处理,并同时通过网络告知主人与物管人员做出相应处理,以保证业主的财产人身安全。


本设计主要设计指标:

  • 按键输入模块,4个按键分别调整“睡眠风”,“自然风”,“常风”,“无风”

2个按键分别控制 “摇头” “定时”;

  • 直流电机转速控制,通过LM298N芯片驱动;

(3) 当前转速显示、当前电机温度显示,状态在LCD上显示。


2、硬件电路

2.1电路系统框图


2.2 STC89C52RC最小系统

2.3 按键模块

TIME BUTTON:定时按钮

SHAKE BUTTON:摇头按钮

NATURAL WIND 自然风按钮

ORDINARY WIND 常风按钮

SLEEP WIND  睡眠风按钮


2.4 LED指示灯模块

NATURAL WIND 自然风指示灯

ORDINARY WIND 常风指示灯

SLEEP WIND 睡眠风指示灯

NO WIND 无风指示灯


2.5 电机温度实时测量模块

采用DS18B20测量电机实时温度


2.6 电机驱动模块

采用LM298N驱动芯片驱动两个直流电机


2.7 LCD显示模块

采用LCD1206输出显示当前状态

2.8 蜂鸣器报警模块


3、软件程序3.1 主函数程序流程图

3.2 按键模块驱动程序

#include "head_file.h"


sbit Natural_wind_button  =P2^0;

sbit Ordinary_wind_button              =P2^1;

sbit Sleep_wind_button                            =P2^2;


sbit Time_button          =P3^6;

sbit Shake_button         =P3^7;


void BUTTON_Config()

{

                                          Natural_wind_button = 1;  

      Ordinary_wind_button = 1;            

      Sleep_wind_button              =1;


                                          Time_button = 1;

                                          Shake_button = 1;

}          

  

3.3 LED指示灯驱动程序

#include "head_file.h"

sbit Natural_wind_LED                                          =P2^3;

sbit Ordinary_wind_LED                            =P2^4;

sbit Sleep_wind_LED                                                        =P2^5;

sbit NO_Wind_LED                                                                      =P2^6;

sbit Buzzer               =P0^3;

void GUIDE_Led_Config()

{

                                          Natural_wind_LED = 1;            

      Ordinary_wind_LED = 1;

      Sleep_wind_LED = 1;            

            

      NO_Wind_LED = 0;              

                                         

                                          Buzzer = 0;

}


4、调试结果

  • 小结

在将近一周的单片机课程设计,终于完成了电风扇模拟控制系统的设计,虽然没有完全达到设计要求,但还是收获良多。通过这次课程设计,使我更进一步地熟悉了单片机芯片的工作原理和其具体的使用方法。单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,这锻炼了自己独立思考问题的能力和通过查看相关资料来解决问题的习惯。还有了解了课程设计的一般步骤,和设计中应注意的问题。


课程设计是需要我们每个人去用心去做,抓紧学习的机会,通过查阅更多的资料,使得理论与实践相结合,在做模拟仿真的时候,利用自己平时所学到的,以及老师对同学们的指点,就可以在无限的探索中体验求知的快感,当自己做出一个作品时或是仿真实验成功时,总能体会到着劳动成果来之不易。在课设的同时,不仅锻炼了动手动脑能力,知识面广阔了,感谢自己,同时更感谢辛勤付出的老师。


在此要感谢老师,感谢老师给我这样的机会锻炼。在整个设计过程中我懂得了许多东西,也培养了我独立学习工作的能力,树立良好的学习心态,虚心求教,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中的探索的艰难和成功的喜悦。虽然这个项目还有不足之处,但是在设计过程中所学到的东西是这次设计的最大收获和财富,真是受益匪浅。


附录一:总电路仿真


附录二:程序清单
Main.c          //主函数
Button.c        //按键驱动程序
ds18B20.c       //ds18b20驱动程序
guide_led.c     //led指示灯初始化程序
L298n.c         //l298n驱动程序
Lcd1206.c       //lcd1206驱动程序
head_file.h     //全部头文件声明

附录三:元件清单
STC89C52RC单片机
1个
轻触开关
6个
绿色LED灯珠
4个
12v直流电机
2个
LM298N芯片
1个
DS18B20传感器
1个
LCD1206
1个
1K贴片电阻
4个
4.7K贴片电阻
1个
100R电阻
2个
电机驱动程序

#include "head_file.h"

uchar t0, add0;

uchar t1,add1;

sbit EN0=P3^4;

sbit EN1=P3^5;


sbit IN0=P3^0;

sbit IN1=P3^1;

sbit IN2=P3^2;

sbit IN3=P3^3;


void L298_Config()

{

                 t0=50;

                 t1=50;

                 IN0=0;

                 IN1=1;

                 IN2=0;

           IN3=1;


}


void TIM_Config()

{

                TMOD = 0x11;

    TH0 = (65536-50000)/256;;

TL

[1] [2]
关键字:单片机  风扇模拟控制系统 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic504838.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:单片机做的433遥控解码源程序,带学习功能可存8组遥控码
下一篇:单片机定时器的应用 具有清零,暂停,启动功能秒表源程序

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

AVR第11课:如何对待我们的单片机
大家学习MCS51单片机和AVR单片机,又或者是PIC单片机,又或者是MSP430单片机之后,是否感觉自己可以成为一名工程师了呢?我在这里来说说我的看法吧。我们学习这些单片机的时候,先学习了理论知识,这个一般是书本上的理论知识,比如介绍单片机的发展、单片机的应用领域、单片机的原理等等。然后呢找一块开发板,对着视频教程学习,边看视屏边做实验,学习完之后呢,去做那么一两个小项目,比如“基于LabView和PWM的霍尔测速和控速的直流电机系统”,这个项目呢,相对来说综合要求能力比较高,如果一个人能够坐下来的话,你的能力就算不错了,相当不错了。从设计电路图、焊接电路板、写程序、调试等等下来,会有很大的提高。如果仅仅做了实验,我可以告诉
发表于 2020-07-25
AVR单片机控制发光二极管
点亮ARV单片机开发板上的一个LED灯原理图: 分析:上面的截图就是单片机和LED灯的连接原理图,其中J6是一个排阻,起到限流的作用,防止LED电流过大而烧坏。排阻的内部就是一组并联的电阻:bubuko.com,布布扣提示:算一下这个排阻的电阻的大小,二极管的工作电流是3mA,工作电压时1.7V,VCC的电压时5V。所以电阻上的电流是3mA,电压是3.3V,所以电阻的阻值是1.1KΩ。因为所有的二极管都是通过一个限流电阻共阳极的,所以只需要在Q端给一个低电平就能点亮这个发光二极管。Q端的电平通过一个573锁存器受控于D端的电平高低,也就是单片机的PB端口。这样我们就能通过写程序控制PB端口的高低电平来实现二极管的亮灭
发表于 2020-07-25
AVR<font color='red'>单片机</font>控制发光二极管
基于IAR环境下STM32F103单片机读取BME280程序
自己编写的基于IAR环境下STM32F103单片机读取BME280程序,没有太多的寄存器操作,简单易懂,可以直接调用,上电后只要对IO口初始化,调用函数Bme_ReadDigValue()读取校准寄存器参数并保存,再调用函数Bme_Init()初始化之后就可以用函数Bme_ReadStatus()读取传感器状态判断是否读取数据了,也可不判断传感器状态直接读取数据,读取数据直接调用函数ReadBme280()。单片机源程序:void ReadBme280(){        u32 value_ad;        double var1; 
发表于 2020-07-25
MSP430单片机定时器TA中断 程序
程序1#include  <msp430x41x.h>void main(void){  WDTCTL = WDTPW + WDTHOLD;                       // 停止看门狗  FLL_CTL0 |= XCAP18PF;                         // 配置晶振负载电容  P1DIR |
发表于 2020-07-25
第三章 硬件基础知识学习
通过上一课的学习,我们貌似成功的点亮了一个LED小灯,但是还有一些知识大家还没有彻底明白。单片机是根据硬件电路图的设计来写代码的,所以我们不仅仅要学习编程知识,还有硬件知识,也要进一步的学习,这节课我们就要来穿插介绍电路硬件知识。3.1 电磁干扰EMI第一个知识点,去耦电容的应用,那首先要介绍一下去耦电容的应用背景,这个背景就是电磁干扰,也就是传说中的EMI。1、冬天的时候,尤其是空气比较干燥的内陆城市,很多朋友都有这样的经历,手触碰到电脑外壳、铁柜子等物品的时候会被电击,实际上这就是“静电放电”现象,也称之为ESD。2、不知道有没有同学有这样的经历,早期我们使用电钻这种电机设备,并且同时在听收音机或者看电视
发表于 2020-07-25
第三章 硬件基础知识学习
第五章 定时器和数码管
通过上节课的实验,大家会发现,我们逐渐进入比较实质性的学习了,需要记住的内容也更多了,个别地方可能会感觉吃力。但是大家不要担心,要有信心。这个跟小孩学走路一样,刚开始走路不太稳,没关系,多走几步多练练。看视频的时候要注意专心,一遍看不懂,思考一下,再回头看第二遍和第三遍,没准一下就明白了。如果三遍还看不明白,那就把不懂的问题放一放,继续往下学两课再回头看一次,也可以到QQ群里或单片机论坛http://www.51hei.com/bbs/ 里多咨询一下其他的同学,讨论一下,可能就会茅塞顿开。1.1 基本数字逻辑门电路不管是数字电路,还是C语言,我们都会经常遇到逻辑运算和逻辑电路,在这里我介绍一下,大家先简单了解
发表于 2020-07-25
第五章 定时器和数码管
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved