资源简介
使用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
相关资源
- cc2530寄存器手册
- IEEE 802.15.4的CC2530无线数据收发设计
- IEEE 802.15.4的CC2530无线数据收发设计
- ZStack-CC2530-2.5.1a
- 基于ZigBee温室环境监测系统电路设计
- 智能分户供暖监控系统的无线温控器
- CC2530的分布式无线数据采集系统设计
- CC2530 BasicRFTI源文件
- cc2530-contiki读取DHT11并发送数据例程
- CC2530中文数据手册完全版.pdf
- CC2530 (zigbee) 中文数据手册完全版
- stm32f103超声波传感器hcsr04控制模板
- SampleApp_dht11.zip
- zigbee基于cc2530指导
- 基于cc2530的温湿度检测点对点无线传
- 基于CC2530的温湿度数据采集系统
- 基于cc2530的zigbee的无线led灯控制程序
- TI公司推出的CCS3.3开发环境中文入门指
- 基于Zigbee的室内自定位
- Zigbee CC2530 振动传感器开发源码 项目
- Zigbee CC2530 酒精传感器开发源码
- Zigbee CC2530 火焰传感器开发源码
- CC2530+DHT11温湿度传感器+HC-SR04超声波传
- cc2530中文数据手册完全版
- Zigbee CC2530模块电路图和原理图
- STM32和CC2530串口通信
- cc2530无线点灯实验
- CC2530无线点灯
- TIMAC-CC2530-1.4.0
- ZStack-CC2530-2.3.0-1.4.0 完整文档,多个
评论
共有 条评论