智能电风扇课程设计.docx
《智能电风扇课程设计.docx》由会员分享,可在线阅读,更多相关《智能电风扇课程设计.docx(17页珍藏版)》请在冰豆网上搜索。
智能电风扇课程设计
《单片机原理与应用》课程设计报告
智能电风扇设计
要求:
一、功能要求
1.能控制电机正反转,有正转和反转按钮。
2.在一定范围内可控制转速,有加速和加速按钮,用七段码显示。
3.可在不断电源的情况下暂停,有一个暂停按钮。
4.电动机处于哪个速度状态观察七段码数值,也可直观的观察电动机的旋转状态比较。
二、设计过程要求
1、查阅资料确定设计方案;
2、对设计方案进行仿真验证;
3、选择合适的元器件,搭建电路实验验证效果;
4、画出PCB图;
5、书写设计报告;
6、答辩。
三、设计报告要求
设计报告主要包括:
题目、内容和要求、总体方案和设计思路、仿真电路图、软件设计、仿真调试效果、实验测试效果图、PCB图、心得体会。
姓名:
许德东
学号:
1886100119
专业:
电子科学与技术
班级:
10级1班
成绩:
评阅人:
安徽科技学院理学院物电系
智能电风扇设计实验报告
一、内容和要求
1、利用proteus软件设计各模块工作原理图,并进行模拟仿真;
2、控制程序设计、调试及实现:
(1)根据要求,写出完整的程序流程图;
(2)将设计程序输入,生成*.OBJ文件;
(3)利用proteus软件进行电路模拟仿真和调试
4、设计硬件电路并烧写程序,调试后系统能按照要求工作;
5、写出课程设计说明书(统一格式)
二、目的和意义
1、目的:
(1)、理论联系实际加深对课本知识的理解和运用;
(2)、学会用单片机编程设计有用的实物,提高自己的创新设计能力。
2、意义:
《单片机原理与嵌入式系统设计》课程设计是学好本门课程的又一重要实践性教学环节,课程设计的目的就是配合本课程的教学和平时实验,以达到巩固消化课程的内容,进一步加强综合应用科研的基本技能,是以培养学生综合运用所学知识的过程,是知识转化为能力和能力转化为工程素质的重要阶段。
三、总体方案和设计思路
3.1总体方案
本课程设计的内容是利用51单片机,达到控制步进电机的启动、停止、正转、反转、速度和状态显示的目的,使步进电机控制更加灵活。
步进电机驱动芯片采用ULN2003A,ULN2003A具有大电流、高电压,外电路简单等优点。
利用数码管增设电机速度状态显示功能,各项数据更直观。
实测结果表明,该控制系统达到了设计的要求。
图-1总体方案模块图
3.2、设计过程和思路
1、课程设计任务
根据给定的任务要求选择合适的单片机和其他电子元器件,进行系统硬件电路设计和软件编程,根据系统制作并调试系统电路板,使之实现任务要求。
有关参数选择要求符合国家标准。
具体设计内容如下:
(1).能控制电机正反转,有正转和反转按钮。
(2).在一定范围内可控制转速,有加速和加速按钮,用七段码显示。
(3).可在不断电源的情况下暂停,有一个暂停按钮。
(4).电动机处于哪个速度状态观察七段码数值,也可直观的观察电动机的旋转状态比较。
单片机的应用系统随着用途不同,它们的硬件和软件结构差别很大,但系统设计的方法和步骤基本上是相同的。
一般包括总体设计、硬件设计、软件设计、仿真调试、固化程序、应用系统独立运行等步骤。
2、电路所用主要元件认识
(1)、AT98S51芯片认识
图-2AT80C51引脚分布图
并行I/O口引脚引脚功能
P0口:
8位,漏极开路的双向I/O口
①当80C51外扩存储器及I/O接口芯片时,P0口作为低8位地址总线及数据总线的分时复用端口。
②P0口也可用作通用的I/O口,需要加上拉电阻,这时为准双向口。
作为通用I/O输入,应先向端口写入1,可驱动8个LS型TTL负载。
P1口:
8位,准双向I/O口,具有内部上拉电阻。
①准双向I/O口,作为通用I/O输入时,应先向端口锁存器写1。
P1口可驱动4个LS型TTL负载。
②P1.5/MOSI、P1.6/MISO和P1.7/SCK可用于对片内Flash存储器串行编程和校验,它们分别是串行数据输入、输出和移位脉冲引脚。
P2口:
8位,准双向I/O口,具有内部上拉电阻。
①当80C51外扩存储器及I/O口时,P2口作为高8位地址总线用,输出高8位地址。
②P2口也可作为普通的I/O口使用。
当作为通用I/O输入时,应先向端口输出锁存器写1。
可驱动4个LS型TTL负载。
P3口:
8位,准双向I/O口,具有内部上拉电阻。
①可作为通用的I/O口使用。
作为通用I/O输入,应先向端口输出锁存器写入1。
可驱动4个LS型TTL负载。
②P3口还可提供第二功能,功能表如表4-1所示:
表-1P3口第二功能定义
引脚
第二功能
说明
P3.0
RXD
串行数据输入口
P3.1
TXD
串行数据输出口
P3.2
INT0
外部中断0输入
P3.3
INT1
外部中断1输入
P3.4
T0
定时器0外部计数输入
P3.5
T1
定时器1外部计数输入
P3.6
WR
外部数据存储器写选通输出
P3.7
RD
外部数据存储器读选通输出
(2)ULN200A芯片认识
ULN2003A芯片是一个7路反相器,即第1到7引脚输入端为低电平时,对应输出端第16到10引脚输出为高电平,反之亦然。
8引脚接地,第9引脚COM提供工作电压,如proteus中图(3),实物图中引脚编号是逆时针(8号在左下,9号在右下)。
图-3ULN200A芯片引脚分布
本设计中引脚1、2、3、4分别与AT89s51芯片的P2.0、P2.1、P2.2、P2.3口相连接,规定正转为逆时针方向的转动引脚16、15、14、13连接到A、B、C、D上所示,电动机中间引脚直接与5V电压相接,目的是驱动电动机,使其正常工作
(3)七段码显示管认识
七段码是大家比较熟悉,实质上就是一些二极管组合,这里用的是共阳极的七段码。
课本上还有接法及码值表。
本设计由P0口控制显示,用共阳极的。
从P0.0-P0.7连接a-f引脚,com接电源。
LED是发光二极管的英文缩写,LED显示器是由发光二极管构成的,它在单片还机中的应用非常普遍。
通常所说的LED显示器由7个发光二极管组成,其排列状如图所示。
此外,显示器中还有一个圆点型发光二极管以d表示,用于小数点表示。
通过七个发光二极管亮暗的不同组合,可以显示多种数字、字母以及其它符号。
LED显示中的发光二极管共有两种连接方法:
共阳极接法:
把发光二极管的阳极连在一起构成公共阳极。
使用时公共阳极接+5V。
这样阴极端输入低电平的段发光二极管就导通点亮,而输入高电平的则不亮。
共阴极接法:
把发光二极管的阴极连在一起构成公共阴极。
使用时公共阴极接地。
这样阳极端输入高电平的段发光二极管就导通点亮,而输入低电平的则不亮。
十六进制码值表如下:
表-2数码管编码表
十六进制数
hgfedcba
显示代码
0
00111111
0x3f
1
00000110
0x06
2
01011011
0x5b
3
01001111
0x4f
4
01100110
0x66
5
01101101
0x6d
6
01111101
0x7d
7
00000111
0x07
8
01111111
0x7f
9
01101111
0x6f
.
10000000
0x80
图-4七段显示数码管
(4)本实验使用步进电机
步进电机是一种将电脉冲转化为角位移的执行机构。
通俗一点讲:
当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。
可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时也可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
进电机工作原理
步进电机是工业过程控制及仪表中常用的控制元件之一,例如在机械装置中可以用丝杠把角度变为直线位移,也可以用步进电机带螺旋电位器,调节电压或电流,从而实现对执行机构的控制。
步进电机可以直接接收数字信号,不必进行数模转换,用起来非常方便。
步进电机还具有快速启停、精确步进和定位等特点,因而在数控机床、绘图仪、打印机以及光学仪器中得到广泛的应用。
步进电机实际上是一个数字/角度转换器,三相步进电机的结构原理如图所示。
从图中可以看出,电机的定子上有六个等分磁极,A、A′、B、B′、C、C′,相邻的两个磁极之间夹角为60°,相对的两个磁极组成一相(A-A′,B-B′,C-C′),当某一绕组有电流通过时,该绕组相应的两个磁极形成N极和S极,每个磁极上各有五个均匀分布矩形小齿,电机的转子上有40个矩形小齿均匀地分布的圆周上,相邻两个齿之间夹角为9°。
当某一相绕组通电时,对应的磁极就产生磁场,并与转子形成磁路,如果这时定子的小齿和转子的小齿没有对齐,则在磁场的作用下,转子将转动一定的角度,使转子和定子的齿相互对齐。
由此可见,错齿是促使步进电机旋转的原因。
图-5步进电机结构图
步进电机以三相六拍(三相双拍)方式工作,若按A→AB→B→BC→C→CA→A次序通电为正转,则当按A→AC→C→CB→B→BA→A次序通电为反转。
三相三拍(三相单拍)有两种A→B→C→A,AB→BC→CA→AB正转,反转则反序。
注意:
步进电机转数受相数、起转频率、载荷影响等只能在一定范围内。
四、原理电路图设计
1、显示部分电路
用七段显示数码管共阳接法显示电机的转速从0-9,当停止时显示P。
图-6显示电路
2、转动部分电路
电机通过ULN2003A芯片驱动转动。
图-7转动电路
3、按键控制电路
按键1停止、按键2反转、按键3正传、按键4加速、按键5减速。
图-8按键控制
4、晶振复位电路
晶振为6Mz,R1为200Ω,R2为20KΩ
图-9晶振复位电路
5、完整电路
图-10完整原理图电路
五、软件设计
图-11程序流程图
1、编写程序
(1)旋转程序
其实挺简单的就是让接电机驱动的P2.0~P2.3只有一个不同电平在这四相来回安循环即可,也可双相。
例如:
for(i=0,P2=0x01;i<4;i++)
{delay(12);
P2=P2<<1;
}
(2)延时程序
直接用循环即可
voiddelay(m)
{inti,j;
for(i=0;ifor(j=0;j<1000;j++);
}
(3)加减速程序
步进电机实现速度的精确控制,我设定十个速度,通过加减延时来实现。
其中最小速度还可用来控制角度,我见一个同学专门编一这样程序才想到的。
(4)制动
把P2置为0ff或00即可实现。
(5)速度显示
用码值表建立一数组即可。
2、完整程序
#include
#defineuintunsignedint
voidstop();
voidfun();
fast(intn);
slow(intn);
voiddelay(uintm);
sbitk1=P1^0;
sbitk2=P1^1;
sbitk3=P1^2;
sbitk4=P1^3;
sbitk5=P1^4;
uintseg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uintspb[]={240,100,60,50,30,20,10,5,3,1};
intn=0,m;
voidmain()//主程序
{
while
(1)
{P0=seg[n];
stop();
fun();
}
}
voidstop()//紧急制动子程序
{
if(k1==0)
{delay(10);
if(k1==0)
while(!
k1)
{P2=0xff;P0=0x8c;}
P0=seg[n];
}
}
voidfun()//正反转子程序
{inti;
if(!
k2)
{delay(10);
while(!
k2)
{stop();
if(!
k4)n=fast(n);
if(!
k5)n=slow(n);
for(i=0,P2=0x01;i<4;i++)
{delay(spb[n]);
P2=P2<<1;
}
}
}
if(!
k3)
{delay(10);
while(!
k3)
{stop();
if(!
k4)n=fast(n);
if(!
k5)n=slow(n);
for(i=0,P2=0xf7;i<4;i++)
{delay(spb[n]);
P2=P2>>1;
}
}
}
if(!
k4)n=fast(n);
if(!
k5)n=slow(n);
}
fast(n)//加速子程序
{delay(10);
while(!
k4&&n<9)
{n++;
P0=seg[n];
delay(150);
}
return(n);
}
slow(n)//减速子程序
{delay(10);
while(!
k5&&n>0)
{n--;
P0=seg[n];
delay(150);
}
return(n);
}
voiddelay(m)//延时子程序
{inti,j;
for(i=0;ifor(j=0;j<500;j++);
}
六、仿真调试验证
图-12仿真图
1、初始时没开关按下数码管显示0,第二、三按钮为正反转按钮,按下其一就能实现正反旋转。
每次换方向都需松开另一方向开关,否则以先按下为准旋转。
2、加减速控制
按下加减速开关,数码管会显示速度编号。
当松开加减速按钮数码管显示就是当前速度值。
3、紧急制动
无论是否有按钮按下,按下紧急制动按钮电机会停止,七段码显示“P”。
通过Proteus模拟达到效果所以就开始焊接电路板。
七、实物图
图-13仿真实物图
八、PCB板图
图-14PCB板图
九、课程心得总结
本次设计是对所学知识的一次综合性运用,学会了独立设计的过程和查找资料的方法。
其中包括对模拟电子技术基础、数字电子技术基础、单片机、计算机语言等知识的运用,从而完成了本次的设计。
在设计的过程中发现了自身的不足,并且我认为只有具备了专业基础知识,才能成功的设计出一份合格的事物。
这次设计收获颇多,体会也很深刻,并且对我们所学的东西也产生了浓厚的兴趣。
在设计过程中,也加深了对一些软件的认识和运用,采用Proteus仿真软件进行绘制电路原理图,以及运用KeilC51编程软件对系统进行编程实现功能。
当然最重要的是学到了关于基本电子设计的一些基本方法,同时也加深了对一些常用的电子元件的理解及其基本用法。
我的电风扇步进电机能实现十种不同的速度,当然通过编程能实现更多,达到速度精确,数码管显示的只是速度编号。
最慢的速度,通过按钮点动控制实现角度控制。
普通电机只能实现一种速度,若变速需要复杂变速机构且效率低。
本次课程设计,虽然老师分成硬件、软件编程,但我是从画图到编程再到连接实物电路全部自己做的。
基本对本次设计刚到满意,虽然硬件做的不是很好。
通过本次课程设计真正体验到利用单片机设计功能电路制作过程,同时了解了步进电机基本原理,基本要求,确实学到不少知识。
我从与老师同学交流中知道自己有哪些不足有待提高,也感觉到执着追求知识之精神。
做本次课程设计我已尽力,虽然功能实现的不是太完美,也基本达到我想要的效果,也确实有了很大的提高。
十、参考文献
[1]张齐等编著.《单片机原理与嵌入式系统设计》电子工业出版社,2011年8月
[2]杨渝清主编.控制电机(第二版)机械工业出版社,2004年1月
[3]刘坤赵红波张宪栋编.51单片机C语言应用开发技术大全(第二版),2012年3月
[4]楼然苗李光飞编.单片机课程设计指导(第二版),2005年4月