单片机PLC实验报告文档格式.docx

上传人:b****6 文档编号:21721910 上传时间:2023-01-31 格式:DOCX 页数:28 大小:204.85KB
下载 相关 举报
单片机PLC实验报告文档格式.docx_第1页
第1页 / 共28页
单片机PLC实验报告文档格式.docx_第2页
第2页 / 共28页
单片机PLC实验报告文档格式.docx_第3页
第3页 / 共28页
单片机PLC实验报告文档格式.docx_第4页
第4页 / 共28页
单片机PLC实验报告文档格式.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

单片机PLC实验报告文档格式.docx

《单片机PLC实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《单片机PLC实验报告文档格式.docx(28页珍藏版)》请在冰豆网上搜索。

单片机PLC实验报告文档格式.docx

N

Y

 

五、实验程序:

//-----------------------------------------------------------------------------

//程序说明:

//此程序用于测试教学实验机上的8个发光二极管,正常情况下应轮流点亮.定时时间为0.3s

//---------------------------------------------------------------------

//头文件包含

//-------------------------------------------------------------------------

#include<

c8051f020.h>

//16位特殊寄存器定义

//------------------------------------------------------------------------

sfr16TMR3RL=0x92;

sfr16TMR3=0x94;

//---------------------------------------------------------------------------

//常量定义

//----------------------------------------------------------------------

#defineSYSCLK2000000//系统工作频率

//全局变量定义

unsignedchari=0xfe;

//函数定义

voidPORT_Init(void);

voidTimer3_Init(intcounts);

voidTimer3_ISR(void);

//主程序

voidmain(void){

WDTCN=0xde;

WDTCN=0xad;

//禁止看门狗定时器

PORT_Init();

Timer3_Init(0xc350);

//定时时间为0.3s

REF0CN=0x02;

EA=1;

while

(1){

}

}

//函数名称:

PORT_Init()

//函数功能:

通用I/O口及交叉开关初始化

//入口参数:

//出口参数:

//全局变量引用:

//调用模块:

voidPORT_Init(void)

{

XBR2=0x40;

/*使能交叉开关*/

P74OUT|=0x000;

/*推挽输出*/

//--------------------------------------------------------------------

Timer3_Init()

定时器3初始化

intcounts

voidTimer3_Init(intcounts)

TMR3CN=0x00;

//用十二分频

TMR3RL=-counts;

TMR3=0xffff;

EIE2|=0x01;

TMR3CN|=0x04;

//-------------------------------------------------------------------

Timer3_ISR()

定时器3中断服务程序

voidTimer3_ISR(void)interrupt14

intj;

TMR3CN&

=~(0x80);

/*清中断标志*/

P4=i;

/*送数据到P4*/

i<

<

=1;

i=i|0x01;

if(i==0xff)

i=0xfe;

//开关输入,小灯输出

//----------------------------------------------------------------------------

P4=P5;

五、作业:

1.试分析8位LED输出电路图的原理。

答:

8位LED输出电路图如下,当测试铜头为低电平时,LED能够发光,当测试铜头为高电平或浮空状态时,LED不亮。

2.试分析8路拨档开关输入电路图的原理。

8路拨档开关输入电路图如下,K11是总的开关,当K1-K8任意一个开关接通时,对应的P5上的端口被置‘0’,同时弱上拉端口产生一个中断,即INT0=0.

实验二、单片机控制步进电机实验

了解步进电机工作原理,掌握使用C8051F020控制步进电机的硬件设计方法,熟悉步进电机驱动程序的设计与调试。

1.步进电机的工作原理:

以三相反应式步进电机为例:

它的定子上有三对磁极,每一对磁极上绕着一相绕组,绕组通电时,这两个磁极的极性相反;

三相绕组接成星形,转子铁心及定子极靴上有小齿,定转子齿距通常相等。

转子铁心上没有绕组,转子的齿数为40,相邻两个齿之间夹角为9°

当某一相绕组通电时,由于定转子上有齿和槽,所以当转子齿的相对位置不同时,在磁场的作用下,转子将转动一个角度,使转子和定子的齿相互对齐,这就是使步进电机旋转的原因。

步进电机运转是由脉冲信号控制。

通过改变各相通电的次序可以调整步进电机的运转方向。

改变脉冲信号的周期就可以改变步进电机的运转速度。

本实验板选用的是四相步进电机,实验例程采用四相八拍的方式驱动步进电机。

正方向:

A-AB-B-BC-C-CD-D-DA-A

反方向;

A-DA-D-CD-C-BC-B-AB-A

AA,BB,CC.DD是步进电机的4个线圈,D8,D9,D11,D12为续流二极管,是为步进电机的4个线圈放电用的,当电机断电时,它的线圈要放电用二流管导流。

本实验将P5的四个端口P5.0-P5.3连接到步进电机A、B、C、D四个口上,通过改变P5.0-P5.3四个口高低电平的轮流改变实现了步进电机的驱动。

通过改变每个周期的高低电平改变时间控制步进电机的速度。

三、实验步骤:

1.准备工作

教学实验机的步进电机驱动信号是STEPA~STEPD,本例程用P5.0~P5.3来控制步进电机的4个线圈处于通电或断电状态,所以在运行例程前,用跳线将STEPA~STEPD分别同P5.0~P5.3连接;

同时也应将步进电机的引出线同CN2正确连接(VCC—黑,AA—红,BB—黄,CC—白,DD—蓝)。

2.步进电机正

编制程序控制步进电机实现正功能

3.步进电机反转

编制程序控制步进电机实现反功能

4.步进电机定速运行

编制程序使步进电机以每分钟30圈的速度正转

1.步进电机正

2、步进电机反

3、步进电机定速运行

1.步进电机正

//P50--STEPAP51--STEPBP52--STEPCP53--STEPD

//------------------------------------------------------------------------------------

//Includes

//SFRdeclarations

intrins.h>

//FunctionPROTOTYPES

/***************************************************************************************

函数名称:

voidsleep_ms(WORDcount)

功能描述:

延时

输入:

WORDcount(所要延时的长度)

输出:

全局变量:

调用模块:

_nop_()

***************************************************************************************/

voidsleep_ms(unsignedcharcount)

unsignedcharii,jj;

for(ii=0;

ii<

count;

ii++)

{

for(jj=0;

jj<

250;

jj++)

_nop_();

}

//MAINRoutine

unsignedchark;

unsignedcharSendData;

/*无效看门狗*/

WDTCN=0xde;

WDTCN=0xad;

PORT_Init();

SendData=0xff;

/*4相线圈都截止*/

while

(1)

//步进电机正转

SendData=0x0e;

/*A相通电*/

P5=SendData;

sleep_ms(250);

SendData=0x0c;

/*AB相通电*/

SendData=0x0d;

/*B相通电*/

SendData=0x09;

/*BC相通电*/

SendData=0x0b;

/*C相通电*/

SendData=0x03;

/*CD相通电*/

SendData=0x07;

/*D相通电*/

SendData=0x06;

/*DA相通电*/

voidPORT_Init(void)

初始化I/O

XBR2,P74OUT

/*使能交叉开关和弱上拉*/

P74OUT|=0x0f;

/*P5低4位为推挽输出,其余口为开漏输出*/

2.步进电机反:

此程序通过I/O口驱动步进电机反转

/*****************************************************************************函数名称:

*****************************************************************************/

/*步进电机反转*/

while

(1){

}

/*****************************************************************************

****************************************************************************/

3.步进电机定速运转:

此程序通过I/O口驱动步进电机定速运转,且每分钟30转

//-----------------------------

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1