欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
STC15單片機超聲波測距+LCD1602顯示+串口調試+程序詳細解釋
[打印本頁]
作者:
遠小劉
時間:
2018-10-30 10:10
標題:
STC15單片機超聲波測距+LCD1602顯示+串口調試+程序詳細解釋
基于單片機STC15單片機的超聲波測距,采用超聲波模塊,
運用定時器計算波時,
采用串口加以調試,
運用LCD1602顯示
精確0.01m
測量距離在此范圍內:4m--0.01m
大于4m后,將產生誤差。
詳細請下載附件
單片機源程序如下:
#include "super.h"
#include<intrins.h>
#include "stdio.h"
float High_Time=0; //高電平時間
float Ultrasonic_Distance=0;//超聲波測試的距離
void Delay15us() //@24.000MHz
{
unsigned char i;
_nop_();
_nop_();
i = 87;
while (--i);
}
void Timer0Init(void) //20微秒@24.000MHz
{
AUXR &= 0x7F; //定時器時鐘12T模式
TMOD &= 0xF0; //設置定時器模式
TL0 = 0x00; //設置定時初值
TH0 = 0x00; //設置定時初值
TF0 = 0; //清除TF0標志
TR0 = 0; //定時器0開始計時
ET0 = 0;
EA = 1; //使能
}
//void Timer1Init(void) //20毫秒@24.000MHz
//{
// AUXR &= 0xBF; //定時器時鐘12T模式
// TMOD &= 0x0F; //設置定時器模式
// TL1 = 0xC0; //設置定時初值
// TH1 = 0x63; //設置定時初值
// TF1 = 0; //清除TF1標志
// TR1 = 1; //定時器1開始計時
//
// ET1 = 1;
// EA = 1;
//}
//void UartInit(void) //9600bps@24.000MHz
//{
// SCON = 0x50; //8位數據,可變波特率
// AUXR |= 0x01; //串口1選擇定時器2為波特率發生器
// AUXR &= 0xFB; //定時器2時鐘為Fosc/12,即12T
// T2L = 0xCC; //設定定時初值
// T2H = 0xFF; //設定定時初值
// TI=1; //發送
// RI=0; //接收
// ES=0;
// AUXR |= 0x10; //啟動定時器2
//}
void Ultrasonic_Dispose()//超聲波處理
{
Trig=1;
Delay15us();
Trig=0;
while(!Echo);
TL0=0;
TH0=0;
TR0=1;
while(Echo);
TR0=0;
High_Time=(TH0*256+TL0)/2; //高電平時間High_time毫秒
Ultrasonic_Distance=High_Time*0.017;//00.0
}
void Ultrasonic_Display()//超聲波顯示處理
{
Ultrasonic_Dispose();//超聲波處理
Ultrasonic_Distance*=10;
string2[4] = (unsigned long)Ultrasonic_Distance/1000+'0';
string2[5] = (unsigned long)Ultrasonic_Distance/100%10+'0';
string2[6] = (unsigned long)Ultrasonic_Distance/10%10+'0';
string2[8] = (unsigned long)Ultrasonic_Distance%10+'0';
LCD_Write_Char(4,1,string2[4]);
LCD_Write_Char(5,1,string2[5]);
LCD_Write_Char(6,1,string2[6]);
LCD_Write_Char(8,1,string2[8]);
printf("%f\n",Ultrasonic_Distance/10);
}
//void Timer1_Rountine(void) interrupt 3
//{
// static unsigned int t;
// t++;
// if(t==25)
// {
// t=0;
// Ultrasonic_Dispose();
// }
//
//}
復制代碼
#include "main.h"
void main(void)
{
GPIO_Init();//IO初始化
Timer0Init();
// Timer1Init();
// UartInit();
LCD_Init();//1602初始化
while(1)
{
Ultrasonic_Display();//超聲波顯示處理
delayMS(500);
}
}
復制代碼
全部資料51hei下載地址(提醒:代碼有錯誤,大家不要下載):
超聲波測距 串口顯示 詳細解析.rar
(58.86 KB, 下載次數: 171)
2018-10-30 09:02 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
什么都不會小白
時間:
2019-6-4 14:40
代碼有錯誤?
作者:
lipengkun
時間:
2019-8-7 20:22
程序有錯誤,審核不合格
作者:
lipengkun
時間:
2019-8-7 20:23
什么都不會小白 發表于 2019-6-4 14:40
代碼有錯誤?
有錯誤、
作者:
吳亦幾
時間:
2020-3-28 19:36
代碼好像有問題
作者:
lhqsbz
時間:
2022-10-24 19:09
不錯不錯,下載下來學習一下。
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1