久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
CC2530超聲波串口打印 源程序
[打印本頁]
作者:
IOT_SZH
時間:
2020-7-26 19:55
標題:
CC2530超聲波串口打印 源程序
通過CC2530驅動超聲波模塊,測量距離,并在串口中打印出來。
單片機源程序如下:
#include <ioCC2530.h>
#include "Ultrasound.h"
#include <stdio.h>
#include <string.h>
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 tt,yy;
for(tt = 0;tt<n;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<len;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[3]=T1CNTH;
L2=T1CNTL;
H2=T1CNTH;
if(P0IFG&0x080) //外部ECHO反饋信號
{
P0IFG = 0;
}
T1CTL = 0x09;
T1CNTL=0;
T1CNTH=0;
P0IF = 0; //清中斷標志
EA=1;
}
void InitLed(void){
P1DIR |= 0x01;
LED1 = 0;
}
void main(void)
{
InitUart();
InitLed();
char strTemp[6];
while(1)
{
UltrasoundRanging(LoadRegBuf);
Delay_1s(1);
data=256*H2+L2-L1-256*H1;
distance=(float)data*340/10000;
memset(strTemp, 0, 6);
sprintf(strTemp,"%.02f", distance);//將浮點數轉成字符串
UartSendString(strTemp, 5);
UartSendString("CM",2);
UartSendString("\r\n",2);
if((int)distance<=20){
LED1 = 1;
}else{
LED1 = 0;
}
distance=0;
Delay_1s(2);
};
}
復制代碼
所有資料51hei提供下載:
超聲波+串口.zip
(48.48 KB, 下載次數: 14)
2020-7-26 19:54 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
日韩视频在线免费观看
|
2025国产精品
|
四虎影视最新地址
|
18成人免费观看网站
|
伊人久久影院
|
人人爽人人爽人人爽
|
亚洲 欧美 综合
|
亚洲精品久久久
|
久久视频一区
|
99精品久久
|
亚洲免费一区二区
|
免费毛片视频
|
国产一区二区网站
|
日本少妇一区二区
|
精品国产乱码久久久久
|
99xav
|
日本不卡在线视频
|
黄色在线免费看
|
久热国产视频
|
日韩视频免费大全中文字幕
|
亚洲黄色在线视频
|
日韩精品网站
|
亚洲一区二区三区
|
久久精品视频一区
|
欧美aaaaa
|
成人精品
|
欧美一区二区三区在线视频
|
97精品国产97久久久久久免费
|
欧美激情视频一区二区三区
|
日本一区二区三区在线视频
|
成人动漫免费观看
|
av网址在线
|
三级在线看
|
午夜a级片
|
男人天堂久久
|
亚洲激情文学
|
欧美综合在线观看
|
天天拍天天射
|
18视频在线观看男男
|
亚洲成人免费网站
|
欧美日韩国产激情
|