【毕业设计】53-基于单片机的道岔\直流电机控制系统设计(原理图+源代码+仿真+答辩论文+答辩PPT+流程图)
资料要求
资料包含:毕业设计全套资料(精品)
原理图工程文件
原理图截图
仿真模型工程文件
仿真截图
搭建视频
答辩论文低重复率,21982字
英文文献及翻译
答辩PPT
visio流程图工程
详情请私信!
任务书
以动车组作为研究对象,对道岔控制系统展开分析与设计。基于单片机实现道岔控制系统的设计。
1、画出控制系统原理框图,对其进行说明。
2、完成控制系统的硬件电路原理图设计。
3、进行软件设计并调试仿真,达到相应的控制要求。
4、对课题相关知识进行总结对课题的进一步深入进行思考,完成毕业论文。进一步提高综合应用能力,为自己的以后工作发展奠定基础。
设计说明书
摘要
随着科学进步,人民需求不断提高。人们出行时间变多,铁路扩张,对于我国的铁路控制需求也对应提高。对于道岔之间的控制可以有效的保证动车组,铁路组,高铁组列车可以安全的切换到自己的路线中。
本文设计题目为道岔控制系统,通过对我国的铁路发展情况,控制情况做出详细的了解,对我国的铁路道岔控制系统掌握。并根据当前我国铁路道岔控制系统做出改进。通过对当前铁路控制系统查到的控制方案提出新的解决方案并通过对当前所发展的设备来为系统设计控制方案选择使用微型控制器、显示器、按键以及电机作为控制部件。绘制系统电路图,搭建系统软件工程,搭建系统仿真电路图。使用仿真软件搭建系统电路后并调试系统测试系统设计合理性,再对系统的电路原理进行改进。使用Keil软件搭建系统工程,将系统中的驱动程序以及应用程序按照需求编写。并绘制测试记录表记录测试结果完成本次工程设计。仿真工程的全部测试功能均为系统必要的功能,并且完成耐久测试,通过压力测试后保证系统的稳定性与耐久性。
本次设计题目,充分使用到了电气设计EDA软件对系统进行设计,并且使用仿真软件Proteus对设计电路进行验证,在线调试电路与系统功能。保证系统设计的合理性与可推广性。本次设计经过了大量的测试验证证明为稳定的系统,具有市场推广性。
设计框架架构
设计说明书及设计文件
源码展示
#include "reg51.h"
#include "lcd1602.h"
#define uchar unsigned char
#define uint unsigned int
sbit out1=P2^3;//电机
sbit out2=P2^4;
sbit k1=P1^0;//按钮
sbit k2=P1^1;
sbit k3=P1^2;
sbit k4=P1^3;
sbit k5=P1^4;
sbit k6=P1^5;
uchar flag=0,fang=0;//方向控制
uchar speed=5,time=0;//速度控制0-9
uchar start=0;//启动
uchar sec=0;
uchar disp1[]=" railroad switch";//
//主函数
void main()
{
init_1602();
TMOD|=0X01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
ET0=1;//打开定时器0中断允许
EA=1;//打开总中断
TR0=1;//打开定时器
while(1)
{
//按键检测
if(!k1)//启动
{
start=1;
}
if(!k2)//停止
{
start=0;
}
if(!k3)//正转
{
fang=0;
}
if(!k4)//反转
{
fang=1;
}
if(!k5)//加速
{
if(speed<9)
speed++;
while(!k5);
}
if(!k6)//减速
{
if(speed>0)
speed--;
while(!k6);
}
//电机控制
if(start==1)
{
if(time<9)
time++;
else
time=0;
if(fang==0)//正转
{
if(time<speed)
{
out2=0;out1=1;
}
else
{
out2=1;
}
}
else //反转
{
if(time<speed)
{
out1=0;out2=1;
}
else
{
out1=1;
}
}
}
else
{
out1=1;
out2=1;
}
}
}
//定时器中断
void Timer0() interrupt 1
{
//=================显示
if(sec<50)//0.5s
sec++;
else
{
sec=0;
disp1[20]=speed+0x30;//速度
write_string(1,0,disp1);
if(start)
{
if(fang==0)
{
write_string(2,6,"RIGHT");
}
else
{
write_string(2,6,"LEFT ");
}
}
else
{
write_string(2,6,"STOP ");
}
}
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
}