久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4412|回復: 1
打印 上一主題 下一主題
收起左側

尋跡小車程序 采用stc12單片機的PCA模塊輸出PWM,舵機控制轉向

[復制鏈接]
跳轉到指定樓層
樓主
ID:219529 發表于 2017-7-31 13:40 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
采用stc12c5a60s2的PCA模塊輸出PWM,舵機控制轉向

單片機源程序如下:
  1. #include<stc12c5a.h>

  2. //ENA=P1^3;
  3. //ENB=P1^4;
  4. sbit dj=P1^0;              // 陀機

  5. sbit in1=P2^0;                          //電機轉向控制端
  6. sbit in2=P2^1;                          //
  7. sbit in3=P2^2;                          //
  8. sbit in4=P2^3;                          //

  9. sbit HW1=P1^1;                  //紅外傳感器信號接收端
  10. sbit HW2=P1^2;                  //
  11. sbit HW3=P1^5;                  //
  12. sbit HW4=P1^6;                  //
  13. sbit HW5=P1^7;                  //


  14. unsigned int zkb;          //陀機 占空比
  15.                                                  
  16. void Timer1(unsigned long int us)//給定時器賦初值
  17. {       
  18.         unsigned long int valu;
  19.         valu=us*12;                                //工作在1T,對機器周期計數12次,才是1us
  20.         valu=valu;
  21.         valu=0xffff-valu;                //          
  22.     TH1=valu>>8;          
  23.     TL1=(valu<<8)>>8;
  24.     TR1  = 1;          //T0開始工作
  25. }


  26. void main()
  27. {         
  28.      //PCA模塊初始化
  29.      CMOD=0x04;        //時鐘源為定時器0
  30.          CCON=0;         //PCA控制寄存器,CF、CR、CCF1(PCA模塊中斷標志,匹配或捕獲時置位)、CCF0
  31.          CL=0;        //當CL>CCAP0L時,輸出為高電平
  32.          CH=0;        //沒有用到
  33.          CCAPM0=0x42;        //8位PWM,無中斷
  34.          CCAPM1=0x42;   //PCA比較/捕獲寄存器。8位PWM,無中斷
  35.          CR=1;
  36.          CCAP0H=CCAP0L=256-45;        //設置占空比(電機)
  37.          CCAP1H=CCAP1L=256-45;

  38.      //定時器初始化
  39.          AUXR|=0xc0; //輔助寄存器,這里讓定時器為1T模式
  40.          TMOD=0x12;
  41.          TH0=256-47;
  42.      TL0=256-47;
  43.          TR0=1;
  44.          P1M1=0;                         //
  45.          P1M0=0XFF;                         //
  46.          EA=1;                                           //開總中斷
  47.          ET1 = 1;
  48.                                         
  49.          Timer1(36); //開啟定時器,進入中斷函數

  50.         while(1)
  51.         {
  52.                  if((HW1==0)&&(1==HW2)&&(1==HW3)&&(1==HW4)&&(1==HW5))
  53.                  {
  54.                       zkb=1250;
  55.                           in1=0;
  56.               in2=1;
  57.                   in3=1;
  58.                   in4=0;
  59.                           CCAP0H=CCAP0L=256-110;        //設置占空比(電機)
  60.                   CCAP1H=CCAP1L=256-150;
  61.                           while(HW3&&HW4&&HW5);                 
  62.                  }
  63.                   else if((1==HW1)&&(0==HW2)&&(1==HW3)&&(1==HW4)&&(1==HW5))
  64.                  {
  65.                        zkb=1400;
  66.                           in1=1;
  67.               in2=0;
  68.                   in3=1;
  69.                   in4=0;
  70.                           CCAP0H=CCAP0L=256-80;        //設置占空比(電機)
  71.                   CCAP1H=CCAP1L=256-110;
  72.                           while(HW1&&HW3&&HW4&&HW5);
  73.                  }
  74.                   else if((1==HW1)&&(1==HW2)&&(1==HW3)&&(0==HW4)&&(1==HW5))
  75.                  {
  76.                           in1=1;
  77.               in2=0;
  78.                   in3=1;
  79.                   in4=0;
  80.                       zkb=1600;
  81.                           CCAP0H=CCAP0L=256-80;        //設置占空比(電機)
  82.                   CCAP1H=CCAP1L=256-110;
  83.                           while(HW5&&HW3&&HW2&&HW1);
  84.                  }
  85.                  else if((1==HW1)&&(1==HW2)&&(1==HW3)&&(1==HW4)&&(0==HW5))
  86.                  {
  87.                       in1=1;
  88.               in2=0;
  89.                   in3=0;
  90.                   in4=1;
  91.                       zkb=1750;
  92.                           CCAP0H=CCAP0L=256-150;        //設置占空比(電機)
  93.                   CCAP1H=CCAP1L=256-110;
  94.                           while(HW3&&HW2&&HW1);
  95.                  }                 
  96.                  else
  97.                  {       
  98.                            zkb=1500;
  99.                           in1=1;
  100.               in2=0;
  101.                   in3=1;
  102.                   in4=0;
  103.                           CCAP0H=CCAP0L=256-100;        //設置占空比(電機)
  104.                   CCAP1H=CCAP1L=256-100;
  105.                  }
  106.         }

  107. }

  108. /*************************************
  109.   t0 中斷 中斷

  110. *************************************/
  111. void T1zd() interrupt 3  //產生中斷后,又給定時器0賦初值,準備下一次中斷
  112. {
  113.                 static unsigned char num=1;        //靜態全局變量,初始化操作只會被執行一次
  114.                 switch(num)          
  115.                 {
  116.                     case 1:
  117.                         {
  118.                                 dj=1;
  119.                                 Timer1(zkb);  //pwm_valu微秒后再次產生中斷
  120.                         }  break;
  121.                     case 2:
  122.                         {
  123.                                  dj=0;             //pwm1變低
  124.                                 Timer1(2500-zkb);//       
  125.                         }  break;
  126.                     case 3:
  127.                         {
  128.                                 Timer1(2500);//
  129.                         }  break;
  130.                      case 4:
  131.                         {
  132.                                 Timer1(2500);//       
  133.                         }  break;
  134.                     case 5:
  135.                         {
  136.                                 Timer1(2500);//       
  137.                         }  break;
  138.                     case 6:
  139.                         {
  140. ……………………

  141. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
STC12.rar (25.23 KB, 下載次數: 57)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:228376 發表于 2017-8-19 15:16 | 只看該作者
有接線圖嗎?謝謝分享,
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91精品久久久久 | 久久久999免费视频 999久久久久久久久6666 | 久久免费精品 | 国产aa| 9999久久| 亚洲一区在线播放 | 台湾av在线 | 久在线 | 夜夜干夜夜操 | 成人免费久久 | 亚洲欧美久久 | 在线播放亚洲 | 午夜精品一区二区三区在线观看 | 中文在线一区 | 97久久精品 | 成人精品影院 | 免费毛片www com cn | 欧美乱大交xxxxx另类电影 | 亚州成人 | 欧美精品网站 | 亚洲欧美日韩精品久久亚洲区 | 精品一区二区久久久久久久网站 | 欧美综合一区二区 | 国产精品高清在线 | 日韩av在线免费 | 91中文在线观看 | 91资源在线 | 国内成人免费视频 | 国产一区二区久久 | 在线播放一区二区三区 | 亚洲一区在线日韩在线深爱 | 亚洲精品一区二区三区蜜桃久 | 久久久久久久久久久久久9999 | 成人精品鲁一区一区二区 | 国产精品视频网站 | 91天堂| 日韩在线精品视频 | 欧一区二区 | 91午夜在线 | 欧区一欧区二欧区三免费 | 国产一级片av |