欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
oled顯示的超聲波測距裝置 原理圖+單片機源代碼
[打印本頁]
作者:
xy123456789
時間:
2018-8-28 11:47
標題:
oled顯示的超聲波測距裝置 原理圖+單片機源代碼
這是超聲波測距裝置,附件里面包含接線圖 ,程序源代碼,用oled顯示
單片機源程序如下:
/****************************************Copyright (c)****************************************************
**
**
**
**--------------File Info---------------------------------------------------------------------------------
** File name:
** Last modified Date:
** Last Version:
** Descriptions:
**--------------------------------------------------------------------------------------------------------
** Created by: FiYu
** Created date: 2017-02-20
** Version: 1.0
** Descriptions: HC-SR04超聲波測距實驗
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
** Rechecked by:
**********************************************************************************************************/
/****-----請閱讀ReadMe.txt進行實驗-----***********/
#include "OLED.h"
/**********************
引腳別名定義
***********************/
sbit ECHO=P0^2;
sbit TRIG=P0^3;
#define Distance_MAX 700 //HC-SR04模塊可檢測的最大距離
unsigned int i;
unsigned int time=0; //測距用時間
unsigned long S=0; //測距用距離
bit flag =0; //測距用超出范圍標識符
/**************************************
功能描述:計算距離并在LCD1602屏上顯示
入口參數:無
返回值:無
***************************************/
void Conut(void)
{
time=TH0*256+TL0;
TH0=0;
TL0=0;
//顯示漢字
for(i=0; i<5; i++)
{
LCD_P16x16Ch((i+1)*16,0,i);
}
LCD_P8x16Str(0*16,4,"dance= CM");
S=(time*1.7)/100; //算出來是CM
if((S>=Distance_MAX)||flag==1) //超出測量范圍顯示“-”
{
flag=0;
LCD_P8x16Str(0*16,4,"dance=xxxCM");
}
else
{
OLED_ShowChar(6*8,4,S/100%10+'0');
OLED_ShowChar(7*8,4,S/10%10+'0');
OLED_ShowChar(8*8,4,S%10+'0');
}
}
/**************************************
功能描述:計數器0初始化函數
入口參數:無
返回值:無
***************************************/
void Timer0Init(void)
{
AUXR &= 0x7F; //計數器0為12T模式
TMOD &= 0xFD; //計數器0為16位不可重裝載模式,TL0,TH0全用
TMOD |= 0x01; //計數器0為16位不可重裝載模式,TL0,TH0全用
TH0=0;
TL0=0;
ET0=1; //允許T0中斷
}
/**************************************
功能描述:計數器0中斷服務函數
入口參數:無
返回值:無
***************************************/
void timer0_int (void) interrupt 1
{
flag=1; //中斷溢出標志
}
/**************************************
功能描述:啟動HC-SR04模塊
入口參數:unsigned char X, unsigned char Y, unsigned char DData
返回值:無
***************************************/
void StartModule() //啟動模塊
{
TRIG=1; //啟動一次模塊
delay_ms(5);
TRIG=0;
}
/***************************************************************************
* 描 述 : 主函數
* 入 參 : 無
* 返回值 : 無
**************************************************************************/
int main(void)
{
/////////////////////////////////////////////////
//注意: STC15W4K32S4系列的芯片,上電后所有與PWM相關的IO口均為
// 高阻態,需將這些口設置為準雙向口或強推挽模式方可正常使用
//相關IO: P0.6/P0.7/P1.6/P1.7/P2.1/P2.2
// P2.3/P2.7/P3.7/P4.2/P4.4/P4.5
/////////////////////////////////////////////////
P0M1 = 0; P0M0 = 0; //設置P0.0~P0.7為準雙向口
P1M1 = 0; P1M0 = 0; //設置P1.0~P1.7為準雙向口
P2M1 = 0; P2M0 = 0xff; //設置P2.0~P2.7為推挽輸出
P3M1 = 0; P3M0 = 0; //設置P3.0~P3.7為準雙向口
P4M1 = 0; P4M0 = 0; //設置P4.0~P4.7為準雙向口
P5M1 = 0; P5M0 = 0; //設置P5.0~P5.7為準雙向口
delay_ms(500); //上電延時
OLED_Init(); //對OLED屏初始化
OLED_Fill(0x00); //清屏
while(1)
{
Timer0Init();
EA=1; //開啟總中斷
while(1)
{ StartModule();
while(!ECHO); //當ECHO為零時等待
TR0=1; //開啟計數
while(ECHO); //當ECHO為1計數并等待
TR0=0; //關閉計數
Conut(); //計算
delay_ms(80); //80ms延時
}
}
}
復制代碼
所有資料51hei提供下載:
超聲波測距 - oled顯示.zip
(1.01 MB, 下載次數: 126)
2018-8-28 11:42 上傳
點擊文件名下載附件
15單片機
下載積分: 黑幣 -5
作者:
終極
時間:
2019-2-26 17:07
這是用51單片機控制的嗎
作者:
一些事一些情
時間:
2019-7-29 15:41
頭文件在資料里面嗎
作者:
libei
時間:
2019-11-28 09:36
里面是oled屏幕的嗎?
作者:
neveruseaaw
時間:
2019-12-10 23:16
不需要頭文件?
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1