电子创新设计实验报告材料.docx

上传人:b****6 文档编号:16080322 上传时间:2023-07-10 格式:DOCX 页数:15 大小:263.21KB
下载 相关 举报
电子创新设计实验报告材料.docx_第1页
第1页 / 共15页
电子创新设计实验报告材料.docx_第2页
第2页 / 共15页
电子创新设计实验报告材料.docx_第3页
第3页 / 共15页
电子创新设计实验报告材料.docx_第4页
第4页 / 共15页
电子创新设计实验报告材料.docx_第5页
第5页 / 共15页
电子创新设计实验报告材料.docx_第6页
第6页 / 共15页
电子创新设计实验报告材料.docx_第7页
第7页 / 共15页
电子创新设计实验报告材料.docx_第8页
第8页 / 共15页
电子创新设计实验报告材料.docx_第9页
第9页 / 共15页
电子创新设计实验报告材料.docx_第10页
第10页 / 共15页
电子创新设计实验报告材料.docx_第11页
第11页 / 共15页
电子创新设计实验报告材料.docx_第12页
第12页 / 共15页
电子创新设计实验报告材料.docx_第13页
第13页 / 共15页
电子创新设计实验报告材料.docx_第14页
第14页 / 共15页
电子创新设计实验报告材料.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

电子创新设计实验报告材料.docx

《电子创新设计实验报告材料.docx》由会员分享,可在线阅读,更多相关《电子创新设计实验报告材料.docx(15页珍藏版)》请在冰点文库上搜索。

电子创新设计实验报告材料.docx

电子创新设计实验报告材料

中国海洋大学课程设计报告

设计制作一台微型程控搅拌器

 

 

专业年级:

2014级通信工程

指导教师:

谷健

设计人:

张志诚14020023053

左修洋14020023055

设计日期:

2017年8月23日

 

摘要

 

本设计是制作一台微型程控搅拌器,采用AT89S52单片机来控制电机的正转、反转、加速转、减速转,以及与红黄绿三种颜色的LED灯的交替变亮、闪烁相互配合。

采用PWM进行调速,全部通过单片机控制,达到智能操控的效果。

关键字:

AT89S52;PWM;单片机控制

 

1设计题目

1.1任务

设计和制作一个由程序控制的微型搅拌器,它按照一定的搅拌程序控制电机作正向和反向的转动。

定时器采用单片机设计制作,来控制微型搅拌器做如下运转:

打开电源1s后:

电机高速正传5s,

暂停1s,

电机高速反转5s,

暂停1s

电机低速正传10s,

暂停1s,

电机低速反转10s,

暂停1s

电机高速正传5s,

暂停1s,

电机高速反转5s,

电机停转,搅拌结束。

1.2设计要求

(1)搅拌器打开电源开始1秒内,所有灯亮。

(2)搅拌器电机高速正转时绿指示灯亮,其它灯灭。

(3)搅拌器电机高速反转时红指示灯亮,其它灯灭。

(4)搅拌器电机低速正转时绿指示灯闪烁,闪烁频率1Hz,其它灯灭。

(5)搅拌器电机低速反转时红指示灯闪烁,闪烁频率1Hz,其它灯灭。

(6)搅拌器电机暂停时黄色指示灯闪烁,闪烁频率1Hz,其它灯灭。

(7)搅拌器电机停转时所有灯灭。

1.3说明

(1)搅拌器电机采用3V小型直流电机。

(2)三色指示灯采用红黄绿三种颜色的发光二极管。

(3)电机和指示灯驱动电压不要超过3V。

(4)搅拌头可采用塑料圆珠笔芯插上折叠90度制作。

1.4设计提示

可以利用51单片机最小系统加驱动控制单元来实现。

电机驱动控制单元和指示灯可选用继电器控制或者H桥电路控制。

高低电平变换控制可选用三极管控制。

调速可采用PWM调速。

2系统方案选择

2.1单片机选择

选择AT89S52单片机,该芯片I/O口较多,能够达到调速、控制LED灯的亮灭和正反转的要求,价格相对便宜,在此非常合适。

2.2电机制动

根据单片机的端口输出电平来决定,当单片机输出为低电平的时候,利用电磁继电器的开关功能来控制电机的导通和截止

2.3电机正反转

根据单片机的端口输出电平来决定,根据输出的高低电平来控制电机的正转和反转。

 

3系统原理框图

 

 

 

对于电路的搭建,我们采用两组电路来实现功能,分别为LED灯指示电路和马达运转电路。

3.1LED灯指示电路

单片机左端为LED灯指示电路,每个LED灯都串接一个100Ω电阻,用来对5V电源进进行分压,保证LED灯正常工作。

每个LED灯接单片机的输出信号。

灯光指示原理为:

当单片机输出高电平时,LED灯两端电压不足,为熄灭状态;当单片机输出低电平时,LED灯正常工作,为常亮状态。

3.2电机运转电路

由于单片机输出信号的电流较小,所以采用晶体管对其进行放大,然后使用一个继电器构成H桥电路对电机实现正转和反转;用另一个继电器对电机实现开和关。

3.3AT89S52单片机

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K系统可编程Flash存储器。

使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。

 

4软件流程

系统的软件设计采用C语言编程实现各项功能,采用keil编写C语言代码,然后运用proteus进行电路仿真,观察仿真结果并进行调整。

 

 

 

 

 

Protues电路图:

 

仿真软件截图:

电路板实物图

5总结

本系统以单片机AT89S52芯片为核心部件,利用其输出的高低电平来操控LED的亮灭转换以及电机的正转、反转、减速转、暂停,最终完成微型程控搅拌器的任务。

在软件设计的过程中,力争使用程序的模块化,自上而下进行程序设计,使得程序尽量简洁易懂,易修改。

在电路板的焊接之前,我们先使用Proteus进行软件仿真,在仿真的过程当中,我们发现了诸多问题,比如LED灯的亮灭时间与实际不符,电机无法实现反转等等,但在最后我们都将此问题一一解决。

在电路板焊接完成后,在调试的过程中,我们也发现并遇到了许多问题,比如接地端没有共地,单片机电流输出不足,无法驱动电路等等。

通过这次的实验课,我们真正做到了理论与实践相结合,对单片机的知识又了解了许多,对单片机的硬件结构的研究和软件的编程的兴趣增加了很多,培养了团队合作意识,提升了自己的素质,锻炼了自己,结识了其他班的同学,熟悉了对一项课题研究、设计和实验的过程。

这将会在我们今后的学习和工作中起到很大的帮助。

 

附录:

程序设计:

思路:

采用延时函数,以及51单片机的5个I/O口输出的信号来提供高低电平信号,操控外部电路,来实现灯的亮灭以及电机的正反转和延时。

代码部分:

#include

sbitRED=P1^0;//定义输出口

sbitYELLOW=P1^1;

sbitGREEN=P1^2;

sbitRUN=P1^3;

sbitPAUSE=P1^4;

voiddelay(unsignedintnum)//延时1s

{

unsignedinti;

for(i=num*110*1000;i>0;i--)

{

}

}

voiddelayms(unsignedintnum)//延时1ms

{

unsignedinti;

for(i=num*110;i>0;i--)

{

}

}

 

voidhighRUNpostive()//高速正转

{

unsignedinti;

RUN=1;

RED=1;

YELLOW=1;

GREEN=0;

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

{

delay

(1);

}

}

voidhighRUNnegative()//高速反转

{

unsignedinti;

RUN=0;

RED=0;

YELLOW=1;

GREEN=1;

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

{

delay

(1);

}

}

voidlowRUNpostive()//低速正转

{

unsignedintj=0;

GREEN=0;

RED=1;

YELLOW=1;

RUN=1;

for(j=0;j<19;j++)

{

GREEN=!

GREEN;

RUN=1;

delayms(800);

PAUSE=1;

delayms(200);

PAUSE=!

PAUSE;

}

}

voidlowRUNnegative()//低速反转

{

unsignedintj=0;

unsignedintk=0;

RED=0;

GREEN=1;

YELLOW=1;

RUN=0;

for(j=0;j<19;j++)

{

RED=!

RED;

RUN=0;

delayms(800);

PAUSE=1;

delayms(200);

PAUSE=!

PAUSE;

}

}

voidreset()//重置函数

{

RED=1;

YELLOW=1;

GREEN=1;

RUN=0;

PAUSE=0;

}

voidpause()//电机暂停

{

unsignedintj=0;

YELLOW=0;

GREEN=1;

RED=1;

RUN=0;

PAUSE=1;

delayms(500);

YELLOW=1;

}

voidmain()

{

unsignedinti=0;

RED=0;

YELLOW=0;

GREEN=0;

RUN=0;

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

{

delayms

(1);

PAUSE=1;

delayms(999);

PAUSE=!

PAUSE;

}

highRUNpostive();

pause();

reset();

highRUNnegative();

pause();

reset();

lowRUNpostive();

pause();

reset();

lowRUNnegative();

pause();

reset();

highRUNpostive();

pause();

reset();

highRUNnegative();

reset();

}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2