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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1095|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

超聲波測距

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:372554 發(fā)表于 2018-7-16 15:01 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include  <msp430x14x.h>
#include "12864.h"
uchar Edge=1;//當(dāng)前觸發(fā)沿
uint RiseCapVal;   //上升沿時刻捕獲值存放變量
uint TA_Overflow_Cnt; //TA溢出次數(shù)存放變量,可能距離遠(yuǎn)超過65535
unsigned long int Period;   //脈寬存放結(jié)果變量,高電平時間
unsigned long int S;       // 定義距離長度,單位厘米


void Conut(void)
    {

       disbuff[1]=S%1000/100;
       disbuff[2]=S%1000%100/10;
       disbuff[3]=S%1000%10 %10;
       LCD_set_xy( 3, 4 );
       LCD_Write_number(disbuff[1]);
       LCD_Write_number(12);
       LCD_set_xy( 3, 5 );
       LCD_Write_number(disbuff[2]);
       LCD_Write_number(disbuff[3]);



      }

#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A(void)
{

  switch(TAIV)
  {
    case 2 :if(Edge==RISE)
              {
                RiseCapVal = TACCR1;
                TACCTL1 |= CAP+CM_2+CCIS_1+SCS+CCIE;//改為下降沿捕獲
                Edge = FALL;//下降沿捕獲標(biāo)志
              }
            else
              {

                //_DINT();
                Period = TACCR1-RiseCapVal;  //這里要注意是否考慮溢出,跟測試距離有關(guān),希望大家拓展
                S=(Period*17)/100;   // 距離計算 s=340m/s*Period/2*10^(-6)*1000(mm)
                TACCR1 = 0;
                TACCTL1|= CAP+CM_1+CCIS_0+SCS+CCIE;//改為上升沿捕獲
                Edge = RISE;//上升沿捕獲標(biāo)志
                //_EINT();
              }
             break;
    case 4 : break;
    case 10: TA_Overflow_Cnt++;   //溢出標(biāo)志
             break;
  }
}


void init_timerA(void)
{
  TACTL   |= TASSEL_2+MC_2+TAIE+TACLR+ ID_3;//SMCLK,8MHz,8分頻,連續(xù)計數(shù),中斷允許,計數(shù)器清零
  TACCTL1 |= CAP+CM_3+CCIS_0+SCS+CCIE;//捕獲模式,上升沿下降沿都捕獲(CM_3),CCI1A輸入,同步捕獲,中斷允許
}

void init_IO(void)
{
  P1DIR |= BIT1;   //P1.1輸出,普通I/O
  P1DIR &=~ BIT2;  //P1.2輸入
  P1SEL |=  BIT2; //P1.2第二功能,捕獲輸入

  P1OUT &=~BIT1;  // 開始低電平,控制驅(qū)動波形發(fā)生
}

void init_clk(void)
{
    uchar i;
    BCSCTL1&=~XT2OFF;   //打開XT振蕩器
    BCSCTL2|=SELM_2+SELS;//MCLK 8M and SMCLK 8M
    do
    {
      IFG1 &= ~OFIFG;//清除振蕩錯誤標(biāo)志
      for(i = 0; i < 0xff; i++)  _NOP();//延時等待
    }
    while ((IFG1 & OFIFG) != 0);//如果標(biāo)志為1繼續(xù)循環(huán)等待晶振起振
    IFG1&=~OFIFG;
}


void main(void)
{

    /*下面六行程序關(guān)閉所有的IO口*/
    P1DIR = 0XFF;P1OUT = 0XFF;
    P2DIR = 0XFF;P2OUT = 0XFF;
    P3DIR = 0XFF;P3OUT = 0XFF;
    P4DIR = 0XFF;P4OUT = 0XFF;
    P5DIR = 0XFF;P5OUT = 0XFF;
    P6DIR = 0XFF;P6OUT = 0XFF;


    WDTCTL = WDTPW + WDTHOLD;            //關(guān)閉看門狗
    P6DIR |= BIT2;P6OUT |= BIT2;         //關(guān)閉電平轉(zhuǎn)換
    P6DIR |= BIT3;P6OUT |= BIT3;         //關(guān)閉電平轉(zhuǎn)換



    Ini_Lcd();
    Disp_img(logo);   //顯示歡迎使用本產(chǎn)品LOGO
    delay_Nms(1000);
    Ini_Lcd();
    Lcd_Mark2();

    init_clk();
    init_IO();           //初始端口設(shè)置
    _EINT();               //開全局中斷
    while(1)
    {
       init_timerA();
       P1OUT |= BIT1;    // P1.1 高電平,超過10us
       delay_Nms(100);
       P1OUT &=~BIT1;
       delay_Nms(80);
       Conut();
       delay_Nms(80);       //80MS



    }
}


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

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产一级特黄真人毛片 | 国产高清久久 | 91资源在线| 亚洲精品免费视频 | 欧美成人精品在线 | 日韩精品免费一区 | 欧美一区二区三区在线观看 | 1级黄色大片 | 成人免费视频在线观看 | 久久男人 | 视频一区二区在线观看 | 黄色成人国产 | www.伊人.com| 欧美一级网站 | av一区二区在线观看 | 狠狠骚 | 成人国产一区二区三区精品麻豆 | 成人福利电影 | 日韩成人高清 | 免费午夜剧场 | 国产ts人妖另类 | 91精品国产综合久久香蕉922 | 欧洲一区二区视频 | 蜜桃在线视频 | 老子午夜影院 | 农村黄性色生活片 | 国产成人精品免费视频大全最热 | 久久伊人一区二区 | 欧日韩不卡在线视频 | 国产午夜在线 | 天天爱爱网 | 亚洲码欧美码一区二区三区 | 亚洲九九色 | 在线欧美亚洲 | 中文字幕亚洲一区二区三区 | 亚洲乱码一区二区三区在线观看 | 成人二区| 亚洲成人一区 | 9999国产精品欧美久久久久久 | 一区二区三区国产 | 成人av一区 |