#include"12"> #include"12" />
欢迎来到天天文库
浏览记录
ID:41061424
大小:32.50 KB
页数:5页
时间:2019-08-15
《STC单片机(无PWM模块)的步进电机驱动程序C语言》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于STC单片机(无PWM模块)的步进电机驱动程序C语言2009-04-0814:03///从不明白到调试通以后,才发现是超级简单。#include"STC12C2052AD.H"#include#include"12C56(54)_mode.h"#include"type.h"unsignedintint_flag;//unsignedlonginti=0;voiddelay(unsignedlonginti);voidInt0Int(void);voidmotor_ccw();vo
2、idmotor_cw();voidmain(void){//---初始化IO----//P1.4-P1.7为开漏,P1.0-P1.3为准双向口(传统8051I/O口模式)P1M0=0xf0; P1M1=0xf0;//定义中断触发方式为INT0,INT1低电平触发TCON=INT0_LOW; //初始化中断 IE=EnINT0_C
3、EnINT1_C;//允许INT0,INT1中断IPH=NOIP_C; //此处不设优先级IP=NOIP_C;//初始化变量//EA=true; //启动中断
4、,开始正常工作EA=false; //关中断int_flag=0;P1=0x00;while(1){ if(INT0==0) { motor_ccw(); P17=1; } elseif(INT1==0) { motor_cw(); P16=1; }/*switch(int_flag) { casezoom_in: motor_ccw(); break; casezoom_out: motor_cw(); break;
5、 default: break; }*///int_flag=0;}}voiddelay(unsignedlonginti){//unsignedlonginti; for(;i>0;i--);//{//_nop_(); //执行一次需要一个机器指令,一个机器指令所需时间为:T=12/fosc=12/11059200=1.085us //}}/********************************//*Int0(P3.2)中断服务 *//*Int0(P3.2)中断服务 */
6、/********************************/voidInt0Int(void)interrupt0using1{int_flag=1;//motor_cw();P14=0; }voidInt1Int(void)interrupt2using1{int_flag=2;//motor_ccw();P15=0;} /***********************************//* 马达控制 *//*CCW为逆时针反转,CW为顺时针正转*
7、//***********************************/voidmotor_ccw()//逆时针{P1=0x09;delay(2000);//延时约2MSP1=0x05;delay(2000);P1=0x06;delay(2000);P1=0x0A;delay(2000); }voidmotor_cw()//顺时针{ P1=0x0A;delay(2000);P1=0X06;delay(2000);P1=0X05;delay(2000);P1=0X09;delay(2000);
8、 }基于STC单片机(无PWM模块)的步进电机驱动C语言程序///从不明白到调试通以后,才发现是超级简单。#include"STC12C2052AD.H"#include#include"12C56(54)_mode.h"#include"type.h"unsignedintint_flag;//unsignedlonginti=0;voiddelay(unsignedlonginti);voidInt0Int(void);voidmotor_ccw();voidmotor_cw()
9、;voidmain(void){//---初始化IO----//P1.4-P1.7为开漏,P1.0-P1.3为准双向口(传统8051I/O口模式)P1M0=0xf0; P1M1=0xf0;//定义中断触发方式为INT0,INT1低电平触发TCON=
此文档下载收益归作者所有