完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
//步进电机应用C语言程序设计
#include #define uchar unsigned char ***it dula=P2^6; //数码管显示段选I/O口定义 ***it wela=P2^7; //数码管显示位选I/O口定义 ***it jia_key=P3^6; //电机加速I/O口定义 ***it jian_key=P3^7; //电机减速I/O口定义 ***it ***_key=P3^5; //电机正反转I/O定义 bit flag=0; //电机正反转标志位 uchar num=0,show_num=2,maichong=4,table_begin=0; uchar code table1[]={0x01,0x02,0x04,0x08,0x08,0x04,0x02,0x01}; //uchar code table1[]={0x09,0x03,0x06,0x0c,0x08,0x04,0x02,0x01}; //uchar code table1[]={0x01,0x04,0x02,0x08,0x08,0x02,0x04,0x01}; uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; void delay(uchar i) //延时函数 { uchar j,k; for(j=i;j>0;j--) for(k=125;k>0;k--); } void display() //显示函数 { dula=0; P0=table[show_num]; dula=1; dula=0; wela=0; P0=0xfe; wela=1; wela=0; delay(5); P0=table[0]; dula=1; dula=0; P0=0xfd; wela=1; wela=0; delay(5); } void key () //按键检测处理函数 { if(jia_key==0) { delay(5); //加速键按下,消抖 if(jia_key==0) { num++; //速度标示加1 if(num==4) num=3; //达到最大3则保持 while(jia_key==0); //等待松开按键 } } if(jian_key==0) { delay(5); //减速键按下 if(jian_key==0) { if(num!=0) num--; //速度标示减1 else num=0; //达到最小0则保持 while(jian_key==0); } } if(***_key==0) { delay(5); //正反转按键按下 if(***_key==0) { flag=~flag; //正反转标识取反 while(***_key==0); } } } void dispose() //根据速度标识进行数据处理 { switch(num) { case 0: show_num=2; //数码管第一位显示的数字 maichong=5; //利用maichong数据控制送给电机脉冲的频率,控制速度 break; case 1: show_num=4; maichong=4; break; case 2: show_num=6; maichong=3; break; case 3: show_num=8; maichong=2; break; } if(flag==0) { table_begin=0; //flag为0,正转 } else table_begin=4; //flag为1,反转 } void qudong() //电机速度,和正反转控制 { uchar i,j; for(j=0+table_begin;j<4+table_begin;j++) { P1=table1[j]; //读取控制电机转动I/O口表 for(i=0;i& lt;maichong;i++) { display(); //利用显示函数起延时作用,控制电机速度 } //这样也不影响数码管显示,一举两得 } } void main() { while(1) { key(); disp |
|
|
|
只有小组成员才能发言,加入小组>>
2367 浏览 0 评论
8677 浏览 4 评论
36401 浏览 18 评论
4967 浏览 0 评论
24149 浏览 34 评论
1330浏览 2评论
1575浏览 1评论
1944浏览 1评论
1394浏览 0评论
1829浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-8 07:29 , Processed in 1.133781 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号