1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉
標題:
1602顯示AJ-SR04測距單片機代碼
[打印本頁]
作者:
chenming212212
時間:
2019-4-29 11:04
標題:
1602顯示AJ-SR04測距單片機代碼
單片機源程序如下:
//#include<reg51.h>
#include "reg52.h"
#include "1602.h"
#include<intrins.h>
typedef unsigned char uint8;
typedef unsigned int uint16;
sbit Trig=P3^3;//觸發引腳定義
sbit Echo=P3^2;//測量引腳定義
uint16 distance;//定義全局變量
uint16 dat[10];
/******************************************
延時讓Trig引腳產生大于10us的脈沖
********************************************/
void show_1602(uint16 temp);
void delay()
{
uint8 i;
for(i=0;i<100;i++);
}
//初始化
void init()
{
EA=1;//開總中斷
IT0=0;//外部中斷0,低電平觸發
TMOD|=0x01;//定時器0 工作模式1
TH0=0;
TL0=0;
TR0=0;
}
//串口設置
void UART_init()
{
SCON=0x50;
TMOD=0x20;
TH1=0xFD;
TL1=0xFD;
TR1=1;
}
//發送一個字節
void UART_send_byte(uint8 dat)
{
SBUF=dat;
while(TI==0);
TI=0;
}
//發送一組測得的distance
void UART_send_dat(uint16 temp)
{
UART_send_byte((temp/10000)%10 + '0');
UART_send_byte((temp/1000)%10 + '0');
UART_send_byte((temp/100)%10 + '0');
UART_send_byte((temp/10)%10 + '0');
UART_send_byte('.');
UART_send_byte(temp%10 + '0');
UART_send_byte('c');
UART_send_byte('m');
}
//主函數
main()
{
UART_init();//初始化
init(); //初始化
lcd_init_1602(); //1206初始化
Trig=0;//先把引腳拉低
while(1)//進入循環
{
Trig=1;
delay();//產生脈沖
Trig=0;
while(Echo==0);//等待引腳被拉高
TR0=1;//打開定時器0
EX0=1;//打開中斷
while(TH0<250);//正在測量數據,需要等待
TR0=0;
TL0=0;
TH0=0;
UART_send_dat(distance); //向串口發送測得的distance
show_1602(distance);
UART_send_byte('\r');
UART_send_byte('\n');
}
}
void extra_interrupt() interrupt 0 //外部中斷0
{
distance=(256*TH0+TL0)*0.184;//測得最小精度位mm(晶振為11059200Hz)
//P0=Echo;
EX0=0;//關閉中斷
}
void show_1602(uint16 temp)
{
lcd_pos_1602(0,1);
dat[0]=(temp/10000)%10;
dat[1]=(temp/1000)%10;
dat[2]=(temp/100)%10;
dat[3]=(temp/10)%10;
lcd_wdat_1602(dat[0]+0x30);
lcd_wdat_1602(dat[1]+0x30);
lcd_pos_1602(0,3);
lcd_wdat_1602('.');
lcd_pos_1602(0,4);
lcd_wdat_1602(dat[2]+0x30);
lcd_wdat_1602(dat[3]+0x30);
// lcd_pos_1602(0,5);
// lcd_wdat_1602('.');
lcd_pos_1602(0,6);
dat[4]=temp%10;
lcd_wdat_1602(dat[4]+0x30);
lcd_pos_1602(0,7);
// lcd_wdat_1602('c');
lcd_wdat_1602('m');
}
復制代碼
所有資料51hei提供下載:
代碼.zip
(51.03 KB, 下載次數: 8)
2019-4-29 11:03 上傳
點擊文件名下載附件
參考代碼
下載積分: 黑幣 -5
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1