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