步进电机摄像头模拟云台试验.txt蜜蜂整日忙碌,受到赞扬;蚊子不停奔波,人见人打多 么忙不重要,为什么忙才重要//云台模拟设计目标:按键 1:顺时针旋转直到放开按键 2:逆时针旋转直到放开1.2 用于手动调节云台初始位置按键 3:先逆时针 45°,再顺逆来回旋转各90°按键 4:停止最小脉冲宽度5ms, 45°脉冲个数为250个,旋转速度:每5秒45°,两边各停顿0.5秒开发板:伟嵌科技 小强开发板硬件连接:IN4-P2.2 IN5-P2.3 IN6-P2.4 IN7-P2.5跳线:K10按键选择:1 X 4 键盘粉-0UT5 蓝-0UT4步进电机连接方法:红-COM 橙-0UT7 黄-0UT6/ / / /#include //定义 unsigned char 为 uchar//定义 unsigned int 为 uint#define uchar unsigned char #define uint unsigned int#define Cntrol_Port P2 uchar code B_Rotation[4]={0x20,0x10,0x08,0x04};//正转表格, 换算成二进制 0010 0000,0001 0000,0000 1000,0000 0100uchar code F_Rotation[4]={0x04,0x08,0x10,0x20};//反转表格, 换算成二进制 0001 0000,0000 1000,0000 0100,0000 0010uchar code work=6,res t=14;//定义电机工作脉冲时间和休息时间,休息时间约短,云台旋 转越快 //uchar F1_stau = 0,F2_stau = 1, F3_stau = 0,F4_stau = 0; uchar key=4;sbit Fl = P3"0;// 顺转sbit F2 = P3"1;//逆转sbit F3 = P3'2;// 自动sbit F4 = P3'3;//停/ // /*//* 延时 lms 函数/ // /void Delay(uin t i)//延时{while(--i){uchar j=ll5;while(j--);}}/ // /void getkey(){ if(Fl==0)Delay(l);if(F1==0)key=1;//检测按键1,延时1ms去抖动 } if(F2==0);{Delay(1); if(F2==0)key=2;} if(F3==0){Delay(1); if(F3==0)key=3;} if(F4==0){Delay(1); if(F4==0)key=4;/* 主函数 *// / / ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js ^js /main(){unsigned char i;// while(j--)while(1){getkey();switch(key){case 1:for(i=0;i<4;i++){Cntrol_Port = F_Rotation[i];Delay(work);Cntrol_Port = 0;Delay(4);key=4;}break;case 2:for(i=0;i<4;i++){Cntrol_Port = B_Rotation[i];Delay(work);Cntrol_Port = 0;Delay(4);key=4;}break;case 3:for(i=0;i<248;i++){Cntrol_Port = F_Rotation[i%4];Delay(work);Cntrol_Port = 0;Delay(rest);getkey();}Delay(500);for(i=0;i<248;i++){Cntrol_Port = B_Rotation[i%4];Delay(work);Cntrol_Port = 0;Delay(rest);getkey();}for(i=0;i<248;i++){Cntrol_Port = B_Rotation[i%4];Delay(work);Cntrol_Port = 0;Delay(rest);getkey();}Delay(500);for(i=0;i<248;i++){Cntrol_Port = F_Rotation[i%4];Delay(work);Cntrol_Port = 0;Delay(rest);getkey();}break;case 4: Cntrol_Port = 0;break;} }}。