单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3868|回复: 4
打印 上一主题 下一主题
收起左侧

pic单片机控制电机启动、转动、停止C语言程序

[复制链接]
跳转到指定楼层
楼主
#include <pic.h>
#define MOTOR   RB2

void DELAY(unsigned int);

    main(void)
{char   A;
    MOTOR=0;
    OPTION=0b00000000;      //设定RB0为下降沿中断
    TRISB=0b00000001;           //设定RB0为输入,RB2为输出
    TRISD=0b00000000;           //PORTD全为输出口
    A=0b00000001;
    PORTD=A;                //PORTD的第0位LED亮
    INTCON=0;               //禁止中断
  while(1)
    {
        if (RB0==1)         //每隔100ms,检测一下开关S1的状态
            MOTOR=0;        //S1断开时RB0为高电平,让电机停
        else
            MOTOR=1;        //S1合上时RB0为低电平,让电机转
        DELAY(200);
        A=A<<1;
        if (A==0)   
            A=0b00000001;   //当最高位亮后,从最低位循环重复
        PORTD=A;            //LED轮流亮
    }
}

//======延时(n)ms
void DELAY(unsigned int n)
{
    unsigned int j;
    char k;
    for (j=0;j<n;j++)
            for (k=246;k>0;k--)
                NOP();
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 转播转播 分享分享 分享淘帖 顶 踩
回复

使用道具 举报

沙发
amw1688 发表于 2014-2-7 17:40 | 只看该作者
不象牙呀,不错

]QVV[R[Z}S(QVLRSQK}FLX2.jpg (55.94 KB, 下载次数: 130)

]QVV[R[Z}S(QVLRSQK}FLX2.jpg
回复

使用道具 举报

板凳
ymzmch 发表于 2014-9-13 23:12 | 只看该作者

学习下
回复

使用道具 举报

地板
bg7nr 发表于 2017-2-13 00:47 | 只看该作者
正想做个玩具,控制双电机的正反转,怎样调速呢?
回复

使用道具 举报

5#
Linkxia 发表于 2017-8-29 09:56 | 只看该作者
新人学习中!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51hei电子论坛2群 联系QQ:125739409;技术交流QQ群219535678

Powered by 单片机教程网

快速回复 返回顶部 返回列表