录音/制作/创作 吉他 扩声技术 视频技术 作品展示 生活 信息 更多... | 音频应用专卖店

基于80C51MCU主控的摄像电动滑轨设计

( 2 )
 
[收藏]

2615
#1 11-9-26 23:36

基于80C51MCU主控的摄像电动滑轨设计

今天基于80C51的电动滑轨初步设计思路完成。
材料:
MCU:STC89C52
步进驱动:ULN2003
大扭矩步进电机一个
LED8只
按键4个
限位行程开关2个
滑轨1个
传动带传动齿轮一套

程序设计思路
定义开关1=滑块向左 sbit left=p2^1
定义开关2=滑块向右 sbit right=p2^2
定义开关3=停止 sbit stop=p2^3
定义开关4=速度选择 sbit spd=p2^4
MCU上电后,开始判断4个按键的状态。
若先按下SPD,则根据按下次数改变速度参数,LED同时亮起相应的数量。
当超过8时,自动复位为1
若未按下SPD,直接按向左OR向右,则采用默认SPD参数为4
两个限位行程开关连接MCU中断口,
当限位开关被接通,保证能在第一时间调用停止功能,防止损坏。
当STOP被按下,停止运行,程序回到前面按键判断状态。
当左限位导通,则向左按键无效,当右限位被导通,则向右按键无效。

若要做延时摄影功能滑轨
则改动如下
电机运行一定圈数后,延时10MS(防止惯性抖动),然后用管脚导通继电器导通遥控开关。
曝光结束后,继续转动。。。。循环。直到限位被触发,程序结束。蜂鸣器响起提示完成。
此功能拍星空很有效。

程序编写中,个人水平有限,边学边写。

MCU编程爱好者可站内信我,一起学习交流。

[ 本帖最后由 J先生 于 11-9-27 00:04 编辑 ]

2615
#2 11-9-27 18:13
第一步步进电机左转右转停止代码。
#include <reg52.h>
sbit left=P3^4;
sbit right=P3^5 ;
sbit stop=P3^6 ;
#define m_port P2;//定义马达接口组
unsigned char code leftm [4]{x80,0x40,0x20,0x10};
unsigned char code rightm [4]{0x10,0x20,0x40,0x80};

void delay(void) //延时程序
{
unsigned char i,j;
for(i=20;i>0;i--)
for(j=50;j>0;j--);
}
void main((void)
while(1){  //永远循环以下程序
switch  (){
case left==0:
while (stop==1){
unsigned char i;
      for (i=0; i<4; i++)      
        {
          P1 = leftm;  //取数据
  
          delay();}           //调节转速
    break;
case right=0:
while (stop==1){
  
      for (i=0; i<4; i++)      
        {
          P1 = leftm;  //取数据
  
          delay();}           //调节转速
    break;
    }}}}

2629
#3 11-9-27 21:31
你一定是受了打击,不要这样难为自己
观众反应
:哥你说话好深奥
您需要登录后才可以回帖 登录 | 注册

本版积分规则

搜索