电风扇模拟控制系统设计 (2)_第1页
电风扇模拟控制系统设计 (2)_第2页
电风扇模拟控制系统设计 (2)_第3页
电风扇模拟控制系统设计 (2)_第4页
电风扇模拟控制系统设计 (2)_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机原理与应用课程设计 院(系):工业中心 班级:106001 姓名:王永安100203120 路体力 100201114指导老师:王党利时间:2013.07.07目录1、 设计题目.42、 总体方案设计及分析.43、 硬件原理图设计.44、 软件流程图及程序设计.65、 设计总结和心得体会.13摘 要本次课程设计通过keilC软件和Proteus软件设计一个电风扇模拟控制系统设计。基于AT89C51芯片实现了用四位数码管实时显示电风扇的工作状态,最高位显示风类:“自然风”显示“1” 、“常风”显示“2” 、“睡眠风”显示“3”。后3位显示定时时间:动态倒计时显示剩余的定时时间,无定时显示“

2、000”。设计一个“定时”键,用于定时时间长短设置;设置一个“摇头”键用于控制电机摇头。设计过热检测与保护电路,若风扇电机过热,则电机停止转动,电机冷却后电机又恢复转动。最终完成了设计任务。关键词:AT89C51 keilC软件 Proteus软件一、设计题目:电风扇模拟控制系统设计 1、用4个LED显示电风扇的工作状态(1,2,3,4四档风力),显示风类:“自然风”、 “常风”和“睡眠风”。2、设计 “自然风”、 “常风”和“睡眠风” 三个风类键用于设置风类;设计一个“摇头” 键用于控制电机摇头。 3、设计一个“定时”键,用于定时时间长短设置;4、设计过热检测与保护电路,若电风扇电机过热,则

3、电机停止转动,蜂鸣器报警,电机冷却后电机又恢复转动。5、 用LCD作为用户界面显示风扇运行模式等信息。 6、其他功能。二、总体方案设计分析、讨论1、程序说明:为了提高单片机的工作效率,不让单片机的工作消耗在延时上,所以在考虑单片几需要延时的时间里,单片机并不是做的无用功,仅仅是在执行消耗时间的“空指令”,而根据实际考虑出发,从本程序设计的思路来看,电机除了数码管显示和PWM调速部分需要一定延时外,其他指令都是uS级的,可以忽略不计,所以可以将数码管显示和PWM 调速部分做在一起,即数码管每一位显示需延时的几个毫秒的时间可以用来做处理PWM调速功能使用,通过设定,改变脉宽从而调速!经过实验,本方

4、法能够十分有效的节约单片机的资源,并且各项功能能够很好的工作!2、 程序功能说明:功能总共有三个按键控制“功能键/加”、“定时”、“摇头/减”,其中“功能键”“摇头”为多功能键。初始状态时:风扇不转;数码管显示 POFF;当第一次按“功能/加”时风扇处于“自然风”电机转速最快;当第二次按 “功能/加”时风扇处于“常风”电机转速为中速; 当第三次按 “功能/加”时风扇处于“睡眠风”电机转速为低速;当风扇处于停止状态时 不可进入定时状态,只有当风扇运转时才能进入定时状态,当按下“定时”键进入定时状态后(定时指示灯亮),功能键/加 键 为定时时间加,当按下“摇头/减 键时,为定时时间减,再次按下定时

5、键时,定时功能启动,时间到停止,并显示“POFF”风扇运转时按下摇头,即电机开始摇头。3、 硬件原理图:该图是通过proteus7.0仿真设计和模拟的结果电风扇硬件控制系统四、软件流程图及程序设计*/ #include"reg52.h" #include "intrins.h" #define uchar unsigned char #define uint unsigned int sbit led=P10; sbit duan=P26; sbit wei=P27; sbit k1=P36; / 功能键/加键(3) sbit k2=P34;/定时功能键

6、(1) sbit k3=P35;/摇头键/减键 sbit pwm=P21; sbit zz=P21; sbit fz=P22; uint t=50000,g=1; /g用来表是选的风功能,tt定时的时间 uchar f,biao1=0,sudd ; int tt=0; uchar kk=1; uint aa=5;/*才初始化函数*/ void init () EA=1;ET0=1;/TR0=1;TMOD=0X01; /定时器0工作方式1 16位 TH0=(65536-t)/256;TL0=(65536-t)%256; /*/ uchar code sz= 0x3F,/*0*/ 0x06,/*1

7、*/ 0x5B,/*2*/ 0x4F,/*3*/ 0x66,/*4*/ 0x6D,/*5*/ 0x7D,/*6*/ 0x07,/*7*/ 0x7F,/*8*/ 0x6F,/*9*/ 0x71,/*F*/10 0x5C,/*o*/ /110x73/ p 12 ; void delay(uint xms) uint i,j;for(i=xms;i>0;i-)for(j=50;j>0;j-); /*pwm调速 兼作延时*/ void pwmdelay(uchar qq) pwm=1;delay(1);pwm=0;delay(qq);pwm=1; /*当风扇停止时显示的函数*/ void

8、display2() P0=sz12;duan=1;duan=0;P0=0xfe;wei=1;wei=0;delay(10);/pwmdelay(sudu); P0=sz0;duan=1;duan=0;P0=0xfd;wei=1;wei=0;delay(10);/ pwmdelay(sudu);P0=sz10;duan=1;duan=0;P0=0xfb;wei=1;wei=0; delay(10); / pwmdelay(sudu);P0=sz10;duan=1;duan=0;P0=0xf7;wei=1;wei=0;delay(10);/pwmdelay(sudu);P0=0xff;wei=1

9、;wei=0; P0=0x00; /关闭数码管显示防止闪烁duan=1;duan=0; /*显示 函数 */ void display(uint shu) uchar qian,bai,shi,ge; qian=biao1; bai=shu/100; shi=(shu%100)/10; ge=(shu%10); P0=szqian;duan=1;duan=0;P0=0xfe;wei=1;wei=0;/delay(1);pwmdelay(sudu); P0=szbai;duan=1;duan=0;P0=0xfd;wei=1;wei=0;/delay(1); pwmdelay(sudu);P0=s

10、zshi;duan=1;duan=0;P0=0xfb;wei=1;wei=0; /delay(1); pwmdelay(sudu);P0=szge;duan=1;duan=0;P0=0xf7;wei=1;wei=0;/delay(1);pwmdelay(sudu);P0=0x00; /关闭数码管显示防止闪烁duan=1;duan=0;P0=0xff;wei=1;wei=0; /*/ /*键盘程序*/void kescan() uchar biao2;/一键多功能的标号/*/ if(k1=0)/功能键 一键多功能键自然风 常风 睡眠风 停止 delay(50);if(k1=0) pwm=0; /

11、关闭电机 while(!k1);/等待释放按键 biao1+;/功能选择 if(biao1=4)/只允许四种状态 biao1=0; /*/ if(biao1!=0) /功能0时 不可以设置定时功能 if(k2=0)/定时功能键 按一次设置 第二次确认 delay(50);if(k2=0) tt=000; /如果进入定时功能 则显示全部清零 TR0=0;/确认按键俺下后关闭定时器 while(!k2);/等待释放按键 biao2=1; while(biao2)/如果不再次按下K2则将一直保持设置状态 led=0;if(k1=0) delay(50); if(k1=0) while(!k1); t

12、t=tt+10; if(tt>990)/ tt=0; if(k3=0) delay(50); if(k3=0) while(!k3); tt=tt-10; if(tt<0)/ tt=990; display(tt);/刷新设置的时间 if(k2=0) /k2是否再次按下 delay(50); if(k2=0) while(!k2); if(tt>0) /如果进入定时设置后没有设置时间则不能退出定时功能 biao2=0; TR0=1; /设置好定时功能后开启定时器 led=1; TR0=1;/开启定时器 /*功能函数*/ void gongnen() while(biao1=0

13、) pwm=0; tt=0; kescan(); display2(); if(biao1=1) /功能1 自然风 sudu=0; if(biao1=2)/功能2 常风 sudu=4; if(biao1=3)/功能3 睡眠风 sudu=10; /*/ void main() init(); while(1) kescan(); display(tt); gongnen(); /*/ /*定时器0中断函数*/ void t_0()interrupt 1 TH0=(65536-t)/256; TL0=(65536-t)%256; f+; if(f=20) f=0;tt-; if(tt=0) /如果

14、定时到了 显示为000,电机关闭 tt=000; biao1=0;/使电机不转 TR0=0; 五、设计总结和心得体会课程设计是培养学生综合所学知识,发现、提出、分析和解决实际问题,锻炼自身能力的重要培养,是对我们学生能力的具体陪练和考察过程。短短一周的时间,我们做完了我们小组的单片机实验,感触很深,我们小组做的是“电风扇模拟控制系统设计”对我们很有挑战,虽然在别人眼中我们的实验很简单,不过我们还是遇到了很多困难。随着科学发展的日新月异,单片机已成为当今计算机应用中活跃的领域,在我们的生活中可以说是无处不在,因此作为电力系统的学生不得不掌握它,这次的实验设计,对我们是一种挑战,更是一种考验,怎么

15、才能找到课堂所学与实际应用的最佳结合点?怎样才能使自己更专业化?怎样才能使自己的设计更具有序性,而不会忙无一用,这都是我们所要考虑和努力的。这次的课程设计我学到很多东西,学到了怎么去制定设计,怎么去实现设计,并掌握了在执行过程中怎样克服心理上的不良情绪,不仅巩固了所学的知识,而且学习到了许多书上所没有的东西,我从中掌握了系统的研究方法,可以进行一些简易的编程。在这次设计任务中,通过我们三人的共同努力,老师的精心指导,还有和在网上找到的资料,我们主要掌握了动态发光显示数码管的编程,掌握了数据运算的编程方法,这也是编程必须掌握的知识,当然仿真与调试也是一个很重要的环节,也让我们收获良多,这其中就是硬件和软件两部分,虽然我们没有做硬件,但软件的制作与编程我们也做得很认真。你必须对程序的每部分都很熟悉,掌握每句程序的作用,这

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论