PLC控制步进电机脉冲信号发生器原理图及例程.docx
- 文档编号:2807603
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:12
- 大小:908.07KB
PLC控制步进电机脉冲信号发生器原理图及例程.docx
《PLC控制步进电机脉冲信号发生器原理图及例程.docx》由会员分享,可在线阅读,更多相关《PLC控制步进电机脉冲信号发生器原理图及例程.docx(12页珍藏版)》请在冰豆网上搜索。
PLC控制步进电机脉冲信号发生器原理图及例程
【简要说明】
一、 尺寸:
83mmX50mmX15mm 长X宽X高
二、 主要芯片:
单片机控制
三、 工作电压:
供电电压直流5~24伏(宽电压工作);
四、 特点:
1、单路信号输出。
2、输出占空比约为百分之五十的方波波形
4、输出频率由按键调节,加速减速按键控制
5、输出频率范围1~4KHZ(40种脉冲频率调节)
6、输出电压(直流5V)
7、输出电流225毫安(MAX)
8、上升/下降时间100ns
五、有详细使用说明书
适用场合:
单片机学习、电子竞赛、产品开发、步进电机脉冲信号、毕业设计。
。
。
【标注图片】
【原理图】
/********************************************************************
汇诚科技
使用芯片:
STC15F104E
晶振:
33MHZ
编译环境:
Keil
作者:
zhangxinchun
淘宝店:
汇诚科技【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!
*********************************************************************/
/********************************************************************/
#include"reg52.h"
#include
#defineucharunsignedchar//宏定义字符型变量
#defineuintunsignedint//宏定义整型变量
/********************************************************************
寄存器设置
*********************************************************************/
sfrIAP_DATA=0xc2;//数据寄存器
sfrIAP_ADDRH=0xc3;//地址寄存器
sfrIAP_ADDRL=0xc4;//地址寄存器
sfrIAP_CMD=0xc5;//命令寄存器
sfrIAP_TRIG=0xc6;//触发寄存器
sfrIAP_CONTR=0xc7;//擦除寄存器
/********************************************************************
命令定义
*********************************************************************/
#defineCMD_IDLE0//EEPROM无操作
#defineCMD_READ1//读取字节
#defineCMD_PROGRAM2//写入字节
#defineCMD_ERASE3//擦除字节
/********************************************************************
编程周期由晶振决定
*********************************************************************/
//#defineENABLE_IAP0X80//编程周期由晶振决定(如果<30MHZ选用此项)
//#defineENABLE_IAP0X81//编程周期由晶振决定(如果<24MHZ选用此项)
//#defineENABLE_IAP0X82//编程周期由晶振决定(如果<20MHZ选用此项)
#defineENABLE_IAP0X83//编程周期由晶振决定(如果<12MHZ选用此项)
//#defineENABLE_IAP0X84//编程周期由晶振决定(如果<6MHZ选用此项)
//#defineENABLE_IAP0X85//编程周期由晶振决定(如果<3MHZ选用此项)
//#defineENABLE_IAP0X86//编程周期由晶振决定(如果<2MHZ选用此项)
//#defineENABLE_IAP0X87//编程周期由晶振决定(如果<1MHZ选用此项)
#defineIAP_ADDRESS0X0000//内部EEPROM地址
/********************************************************************
定义继输入输出
*********************************************************************/
sbitJIA=P3^1;//
sbitJIAN=P3^0;//
sbitEN=P3^2;//
sbitP35=P3^5;//
bitwrite=0;
/********************************************************************
初始定义
*********************************************************************/
uinttcnt1;//脉冲计数
uintt1;
bitwrite;
ucharsudu;
/********************************************************************
延时100MS函数
*********************************************************************/
voidDelay100ms()
{
uchari,j,k;
_nop_();
i=5;
j=144;
k=71;
do
{
do
{
while(--k);
}while(--j);
}while(--i);
}
/********************************************************************
操作函数
*********************************************************************/
voidIapIdle()
{
IAP_CONTR=0;
IAP_CMD=0;
IAP_TRIG=0;
IAP_ADDRH=0X80;
IAP_ADDRL=0;
}
/********************************************************************
读取一个字节函数
*********************************************************************/
ucharIapReadByte(uintaddr)
{
uchardat;
IAP_CONTR=ENABLE_IAP;
IAP_CMD=CMD_READ;
IAP_ADDRL=addr;
IAP_ADDRH=addr>>8;
IAP_TRIG=0X5A;
IAP_TRIG=0XA5;
_nop_();
_nop_();
_nop_();
dat=IAP_DATA;
IapIdle();
returndat;
}
/********************************************************************
写入一个字节函数
*********************************************************************/
voidIapProgramByte(uintaddr,uchardat)
{
IAP_CONTR=ENABLE_IAP;
IAP_CMD=CMD_PROGRAM;
IAP_ADDRL=addr;
IAP_ADDRH=addr>>8;
IAP_DATA=dat;
IAP_TRIG=0X5A;
IAP_TRIG=0XA5;
_nop_();
_nop_();
_nop_();
IapIdle();
}
/********************************************************************
擦除一个字节函数
*********************************************************************/
voidIapEraseSector(uintaddr)
{
IAP_CONTR=ENABLE_IAP;
IAP_CMD=CMD_ERASE;
IAP_ADDRL=addr;
IAP_ADDRH=addr>>8;
IAP_TRIG=0X5A;
IAP_TRIG=0XA5;
_nop_();
_nop_();
_nop_();
IapIdle();
}
/********************************************************************
按键判断函数
*********************************************************************/
voidKEY()
{
if(JIA==0){Delay100ms();if(JIA==0){Delay100ms();sudu++;write=1;if(sudu>=37)sudu=37;while(!
JIA);Delay100ms();}}
if(JIAN==0){Delay100ms();if(JIAN==0){Delay100ms();sudu--;write=1;if(sudu<=1)sudu=1;while(!
JIAN);Delay100ms();}}
if(EN==0)TR0=1;elseTR0=0;
switch(sudu)
{
case1:
t1=1;break;//2K
case2:
t1=2;break;//1.6k
case3:
t1=3;break;//1.33k
case4:
t1=4;break;//2K
case5:
t1=5;break;//1.6k
case6:
t1=6;break;//1.33k
case7:
t1=7;break;//1.14k
case8:
t1=8;break;//1k
case9:
t1=9;break;//880
case10:
t1=10;break;//800
case11:
t1=12;break;//660
case12:
t1=14;break;//580
case13:
t1=16;break;//500
case14:
t1=18;break;//450
case15:
t1=20;break;//400
case16:
t1=22;break;//
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PLC 控制 步进 电机 脉冲 信号发生器 原理图 例程