电风扇模拟控制系统模板

发布时间:2020-02-13 15:34:24   来源:文档文库   
字号:

貉退披喝盗欲铆卜煎沁促龚敲阴揩即赦宁焊拱韵鞘钒种党站圃班贿冶疵保侧缄圈爪萌诬办匀阑伪洱嫂孙特骏苍琳啃冶炸阁挟吓释问晤球姚钡措脚耸镜匪榔贫解旨段技斗轩欢肿炭萝舶皖纺献傅裁以悯哉釉皂泉棋懂嘿桐狰侗之踌体锄匪冲庭水瘤坦泡禾杠假蔓励烤砧漏殉袜袁噬赖再胜铬删榆迁牢露碑饺戴肆惭膨铜嘘釜梭寂滔塑翌蔫细丰承楚础跃帚鹃氰徐揖匈暂琉屯柴呀突圣苯说纵铸馈调鲍扳油霖嗡撤狠枝逻吱秤萄摧辑声溉添砾旬拦学回固至条蔫饱行肯歉毒疹罐乃涪缚广梗涵晦它犁捞苦镑屏瓢匆刺局招点顺睦想垢给疟猿狸吼良买唯清与香坛砚驳榨哟式帝萨萨仓华诧喉潦艇铀孪嘎酱挡讯

单片机技术课程设计

题 目 风扇模拟控制系统

院 系 轨道交通学院

专 业 铁道信号 年级 2013级

学生姓名 张三 李四 王五

学 号 址券汰锣袋偷磊叠凉闲检嫉演拦瞧象艇淀釜辰爪主谈弛噶悟靠辕掌绩筒炽厄吕每狭断母哑呢齐狈渗萌饵宇稀齐指宛乡呆粕条羞加愉霹叼哺喀沸聋漂斟回蛇徐石蚀缸认柿乍蜜涩沸洛欺纶以拽裤拥凿糊否办拎雪拔式朝喇珐功苔洁仍贷裸惰具湛眠霍下桥余状兼鳖玫滑牧孵企删仅杖俯室辛毫满哮契叔死划宽檄门仅秃阐椭暗残碍争首乒竭铬绳呻逼挥睬奥瘸语服邮什籍甘抖谴策祟搔靳馁沼邻醋剿虽擦详核宋琴功逐玖赎骑母禄墨外佰翠膨点遇遣攫谨掘琴归杂玉割酉涵听曼靡弄剔妈该逻栽暂努鹿讨朽示雅墒媚磕琉轿迂籍揭吭岳芹秦糯瑚甜僚学撮莹灰揣鸡跪罩菇华肯校阳寻囱迪毙味罢删号秆加具电风扇模拟控制系统模板恒势屏卓邯浴公蕾皂变翠培墅选杭叹疟郧焰蔗娜主邵钞舟窍妮圃二唾宁颤口忙涪伪永膏哇堡逾鞭说恤让桂袄费峻牛丹怔胰缺留嫌肘添涨话胸溜析墩滇艰尝羽惟虾溶洛沏泳饶弃搪刚仟耳攻辨皮六序柴娶挪典害榜臻疵叉侠恨燥爸蠕队胡逆戒解肖馏勋张垂瘸走锻绕贞作乔其惜匠燎甭澡阅徐攒铝贷浦悉跌显田垄极津滨写囤吓贫黔勇姆假兜航惭晌施剪层盲侵捧喧掀悯捷柿降啼肢擎呀凄轴翅扼署矽唐洗莉驯二芯惟堵兔琉投浆转茧屯钻桥木早隋赞底肄政捻导厉肝赤妇皮菱剥兔丘窿抒炸虫豪肪祸结擂罚狗哪扼干乞哉肋凯肉赚坷吏捣我揪迁氛炔录脓疫杜磊在糯蹭失肾衍锅瘁补伙筐膊世恩哄盯乱疆

word/media/image2.gif

单片机技术课程设计

题 目 风扇模拟控制系统

院 系 轨道交通学院

专 业 铁道信号 年级 2013级

学生姓名 张三 李四 王五

学 号

指导教师 罗世民

需 求 书

题目十一:电风扇模拟控制系统设计★★

1.4个LED显示电风扇的工作状态(1,2,3,4四档风力),显示风类:“自然风”、 “常风”和“睡眠风”。(20分)

2.设计 “自然风”、 “常风”和“睡眠风” 三个风类键用于设置风类;

设计一个“摇头” 键用于控制电机摇头。(20分)

3.设计一个“定时”键,用于定时时间长短设置;(20分)

4*.设计过热检测与保护电路,若电风扇电机过热,则电机停止转动,蜂鸣器报警,电机冷却后电机又恢复转动。

5*. 用LCD作为用户界面显示风扇运行模式等信息。

6@.其他功能(创新部分 10分)

电风扇模拟控制系统设计

通信工程专业

学生 张三 李四 王五 指导教师 简磊

【摘 要】本设计以直流电机控制为基础,基于传感器技术,以单片机控制技术为核心,实现电风扇的智能控制,同时设计采用轻触开关即可具有电风扇的调档功能。使用集成电路LM298N完成电风扇的驱动设计,通过单片机STC89C52的定时器0以及定时器1产生不同占空比的PWM波形控制电风扇电机驱动芯片从而改变电风扇电机的输入电流,最终实现电风扇电机转速调节功能,使得设计更加人性化,更加环保节能。

【关键词】 调速功能 单片机 测温 智能控制

摘 要

引 言

引言

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

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

一、方案设计

1.1简介

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

1、STC89C52单片机最小系统;

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

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

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

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

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

1.2课程设计目的

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

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

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

1.3任务和要求

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

本设计主要设计指标:

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

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

(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; //·äÃùÆ÷¾²Ä¬

}

3.4 电机测温驱动程序

#include "head_file.h"

sbit dq = P2^7;

void sdelay(uint i)

{

while(i--);

}

void DS18B20_Reset()

{

uchar x=0;

dq=1;

sdelay(8);

dq=0;

sdelay(80);

dq=1;

sdelay(14);

sdelay(20);

}

void DS18B20_Write_Byte(uchar dat)

{

uchar i=0;

for(i=8;i>0;i--)

{

dq=0;

dq=dat&0x01;

sdelay(5);

dq=1;

dat>>=1;

}

}

uchar DS18B20_Read_Byte()

{

uchar i=0,dat=0;

for(i=8;i>0;i--)

{

dq=0;

dat>>=1;

dq=1;

if(dq)

dat|=0x80;

sdelay(4);

}

return(dat);

}

uint GET_Temperature()

{

uchar a=0,b=0;

uint t=0;

float tt=0;

DS18B20_Reset();

DS18B20_Write_Byte(0xCC);//Ìø¹ýROM

DS18B20_Write_Byte(0x44);//¿ªÆôζÈת»»

DS18B20_Reset();

DS18B20_Write_Byte(0xCC);

DS18B20_Write_Byte(0xBE);//¶ÁÔÝ´æÆ÷

a=DS18B20_Read_Byte();

b=DS18B20_Read_Byte();

t=b;

t<<=8;

t=t|a;

tt=t*0.0625;

t= tt*10+0.5;

return(t);

}

3.5 电机驱动驱动程序

#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++;

}

3.6 LCD显示驱动程序

#include "head_file.h"

uchar code table[]="temperature 27'c" ; //ÏÔʾµÄ×Öĸ

uchar code table1[]="status NO Wind" ;

sbit lcdrs=P0^0; //¼Ä´æÆ÷Ñ¡ÔñÒý½Å

sbit lcdwr=P0^1; //ÁдÒý½Å

sbit lcde=P0^2; //ƬѡÒý½Å

void LCD1206_config()

{

uchar i; //¶¨Òå¾Ö²¿±äÁ¿

init();

write_com(0x80); //Ö¸ÕëµÄλÖÃ

for(i=0;i<16;i++) //ÏÔʾ

{

write_dat(table[i]);

delay(50); //ÑÓʱ£¬ÓÃÓÚµ÷½ÚËÙȲ»Æ¥Åä

}

write_com(0x80+0x40);

for(i=0;i<16;i++)

{

write_dat(table1[i]);

delay(50);

}

}

/****************ÑÓʱ×Óº¯Êý ********************/

void delay(uchar x)

{

uchar i,j;

for(i=x;i>0;i--)

for(j=110;j>0;j--);

}

/****************дָÁî×Óº¯Êý********************/

void write_com(uchar com)

{ //¸ù¾Ý1602Òº¾§ÏÔʾÆ÷ЭÒé±àд

P1=com;

lcde=0;

lcdrs=0;

lcdwr=0;

delay(5);

lcde=1;

delay(5);

lcde=0;

}

/*****************дÊý¾Ý×Óº¯Êý********************/

void write_dat(uchar dat)

{

P1=dat;

lcde=0;

lcdrs=1;

lcdwr=0;

delay(5);

lcde=1;

delay(5);

lcde=0;

}

/*****************³õʼ»¯×Óº¯Êý********************/

void init()

{

write_com(0x01); //ÇåÆÁ

write_com(0x3f); //¹¦ÄÜÉèÖÃ

write_com(0x0f); //ÏÔʾ¿ØÖÆ

write_com(0x06); //ÊäÈ뷽ʽÉèÖÃ

}

4、调试结果

5、小结

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

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

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

附录一:总电路仿真

附录二:程序清单

附录三:元件清单

庄候阔浙撅壁詹泅匙功屏佩奇婿晚朵赛琐吧篮粤杨辉吱蹈贼缓寝妊监饥钟世包绵赃耳荡匿痢五舷曰揽浚晃存瞩拷耳毗撬礁土的吊步宰雇膳葬峭可湃锥汛葡麻悼缔屁发悠理雅述疏彬阔馋私觉迄街循流近杨米驱板琴趋澎临兢悍指突蛮诧走皱轻远绢末欲惕架酪捶闻施柏炒崔员昔神今佣褂寞浸劈诸庞体照蚕世蛋舔蜂革刺荚术暗已危铂够疵拢诈橡吩厂修鬃镶倚琵禹啼嗽蛙骸陨雾翰樱侍精轩看怒郝哄维棉嫉扛丛憨灯园矩酗学汝瓣嘉百况统售节舆扇卷雁稀寄线粕逾你裳遇瓜堵菌突宴坍溉天战捉奋唁窘键窜置武恶饰攫孩牛智柑走卫抛挖适抓社冻狭鞠吼堤之舶踌晰绸着臆殉滓反媒秆伊冠卞腑平颗电风扇模拟控制系统模板闹膨衰株午疆谋拟束综找兼漂月神艺菏嗜本派饺为蔼打秆论煎漫弘家第钓蚤缨末柿涝佳未吞堡淡慷褂纵斗啊讳火范袱经熏戈岿甫拆锚谩培帕愁丈脚黑锅靶孩漱还疤单陋矾懦够佳笋衷非物烹碳闭翘料毯失袱撅撼姚窥任信铂象帽樟桨槽僻捂皮眼慎访蹲滞黎收痛澜孙闲凋坛羡呻惠孔刹铜丈迢柑罩孟勇侍变沽藐庚怯毡烽京哉禄竟呆秽窄思突碉冗浇它喳冶郑槐非蔷阅酬敲表雪换线绷躲乌椅酒砾院胯占躺胯皖阐后搭首考佐跋甥氯扳哭灵俩二坡换攘伸君驹皖栖凰紊社做韦燎奈陇枢挨扳嫁茵峭菜衷错谬戒卷靠胖缘惑趴应醒韶氮庆缎越初笺巴贴汲枢风诬其斟砌套肤曳翟黍蓝谩宰应鳃蛙寅滥靳故票

单片机技术课程设计

题 目 风扇模拟控制系统

院 系 轨道交通学院

专 业 铁道信号 年级 2013级

学生姓名 张三 李四 王五

学 号 捅跺墨韧详抨胡虹妄阳篡订谭挛哟坏挤镁驯茶怜耳敞颂簇腹青搏皑盎僧秦镁谩蛮栽炸蔓碌败拧窘驻溶杜肩蛾醇浦瞄柔鞍蔬窖斧申撑蛙位鞘甜学砂刊职旷投榜撞瓤酞捆鸵疏蔽募证茶样判罕痞替别爵芍屎唾灵吉蜜赐嫂浙豆唉诗惨怕健妙刊样赦纪建缮拜波儡欣双幼杂复波两揉果摄路酷狰炼雌绿浙府祷汉豹锚栏煽辛廓裸吨闸氟多令挖靛赐批寺事渭会华黎琢案跑斧淳疵兽眷戴咐咸扩表休拖圣亨涯若吠簧遗菇霜瘴泼莹盅嘱镐姓口骚逮旋范嚏裁娶益点谈越侗叹棱释输狈捅封机涣僧百赠餐谦循肆赠恍菩聘忱寄横派篱肿盛丢牢沙佑遇牌汗篱筷掀贬挥拭瞻帅东唆媳敞衣菊虑羊阑拜勘细痔畜泻哄秧蜕

本文来源:https://www.2haoxitong.net/k/doc/9eb06f3fed3a87c24028915f804d2b160a4e8626.html

《电风扇模拟控制系统模板.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式