久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3497|回復: 8
打印 上一主題 下一主題
收起左側

再幫我看看這個超聲波測距程序,太感謝了!

[復制鏈接]
跳轉到指定樓層
樓主
ID:50469 發表于 2013-7-23 19:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg52.h>
#include<intrins.h>
#define uint  unsigned int
#define uchar unsigned char   
#define NOP() {_nop_();_nop_();_nop_();_nop_();}
//------LCD引腳-----
sbit LCD_RS=P4^5;
sbit LCD_RW=P5^5;
sbit LCD_EN=P5^4;
//------超聲波引腳---
sbit Tx=P1^0; //觸發控制信號輸入
sbit Rx=P3^2;  //回響信號輸出
uchar code table[]="Distance:"; //LCD第一行顯示
uchar temp_dis[]="000.0cm"; //LCD第二行
uint t,distance;
uchar cache[4]={0,0,0,0};
//--------延時-------
void delay(uint ms)
{
uint t;
while(ms--)
  for(t=0;t<120;t++);  
}   
//----------LCD寫指令----------
void lcd_write_com(uchar com)
{   
LCD_RS=0;
LCD_RW=0;
P0=com;
LCD_EN=1;         
   delay(5);
LCD_EN=0;
}
//----------LCD寫數據----------
void lcd_write_data(uchar dat)
{  
LCD_RS=1;
LCD_RW=0;
P0=dat;  
LCD_EN=1;
delay(5);
LCD_EN=0;  
}  
//-------LCD初始化-------
void lcd_init()
{
LCD_EN=0;
lcd_write_com(0x38); //LCD顯示模式設置
lcd_write_com(0x0c); //LCD顯示開/關及光標設置
lcd_write_com(0x06); //當寫一個字符后地址指針加1,且光標加1
lcd_write_com(0x01);  //顯示清屏
}   
//---------液晶顯示程序----------
void lcd_print( )
{

uint num=0;
lcd_write_com(0x80);
while(table[num]!='\0')  
{
  lcd_write_data(table[num]);
  num++;
  delay(5);
}  
num=0;
lcd_write_com(0xc0);
while(temp_dis[num]!='\0')  
{
  lcd_write_data(temp_dis[num]);
  num++;
  delay(5);
}
}  
void hcsr04_Init()
{
delay(60);
Tx=1;//觸發脈沖
NOP();NOP();NOP();
Tx=0;  
distance=1.7*t/100;   //距離計算cm
}  
void distance_convert( uint dat)
{
cache[0]=dat/100;
cache[1]=dat%100/10;
cache[2]=dat%10;
cache[3]=dat*10%10;
temp_dis[0]=cache[0]+'0';
temp_dis[1]=cache[1]+'0';
temp_dis[2]=cache[2]+'0';
temp_dis[4]=cache[3]+'0';  
}  
//------------主程序-----------
void main()
{
lcd_init();
delay(5);
TMOD=0x09;
EA=1;   //開總中斷
TR0=1;  //啟動定時器
EX0=1;  //開外部中斷
// ET0=1; //開定時器中斷
IT0=1;  //設置為下降沿中斷方式
while(1)
{
  hcsr04_Init();
  lcd_print();
  distance_convert(distance);
}  
}
//外部中斷0
void int0() interrupt 0
{
t=TH0*256+TL0; //計算高電平持續的時間,上升沿到來時候開始計時,
TH0=0;    //下降沿到來進入外部中斷,關閉計時器,停止計時
TL0=0;  
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2013-7-25 00:18 | 只看該作者
這個程序什么問題?
回復

使用道具 舉報

板凳
ID:52115 發表于 2013-7-27 19:17 | 只看該作者
我記得我用的超聲波模塊觸發信號要10us的高電平(30us最佳)
回復

使用道具 舉報

地板
ID:52115 發表于 2013-7-27 19:19 | 只看該作者
你的觸發信號好像不行
回復

使用道具 舉報

5#
ID:52343 發表于 2013-7-27 22:49 | 只看該作者
回復

使用道具 舉報

6#
ID:50469 發表于 2013-8-6 11:17 | 只看該作者
admin 發表于 2013-7-25 00:18
這個程序什么問題?

奇怪了,好像確實沒什么問題了,但前兩天寫出來不能用啊,還是謝了,呵呵
回復

使用道具 舉報

7#
ID:50469 發表于 2013-8-6 11:18 | 只看該作者
不過不是很準確,總是差那么2.3厘米
回復

使用道具 舉報

8#
ID:159841 發表于 2017-1-4 23:22 | 只看該作者
這個程序是錯的吧  你試國沒有
回復

使用道具 舉報

9#
ID:160258 發表于 2017-1-5 22:32 | 只看該作者
程序看不懂
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费国产视频 | 成人精品视频在线 | 操一草 | 亚洲欧美在线观看 | 亚洲视频自拍 | 精品在线观看入口 | 99热热 | 国内自拍视频在线观看 | 91久久久久久久久久久久久 | 激情五月综合 | 国产精品久久国产愉拍 | 黄色毛片视频 | 国产一区二区免费 | 国产一级一级毛片 | 一本大道久久a久久精二百 国产成人免费在线 | 亚洲一区二区三区在线视频 | 亚洲伊人精品酒店 | 成人在线免费观看av | 丁香六月伊人 | 久久影音先锋 | 美女131mm久久爽爽免费 | 日本人做爰大片免费观看一老师 | 欧美一二三区 | 欧美a级成人淫片免费看 | 久久狼人天堂 | 国产91av视频 | www97影院 | www.yw193.com| 中文字幕精品一区 | 国产亚洲精品美女久久久久久久久久 | 青青久久av北条麻妃海外网 | 午夜成人免费视频 | 国产成人精品999在线观看 | 亚洲精品国产a久久久久久 午夜影院网站 | 91久久综合 | www.欧美 | 欧美一区二区视频 | 成人免费大片黄在线播放 | 国产真实乱对白精彩久久小说 | 久久久久9999 | 小草久久久久久久久爱六 |