独立按键控制步进电机运转c语言程序

独立按键控制步进电机运转c语言程序

ID:32642594

大小:74.67 KB

页数:8页

时间:2019-02-14

独立按键控制步进电机运转c语言程序_第1页
独立按键控制步进电机运转c语言程序_第2页
独立按键控制步进电机运转c语言程序_第3页
独立按键控制步进电机运转c语言程序_第4页
独立按键控制步进电机运转c语言程序_第5页
资源描述:

《独立按键控制步进电机运转c语言程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、*名称:步进电机**品振:12MHZ**修改:无**内容:主程序屮用3个按键,加速、减速、启动和停止。定时器做数码**管动态扫描和步进电机驱动。***硬件事项:J19的7B,6B,5B,4B依次用杜邦线连接到P27,P26,P25,P24****/include#defineDataPortP1//定义数据端口程序中遇到DataPort则用Pl替换sbitLATCHl=P2A0;//定义锁存使能端口段锁存sbitLATCH2=P2A1;//位锁存sbitS17=P3A3;〃独立

2、按键sbitS18二P3人2;sbitS19=P3Al;sbitS20=P3A0;unsignedcharcodeHEYAO_DuanMa[10J={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//显示段码值0123456789unsignedcharcodeHEYAO_WeiMa[]={Ox1,0x2,0x4,0x8,Ox10,0x20,0x40,0x80);〃分别对应相应的数码管点亮,即位码unsignedcharTempData⑻二

3、{0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF};〃存储显示值的全局变量sbitA1=P2A7;〃定义步进电机连接端口sbitB1=P2A6;sbitC1=P2A5;sbitD1=P2A4;#defineCoil.AB1{Al=l;Bl=l;Cl=0;Dl=0;}//AB相通电,其他相断电#defineCoil.BC1{Al=0;Bl=l;Cl=l;Dl=0;}//BC相通电,其他相断电#dcfincCoil_CDl{Al=0;Bl=0;Cl=l;Dl=l;}/

4、/CD相通电,其他相断电#defineCoil.DAl{Al=l;Bl=0;Cl=0;Dl=l;}//Dffl通电,其他相断电#defineCoil_Al{Al=l;Bl=0;Cl=0;Dl=0;}//Affi通电,其他相断电#defmeCoil.B1{Al=0;Bl=l;Cl=0;Dl=0;}//B相通电,其他相断电#dcfincCoil.Cl{A1=O;B1=O;C1=1;D1=O;}//C相通电,其他相断电#defineCoil_Dl{A1=O;B1=O;C1=O;D1=1;}//D相通电

5、,其他相断电#defineCoil_OFF{A1=O;B1=O;C1=0;D1=0;}//全部断电unsignedcharSpeed;bitStopFlag;bitFlag,sb;voidDisplay(unsignedcharFirstBit,unsignedcharNum);voidlnit_TimerO(void);unsignedcharKeyScan(void);//键盘扫描uS延吋函数,含有输入参数unsignedchart,无返回俏unsignedchar是定义无符号字符变fi,J

6、t值的范围是0-255这里使用品振12M,大致延吋长度如下T=tx2+5uS*/voidDelayUs2x(unsignedchart){while(—t);}voidDelayMs(unsignedchart){whilc(t—){〃大致延时ImSDelayUs2x(245);DelayUs2x(245);}主函数main(){unsignedintjj;//旋转一周时间unsignedcharnum;Init_TimciO();while(l)〃正向(CoilOFFnum=KcyScan()

7、;〃循环调用按键担描if(num==l)//第一个按键,速度等级增加{if(Speed<18)Speed++;}elseif(num==2)//第二个按键,速度等级减小{if(Speed>l)Speed-;)elseif(num==3)//笫三个按键,Hi机停止和启动switch。){case0:Coil_OFFStopFlag=1;j++;break;case1:StopFlag=0;j—;break;1}elseif(num==4){sb=l;while((l)&&(sb)){Flag=l;

8、〃正向//遇到Coil_AB1用〃改变这个参数可以调整电机转速,〃数字越小,转速越大,力矩越小i=50;while((i-)&&(Flag)){Coil_AlDclayMs(Spccd);Coil.AB1{A1=1;B1=1;C1=O;D1=O;}代替DelayMs(Speed);CoiI_BlDelayMs(Speed);Coil_BClDelayMs(Speed);Coil_ClDelayMs(Speed);CoilCD1DelayMs(Speed);Coil_DlDelayMs(Speed

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。