还剩1页未读,继续阅读
文本内容:
/**********************************************************************************;*SL300A单片机学习套件实验例程---步进电机加减速运行---*;**;*实验功能*;*步进电机启动时,转速由慢到快逐步加速*;*步进电机匀速运行*;*步进电机由快到慢逐步减速*;*硬件联接用一根6P线,一头插到步进电机板上的6P插座上,另一头插到SL300A的JP7上*;*注意电源极性*;*步进电机步进角为
7.5度,一圈360度*;*双四拍工作方式*;*AB-BC-CD-DA即一个脉冲转
7.5度*;*单双八拍工作方式*;*A-AB-B-BC-C-CD-D-DA即一个脉冲转
3.75度*;*A组线圈对应P
1.0B组线圈对应P
1.1C组线圈对应P
1.2D组线圈对应P
1.3*;*********************************************************************************/#includereg
51.h//51芯片管脚定义头文件#includeintrins.h//内部包含延时函数_nop_;#defineucharunsignedchar#defineuintunsignedintsbitK8=P3^7;ucharcodeFFW
[8]={0xf10xf30xf20xf60xf40xfc0xf80xf9};//ucharcodeREV
[8]={0xf90xf80xfc0xf40xf60xf20xf30xf1};ucharrate;/********************************************************//*/*延时/*
11.0592MHz时钟,/*/********************************************************/voiddelay{uchark;uints;k=rate;do{fors=0;s1500;s++;}while--k;}/********************************************************//*/*步进电机正转/*/********************************************************/voidmotor_ffw{uchari;fori=0;i8;i++//一个周期转30度{P1=FFW[i];//取数据delay;//调节转速}}/**********************************************************步进电机运行**********************************************************/voidmotor_turn{ucharx;rate=0x0a;x=0x80;do{motor_ffw;//加速rate--;}whilerate!=0x01;do{motor_ffw;//匀速x--;}whilex!=0x01;do{motor_ffw;//减速rate++;}whilerate!=0x0a;}/**********************************************************主程序**********************************************************/main{P1=0xf0;while1{P1=0xf0;ifK8==0{motor_turn;}}}/********************************************************/。