资源描述
课 程 设 计 报 告
一、课程设计的性质和目的
通过课程设计,进行硬软件设计的方法和技能训练,巩固在课堂上学到的有关硬件电路设计和相应程序设计的基本知识和基本方法,通过具体课题的训练,达到能独立阅读、查阅资料、软硬件设计和调试完善特定功能的目的。
二、课程设计的要求
1、遵循硬件设计模块化。
2、要求通过自制PCB板、或万能板、或面包板设计实物。
3、程序设计结构化。
4、要求程序结构合理,程序简明易懂,有必要的注释。
三、主要仪器设备及软件
PC机、Keil软件、、ALTIUM DESINGERS09(PROTEL99)、 Proteus绘图软件及仿真等。
四、课程设计题目及要求
见具体课题(有课题老师与选题学生共同商定)
地点: 信息工程学院实验室(有教师协调安排)
元器件领用:由指导教师签字在行政楼301领取
时间安排: 每天集中半天的辅导(具体师生协商安排)
五、课题分析及设计思路
硬软件设计思路
基于单片机的步进电机控制,可以通过四个按键分别实现开始/停止,正传/反转,全速前进和单步前进。
通过外部中断来控制开始/停止按键可实时响应按键的输入。由两个LED分别指示程序的运行状态,可以方便进行操作。
硬件设计框图
总体硬件电路图如下所示:
硬件设计电路图(按模块设计)
1.单片机最小系统
AT89C51为8 位通用微处理器,主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0~P3 为可编程通用I/O 脚,其功能用途由软件定义。
5l系列单片机提供以下功能:4 kB存储器;256 BRAM;32条工/O线;2个16b定时/计数器;5个2级中断源;1个全双向的串行口以及时钟电路。
2.电机模块
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
步进电动机的励磁方式可分为全部励磁及半步励磁,其中全步励磁又有1相励磁及2相励磁之分,而半步励磁又称1—2相励磁。每输出一个脉冲信号,步进电动机只走一步。因此,依序不断送出脉冲信号,步进电动机即可连续转动。本设计选择半步励磁(1—2相励磁): 1—2相励磁法为1相与2相轮流交替导通。因分辨率提高,且运转平滑,每送一励磁信号可走9度。若以1—2相励磁法控制步进电动机正转,其励磁顺序如下所示(若励磁信号反向传送,则步进电动机反转):励磁顺序:A—AB—B—BC—C— CD— D— DA
驱动电路如下:其中:1B,2B,3B,4B分别与P10,P11.P12,P13相连接。
步进电机时序表:
3.按键模块
通过四个按键分别实现对步进电机的不同功能的实现,电路图如下:
开始/停止和方向按键分别通过连接单片机的P3.3,P3.2,用外部中断的方式对其处理,可快速准确的相应中断,以实现对电机的控制。
4.LED模块
通过两个LED分别指示开始/停止(D1),正/反转(D2)。电路图如下:
软件设计思路
软件功能规划
软件部分整体功能由开始/停止键控制,只有当开始/停止键按下,LED1(D1)亮时,才能控制步进电机的转动。D1点亮后,由LED2(D2)的亮灭来指示电机的正反转,当D2灯亮时,电机正转,D2灭时,电机反转。
当电机全速运行时,可通过开始/停止键和方向键控制电机停止转动。重新按下按键时,电机正常运行。
软件流程图如下:
六、程序主要代码与分析(关键代码要有注释):
#include <reg51.h> //51芯片管脚定义头文件
#include <intrins.h> //内部包含延时函数 _nop_();
#define uchar unsigned char
#define uint unsigned int
uchar code FFW[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; //正转电机编码
uchar code REV[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; //反转电机编码
sbit K1 = P3^0; //全速
sbit K2 = P3^1; //单步
sbit K3 = P3^2; //正/反转
sbit K4 = P3^3; //开始/停止
sbit led1 = P0^0; //指示灯,表示开始/停止状态
sbit led2 = P0^2; //指示灯,表示正转/反转状态
int num=500; //延时函数的常量,控制步进电机的转速
uchar h=0; //设置变量,控制单步运行
uchar flag = 0; //控制运行状态,控制开始/停止
uchar flag1 = 0; //控制运行状态,控制正转/反转
void motor_ffw(); //函数声明
void motor_rev();
void motor_ffw2();
/ /* 延时t毫秒,11.0592MHz时钟,延时约1ms
void delay(int t)
{
uint k;
while(t--)
{
for(k=0; k<20; k++)
{}
}
}
/ /*步进电机正转单步执行
void motor_single()
{
P1 = FFW[h]; //取数据,单步转45度
delay(num*2); //调节转速
h++; //全局变量,控制单步的次数
if(h == 8)
{
h = 0;
}
}
/ /*步进电机反转单步执行
void motor_single_cov()
{
P1 = REV[h]; //取数据,单步转45度
delay(num*2); //调节转速
h++;
if(h == 8) //全局变量,控制单步的次数
{
h = 0;
}
}
/ /*步进电机正转
void motor_ffw()
{
char i;
for (i=0; ; i++) //一个周期转45度
{
P1 = FFW[i]; //取数据
if(K4 == 0 || K3 == 0) //若K1按下,则停止
{
delay(5); //延时去抖动
break;
} //退出此循环程序
delay(num); //调节转速
if(i > 7)
i = 0;
}
}
/ /*步进电机反转
void motor_rev()
{
char i;
for (i=0; ; i++) //一个周期转45度
{
P1 = REV[i]; //取数据
if(K4 == 0 || K3 == 0) //若K1按下,则停止
{
delay(5); //延时去抖动
break;
} //退出此循环程序
delay(num); //调节转速
if(i > 6)
i = 0;
}
}
//主程序
void main(void)
{
EA=1; //开放总中断
EX0=1; //允许使用外中断0
IT0=1; //选择负跳变来触发外中断
EX1=1; //允许使用外中断1
IT1=1; //选择负跳变来触发外中断
while(1) //扫描查询按键状态
{
if(K1 == 0 && flag1 == 0 && flag == 1) //K1是否被按下
{
delay(5);
while(!K1);
motor_rev(); //flag1 =0,步进电机反转
}
if(K1 == 0 && flag1 == 1 && flag == 1)
{
delay(5);
while(!K1);
motor_ffw(); //flag1 =1,步进电机正转
}
if(K2 == 0 && flag1 == 0 && flag == 1)
{
delay(5);
while(!K2);
motor_single_cov(); //flag1 =0,电机反转单步执行
}
if(K2 == 0 && flag1 == 1 && flag == 1)
{
delay(5);
while(!K2);
motor_single(); //flag1 =1,电机正转单步执行
}
else
P1 = 0xf0;
}
}
/******************************************************/
void int0() interrupt 0 //外中断0的中断编号为0
{
led2 = ~led2; //取反led2
flag1++;
if(flag1 == 2) //flag1表示正反状态
{
flag1 = 0; //flag1 = 0为反转
}
}
void int1() interrupt 2 //外中断0的中断编号为1
{
led1 = ~led1; //取反led1
flag++; //flag值为1,表示开始状态
if(flag == 2) //再次按下,清flag = 0
{
flag = 0; //flag值为0,表示停止状态
}
}
七、调试与分析
验正结果截图或实物照片与分析
1.验证结果截图如下:
2.分析:
通过实际的按键检测可以发现使用按键中断的方法控制步进电机的转动,可以做到响应速度快,结果准确。相比较查询方式更加的灵活。而使用LED灯指示程序的运行状态,则更加的直观。
八、 参考文献
例说51单片机
九、心得体会
通过本次课程设计,使用单片机完成了对步进电机的综合控制,程序中用到了中断方面的程序,使我们对外部中断更加的熟悉和掌握。目 录
第1章 项目概况与项目建设的必要性 1
1.1项目概况 1
1.1.1项目名称 1
1.1.2项目主管单位 1
1.1.3 项目建设单位 1
1.1.4项目建设单位负责人 1
1.1.5项目建设性质 1
1.1.6项目建设地点 1
1.1.7项目建设期 2
1.1.8项目建设内容和规模 2
1.1.9项目投资估算 2
1.1.10项目资金筹措方案 3
1.1.11项目建设效益 3
1.2项目建设背景 3
1.2.1地理气候条件 3
1.2.2工业园区发展规划 4
1.2.3工业区已具产业规模 5
1.2.4项目提出的理由与过程 6
1.3项目建设必要性分析 9
1.3.1某某市“十一五发展规划”的要求 9
1.3.2某某市总体规划的要求 10
1.3.3某某市经济发展的要求 11
1.3.4园区发展的要求 12
1.4项目社会效益分析 13
1.4.1扩大内需,促进经济增长 13
1.4.2改善工业园区投资环境 14
1.4.3促进生产发展和提高人民生活水平 15
1.4.4促进园区的可持续发展 15
1.4.5带动园区周边土地增值及房地产发展 16
1.5项目建设可行性分析 17
1.5.1政府支持 17
1.5.2资金支持 17
1.5.3建设条件满足 18
1.6结论 18
第2章 项目建设内容及方案 19
2.1项目建设内容 19
2.1.1项目建设地点 19
2.1.2项目建设内容 19
2.1.3项目建设规模 19
2.2项目建设方案 20
2.2.1项目建设目标 20
2.2.2项目建设方案 20
2.2.3项目功能分析 23
2.3项目建设原则 26
2.3.1以人为本与可持续发展的原则 26
2.3.2集聚发展原则 27
2.3.3因地制宜原则 27
2.3.4环境保护原则 27
2.3.5节能降耗原则 27
2.3.6抗震原则 28
2.4建筑造型 28
第3章 项目建设和进度安排 29
3.1项目工程建设管理 29
3.1.1施工组织管理 29
3.1.2项目资金管理 29
3.1.3严格执行工程监理制度 29
3.2建设期安排与实施计划 30
3.2.1建设工期 30
3.2.2项目实施进度安排 30
3.2.3工程进度表 31
3.3项目建设劳动安全管理 34
第4章 各项建设条件落实情况 35
4.1园区建设规划与现状 35
4.2项目建设基本条件 36
4.2.1地形地貌条件 36
4.2.2工程地质条件 36
4.2.3城镇规划、园区区域规划条件 37
4.2.4交通条件 37
4.2.5社会环境条件 37
4.2.6征地拆迁条件 37
4.2.7施工条件 38
4.2.8资金条件 38
4.3环境保护及节能、消防 38
4.3.1环境保护 38
4.3.2节能降耗 40
4.3.3消防安全 43
4.4结论 44
第5章 投资估算与资金筹措 45
5.1编制范围 45
5.2编制依据 45
5.3单位价格 45
5.4其他费用 46
5.5建设投资估算 46
5.6年度投资计划 46
5.7资金筹措 47
第6章 财务评价 48
6.1概述 48
6.2依据与说明 48
6.3收入预测 48
6.4项目赢利能力分析 49
6.5财务评价 50
第7章 社会风险和融资风险分析 52
7.1项目社会影响分析 52
7.2项目与所在地互适性分析 53
7.3社会风险分析 53
7.4社会评价结论 54
7.5融资风险分析 54
7.5.1融资风险 54
7.5.2融资偿还途径 55
7.5.3融资风险分析结论 55
第8章 结论和请求 56
8.1结论 56
8.1.1本项目的建设符合某某市总体规划 56
8.1.2各项建设条件均满足项目的建设要求 56
8.1.3项目有充足的资金保障 56
8.1.4项目具有重大的社会效益 56
8.1.5某某市建设投资有限公司具备相应的实力和资质 57
8.1.6综合结论 57
8.2请求 57
13
展开阅读全文