芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

飞芯科技-芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

单片机控制直流电机的驱动及正反转程序单片机解密

单片机解密IC解密关于直流电机的驱动电路仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机解密IC解密单片机源程序如下:
  1. //四个按键控制步进电机:正转,反转,加1,减1
  2. //上电时电机启动,加减档位,电机采用单双八拍方式
  3. #include<reg51.h>
  4. #define uchar unsigned char
  5. #define uint unsigned int
  6. sbit s1 = P1^0;
  7. sbit s2 = P1^1;
  8. sbit s3 = P3^0;
  9. sbit s4 = P3^1;
  10. sbit s5 = P3^2;//按键定义,s1正转,s2反转,s3加1,s4减1
  11. sbit a = P2^7;sbit b = P2^6;sbit c = P2^5;sbit d = P2^4;//脉冲信号输入端定义
  12. uchar code time_counter[10][2]={{0xda,0x1c},{0xde,0xe4},{0xe1,0xec},{0xe5,0xd4},{0xe9,0xbc},  //9.7 ----1ms
  13.                                                             {0xed,0xa4},{0xf1,0x8c},{0xf5,0x74},{0xf9,0x5c},{0xfc,0x18}};
  14. uchar num1 = 0;//控制取励磁信号变量                                                  
  15. uchar num2 = 8;

  16. char k=0;//加减档位控制,1为最小档
  17. char pause=1;//暂停时保存之前的转速,开机默认1
  18. bit flag1 = 0;//初始正转,正反转标志
  19. //================================定时器0/1初始化函数================================
  20. void T0_T1_init()
  21. {
  22.         TMOD = 0x11;//定时器0/1均工作于方式1,16位计时方式
  23.            TH1 = time_counter[k-1][0];
  24.         TL1 = time_counter[k-1][1];//定时器1,定时10ms用于步进电机转速控制
  25.         TR1 = 0;
  26.         ET1= 1;//开定时器中断
  27.         EA = 1;//开总中断
  28. }
  29. //================================ms级延时函数=======================================
  30. void delay1m(uint x)
  31. {
  32.     uint i,j;
  33.     for(i=0;i<x;i++)      //连数x次,约 x ms
  34.              for(j=0;j<120;j++);   //数120 次,约1 ms
  35. }

  36. //================================主函数=============================================
  37. void main()
  38. {
  39.         T0_T1_init();
  40.         a=b=c=d=0;
  41.         while(1)
  42.         {
  43.                 if(s1 == 0)
  44.                 {
  45.                         delay1m(3);
  46.                         if(s1 == 0)
  47.                         {
  48.                                 flag1 = 0;//正转
  49.                         }
  50.                         while(!s1);
  51.                 }
  52.                 if(s2 == 0 )
  53.                 {
  54.                
  55.                         delay1m(3);
  56.                         if(s2 == 0)
  57.                         {
  58.                                 flag1 = 1;//反转
  59.                         }
  60.                         while(!s2);
  61.                 }
  62.                 if(s3 == 0)           //速度加1档
  63.                 {
  64.                         delay1m(3);
  65.                         if(s3 == 0)
  66.                         {
  67.                                 k++;
  68.                                 TR1=1;
  69.                                 if(k > 10 )
  70.                                 {
  71.                                         k = 1;
  72.                                 }
  73.                         }
  74.                         while(!s3);
  75.                 }



联系方式

地址:石家庄市新华区民族路77号华强广场D座2009
电话:0311-88816616/87087811
手机:13315190088
传真:0311-67901001
联系人:张工
网址:www.feixindz.com
邮箱:feixindz@163.com
微信:xinpianjiemi
QQ:527263666/568069805

在线客服
热线电话

企业微信