<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 基于C51單片機的遙控小車設(shè)計與制版

          基于C51單片機的遙控小車設(shè)計與制版

          作者: 時間:2016-11-27 來源:網(wǎng)絡 收藏

          六、參考文獻

          [1]閻石.數(shù)字電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,1998:348-352.

          [2] 徐銘澤,武明西,范展.遙控啟停電動車[Z].哈爾濱:哈爾濱工程大學.

          [3] 曹偉華. 一款遙控車的電路剖析[DB].

          [4] http://www.znczz.com/forum-40-1.html, 2013-06-22.

          [5]http://www.fxdzw.com/dzjs.asp

          [6]王良軍,呂云曾,王學剛.遙控啟停電動車[Z].哈爾濱:哈爾濱工程大學.

          [7] 孫燕,劉二明,等.Protel99 設(shè)計與實例[M].北京:機械工業(yè)出版社.

          [8] http://bbs.dianyuan.com/topic/218024, 2013-06-22.

          附錄1

          #include

          #define uchar unsigned char

          #define uint unsigned int

          sbit PW1=P1^0 ;

          sbit PW2=P1^1 ; //控制電機的兩個輸入

          sbit PW3=P1^2 ;

          sbit PW4=P1^3 ; //控制電機的兩個輸入

          sbit accelerate=P2^2 ;//調(diào)速按鍵

          sbit stop=P2^3 ; //停止按鍵

          sbit move=P2^4 ; //左轉(zhuǎn)按鍵

          sbit back=P2^5 ; //右轉(zhuǎn)按鍵

          sbit right=P2^6 ;

          sbit left=P2^7 ;

          #define end_turn PW1=1;PW2=1;PW3=1;PW4=1//停轉(zhuǎn)

          uint t0=25000,t1=25000; //初始時占空比為50%

          uint a=25000; // 設(shè)置定時器裝載初值 25ms 設(shè)定頻率為20Hz

          uchar flag=1; //此標志用于選擇不同的裝載初值

          uchar dflag; //左右轉(zhuǎn)標志

          uchar count; //用來標志速度檔位

          void delay(uchar z);

          void time_init(); //定時器的初始化

          void adjust_speed(); //通過 調(diào)整占空比來調(diào)整速度

          void main()

          {

          time_init(); //定時器的初始化

          while(1)

          {

          P2=0x00;

          keyscan();//不斷掃描鍵盤程序,以便及時作出相應的響應

          }

          }

          void timer0() interrupt 1 using 0

          {

          if(flag)

          {

          flag=0;

          end_turn;

          a=t0; //t0的大小決定著低電平延續(xù)時間

          TH0=(65536-a)/256;

          TL0=(65536-a)%6; //重裝載初值

          }

          else

          {

          flag=1; //這個標志起到交替輸出高低電平的作用

          if(dflag==0)

          {

          PW1=0;PW2=1;PW3=0;PW4=1; //前進

          }

          else if(dflag==1)

          {

          PW1=1;PW2=0;PW3=1;PW4=0 ;//后退

          }

          else if(dflag==2)

          {

          PW1=0;PW2=1;PW3=1;PW4=1;;//左轉(zhuǎn)

          }

          else if(dflag==3)

          {

          PW1=1;PW2=1;PW3=0;PW4=1;;//右轉(zhuǎn)

          }

          a=t1; //t1的大小決定著高電平延續(xù)時間

          TH0=(64536-a)/256;

          TL0=(65536-a)6; //重裝載初值

          }

          }

          void time_init()

          {

          TMOD=0x01; //工作方式寄存器 軟件起動定時器 定時器功能方式 1 定時器0

          TH0=(65536-a)/256;

          TL0=(65535-a)%6; //裝載初值

          ET0=1; //開啟定時器中斷使能

          EA=1; // 開啟總中斷

          TR0=0;

          }

          void delay(uchar z) //在12M下延時z毫秒

          {

          uint x,y;

          for(x=z;x>0;x--)

          for(y=110;y>0;y--);

          }

          void keyscan()

          {

          if(stop==1)

          {

          TR0=0; //關(guān)閉定時器0即可停止轉(zhuǎn)動

          end_turn;

          }

          if(move==1)

          {

          TR0=1;

          dflag=0; //轉(zhuǎn)向標志復位則右轉(zhuǎn)

          }

          if(back==1)

          {

          TR0=1;

          dflag=1; //轉(zhuǎn)向標志復位則右轉(zhuǎn)

          }

          if(left==1)

          {

          TR0=1;

          dflag=2; //轉(zhuǎn)向標志置位則左轉(zhuǎn)

          }

          if(right==1)

          {

          TR0=1;

          dflag=3; //轉(zhuǎn)向標志復位則右轉(zhuǎn)

          }

          if(accelerate==1)

          {

          delay(5) ; //延時消抖

          if(accelerate==0)

          {

          while(accelerate==0) ; //等待松手

          count=0;

          count++;

          if(count==1)

          {

          t0=20000;

          t1=30000; //占空比為百分之60

          }

          if(count==2)

          {

          t0=15000;

          t1=35000; //占空比為百分之70

          }

          if(count==3)

          {

          count=0;

          }

          }

          }

          }


          上一頁 1 2 下一頁

          關(guān)鍵詞: C51單片機遙控小

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();