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

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

MMA7260的STC12C5410AD單片機程序

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

頭文件可以在本站的軟件下載區下載 在51hei.com上搜索即可找到

#include "STC12C5410AD.H"  

sbit    MMA7260sleep=P1^0;     //MMA7260休眠與否,0-休眠;1-正常工作
//---------------------------------------
//名稱: 延時約1毫秒函數

//-----------------------------------------
void delay1ms()
{
  word k;
 for(k=0;k<12000;k++);
}
void delayms(word ms)
{
  word k,j;
 for(j=0;j<ms;j++)
  for(k=0;k<12000;k++);
}

//---------------------------------------
//名稱: 串口數據發送函數

//-----------------------------------------
void uart_putchar(byte ch)
{
  TI=0;
  if (ch == '\n')
  {
   
      SBUF= 0x0d;            //output'CR'
   while(!TI);
   return;
   } 
   SBUF=ch;
   while(!TI);
}
//---------------------------------------
//名稱: 串口數據接收函數

//-----------------------------------------
byte uart_getchar(void)
{  
 
 if(RI)
    {
  RI=0;  
  return SBUF;   //有數據接收到,返回1
  }
  else
  {
  return 0;    //無數據接收到,返回0
  }
}

void putstr(char ch[])
{
  byte ptr=0;
  while(ch[ptr])
  {
      uart_putchar((byte)ch[ptr++]);
  }   
 
}
//---------------------------------------
//名稱: 模數轉換函數(8位)

//-----------------------------------------
byte ReadAD(byte ch)
{
  ADC_DATA = 0;                 //清A/D轉換結果寄存器
   
 ADC_CONTR = 0xF8|ch;   //0000,1000ADCS = 1,啟動轉換
 delay1ms();
 do{;}  
    while((ADC_CONTR&0x10)==0);   //0001,0000等待A/D轉換結束
 ADC_CONTR = ADC_CONTR&0xE7;   //1110,0111清ADC_FLAG位,停止A/D轉換
 return ADC_DATA; 
}
/***************************************************
  把0--255的數值轉化為3位字符串格式
****************************************************/
void Byte2Str3(char zifu[],byte val,byte StartPtr)
{
  char characters[11]="0123456789"; 
  byte tv=0;
 
  tv=val/100;
  zifu[StartPtr++] = characters[tv];
  tv=(val%100)/10;
  zifu[StartPtr++] = characters[tv];
  tv=val%10;
  zifu[StartPtr] = characters[tv];
  //zifu[3] = '\0';
  return;
}

 


//---------------------------------------
//名稱: 初始化函數函數

//-----------------------------------------
void init_ad(void)
{
  P1M0=0x07;     //設置P1.012為高阻輸入,以準備AD
 P1M1=0x00;
    ADC_CONTR = 0xf8; //1000,0000打開A/D轉換電源
 delay1ms();
 ADC_CONTR = ADC_CONTR&0xe0; //1110,0000 清ADC_FLAG,ADC_START位和低3位

}

void init_uart(void) //P3.0,3.1
{
    TMOD=0x20;     //TH1=256-INT(22118400/32/12/baud+0.5)
    TH1=0xfa;  //0xfa,9600
    TL1=0xfd;  //0xff,57600
    PCON=0x00;
    TR1=1;
    SCON=0xd0;
}
void init_dev(void)
{  
 init_ad();
 init_uart();
}

//---------------------------------------
//名稱: 主函數 

//-----------------------------------------
void main()
{
 char txtbuf[17]="\n ADC Val:  ";
 byte adbuf;
 init_dev();
 putstr("\n MMA7260 starts working!\n"); 
 MMA7260sleep=1;//MMA7260開始工作
 while(1)
 { 
     //ADC
  adbuf=ReadAD(0); //X AXIS
   Byte2Str3(txtbuf,adbuf,11);   
        putstr(txtbuf);
 
  adbuf=ReadAD(1); //Y AXIS
   Byte2Str3(txtbuf,adbuf,11);   
        putstr(txtbuf);
 
  adbuf=ReadAD(2); //Z AXIS
   Byte2Str3(txtbuf,adbuf,11);   
        putstr(txtbuf);
 
  delayms(300);
 }
}
 

 

關閉窗口

相關文章

主站蜘蛛池模板: 久久毛片 | 国产精品美女一区二区 | 久久久91精品国产一区二区三区 | 亚洲精品在线免费 | 午夜天堂精品久久久久 | 亚洲欧美一区二区三区情侣bbw | 亚洲一区免费在线 | 精品视频一区二区三区在线观看 | 国产日韩一区二区三区 | 91av视频在线免费观看 | 成人美女免费网站视频 | 日韩一区二区三区四区五区六区 | 精品久久久久久18免费网站 | 亚洲激情在线 | 国产专区在线 | 欧美精品一区二区在线观看 | 91色在线视频 | 中文字幕日韩在线 | 人人爽人人草 | 美国一级毛片a | 亚洲成在线观看 | zzzwww在线看片免费 | 懂色av色香蕉一区二区蜜桃 | 久久美国 | 国产成人精品久久二区二区91 | 伊人春色在线观看 | 丝袜久久| 中文字幕一二三区 | 亚洲国产精品区 | 做a视频在线观看 | 精品丝袜在线 | 国产精品夜色一区二区三区 | 国产日韩视频在线 | 亚洲v日韩v综合v精品v | 亚洲精品久久久久国产 | 日本aaaa| 91在线免费视频 | 欧美精品一区二区三区在线播放 | 日韩欧美一区二区三区免费观看 | 午夜影视 | 久久久久无码国产精品一区 |