亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
基于單片機最小系統板的超聲波測距程序與PCB原理圖
[打印本頁]
作者:
1076658053
時間:
2020-10-3 22:26
標題:
基于單片機最小系統板的超聲波測距程序與PCB原理圖
之前寫的超聲波波測距,超聲波模塊是HC-SR04,LCD1602顯示。
超聲波模塊
HC-SR04
簡介以及編程
附帶PCB板,
程序有一點點小bug,測距時數據變化太快,不能穩定,如果有高手的話希望能給改改!!
Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
51hei.png
(14.22 KB, 下載次數: 39)
下載附件
2020-10-3 23:14 上傳
51hei.png
(30.92 KB, 下載次數: 38)
下載附件
2020-10-3 23:14 上傳
單片機源程序如下:
main.c
#include "reg52.h"
#include "lcd1602.h"
#include "lcd1602.c"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
sbit trig=P2^0;
sbit echo=P2^1;
uint number,dist,numbtime,ii;
uchar shia,fen,miao;
uchar code lcd[]="0123456789";
uchar code cm[]="cm";
void init() //定時器0初始化
{
TMOD=0x01; //定時器0,工作方式1
TH0=0;
TL0=0;
TF1=0;
EA=1;
ET0=1;
}
void time()
{
trig=1;
delay(1);
trig=0;
while(!echo); //接收到返回波
TR0=1; //開定時器0
while(echo);
TR0=0; //關定時器0
number=TH0*256+TL0;
for(ii=number;ii<=40000;ii++);
TH0=0;
TL0=0;
number=number*12/11.0592; //us
dist=number*0.17; // mm 0.017(cm)
}
void main()
{
uchar i;
lcd_init();
init();
while(1)
{
time();
lcd_com(0x80);
lcd_dat(lcd[dist/1000]);
lcd_dat(lcd[dist%1000/100]);
lcd_dat(lcd[dist%100/10]);
lcd_dat('.');
lcd_dat(lcd[dist%10]);
for(i=0;i<2;i++)
{
lcd_dat(cm[i]);
}
}
}
復制代碼
lcd1602.c
#include "reg52.h"
#define uchar unsigned char
sbit lcden=P2^7; //定義lcd1602使能端口
sbit lcdrs=P2^6; //定義lcd1602數據/命令選擇端口(H/L)
sbit lcdrw=P2^5; //定義lcd1602讀/寫端口(H/L)
//sbit lcden=P1^7; //定義lcd1602使能端口
//sbit lcdrs=P1^5; //定義lcd1602數據/命令選擇端口(H/L)
//sbit lcdrw=P1^6; //定義lcd1602讀/寫端口(H/L)
void delay(uchar z)
{
uchar x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void lcd_com(uchar com) //lcd1602命令發送函數(位)
{
lcdrs=0;
lcdrw=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void lcd_dat(uchar dat) //lcd1602數據發送函數
{
lcdrs=1;
lcdrw=0;
P0=dat;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void lcd_init() //lcd1602初始化
{
lcden=0;
lcd_com(0x38);
lcd_com(0x0c);
lcd_com(0x06);
lcd_com(0x01);
}
復制代碼
lcd1602.h
#ifndef __LCD1602_H_
#define __LCD1602_H_
#define uchar unsigned char
void delay(uchar z);
void lcd_init(); //lcd1602初始化
void lcd_com(uchar com); //lcd1602命令發送函數(位)
void lcd_dat(uchar dat); //lcd1602數據發送函數
#endif
復制代碼
全部資料51hei下載地址:
超聲波電路板.7z
(573.81 KB, 下載次數: 33)
2020-10-3 23:15 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
超聲波測距.zip
(29.07 KB, 下載次數: 22)
2020-10-3 22:20 上傳
點擊文件名下載附件
程序工程文件
下載積分: 黑幣 -5
作者:
CcC超
時間:
2020-11-30 19:49
正好要做這個,謝謝大神
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1