欢迎来到天天文库
浏览记录
ID:62378026
大小:20.50 KB
页数:9页
时间:2021-04-30
《单片机驱动步进电机程序代码教学文稿.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、单片机驱动步进电机程序代码__________________________________________________/********************************************************实现功能:正转程序使用芯片:AT89S52晶振:11.0592MHZ编译环境:Keil作者:【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!********************************************************/#include//库文件#defineucharunsignedchar//
2、字符型宏定义#defineuintunsignedint//整型宏定义uchartcnt;//定时器计数初值定义uintsec;//速度值定义ucharbuf[11];ucharbai,shi,ge;/********************控制位定义*************************/____________________________________________________________________________________________________sbitshi_neng=P1^0;//使能控制位sbitfang_shi=P1^1;//工作方
3、式控制位sbitfang_xiang=P1^2;//旋转方向控制位sbitmai_chong=P1^3;//脉冲控制位/********************延时函数***************************/voiddelay1ms(ucharz){ucharx,y;for(x=0;x4、)//当tcnt满足条件时{____________________________________________________________________________________________________tcnt=0;//计满重新再计sec++;if(sec==6)//括号内数值越小,电机转动速度越快{sec=0;//计满重新再计mai_chong=~mai_chong;//脉冲输出}}}/***********************定时器0/1初始化****************************/voidT0_Init(){ET0=1;TMOD=0x22;5、TH0=0x06;//对TH0TL0赋值TL0=0x06;TR0=1;//开始定时sec=0;mai_chong=1;//脉冲控制位____________________________________________________________________________________________________}/***********************串口初始化****************************/voidUart_Init(){TMOD=0x22;TH1=0xFD;TL1=0xFD;SCON=0x50;PCON&=0xef;TR1=1;}/**6、*********************数据接收函数****************************/voidReceiveBuf(){inti;for(i=0;i<11;i++){buf[i]=SBUF;____________________________________________________________________________________________________while(RI==0);RI=0;}}/***********************角度控制函数****************************/voidControl()7、{if((bai==buf[5])&(shi==buf[6])&(ge==buf[7])){shi_neng=0;};if(baibuf[5]){shi_neng=1;fang_xiang=1;__________________________________________________________
4、)//当tcnt满足条件时{____________________________________________________________________________________________________tcnt=0;//计满重新再计sec++;if(sec==6)//括号内数值越小,电机转动速度越快{sec=0;//计满重新再计mai_chong=~mai_chong;//脉冲输出}}}/***********************定时器0/1初始化****************************/voidT0_Init(){ET0=1;TMOD=0x22;
5、TH0=0x06;//对TH0TL0赋值TL0=0x06;TR0=1;//开始定时sec=0;mai_chong=1;//脉冲控制位____________________________________________________________________________________________________}/***********************串口初始化****************************/voidUart_Init(){TMOD=0x22;TH1=0xFD;TL1=0xFD;SCON=0x50;PCON&=0xef;TR1=1;}/**
6、*********************数据接收函数****************************/voidReceiveBuf(){inti;for(i=0;i<11;i++){buf[i]=SBUF;____________________________________________________________________________________________________while(RI==0);RI=0;}}/***********************角度控制函数****************************/voidControl()
7、{if((bai==buf[5])&(shi==buf[6])&(ge==buf[7])){shi_neng=0;};if(baibuf[5]){shi_neng=1;fang_xiang=1;__________________________________________________________
此文档下载收益归作者所有