欢迎来到天天文库
浏览记录
ID:49975644
大小:22.00 KB
页数:4页
时间:2020-03-03
《单片机驱动步进电机程序代码.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、/********************************************************实现功能:正转程序使用芯片:AT89S52晶振:11.0592MHZ编译环境:Keil作者:【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!********************************************************/#include//库文件#defineucharunsignedchar//字符型宏定义#defineuintunsi
2、gnedint//整型宏定义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、(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(RI==0);RI=0;}}/***********************角6、度控制函数****************************/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])&shi7、buf[5]&shi>buf[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[5])&(shi==buf[6])&(ge==buf[7])){shi_neng=0;};delay1ms(3)8、;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、(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(RI==0);RI=0;}}/***********************角
6、度控制函数****************************/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])&shi7、buf[5]&shi>buf[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[5])&(shi==buf[6])&(ge==buf[7])){shi_neng=0;};delay1ms(3)8、;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
7、buf[5]&shi>buf[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[5])&(shi==buf[6])&(ge==buf[7])){shi_neng=0;};delay1ms(3)
8、;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
此文档下载收益归作者所有