首页资源分类嵌入式处理器51内核 > 直流电机word

直流电机word

已有 445005个资源

下载专区

上传者其他资源

文档信息举报收藏

标    签:12

分    享:

文档简介

直流电机程序调速pwm控制速度

文档预览

#include #include"delay.h" #define uchar unsigned char #define uint unsigned int //*********************// sbit ENA = P2^2; //驱动芯片使能,若为0则电机停止; sbit IN1 = P2^1; //控制电机正转和反转 sbit IN2 = P2^0; //控制电机正转和反转 sbit key1 = P1^0; //此键按下,电机正转;IN1=1;IN2=0 ;ENA=1 sbit key2 = P1^1; //此键按下,电机反转;IN1=0,IN2=1 ;ENA=1 sbit key3 = P1^2; //此键按下,电机刹停; IN1=1,IN2=1 ;ENA=1 //*********************// int motor_change_mank=0; // 按键设置 //**********************// uint keylogo() { if(key1==0) { delayms(2) ; //while(key1==0); motor_change_mank=1;//正转标志位 } if(key2==0) { delayms(2) ; //while(key2==0); motor_change_mank=2;//反转标志位 } if(key3==0) { delayms(2) ; //while(key3==0); motor_change_mank=0;//刹停标志位 } return(motor_change_mank); } //**********************// //控制驱动芯片函数 //**********************// void execute_motor() { switch(motor_change_mank) { case 0: //刹停标志位 { IN1 = 1; IN2 = 1; ENA = 1; }break; case 1: //正转标志位 { IN1 = 1; IN2 = 0; ENA = 1; }break; case 2: //反转标志位 { IN1 = 0; IN2 = 1; ENA = 1; }break; default:break; } } //**********************// void main() { while(1) { keylogo(); execute_motor(); } } /**********************************************************************/ /**********************************************************************/ #define uint unsigned int void delayms(uint n) { int i; for(;n>0;n--) for(i=0;i<1;i++); } /**********************************************************************/ /**********************************************************************/ #ifndef delay_h #define delay_h #define uint unsigned int extern void delayms(uint n); #endif /***********************************************************************/ /***********************************************************************/

Top_arrow
回到顶部
EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高员外,我们会尽快处理。