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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1520|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

Proteus仿真單片機(jī)超聲波檢測(cè) 要加一個(gè)報(bào)警電路,小于40cm報(bào)警,程序不知道怎么寫(xiě)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:985137 發(fā)表于 2022-3-27 17:26 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include<reg51.h>
#include<intrins.h>
#define uint  unsigned int
#define uchar unsigned char
#define NOP() {_nop_();_nop_();_nop_();_nop_();}

//------LCD引腳------
sbit lcd_rs=P2^0;
sbit lcd_en=P2^2;

//------超聲波引腳-------
sbit TR=P3^2;                //回響信號(hào)輸出
sbit ECHO=P3^3;              //觸發(fā)控制信號(hào)輸入
uchar code table[]={" Distance Test:"};                //LCD第一行顯示
uchar temp_dis[]= {"    000.0 cm"};                    //LCD第二行
long int t,distance;
uchar cache[4]={0,0,0,0};

//--------延時(shí)-------
void delay(uint ms)
{
        uint t;
        while(ms--)
        for(t=0;t<30;t++);
}

void write_com(uchar com);//init_lcd()函數(shù)需要用到,所以先提前聲明

//************LCD1602初始化函數(shù)************************
void init_lcd()
{
        write_com(0x38);           //設(shè)置16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)接口
        write_com(0x08);           //寫(xiě)一個(gè)字符后地址指針加1
        write_com(0x01);           //顯示清零,數(shù)據(jù)指針清零
        write_com(0x06);           //寫(xiě)一個(gè)字符后地址指針加1
        write_com(0x0c);           //關(guān)顯示,光標(biāo)不顯示不閃爍
}

//************LCD1602寫(xiě)指令函數(shù)************************
void write_com(uchar com)   //lcd1602寫(xiě)指令:rs低電平,rw低電平,en從高電平變?yōu)榈碗娖?br /> {
        delay(5);
        lcd_rs = 0;                           // 選擇寫(xiě)指令
        lcd_en = 0;                           // 將使能端置0
        P0 = com;                           // 將要寫(xiě)的命令送到數(shù)據(jù)總線上
        delay(5);                           // 延時(shí)5ms,待數(shù)據(jù)穩(wěn)定
        lcd_en = 1;                           // 由于初始化已將lcd_en置為0,使能端給一個(gè)高脈沖,
        delay(5);                           // 延時(shí)5ms,待數(shù)據(jù)穩(wěn)定
        lcd_en = 0;                           // 將使能端置0以完成脈沖
}

//************LCD1602寫(xiě)數(shù)據(jù)函數(shù)************************
void write_data(uchar date)//lcd1602寫(xiě)數(shù)據(jù):rs高電平,rw低電平,en從高電平變低電平
{
        delay(5);
        lcd_rs = 1;                           // 選擇寫(xiě)數(shù)據(jù)
        lcd_en = 0;                           // 將使能端置0
        P0 = date;                           // 將要寫(xiě)的數(shù)據(jù)送到數(shù)據(jù)總線上
        delay(5);                           // 延時(shí)5ms,待數(shù)據(jù)穩(wěn)定
        lcd_en = 1;                           // 由于初始化已將lcd_en置為0,使能端給一個(gè)高脈沖,
        delay(5);                           // 延時(shí)5ms,待數(shù)據(jù)穩(wěn)定
        lcd_en = 0;                           // 將使能端置0以完成脈沖
}

//************LCD1602顯示函數(shù)******************
void lcd1602_display(uchar *q,uchar *p)//*通過(guò)指針p和q分別指向兩個(gè)數(shù)組的第一個(gè)數(shù),然后進(jìn)行數(shù)組掃描顯示,一次性顯示兩行字符
{
        write_com(0x80);             // 現(xiàn)將數(shù)據(jù)指針定位到第一行第一個(gè)字處
        while(*q!='\0')
        {
                write_data(*q);
                q++;
                delay(1);      
        }
        write_com(0xc0);           // 現(xiàn)將數(shù)據(jù)指針定位到第二行第一個(gè)字處
        while(*p!='\0')
        {
                write_data(*p);
                p++;
                delay(1);      
        }
}

//************LCD1602顯示歡迎函數(shù)******************
void HC05_Init()                          //超聲波模塊初始化函數(shù)
{
        ECHO=1;                                 //觸發(fā)脈沖
        NOP();NOP();NOP();NOP();
        ECHO=0;
        distance=0.1725*t;                       //距離計(jì)算
}

void distance_convert(long int dat)             //距離計(jì)算函數(shù)
{
        cache[0]=dat/1000;
        cache[1]=dat/100%10;
        cache[2]=dat/10%10;
        cache[3]=dat%10;
        temp_dis[4]=cache[0]+'0';
        temp_dis[5]=cache[1]+'0';
        temp_dis[6]=cache[2]+'0';
        temp_dis[8]=cache[3]+'0';
}                                 

//------------主程序-----------
void main()
{              
        init_lcd();
        delay(5);
        TMOD=0x09;        //定時(shí)器T0工作方式1  GATE0=1
        EA=1;                        //開(kāi)總中斷
        TR0=1;                        //啟動(dòng)定時(shí)器
        EX0=1;                        //開(kāi)外部中斷
        IT0=1;                        //設(shè)置為下降沿中斷方式
        while(1)
        {                              
                HC05_Init();
                distance_convert(distance);
                lcd1602_display(table,temp_dis);               
        }
}

//外部中斷0
void int0() interrupt 0
{
        t=(TH0*256+TL0);  //計(jì)算高電平持續(xù)的時(shí)間,上升沿到來(lái)時(shí)候開(kāi)始計(jì)時(shí),下降沿到來(lái)進(jìn)入外部中斷,關(guān)閉計(jì)時(shí)器,停止計(jì)時(shí)
        TH0=0;
        TL0=0;
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:688692 發(fā)表于 2022-3-28 08:54 | 只看該作者
        while(1)
        {                              
                HC05_Init();
                distance_convert(distance);
                lcd1602_display(table,temp_dis);
                if(distance<40){蜂鳴器管腳=0;}else{蜂鳴器管腳=1;}
        }
回復(fù)

使用道具 舉報(bào)

板凳
ID:123289 發(fā)表于 2022-3-28 11:01 | 只看該作者
要先畫(huà)邏輯圖,邏輯圖走通了,再寫(xiě)程序。
回復(fù)

使用道具 舉報(bào)

地板
ID:121859 發(fā)表于 2022-3-28 13:46 | 只看該作者
先發(fā)送啟動(dòng)信號(hào),等待回饋信號(hào)變高,立即啟動(dòng)定時(shí)器0開(kāi)始計(jì)時(shí)。等待回饋信號(hào)變低,立即暫停定時(shí)器0停止計(jì)時(shí),讀取定時(shí)器0的計(jì)時(shí)時(shí)間,按聲速*時(shí)間計(jì)算出距離。
回復(fù)

使用道具 舉報(bào)

5#
ID:985137 發(fā)表于 2022-3-28 16:56 | 只看該作者
cnos 發(fā)表于 2022-3-28 08:54
while(1)
        {                              
                HC05_Init();

寫(xiě)過(guò)這個(gè)程序,沒(méi)用
回復(fù)

使用道具 舉報(bào)

6#
ID:123289 發(fā)表于 2022-3-29 08:22 | 只看該作者
聽(tīng)我的話,沒(méi)錯(cuò),就怕你做不了。
回復(fù)

使用道具 舉報(bào)

7#
ID:1014303 發(fā)表于 2022-3-31 02:43 來(lái)自手機(jī) | 只看該作者
你可以找一找別人的改一下就好了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品日女人 | 中文字幕日韩欧美 | 波多野结衣二区 | 欧美激情久久久久久 | 玖玖国产 | 国产精品久久久久久高潮 | 日韩三级在线观看 | 国产日韩一区二区三区 | 爱爱视频日本 | 色综合久久伊人 | 欧美在线观看黄色 | 欧美中文字幕一区 | 狠狠天天| 黄色网毛片 | 亚洲一区二区欧美 | 久久综合一区 | 视频在线一区二区 | 在线播放中文字幕 | 亚洲精品久久久久中文字幕二区 | 一区二区三区视频在线观看 | 成人久久 | 欧美激情在线精品一区二区三区 | 91欧美激情一区二区三区成人 | 国产精品高清在线 | 午夜男人视频 | 夜夜操操操 | 亚洲精品99久久久久久 | 中文字幕乱码一区二区三区 | 久久久久久国产 | 男女性毛片| 亚洲一区二区三区视频 | 欧美在线| 日韩在线看片 | 国产精品mv在线观看 | 欧美激情精品久久久久久变态 | 美女人人操 | 国产91久久精品一区二区 | 黄视频免费| 日韩一级精品视频在线观看 | 97国产精品视频 | 超碰在线人人 |