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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

51單片機 陀機 955 測試

作者:黃大垣   來源:本站原創   點擊數:  更新時間:2013年11月27日   【字體:


紅色VCC,橙色信號線,棕色GND


單片機系統實現對舵機輸出轉角的控制,必須首先完成兩項任務:首先,產生基本的PWM周期信號,即產生20ms的周期信號;其次,調整脈寬,即單片機調節PWM信號的占空比。單片機能使PWM信號的脈沖寬度實現微秒級的變化,從而提高舵機的轉角精度。單片機完成控制算法,再將PWM信號輸出到舵機。
#include<reg52.h>

typedef unsigned char BYTE;
typedef unsigned int WORD;
BYTE count,jd;
sbit pwm=P1^6;
sbit jia=P3^2;
sbit jian=P3^3;

sbit LS138A = P2^2;   //定義138譯碼器的輸入A腳由P2.2控制
sbit LS138B = P2^3; //定義138譯碼器的輸入腳B由P2.3控制
sbit LS138C = P2^4; //定義138譯碼器的輸入腳C由P2.4控制
//此表為 LED 的字模, 共陰數碼管   0-9  -
BYTE code Disp_Tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};
WORD LedOut[10];//數碼管數組

/***************************************************************************

  *
*                    延時程序               *
****************************************************************************/

void Delay(WORD n)
{
    WORD x;

    while (n--)
    {
        x = 250;
        while (x--);
    }
}
/***************************************************************************

  *
*                    顯示函數               *
****************************************************************************/
void display(WORD num)
{

         WORD i,LedNumVal ;
LedNumVal=num;  
  
LedOut[0]=Disp_Tab[LedNumVal%100000/10000]; //萬位
    LedOut[1]=Disp_Tab[LedNumVal%10000/1000];  //千位
     LedOut[2]=Disp_Tab[LedNumVal%1000/100];   //百位
     LedOut[3]=Disp_Tab[LedNumVal%100/10];  //十位
LedOut[4]=Disp_Tab[LedNumVal%10]; //個位
 
     LedOut[5]=Disp_Tab[LedNumVal%1000/100]|0x80;  //百位帶小數點
     LedOut[6]=Disp_Tab[LedNumVal%100/10];   //十位
     LedOut[7]=Disp_Tab[LedNumVal%10];             //個位
 
for( i=0; i<8; i++)  //實現8位動態掃描循環

P0 = LedOut[i];  //將字模送到P0口顯示
         switch(i)  //使用switch 語句控制位選  也可以是用查表的方式 
    {   
case 0:LS138A=0; LS138B=0; LS138C=0;  break;        
   case 1:LS138A=1; LS138B=0; LS138C=0;  break;           
   case 2:LS138A=0; LS138B=1; LS138C=0;  break;
   case 3:LS138A=1; LS138B=1; LS138C=0;  break;
case 4:LS138A=0; LS138B=0; LS138C=1;  break;
case 5:LS138A=1; LS138B=0; LS138C=1;  break;
case 6:LS138A=0; LS138B=1; LS138C=1;  break;
case 7:LS138A=1; LS138B=1; LS138C=1;  break;
 
    }
 
Delay(1);

}
}
//定時器初始化
void Time0_init()
{
  TMOD=0x01;           //定時器0工作方式1
  IE=0x82;
  TH0=0xfe;
  TL0=0x33;     //11.0592MHZ晶振,0.5ms
  TR0=1;
}
//定時器0中斷程序
void Time0() interrupt 1
{
  TH0=0xfe;
  TL0=0x33;
  if(count<jd)           //判斷0.5ms次數是否小于角度標識
     pwm=1;     //是,pwm輸出高電平
  else
  pwm=0;     //否,輸出低電平
  count=count+1;
  count=count%40;  //次數始終保持為40,即保持周期為20ms
}
//按鍵掃描
void keyscan()
{
  if(jia==0)
  {
   Delay(1);
   if(jia==0)
   {
     jd++;      //角度增加 1
  count=0;     //按鍵按下則20ms周期重新開始計時
  if(jd==6)
    jd=5;     //已經是180度,保持
   while(jia==0);
   }
  }
    if(jian==0)
   {
     Delay(1);
  if(jian==0)
  {
    jd--;
    count=0;
    if(jd==0)
      jd=1;   //已經0度,保持
   while(jian==0);
  }
   }
}
void main()
{
 jd=1;
 count=0;
 Time0_init();
 while(1)
 {
  keyscan();
  display(jd);
 }
}
 

關閉窗口

相關文章

主站蜘蛛池模板: 国产成人精品免费视频大全最热 | 亚洲高清视频在线观看 | 日屁网站 | 精品成人在线观看 | 日韩欧美在线视频 | 久久久久久亚洲国产精品 | 在线观看视频亚洲 | 国产精品区二区三区日本 | 日韩精品久久一区二区三区 | 综合久久综合久久 | 欧美视频三级 | 久久宗合色 | 美女视频黄色的 | 日韩欧美二区 | 亚洲精品免费视频 | 久久精品亚洲 | 午夜在线观看视频 | 国产精品一区二区在线播放 | 女女百合av大片一区二区三区九县 | 久久久精品一区 | 99热在线播放 | 日本不卡高字幕在线2019 | 国产精品久久久久久一区二区三区 | www.youjizz.com日韩 | 亚洲 欧美 日韩在线 | 理论片午午伦夜理片影院 | 欧美综合一区二区三区 | 在线观看第一页 | 欧美亚洲视频在线观看 | 亚洲国内精品 | 98久久 | 日本a∨精品中文字幕在线 亚洲91视频 | 无码日韩精品一区二区免费 | 日本精品久久久久久久 | 一区二区三区亚洲精品国 | 成人亚洲精品久久久久软件 | 国产伦精品一区二区三区高清 | 欧美性受xxxx白人性爽 | 欧美综合一区二区 | 一区网站 | 精品一级 |