历史上的今天
今天是:2024年12月27日(星期五)
2021年12月27日 | 单片机四线步进电机驱动
2021-12-27 来源:eefocus
单片机四线步进电机驱动 程序功能:
当按下SW1时步进电机正转,按下SW2后步进电机反转,并可以根据源码任意调节旋转速度和每一个脉冲旋转角度
程序参考源代码如下:
/C语言程序:/
#include #define uchar unsigned char #define uint unsigned int uchar table_begin; uint maichong; //脉冲 uchar zhuansu; //转速 uchar flag; //方向 sbit key_fuwei=P3^0; //复位键 sbit key_z=P3^1; //正转键 sbit key_f=P3^2; //反转键 sbit key_jia=P3^3; //加速键 sbit key_jian=P3^6; //减速键 sbit A1=P2^0; sbit A2=P2^1; sbit A3=P2^2; sbit A4=P2^3; void display(); void delayms(xms); void delay(uchar x) {undefined uchar i,j; //延时 for(i=0;i } void fuwei(void) //复位 {undefined flag=2; zhuansu=0; } /*void Display(void) //显示 {undefined unsigned char b1, b2; b1=zhuansu/10; b2=zhuansu%10; if(flag == 0) //0 P0=0x71;//显示F else P0=0x79; A1=0; delayms(3); A1=1; P0=0x40; A2=0; //显示-- delayms(3); A2=1; P0=table2[b1]; A3=0; //显示十位 delayms(3); A3=1; P0=table2[b2]; A4=0; delayms(3); //显示个位 A4=1; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 } */ void display() {undefined uchar b1,b2,b3,b4; if(flag0) P0=0x71;//显示F else P0=0x79; if(flag1) P0=0x7c;//显示b else P0=0x71; b1=10; b2=0x3f; b3=zhuansu/10; b4=zhuansu%10; //P0=table2; A1=0; //P2.0 delay(1); A1=1; P0=b2; A2=0; //P2.1 delay(1); A2=1; P0=table2[b3]; A3=0; //P2.3 delay(1); A3=1; P0=table2[b4]; A4=0; //P2.4 delay(1); A4=1; } void key() //按键扫描 {undefined if(key_fuwei0) { delay(5); if(key_fuwei0) fuwei(); } if(key_z0) { delay(5); if(key_z0) {undefined flag=0; zhuansu=10; while(key_z0); } } if(key_f0) {undefined delay(5); if(key_f0) { flag=1; zhuansu=10; while(key_f0); } } if(key_jia0) { delay(5); if(key_jia0) {undefined zhuansu++; if(zhuansu21) zhuansu=20; while(key_jia0); } } if(key_jian0) { delay(5); if(key_jian0) {undefined zhuansu–; if(zhuansu<=0) zhuansu=0; while(key_jian==0); } } } void dispose() //脉冲函数 {undefined switch(zhuansu) {undefined case 0: flag=2; break; case 1: maichong=300; break; case 2: maichong=295; break; case 3: maichong=290; break; case 4: maichong=280; break; case 5: maichong=260; break; case 6: maichong=240; break; case 7: maichong=200; break; case 8: maichong=180; break; case 9: maichong=160; break; case 10: maichong=120; break; case 11: maichong=80; break; case 12: maichong=70; break; case 13: maichong=60; break; case 14: maichong=40; break; case 15: maichong=35; break; case 16: maichong=30; break; case 17: maichong=25; break; case 18: maichong=20; break; case 19: maichong=15; break; case 20: maichong=10; break; } if(flag0) table_begin=0; else if(flag1) table_begin=4; } void zhuandong(void) {undefined uint i,j; if(zhuansu>0&&zhuansu<=20) {undefined for(j=0+table_begin;j<4+table_begin;j++) {undefined P1=table1[j]; for(i=0;i } } } …………………… …
史海拾趣
|
我有一PDA,Symbol PPT 8846 (8800系列的) Windows CE 4.2 (经网友纠正应为Pocket PC 2003,后来才看到机器面板有Pocket PC字样) 目前自带的Remote Servers Client 不能全屏,也不能将声音带到PDA上面来 我有尝试安装一些版本的RemoteDeskt ...… 查看全部问答> |
|
d:\\question.jpg 以上是一个发射地址码和数据码的电路。在数据码编辑的时,原先的电路是使用开关控制数据位D0-D3的高低电平,进而对数据位D0-D3进行编辑。 我的问题是,这部分开关控制的电路(图上红色长方形框所示),是否能通过一块芯片控制 ...… 查看全部问答> |
|
吉时利一直在致力于推进SMU技术 *了解吉时利或测试测量应用方案更多信息,可登录 吉时利中国网站http://www.keithley.com.cn/ 吉时利微博 http://weibo.com/keithley … 查看全部问答> |
|
LED应用 - 并行 LED 的电流匹配 & 新电流模式 PWM 控制器 本帖最后由 dontium 于 2015-1-23 13:08 编辑 LED应用—— 新电流模式 PWM 控制器支持升压、反向、SEPIC 和 LED 驱动器应用 镇流器电阻计算 – 并行 LED 的电流匹配 更多实用TI资料,周周更新,欢 ...… 查看全部问答> |
|
这个是我的DS1302 谁帮我试下,SCLK=P1^0,IO=P1^1,REST=P2^4;数码管段是P3口,位是P2^0-P2^3,可是我显示出来的是1100,不知道怎么回事,帮我改下 谢谢 #include<reg51.h>#include <intrins.h>#define uchar unsigned char #def ...… 查看全部问答> |
|
求教一个问题:用fpga能够实现对低频噪声的检测吗?也就是对无规则、低频,10hz~1k hz的检测,并实现频谱和功率谱的处理和分析,,,处理后可以用上位机进行显示吗?… 查看全部问答> |







