藍橋杯備忘錄——超聲波
有關藍橋杯的超聲波程式碼
實測測距能達到兩米多
以下是程式碼
void chao_init()
{
uchar i;
for(i=0;i<8;i++)
{
na1=1; //連續傳送8個頻率為40Khz的超聲波訊號
Delay12us();
na1=0;
Delay12us();
}
}
//////////////////////////////////////////////////
接下來是計算函式的定時器初始化
定時器初始化可以直接用軟體生成,但需要把TH0和TL0的值清零
void Timer0_Init(void) //10微秒@12.000MHz
{
AUXR |= 0x40; //定時器時鐘12T模式
TMOD &= 0xF0; //設定定時器模式
TL0 = 0x00; //設定定時初始值
TH0 = 0x00; //設定定時初始值
}
//////////////////////////////////////////////////
計算函式
uint get_chao()
{
uint time=0; //計算變數,透過return返回出去
TMOD &= 0xf0; //設定定時器模式
TL0 = 0x00; //設定定時初值
TH0 = 0x00; //設定定時初值
chao_init(); //傳送八個40k的方波
TR0=1; //迅速開啟定時器
while(nb1&&TF0==0); //當NB1等於0時或者TF標誌位中斷時推出while迴圈
TR0=0; //關閉定時器
if(TF0==0) //如果未溢位則判定值有效
{
time=TH0<<8|TL0; //將定時器值高八位和低八位賦值給time
return time*0.017; //測試發現無論定時器以1t還是12t的頻率下都是乘與0.017
}
else
{
TF0=0; //如果中斷標誌位超出,則清空中斷標誌位
time=0;
return time;
}
}
相關文章
- 藍橋杯-波動數列
- 如何準備藍橋杯
- 藍橋杯javaB組備賽Java
- 藍橋杯微控制器 超聲波模組和PCA模組PCA
- 藍橋杯
- 備戰藍橋杯,你可以這樣準備
- 藍橋杯 買瓜
- 藍橋杯-分巧克力
- 藍橋杯-N皇后
- 藍橋杯真題
- 藍橋杯 剪格子
- [藍橋杯][演算法提高VIP]超級瑪麗演算法
- 藍橋杯-長草(BFS)
- 藍橋杯-螞蟻感冒
- 藍橋杯-帶分數
- 藍橋杯-翻硬幣
- 藍橋杯-座次問題
- 藍橋杯-日期問題
- 藍橋杯 計算方程
- 藍橋杯-排列序數
- 藍橋杯年號字串字串
- 藍橋杯考點整理
- 藍橋杯 分巧克力(Java)Java
- 藍橋杯訓練2
- 藍橋杯 整數拼接
- 藍橋杯注意的地方
- 藍橋杯學習路線
- 藍橋杯——查詢的妙趣
- 藍橋杯——巧妙地遞迴遞迴
- 藍橋杯-走迷宮(BFS)
- 藍橋杯-地宮取寶
- 藍橋杯-k倍區間
- 太陽(藍橋杯14屆)
- 藍橋杯-日誌統計
- 藍橋杯-合併數列
- 藍橋杯-班級活動
- 藍橋杯模板(二)python組Python
- 藍橋杯模板(三)python組Python