文档详情

51单片机课程设计风扇风速控制.doc

发布:2017-08-10约6.73千字共12页下载文档
文本预览下载声明
成绩 . 课程设计报告 题目 风扇风速控制 班级 电信B1101 姓名 学号 1、设计题目、要求 风扇风速控制 A.使用单片机实现风扇的风速控制 B.三个按键分别控制不同的风速,还有控制工作与停止的按键 2、设计框图 4、方案设计 本设计采用四相五线步进电机,通过NLU2003A芯片来作电机的驱动。用四个按键来模拟风扇的三个档位和停止键。 步进电机内部构造如下图: 五线:由于五线中,a和b组的公共端是连接在一起的。步进电机相关概念: 相数:产生不同对极N、S磁场的激磁线圈对数。常用m表示。拍数:完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB,四相八拍运行方式即 A-AB-B-BC-C-CD-D-DA-A.八拍步距角:对应一个脉冲信号,电机转子转过的角位移用θ表示。θ=360度(转子齿数J*运行拍数),以常规二、四相,转子齿为50齿电机为例。四拍 运行时步距角为θ=360度/(50*4)=1.8度(俗称整步),八拍运行时步距角为θ=360度/(50*8)=0.9度(俗称半步)。定位转矩:电机在不通电状态下,电机转子自身的锁定力矩(由磁场齿形的谐波以及机械误差造成的)静转矩:电机在额定静态电作用下,电机不作旋转运动时,电机转轴的锁定力矩。此力矩是衡量电机体积(几何尺寸)的标准,与驱动电压及驱动电源等无关。 6、仿真图 7、制作 8、调试 这次的步进电机实验的程序调试不是很完美,起初不太了解步进电机原理。之后通过网路了解到了很多知识,通过控制延迟时间来控制电机的转速,但电机会出现顿卡的现象是因为程序的延迟和电机不协调,必须慢慢改变来使电机转的相对稳定。中断的按键扫描函数是为了让按键变得更快,单也时电机时间控制的有误差,在减少中断函数执行时间后,控制大有好转。这是我们对本程序的学习。由于硬件增加了小灯使得调试更加方便。 心得体会 在这次的单片机课程设计之中,我与我的组员们经过一段时间的学习及研究,共同完成了此次设计。当然在此次实验中,我们学习到了不少单片机知识,之前在课堂上没有理解的知识,也经由实践一一明晰。 首先,学习单片机要有一定的基础:电子技术方面要有数字电路和模拟电路等方面的理论基础,特别是数字电路;编程语言要求汇编语言或C语言。尽管汇编语言属于低级语言,编程效率低,但是较C语言具有目标代码简短,占用内存少,执行速度快等优点,更重要的是能使初学者尽快熟悉单片机的内部结构,并能对其进行精确的控制。 单片机是一门非常重视实践的技术,不能总是看书,但要学习它首先应看书,对单片机引脚、内部结构、寄存器和原理有一定地了解和感官认识,它的是怎样工作的,能干些什么?刚开始时,不明白,但这并不要紧,因为还缺乏实践经验。现在单片机应用广泛,因此各个厂家分别推出了自己的单片机,因为他们的编程方法和调试过程以及内部指令结构有一定的相似,只要学精通一款就OK了!尤其是用C语言编程,就几乎不用分什么派系,但是我们选择一款有代表性的知识范围广,并且入门容易,书籍多。 10、源程序 #include reg52.h #include intrins.h void delay(); #define const_key_time1 10 //按键去抖动延时的时间 #define const_key_time2 10 //按键去抖动延时的时间 #define const_key_time3 10 //按键去抖动延时的时间 #define const_key_time4 10 //按键去抖动延时的时间 #define time1 5 //1档的时间 #define time2 3 //2延时的时间 #define time3 1 //3延时的时间 unsigned char ucKeySec=0; //被触发的按键编号 unsigned int uiKeyTimeCnt1=0; //按键去抖动延时计数器 unsigned char ucKeyLock1=0; //按键触发后自锁的变量标志 unsigned int uiKeyTimeCnt2=0; //按键去抖动延时计数器 unsigned char ucKeyLock2=0; //按键触发后自锁的变量标志 unsigned int uiKeyTimeCnt3=0; //按键去抖动延时计数器 unsigned char ucKeyLock3=0; //按键触发后自锁的变量标志 unsigned int uiKeyTimeCnt4=0; //按键
显示全部
相似文档