資源簡介
使用CC2530+HCSR04超聲波傳感器采集距離參數(shù)并通過串口發(fā)送到上位機

代碼片段和文件信息
#include??
#include?“Ultrasound.h“?
#include?
#include?
uchar?RG;?
uchar?H1;?
uchar?L1;?
uchar?H2;?
uchar?L2;?
uchar?H3;?
uchar?L3;?
uint??data;?
uchar?TXData;
float?distance;?
?
uchar?LoadRegBuf[4];//全局?jǐn)?shù)據(jù),用以存儲定時計數(shù)器的值。?
?
void?Delay_1us(uint?microSecs)?
{??while(microSecs--)?
??{????/*?32?NOPs?==?1?usecs?因為延時還有計算的緣故,用了31個nop*/?
????asm(“nop“);?asm(“nop“);?asm(“nop“);?asm(“nop“);?asm(“nop“);?
????asm(“nop“);?asm(“nop“);?asm(“nop“);?asm(“nop“);?asm(“nop“);?
????asm(“nop“);?asm(“nop“);?asm(“nop“);?asm(“nop“);?asm(“nop“);?
????asm(“nop“);?asm(“nop“);?asm(“nop“);?asm(“nop“);?asm(“nop“);?
????asm(“nop“);?asm(“nop“);?asm(“nop“);?asm(“nop“);?asm(“nop“);?
????asm(“nop“);?asm(“nop“);?asm(“nop“);?asm(“nop“);?asm(“nop“);?
????asm(“nop“);?
??}?
}?
void?Delay_10us(uint?n)?
{?/*?320NOPs?==?10usecs?因為延時還有計算的緣故,用了310個nop*/?
????uint?ttyy;?
????for(tt?=?0;tt ????for(yy?=?310;yy>0;yy--);?
????{asm(“NOP“);}?
}?
?
void?Delay_1s(uint?n)?
{???????uint?ulloop=1000;?
????????uint?tt;?
????for(tt?=n?;tt>0;tt--);?
????for(?ulloop=1000;ulloop>0;ulloop--)?
????{?
??????????Delay_10us(100);?
????????}?
?
}?
void?SysClkSet32M()?
?{?
????CLKCONCMD?&=?~0x40;?????????//設(shè)置系統(tǒng)時鐘源為32MHZ晶振?
????while(CLKCONSTA?&?0x40);?????//等待晶振穩(wěn)定?
????CLKCONCMD?&=?~0x47;????????//設(shè)置系統(tǒng)主時鐘頻率為32MHZ?
???????????????????????????????//此時的CLKCONSTA為0x88。即普通時鐘和定時器時鐘都是32M。??????
??}?
?
?void?Init_UltrasoundRanging()?
?{??
????P1DIR?=?0x08;?????//0為輸入1為輸出??00001000??設(shè)置TRIG?P1_3為輸出模式?
????TRIG=0;???????????//將TRIG?設(shè)置為低電平?
????
????P0INP?&=?~0x80;???//有上拉、下拉?有初始化的左右?
????P0IEN?|=?0x80;????//P0_7?中斷使能?
????PICTL?|=?0x01;????//設(shè)置P0_7引腳,下降沿觸發(fā)中斷???
????IEN1?|=?0x20;??????//?P0IE?=?1;?
????P0IFG?=?0;??
}?
?
?void?UltrasoundRanging(uchar?*ulLoadBufPtr)?
?{???
?????SysClkSet32M();?
?????Init_UltrasoundRanging();?
?????
????//?T1CC0H?=?0x00;?
?????//T1CC0L?=?0xfa;
?????EA?=?0;?
?????TRIG?=1;?
??????
?????Delay_1us(10);?????//需要延時10us以上的高電平?
?????TRIG?=0;?
?
?????T1CNTL=0;?
?????T1CNTH=0;?
?????while(!ECHO);??
?????T1CTL?=?0x09;??????//0000?1010
????????????????????????//0000?1001
????????????????????????//通道0中斷有效32分頻;自動重裝模式(0x0000->0xffff);?
?????L1=T1CNTL;??
?????H1=T1CNTH;???
?????*ulLoadBufPtr++=T1CNTL;?
?????*ulLoadBufPtr++=T1CNTH;?
??????EA?=?1;??
??????//Delay_10us(60000);?????
??????//Delay_10us(60000);??
??
?}?
/**********串口初始化函數(shù)****************************/
void?InitUart(void){
??PERCFG?=?0x00;
??P0SEL?=?0x0c;
??P2DIR?&=?~0xc0;
??U0CSR?|=?0x80;
??U0GCR?|=?11;
??U0BAUD?|=?216;
??UTX0IF?=?0;
}
/**********串口發(fā)送函數(shù)****************************/
void?UartSendString(char?*Data?int?len){
??uint?i;
??for(i=0;i ????U0DBUF?=?*Data++;
????while(UTX0IF?==?0);
????UTX0IF?=?0;
??}
}
#pragma?vector?=?P0INT_VECTOR?
?__interrupt?void?P0_ISR(void)?
?{?
?????????EA=0;??
?????????T1CTL?=?0x00;??
?????????LoadRegBuf[2]=T1CNTL;??
?????????LoadRegBuf
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-08-07?15:05??Timer\
?????目錄???????????0??2013-07-06?09:38??Timer\Debug\
?????目錄???????????0??2018-08-05?17:52??Timer\Debug\Exe\
?????文件??????108073??2018-08-07?15:05??Timer\Debug\Exe\Timer.d51
?????文件???????23219??2018-08-07?15:05??Timer\Debug\Exe\Timer.hex
?????目錄???????????0??2013-07-06?09:38??Timer\Debug\List\
?????目錄???????????0??2018-08-07?15:07??Timer\Debug\Obj\
?????文件???????31598??2018-08-07?15:05??Timer\Debug\Obj\main.r51
?????文件?????????146??2018-08-07?15:05??Timer\Debug\Obj\Timer.pbd
?????文件????????4079??2018-08-07?15:03??Timer\main.c
?????目錄???????????0??2013-07-06?09:38??Timer\settings\
?????文件????????1521??2018-08-07?15:05??Timer\settings\Timer.cspy.bat
?????文件????????5191??2018-08-07?15:07??Timer\settings\Timer.dbgdt
?????文件?????????809??2018-08-07?15:07??Timer\settings\Timer.dni
?????文件????????3299??2018-08-07?15:07??Timer\settings\Timer.wsdt
?????文件????????2469??2018-08-07?15:07??Timer\Timer.dep
?????文件???????34306??2013-07-05?22:17??Timer\Timer.ewd
?????文件???????56287??2018-08-04?15:07??Timer\Timer.ewp
?????文件?????????159??2013-07-05?22:17??Timer\Timer.eww
?????文件????????1006??2018-08-07?15:05??Timer\Ultrasound.h
評論
共有 條評論