整理基于单片机ULN的步进电机控制系统汇编及C语言程序各一个.docx

上传人:b****2 文档编号:3231206 上传时间:2023-05-05 格式:DOCX 页数:14 大小:99.22KB
下载 相关 举报
整理基于单片机ULN的步进电机控制系统汇编及C语言程序各一个.docx_第1页
第1页 / 共14页
整理基于单片机ULN的步进电机控制系统汇编及C语言程序各一个.docx_第2页
第2页 / 共14页
整理基于单片机ULN的步进电机控制系统汇编及C语言程序各一个.docx_第3页
第3页 / 共14页
整理基于单片机ULN的步进电机控制系统汇编及C语言程序各一个.docx_第4页
第4页 / 共14页
整理基于单片机ULN的步进电机控制系统汇编及C语言程序各一个.docx_第5页
第5页 / 共14页
整理基于单片机ULN的步进电机控制系统汇编及C语言程序各一个.docx_第6页
第6页 / 共14页
整理基于单片机ULN的步进电机控制系统汇编及C语言程序各一个.docx_第7页
第7页 / 共14页
整理基于单片机ULN的步进电机控制系统汇编及C语言程序各一个.docx_第8页
第8页 / 共14页
整理基于单片机ULN的步进电机控制系统汇编及C语言程序各一个.docx_第9页
第9页 / 共14页
整理基于单片机ULN的步进电机控制系统汇编及C语言程序各一个.docx_第10页
第10页 / 共14页
整理基于单片机ULN的步进电机控制系统汇编及C语言程序各一个.docx_第11页
第11页 / 共14页
整理基于单片机ULN的步进电机控制系统汇编及C语言程序各一个.docx_第12页
第12页 / 共14页
整理基于单片机ULN的步进电机控制系统汇编及C语言程序各一个.docx_第13页
第13页 / 共14页
整理基于单片机ULN的步进电机控制系统汇编及C语言程序各一个.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

整理基于单片机ULN的步进电机控制系统汇编及C语言程序各一个.docx

《整理基于单片机ULN的步进电机控制系统汇编及C语言程序各一个.docx》由会员分享,可在线阅读,更多相关《整理基于单片机ULN的步进电机控制系统汇编及C语言程序各一个.docx(14页珍藏版)》请在冰点文库上搜索。

整理基于单片机ULN的步进电机控制系统汇编及C语言程序各一个.docx

整理基于单片机ULN的步进电机控制系统汇编及C语言程序各一个

图8总体电路图

1.3.4软件设计

通过分析可以看出,实现系统功能可以采用多种方法,由于随时有可能输入加速、加速信号和方向信号,因而采用中断方式效率最高,这样总共要完成4个部分的工作才能满足课题要求,即主程序部分、定时器中断部分、外部中断0和外部中断1部分,其中主程序的主要功能是系统初始参数的设置及启动开关的检测,若启动开关合上则系统开始工作,反之系统停止工作;定时器部分控制脉冲频率,它决定了步进电机转速的快慢;两个外部中断程序要做的工作都是为了完成改变速度这一功能。

下面分析主程序与定时器中断程序及外部中断程序。

(1)主程序设计

主程序中要完成的工作主要有系统初始值的设置、系统状态的显示以及各种开关状态的检测判断等。

其中系统初始状态的设置内容较多,该系统中,需要初始化定时器、外部中断;对P1口送初值以决定脉冲分配方式,速度值存储区送初值决定步进电机的启动速度,对方向值存储区送初值决定步进电机旋转方向等内容。

若初始化P1=11H、速度和方向初始值均设为0,就意味着步进电机按四相单四拍运行,系统上电后在没有操作的情况下,步进电机不旋转,方向值显示“0”,速度值显示“0”,主程序流程图如图9所示。

(2)定时中断设计

步进电机的转动主要是给电机各绕组按一定的时间间隔连续不断地按规律通入电流,步进电机才会旋转,时间间隔越短,速度就越快。

在这个系统中,这个时间间隔是用定时器重复中断一定次数产生的,即调节时间间隔就是调节定时器的中断次数,因而在定时器中断程序中,要做的工作主要是判断电机的运行方向、发下一个脉冲,以及保存当前的各种状态。

程序流程图如图10所示。

(3)外部中断设计

外部中断所要完成的工作是根据按键次数,改变速度值存储区中的数据(该数据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,也就是改变了电机的转速。

速度增加按钮S2为INT0中断,其程序流程为原数据,当值等于7时,不改变原数值返回,小于7时,数据加1后返回;速度减少按钮S3,当原数据不为0,减1保存数据,原数据为0则保持不变。

程序流程图如图11所示。

 

 

1.3.5源程序(汇编、C语言程序各一个)

汇编程序如下:

SPEEDEQU10H;SPEED为转速等级标志,共7级,即1~7

FXEQU11H;FX为方向标志

COUNTEQU12H;COUNT中断次数标志

ORG0000H

AJMPMAIN

ORG0003H;外部中断0入口地址,加速子程序

AJMPUP

ORG0013H;外部中断1入口地址,减速子程序

AJMPDOWN

ORG000BH;定时器0中断入口地址,控制中断次数来达到控制转速

AJMPZDT0

ORG0030H

MAIN:

MOVSP,#60H

MOVTMOD,#01H;工作于定时、软件置位启动!

模式1(16位计时器)

MOVTH0,#0CFH

MOVTL0,#2CH

MOVCOUNT,#01H

SETBET0;定时/计数器允许中断

CLRIT0;外部中断为电平触发方式,低电平有效

CLRIT1

SETBEX0;外部允许中断

SETBEX1

SETBEA;开总中断

MOVR1,#11H;四相单四拍运行,共阳数码管方向显示8,速度值显示0

MOVSPEED,#00H

MOVFX,#00H

XIANS:

MOVA,SPEED

MOVDPTR,#LED

MOVCA,@A+DPTR;查表获取等级对应数码管代码

MOVP2,A;第二个数码管显示转速等级

MOVA,FX;准备判断转向

CJNEA,#11H,ELS

MOVP0,#0F9H;第一个数码管显示1,表示正转

AJMPQD

ELS:

CJNEA,#00H,ZHENG

MOVP0,#0C0H;第一个数码管显示0,表示不转

AJMPQD

ZHENG:

MOVP0,#0BFH;第一个数码管显示-,表示反转

QD:

JBP3.4,DD;P3.4接启动开关K1,P3.4=1时启动

CLRTR0;停止定时/计数器

MOVP0,#0C0H;第一个数码管显示0,表示不转

MOVP2,#0C0H;第二个数码管显示0,表示转速为0

MOVSPEED,#00H;重新赋初值

MOVFX,#00H

AJMPQD

DD:

MOVA,SPEED

JNZGO;A不等于0,即初始速度不为零,则转移到GO

CLRTR0;停止定时/计数器

AJMPQD

GO:

SETBTR0;开启定时/计数器

ACALLDELAY

AJMPXIANS

DELAY:

MOVR6,#10;延时子程序

DEL1:

MOVR7,#250

HERE1:

DJNZR7,HERE1

DJNZR6,DEL1

RET

;以下ZDT0为定时器中断程序

ZDT0:

PUSHACC

PUSHDPH

PUSHDPL

MOVTH0,#0D8H

MOVTL0,#0F0H

DJNZCOUNT,EXIT

JBP3.5,NIZHUAN;查询方向标志,P3.5接换向开关K2

MOVFX,#11H

NIZHUAN:

MOVA,FX

CJNEA,#11H,FZ;若A不等于11,即正转,则转移到FZ

MOVA,R1;R1记录上一次电机脉冲状态

MOVP1,A

RRA;循环右一位

MOVR1,A

MOVP1,A

AJMPRE

FZ:

MOVA,R1

MOVP1,A

RLA;循环左移一位

MOVP1,A

MOVR1,A

RE:

MOVA,SPEED

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVCOUNT,A;把转速级别赋给COUNT

JBP3.5,FFX;P3.5接换向开关K2,即换向位,若P3.5=1,则跳到FFX

MOVFX,#11H

AJMPEXIT

FFX:

MOVFX,#0FEH;只要FX不等于11H,就可以通过循环左移或右移进行换向

EXIT:

POPDPL

POPDPH

POPACC

RETI

;以下UP为加速中断程序

UP:

PUSHACC

ACALLDELAY;延时防抖动

JBP3.2,UPEX;P3.2为外部中断0位,接增速开关S2,低电平有效,若P3.2=1,则退出

MOVA,SPEED

CJNEA,#7,SZ;最大等级为7,若A不等于7,则转移到SZ

AJMPUPEX;若A=7,则退出

SZ:

INCSPEED;SPEED=SPEED+1

UPEX:

POPACC

HERE2:

JNBP3.2,HERE2;本条指令为防止开关S2按下去后弹不起,导致一直产生中断

RETI

;以下DOWN为减速中断程序

DOWN:

PUSHACC

ACALLDELAY

JBP3.3,DEX;P3.3为外部中断1位,接减速开关S3,低电平有效,若P3.3=1,则退出

MOVA,SPEED

CJNEA,#0,SJ

AJMPDEX

SJ:

DECSPEED;SPEED=SPEED-1

DEX:

POPACC

HERE3:

JNBP3.3,HERE3

RETI

TAB:

DB0,60,40,35,30,28,25,21;经仿真,小于21时,由于脉冲太快,会出现失步

;0123456789

LED:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H

END

 

C语言程序如下:

#include

#defineuintunsignedint

sbitk1=P3^4;//启动开关

sbitk2=P3^5;//换向开关

sbits2=P3^2;//加速按钮

sbits3=P3^3;//减速按钮

voidisr_int0(void);//外部中断0中断服务函数声明

voidisr_int1(void);

voidzd_t0ist(void);

uintspeed,count,r1,i,t,k;

main()

{k=0;

t=0;

r1=0x11;

speed=0;

count=1;

TMOD=0x01;

ET0=1;

EA=1;

EX0=1;

EX1=1;

TH0=0xcf;

TL0=0x2c;

for(;;)

{if(k1==0)

{P0=0xff;

P2=0xff;

speed=0;

TR0=0;

}

else

{

if(k2==0)

P0=0xbf;

elseP0=0xf9;

if(speed==0)

{P2=0xc0;

TR0=0;

}

elseTR0=1;

}

}

}

voidisr_int0(void)interrupt0

{

if(speed<7)

speed=speed+1;

while(s2==0)

{for(i=0;i<10;i++);}

}

voidisr_int1(void)interrupt2

{

if(speed>0)

speed=speed-1;

while(s3==0)

{for(i=0;i<10;i++);}

}

voidzd_t0ist(void)interrupt1

{

TH0=0xd8;

TL0=0xf0;

switch(speed)

{

case0:

P2=0xc0;count=0;break;

case1:

P2=0xf9;count=60;break;

case2:

P2=0xa4;count=40;break;

case3:

P2=0xb0;count=35;break;

case4:

P2=0x99;count=30;break;

case5:

P2=0x92;count=28;break;

case6:

P2=0x82;count=25;break;

case7:

P2=0xf8;count=21;break;

default:

break;

}

if(t==0)

t=count;

if(t>0)

t=t-1;

if(k2==0)

{

if(t==0)

{

switch(k)

{

case0:

P1=0x01;break;

case1:

P1=0x02;break;

case2:

P1=0x04;break;

case3:

P1=0x08;break;

default:

break;

}

k=k+1;

if(k==4)

k=0;

}

}

else

{

if(t==0)

{

switch(k)

环境影响评价,是指对规划和建设项目实施后可能造成的环境影响进行分析、预测和评估,提出预防或者减轻不良环境影响的对策和措施,进行跟踪监测的方法和制度。

{

case0:

P1=0x08;break;

case1:

P1=0x04;break;

case2:

P1=0x02;break;

(2)综合规划环境影响篇章或者说明的内容。

case3:

P1=0x01;break;

(6)列出选定的评价方法,并作简单介绍。

default:

break;

}

[答疑编号502334050101]k=k+1;

(3)环境影响评价中应用环境标准的原则。

if(k==4)

k=0;

(5)公众意见采纳与不采纳的合理性;}

}

C.可能造成较大环境影响的建设项目,应当编制环境影响报告书}

2.总结

本设计通过分析步进电机结构、工作原理,查阅步进电机控制系统的相关科技文献,遵循实用、简单、可靠和低成本的原则,设计了一种既可用于精度要求不高,但控制需完备的场合。

对本次设计,有以下结论:

(1)基础资料、数据的真实性;

(1)采用单片机为控制核心,利用其强大的功能,把键盘和显示电路有机的结合起来,组成一个操作方便、交互性强的控制系统。

而且整个系统所包含的技术几乎包括了现本科学校控制专业所要求的知识,有利于实践教学取得最大效果。

(2)键盘电路和显示电路采用了动态扫描技术,节约了单片机资源。

以森林为例,木材、药品、休闲娱乐、植物基因、教育、人类住区等都是森林的直接使用价值。

(3)系统软件采用结构化设计,具有易维护性,根据用户新的要求,对软件系统进行少量的修改,使系统功能得到一定程度的提高。

3.结束语

本人深知自己做的工作还很不够,由于软件和硬件的各方面原因,系统的应用讨论不够,精度还有待于进一步提高。

由于时间的原因,设备的原因,实验做的不好不够,相关验证性的数据、信息不够丰富。

可以肯定,随着技术的不断发展,步进电机的控制应用前景将越来越宽阔,而其控制系统也将向着智能化和网络化的方向发展。

本论文的研究和探讨还远远不够,我们要在现在的基础上,不断吸取新的技术和方法,并将它们应用于本课题的研究上来,进一步深化我们的研究深度,争取有更多的收获。

4.参考文献

【1】张家生.电机原理与拖动基础【M】.北京:

北京邮电大学出版社,2006.

【2】马淑华,王凤文,张美金.单片机原理与接口技术【M】.北京:

北京邮电大学出版社,2007.

【3】顾德英,张健,马淑华.计算机控制技术【M】.北京:

北京邮电大学出版社,2006.

【4】华成英,童诗白.模拟电子技术基础【M】.北京:

高等教育出版社,2008

【5】张靖武,周灵彬.单片机系统的PROTEUS设计与仿真【M】.北京:

电子工业出版社,2007

(1)内涵资产定价法

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

当前位置:首页 > 解决方案 > 学习计划

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

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