久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
STC12C5a32s2單片機超聲波模塊HY-SRF05程序,數碼管 注釋詳細顯示
[打印本頁]
作者:
mhzqmhz
時間:
2020-3-11 13:56
標題:
STC12C5a32s2單片機超聲波模塊HY-SRF05程序,數碼管 注釋詳細顯示
/**************************************************************
功能:超聲波模塊HY-SRF05,數碼管顯示
說明:
硬件:stc12c5a32s2,晶振12MHz
4組共陽數碼管
HY-SRF05超聲波模塊
**************************************************************/
#include<stc12c5a60s2.h>
#define uchar unsigned char
#define uint unsigned int
#define Num P2 //P2口接數碼管其余腳
#define Seg_Place P3 //P3口高位來控制哪個管顯示數字
sbit Trig = P0^0; //超聲波模塊觸發
sbit Echo = P0^1; //超聲波模塊回響
//點亮第幾位數碼管
uint code Seg[]={0x10,0x20,0x40,0x80};
//數碼管0~9數字
uint code Table[]={
0x03,0x9f,0x25,0x0d,0x99,
0x49,0x41,0x1f,0x01,0x09};
void Timer0Init(void)
{
TMOD = 0x01; //設置定時器模式
TH0 = 0;
TL0 = 0;
}
/***********************************************
函數作用: 延時
說明: 時間不精確,i=1為1毫秒
*************************************************/
void Delay_Ms(uint i)
{
uint j;
for(i;i>0;i--)
{
for(j=0;j<1002;j++);
}
}
/***********************************************
函數作用: 數碼管顯示的數字
說明:
*************************************************/
void Display_Seg_Num(uchar i)
{
Num = Table[i];
}
/***********************************************
函數作用: 顯示第幾位數碼管
說明:
*************************************************/
void Display_Seg(uchar i)
{
Seg_Place = Seg[i];
}
/***********************************************
函數作用: 超聲波觸發
說明: 拉高電平至少10us
*************************************************/
void Trig_Init()
{
Trig = 0;
Trig = 1;
Delay_Ms(1);
Trig = 0;
}
/***********************************************
函數作用: 接收超聲波并計算距離
說明: 一個機器周期為1us,12個時鐘周期為1個機器周期
注意: 如果這樣寫:time = time * 12 /12 ; time * 12可能會溢出,導致結果出錯
*************************************************/
uint Distance()
{
uint time,distance;
Trig_Init(); //初始化超聲波觸發
while(Echo == 0); //當回響為高電平,打開定時器0
TR0 = 1;
while(Echo == 1); //當回響為低電平,計算時間
TR0 = 0;
time = TH0*256 + TL0;
time = time /12 * 12; //time是us級別(實際時間 = 時間 / 晶振頻率 ×12個時鐘周期)
TH0 = 0;
TL0 = 0;
distance = 0.017 * time; //距離=速度×時間;(厘米 = 0.017厘米/微秒 × 微秒)
return distance; //返回值 距離
}
/***********************************************
函數作用: 數碼管顯示的數字
說明:
*************************************************/
void main()
{
uint distance;
uchar i;
P3M0 = 0Xf0;
P3M1 = 0X00; //P3口推挽輸出,增加電流大小
Timer0Init(); //初始化定時器0
while(1)
{
distance = Distance(); //將讀出的距離賦值給distance
for(i=0;i<50;i++) //顯示距離一段時間
{
Display_Seg(0); //點亮第一個數碼管
Display_Seg_Num(distance/100); //顯示厘米的百位
Delay_Ms(5); //短延時
Display_Seg(1); //點亮第二個數碼管
Display_Seg_Num(distance/10%10); //顯示厘米的十位
Delay_Ms(3); //短延時
Display_Seg(2); //點亮第三個數碼管
Display_Seg_Num(distance%10); //顯示厘米的個位
Delay_Ms(3); //短延時
}
}
}
復制代碼
作者:
QEQWE123
時間:
2020-10-27 15:42
沒評論嗎
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产精品欧美一区二区
|
国产精品欧美一区二区三区不卡
|
婷婷在线免费
|
精品一区视频
|
国产一区二区三区精品久久久
|
在线国产一区
|
久久91精品久久久久久9鸭
|
亚洲视频在线免费观看
|
波多野结衣中文字幕一区二区三区
|
欧美日一区二区
|
91精品国产综合久久久密闭
|
亚洲国产精品久久久
|
成人在线小视频
|
欧美日韩高清
|
久久久国产一区二区三区四区小说
|
欧美精品在线播放
|
国内精品久久影院
|
欧美黄色一区
|
日韩在线免费
|
成人乱人乱一区二区三区软件
|
成人久久18免费网站图片
|
日韩视频在线播放
|
99精品久久久久久久
|
91热爆在线观看
|
99久久精品免费看国产免费软件
|
国产日韩欧美精品
|
午夜精品久久久久久久久久久久久
|
精品少妇一区二区三区日产乱码
|
国产精品一区在线
|
中文在线一区二区
|
免费h在线
|
亚洲欧美国产一区二区三区
|
亚洲第一区久久
|
毛片一区二区三区
|
欧美成人自拍
|
日韩av一区在线观看
|
国产精品成人在线播放
|
中文字幕久久精品
|
日韩中文字幕一区二区
|
日本a网站
|
久久久高清
|