欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 51單片機(jī)怎么接TB6600驅(qū)動(dòng)器和程序才能實(shí)現(xiàn)按鍵控制? [打印本頁]

作者: 方法啊    時(shí)間: 2018-1-29 22:03
標(biāo)題: 51單片機(jī)怎么接TB6600驅(qū)動(dòng)器和程序才能實(shí)現(xiàn)按鍵控制?
51單片機(jī)怎么接TB6600驅(qū)動(dòng)器和程序才能實(shí)現(xiàn)按鍵控制? 怎么接線 c程序怎么寫

作者: 小單片機(jī)菜雞    時(shí)間: 2019-1-21 09:04
會(huì)接,程序怎么寫啊?
作者: angmall    時(shí)間: 2019-1-21 19:06
  1. /*************************************************************
  2. * 測(cè)試說明
  3. *1、MCU:STC89C52RC
  4. *2、測(cè)試頻率:12Mhz
  5. *2、編程語言:C51
  6. *2、編譯環(huán)境:Keil C
  7. *2、功能:全速正轉(zhuǎn)、全速反轉(zhuǎn)、停止、調(diào)速運(yùn)行
  8. ***************************************************************/

  9. #include  <reg52.h> //TB6560輸入控制端定義
  10. sbit CLK = P1^0;  //PUL是脈沖
  11. sbit ENA = P1^1;  //ENA是使能
  12. sbit DIR = P1^2;  //DIR是方向
  13. sbit CW = P3^0; //正轉(zhuǎn)運(yùn)行按鍵
  14. sbit STOP = P3^1; //停止運(yùn)行按鍵
  15. sbit CCW = P3^2; //反轉(zhuǎn)運(yùn)行按鍵
  16. sbit ADJ1 = P3^3; //調(diào)速運(yùn)行按鍵
  17. sbit ADJ2 = P3^4; //調(diào)速運(yùn)行按鍵
  18. bit Run_Status; //運(yùn)行狀態(tài)位標(biāo)志,
  19. //=0表示電機(jī)在停止?fàn)顟B(tài),可以按鍵正轉(zhuǎn)、反轉(zhuǎn)均可
  20. //=1表示電機(jī)在運(yùn)行狀態(tài),不支持正反轉(zhuǎn)按鍵,只有先停止。防止強(qiáng)行換向帶來的電流過大。
  21. unsigned char Run_Dir; //電機(jī)運(yùn)行方向
  22. #define F_DIR 0 //正轉(zhuǎn)
  23. #define B_DIR 1 //反轉(zhuǎn)
  24. unsigned int CYCLE; //周期變量
  25. /************************************************************************************************
  26. ** 函數(shù)名稱: void Delay(unsigned int cnt)
  27. ** 功能描述: 簡(jiǎn)單的延時(shí)函數(shù)
  28. ** 輸  入: cnt:0-65535之間的任意整數(shù)
  29. ** 輸  出: 無
  30. *************************************************************************************************/
  31. void Delay(unsigned int cnt)
  32. {
  33.         while(--cnt);
  34. }

  35. /************************************************************************************************
  36. ** 函數(shù)名稱: void main(void)
  37. ** 功能描述: 主函數(shù)
  38. ** 輸  入: 無
  39. ** 輸  出: 無
  40. *************************************************************************************************/
  41. void main(void)
  42. {
  43.         Run_Status=0; //=0表示電機(jī)在停止?fàn)顟B(tài),可以按鍵正轉(zhuǎn)、反轉(zhuǎn)均可
  44.         CLK = 0;
  45.         ENA = 0;
  46.         while(1)
  47.         {
  48.                 if(!STOP) //任何時(shí)候按停止鍵,電機(jī)停止運(yùn)行
  49.                 {
  50.                         Delay(1000); //延時(shí)去抖動(dòng)
  51.                         if(!STOP)
  52.                         {
  53.                                 Run_Status=0; //電機(jī)正在停止的狀態(tài)標(biāo)志
  54.                                 CLK = 0;
  55.                                 ENA = 0;
  56.                                 TR0=0;
  57.                         }
  58.                 }
  59.                 if(!CW && !Run_Status) //按正轉(zhuǎn)鍵同時(shí)電機(jī)不是正在運(yùn)行時(shí),電機(jī)正轉(zhuǎn)運(yùn)行
  60.                 {
  61.                         Delay(1000); //按下延時(shí)去抖動(dòng)
  62.                         if(!CW && !Run_Status)
  63.                         {
  64.                                 Run_Status=1; //電機(jī)正在運(yùn)行的狀態(tài)標(biāo)志
  65.                                 DIR = 0; //正轉(zhuǎn)
  66.                                 ENA = 1;
  67.                                 CYCLE=2500; //脈沖頻率 定時(shí)器設(shè)置 10ms in 12M crystal 即100Hz
  68.                                 TMOD |=0x01;
  69.                                 TH0=(65536-CYCLE)/256;
  70.                                 TL0=(65536-CYCLE)%256;
  71.                                 IE= 0x82; //打開中斷
  72.                                 TR0=1;
  73.                                 Run_Dir=F_DIR; //電機(jī)運(yùn)行方向正轉(zhuǎn)  
  74.                         }
  75.                 }
  76.                 if(!CCW && !Run_Status) //按反轉(zhuǎn)鍵同時(shí)電機(jī)不是正在運(yùn)行時(shí),電機(jī)反轉(zhuǎn)運(yùn)行
  77.                 {
  78.                         Delay(1000); //延時(shí)去抖動(dòng)
  79.                         if(!CCW && !Run_Status)
  80.                         {
  81.                                 Run_Status=1; //電機(jī)正在運(yùn)行的狀態(tài)標(biāo)志
  82.                                 DIR = 1; //反轉(zhuǎn)
  83.                                 ENA = 1;
  84.                                 CYCLE=2500; //脈沖頻率 定時(shí)器設(shè)置 10ms in 12M crystal 即100Hz
  85.                                 TMOD |=0x01;
  86.                                 TH0=(65536-CYCLE)/256;
  87.                                 TL0=(65536-CYCLE)%256;
  88.                                 IE= 0x82; //打開中斷
  89.                                 TR0=1;
  90.                                 Run_Dir=B_DIR; //電機(jī)運(yùn)行方向反轉(zhuǎn)
  91.                         }
  92.                 }
  93.                 if(!ADJ1)
  94.                 {
  95.                         Delay(5000); //延時(shí)去抖動(dòng)
  96.                         if(!ADJ1)
  97.                         {
  98.                                 if(CYCLE<20000) CYCLE+=2000;
  99.                                 else CYCLE=1000;
  100.                                 Run_Status=1;
  101.                                 TR0=1;
  102.                         }
  103.                 }
  104.                 if(!ADJ2)
  105.                 {
  106.                         Delay(5000); //延時(shí)去抖動(dòng)
  107.                         if(!ADJ2)
  108.                         {
  109.                                 if(CYCLE>2000) CYCLE-=2000;
  110.                                 Run_Status=1;
  111.                                 TR0=1;
  112.                                
  113.                         }
  114.                 }
  115.         }
  116. }

  117. /***********************************************************************************************
  118. ** 函數(shù)名稱: Timer0_ISR
  119. ** 功能描述: 定時(shí)器0中斷處理函數(shù)
  120. ** 輸  入: 無
  121. ** 輸  出: 無
  122. *************************************************************************************************/

  123. void Timer0_ISR(void) interrupt 1 using 1

  124. {
  125.         TH0=(65536-CYCLE)/256;
  126.         TL0=(65536-CYCLE)%256;
  127.         CLK = ~CLK;
  128. }

復(fù)制代碼

作者: coffeepod    時(shí)間: 2020-4-17 11:30
這是共陰吧,應(yīng)該還需要反拉電阻的,否則驅(qū)動(dòng)不了光耦




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1