包含程序和仿真
功能:按键或串口发送字符指令,控制步进电机正转、反转、停止、加速、减速动作
仿真过程可直接通过按下电脑键盘控制
仿真原理图如下
单片机源程序如下:
#include #define uint unsigned int #define uchar unsigned char //------8拍----- uchar code zz[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; //正转 uchar code fz[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; //反转 sbit K1=P3^0; //停止 sbit K2=P3^1; //正转 sbit K3=P3^2; //反转 sbit K4=P3^3; //加速 sbit K5=P3^4; //减速 uchar state=0; //状态变量 uint Time=60; //延时时间,用于调速 unsigned char receiveData='0'; void UsartConfiguration(); //初始化串口 void delay(uint ms) //延时,用于调速 { uint t; while(ms--) for(t=0;t<120;t++); } void motor_zz() //正传函数 { uint j; for(j=0;j<8;j++) { if(P3==0xfb) break; P1=zz[j]; delay(Time); } } void motor_fz() //反转函数 { uint j; for(j=0;j<8;j++) { if(P3==0xfb) break; P1=fz[j]; delay(Time); } } void main() { UsartConfiguration(); while(1) { while(state==0) //状态0,停止 { if((K2==0)||(receiveData=='z')) //按下K2或串口接收到'z',电机正转 { state=1; receiveData='0'; break; } if((K3==0)||(receiveData=='f')) //按下K3或串口接收到'f',电机反转 { state=2; receiveData='0'; break; } P0=0xfb; P1=0x03; } while(state==1) //状态1,正转 { if((K1==0)||(receiveData=='t')) //按下K1或串口接收到'f',电机反转 { state=0; receiveData='0'; break; } if((K2==0)||(receiveData=='z')) //按下K2或串口接收到'z',电机正转 { state=1; receiveData='0'; break; } if((K3==0)||(receiveData=='f')) //按下K3或串口接收到'f',电机反转 { state=2; receiveData='0'; break; } if((K4==0)||(receiveData=='+')) //按下K4或串口接收到'+',电机加速 { Time=Time-5; if(Time<20) Time=20; while(K4==0); } if((K5==0)||(receiveData=='-')) //按下K5或串口接收到'-',电机减速 { Time=Time+5; if(Time>100) Time=100; while(K5==0); } motor_zz(); //状态1,正转 } while(state==2) //状态2,反转 { if((K1==0)||(receiveData=='t')) //按下K1或串口接收到'f',电机反转 { state=0; receiveData='0'; break; } if((K2==0)||(receiveData=='z')) //按下K2或串口接收到'z',电机正转 { state=1;
上一篇:LED8x8点阵显示屏设计报告+PCB原理图与单片机程序
下一篇:TTP229触摸模块的51单片机驱动程序
推荐阅读最新更新时间:2024-11-07 20:42
设计资源 培训 开发板 精华推荐
- LT8705EFE 同步降压-升压型 DC/DC 控制器的典型应用电路
- 用于电池充电器的 57W、19V 交流转直流单输出电源
- 智能小车
- AM6TW-4809SZ 9V 6瓦双输出DC-DC转换器的典型应用
- DS1302计时器
- LT5524 的典型应用 - 具有数字控制增益的低失真 IF 放大器 / ADC 驱动器
- 使用 Infineon Technologies AG 的 OMR7805SR 的参考设计
- #第六届立创电赛#天气时钟语音助手
- 使用 NXP Semiconductors 的 MC32PF3000A1EP 的参考设计
- LT1117CM-5 1.2V 至 10V 可调稳压器的典型应用