《PLC控制步进电机脉冲信号发生器原理图及例程.doc》由会员分享,可在线阅读,更多相关《PLC控制步进电机脉冲信号发生器原理图及例程.doc(10页珍藏版)》请在金锄头文库上搜索。
1、【简要说明】一、尺寸:83mmX50mm X 15mm长X宽X高二、主要芯片:单片机控制三、工作电压:供电电压直流524伏(宽电压工作);四、特点:1、单路信号输出。2、输出占空比约为百分之五十的方波波形4、输出频率由按键调节,加速 减速按键控制5、输出频率范围14KHZ(40种脉冲频率调节)6、输出电压(直流5V)7、输出电流225毫安(MAX)8、上升/下降时间100 ns五、有详细使用说明书适用场合:单片机学习、电子竞赛、产品开发、步进电机脉冲信号、毕业设计。【标注图片】【原理图】/* 汇诚科技使用芯片:STC15F104E晶振:33MHZ编译环境:Keil作者:zhangxinchun
2、淘宝店:汇诚科技【声明】此程序仅用于学习与参考,引用请注明版权和作者信息! */*/#include reg52.h #include #define uchar unsigned char /宏定义字符型变量#define uint unsigned int/宏定义整型变量/* 寄存器设置*/ sfr IAP_DATA =0xc2; /数据寄存器sfr IAP_ADDRH =0xc3; /地址寄存器sfr IAP_ADDRL =0xc4; /地址寄存器sfr IAP_CMD =0xc5; /命令寄存器sfr IAP_TRIG =0xc6; /触发寄存器sfr IAP_CONTR =0xc7;
3、 /擦除寄存器/* 命令定义*/#define CMD_IDLE 0 /EEPROM无操作#define CMD_READ 1 /读取字节#define CMD_PROGRAM 2 /写入字节#define CMD_ERASE 3 /擦除字节/* 编程周期由晶振决定*/#define ENABLE_IAP 0X80 /编程周期由晶振决定(如果30MHZ选用此项)/#define ENABLE_IAP 0X81 /编程周期由晶振决定(如果24MHZ选用此项)/#define ENABLE_IAP 0X82 /编程周期由晶振决定(如果20MHZ选用此项) #define ENABLE_IAP 0X
4、83 /编程周期由晶振决定(如果12MHZ选用此项)/#define ENABLE_IAP 0X84 /编程周期由晶振决定(如果6MHZ选用此项)/#define ENABLE_IAP 0X85 /编程周期由晶振决定(如果3MHZ选用此项)/#define ENABLE_IAP 0X86 /编程周期由晶振决定(如果2MHZ选用此项)/#define ENABLE_IAP 0X87 /编程周期由晶振决定(如果8;IAP_TRIG=0X5A;IAP_TRIG=0XA5;_nop_();_nop_();_nop_();dat=IAP_DATA;IapIdle();return dat;/* 写入一个
5、字节函数*/void IapProgramByte(uint addr,uchar dat)IAP_CONTR=ENABLE_IAP;IAP_CMD=CMD_PROGRAM;IAP_ADDRL=addr;IAP_ADDRH=addr8;IAP_DATA=dat;IAP_TRIG=0X5A;IAP_TRIG=0XA5;_nop_();_nop_();_nop_();IapIdle();/* 擦除一个字节函数*/void IapEraseSector(uint addr)IAP_CONTR=ENABLE_IAP;IAP_CMD=CMD_ERASE;IAP_ADDRL=addr;IAP_ADDRH=
6、addr8;IAP_TRIG=0X5A;IAP_TRIG=0XA5;_nop_();_nop_();_nop_();IapIdle();/* 按键判断函数*/void KEY()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;else TR0=0;switch(sudu)case 1: t1=1;break;/2Kcase 2: t1=2;break;/1.6kcase 3: t1