• 大小: 49KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: 其他
  • 标签: CC2530  HCSR04  

资源简介

使用CC2530+HCSR04超声波传感器采集距离参数并通过串口发送到上位机

资源截图

代码片段和文件信息

#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];//全局数据,用以存储定时计数器的值。 
 
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;         //设置系统时钟源为32MHZ晶振 
    while(CLKCONSTA & 0x40);     //等待晶振稳定 
    CLKCONCMD &= ~0x47;        //设置系统主时钟频率为32MHZ 
                               //此时的CLKCONSTA为0x88。即普通时钟和定时器时钟都是32M。      
  } 
 
 void Init_UltrasoundRanging() 
 {  
    P1DIR = 0x08;     //0为输入1为输出  00001000  设置TRIG P1_3为输出模式 
    TRIG=0;           //将TRIG 设置为低电平 
    
    P0INP &= ~0x80;   //有上拉、下拉 有初始化的左右 
    P0IEN |= 0x80;    //P0_7 中断使能 
    PICTL |= 0x01;    //设置P0_7引脚,下降沿触发中断   
    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);  
  
 } 


/**********串口初始化函数****************************/
void InitUart(void){
  PERCFG = 0x00;
  P0SEL = 0x0c;
  P2DIR &= ~0xc0;
  U0CSR |= 0x80;
  U0GCR |= 11;
  U0BAUD |= 216;
  UTX0IF = 0;
}

/**********串口发送函数****************************/
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

评论

共有 条评论