历史上的今天
返回首页

历史上的今天

今天是:2025年03月04日(星期二)

正在发生

2020年03月04日 | 单片机风扇模拟控制系统

2020-03-04 来源: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;;

    TL0 = (65536-50000)%256;;

    ET0 = 1;

    TR0 = 1;


                TH1 = (65536-50000)/256;;

                TL1 = (65536-50000)%256;;

                ET1 = 1;

    TR1 = 1;


                EA = 1;

}


void TIM0() interrupt 1

{

                         TH0=(65536-50000)/256;

       TL0=(65536-50000)%256 ;


       if(add0==100)

       {

            add0=0;

                                                EN0=1;

       }

       if(add0==t0)

       {

                                                EN0=0;

       }

                         add0++;

}


void TIM1() interrupt 3

{

                         TH1=(65536-50000)/256;

       TL1=(65536-50000)%256 ;


       if(add1==100)

       {

            add1=0;

                                                EN1=1;

       }

       if(add1==t1)

       {

                                                EN1=0;

       }        

                         add1++;  


推荐阅读

史海拾趣

Global Communications公司的发展小趣事
温度传感器和晶体振荡器都可能受到外界噪声的干扰,影响测量和补偿的准确性。因此,在电路设计中需要采取屏蔽、滤波等措施来降低噪声干扰。
Custom Mmic Design Services Inc公司的发展小趣事

近年来,随着电子行业的快速发展和市场竞争的加剧,CMDS也面临着诸多挑战。例如,原材料价格波动、人工成本上升、环保要求提高等都给公司的生产和经营带来了压力。然而,CMDS凭借其强大的技术实力和市场竞争力,积极应对这些挑战。通过优化生产流程、提高生产效率、加强成本管理等措施,CMDS不仅成功克服了这些困难,还实现了稳健的发展。同时,公司还注重环境保护和社会责任,积极推动可持续发展战略的实施。

Gems Sensors & Controls公司的发展小趣事

Gems Sensors & Controls公司始终致力于技术创新和产品研发。数十年来,公司不断推出新型号的液位、流量和压力传感器、微型电磁阀及预装射流系统等产品,以满足客户日益多样化的需求。这些产品凭借其卓越的性能和稳定的质量,在行业内赢得了广泛的赞誉和认可,也推动了整个传感器行业的进步和发展。

Fairchild (ON Semiconductor)公司的发展小趣事

2016年,Fairchild Semiconductor被ON Semiconductor收购。这一收购标志着Fairchild Semiconductor的发展进入了一个新的阶段。ON Semiconductor是一家全球领先的半导体公司,拥有广泛的产品线和强大的技术实力。通过整合Fairchild Semiconductor的技术和资源,ON Semiconductor进一步巩固了其在半导体行业中的领导地位,并继续为全球客户提供优质的半导体产品和服务。

ERP Power公司的发展小趣事

巨化集团作为我国较早的化工企业,在信息化道路上一直走在前列。为了进一步提升企业的管理水平和竞争力,巨化集团决定实施ERP系统。在选型过程中,巨化集团看中了ERP Power系统的稳定性和可靠性,最终选择了该系统作为企业信息化建设的核心。

通过ERP Power系统的实施,巨化集团实现了企业资源的优化配置和业务流程的标准化管理。系统不仅整合了企业内外部的信息资源,还提供了强大的数据分析功能,帮助企业做出更明智的决策。此外,ERP Power系统还提高了巨化集团的工作效率和员工满意度,为企业带来了显著的经济效益和社会效益。

Crystalfontz America Inc公司的发展小趣事

Crystalfontz America Inc公司自成立以来,一直致力于LCD、OLED等显示模块的研发和生产。在早期的发展阶段,公司面临着技术上的诸多挑战。然而,通过持续的技术投入和研发团队的不懈努力,公司成功突破了多项关键技术,推出了一系列具有竞争力的显示模块产品。这些产品在市场上获得了广泛认可,为公司的快速发展奠定了坚实基础。

问答坊 | AI 解惑

如何鉴别芯片真假,cecclab为你解答

怎么判定芯片的真伪? 概述: 通过化学腐蚀及物理显微观察、简单电性能等方法,来检验鉴定器件是否为原半导体厂商的器件。 检验的内容: A、货品外包装、湿度标示卡、器件日期批号等检查确认及记录 B、外观检测,器件的表面状况、印字标准、重 ...…

查看全部问答>

WINCE SDK平台改变后出现的问题!求助!

WINCE SDK平台改变后出现的问题: fatal error LNK1112: module machine type \'ARM\' conflicts with target machine type \'SH3\' 这要怎么解决啊???…

查看全部问答>

串口读取数据过滤

在用ddk做驱动时,在对 IRP_MJ_READ截获后 然后改变指向的buffer中的数据 最总发现用串口调试助手读取数据时并没有改变串口读到数据的内容, 请问应该怎样做能够从底层改变收到数据,最终使用串口调试助手时显示的是我修改的数据…

查看全部问答>

求驱动函数

菜鸟请高手指点 有三个设备A、B、C A是最底层,然后挂载B到A上面,也就是原来设备栈的顺序是 A--B (由底到顶) 现在我想在A,B的设备栈里面加入C,但是我不希望设备栈的顺序是 A--B--C(由底到顶) ,而是希望希望设备栈的顺序 是 A--C--B(由底到顶) ...…

查看全部问答>

SEFS安全透明加密内核

软件名称:SEFS安全透明加密内核 软件版本:1.0 建议分类:系统安全/文件加密 软件大小:635K 安装平台:Win2000/xp/2003 软件语言:简体中文/繁体中文/英文 软件授权:共享软件 软件主页:http://www.sefs.net 支持邮箱:admin@sefs.ne ...…

查看全部问答>

LPC2141的无刷直流电机控制系统设计

LPC2141的无刷直流电机控制系统设计 导读: 无刷直流电机是最常用的无刷电机。它易于驱动,速度可调且工作寿命长,适用于各类大小型工业应用,诸如小型马达的控制(如12 V直流无刷电机)。 关键字 LPC2141   ...…

查看全部问答>

vb上位机 51单片机下位机 编程

Visual Basic设计完成了上位机界面;同时利用51单片机作为下位机微处理器,采集无刷电机运行工作中的电压、电流和转速等基本参数,通过串行通讯口将数据上传至上位机系统中。上位机系统对下位机上传的数据加以分析计算,直观的绘制个参数的变化曲线 ...…

查看全部问答>

C2000/MSP430/电源的在线学习不能用了!!!!

C2000/MSP430/电源的在线学习不能用了!!!! 求关注,你们那里有这个现象没?…

查看全部问答>

电子工程师(开发)

电子专业本科以上学历,长期(至少五年以上)从事电子产品开发,能独立设计单片机软件、硬件,能独立完成产品研发,拥有丰富的开发和工艺经验。待遇从优。 五年以下工作经验者勿投 工资:3000-8000元。 福州名品电子科技有限公司现位于福州市科 ...…

查看全部问答>

xilinx FPGA 中的浮点运算的问题

请教各位兄弟:         项目中需要fpga zynq x702 的板子,要实现 y=atan((a-b)/(a+b)) 的公式运算,如何处理?        a b 分别为有符号整数,(a-b)/(a+b) 为小数    xi ...…

查看全部问答>