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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

源程序代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:938324 發(fā)表于 2021-6-15 23:06 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  • #include<reg52.h>
  • #include<intrins.h>
  • #define uint  unsigned int
  • #define uchar unsigned char
  • #define NOP() {_nop_();_nop_();_nop_();_nop_();}
  • //------LCD引腳-----
  • sbit lcd_rs=P0^6;
  • sbit lcd_en=P0^7;
  • //------超聲波引腳-------
  • sbit Tx=P3^3;                //觸發(fā)控制信號輸入
  • sbit Rx=P3^2;                //回響信號輸出
  • uchar xuehao[]={"   17110201138  "};
  • uchar xingming[]={"NAME:zhaolongda"};
  • 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);           //寫一個(gè)字符后地址指針加1
  •         write_com(0x01);           //顯示清零,數(shù)據(jù)指針清零
  •         write_com(0x06);           //寫一個(gè)字符后地址指針加1
  •         write_com(0x0c);           //關(guān)顯示,光標(biāo)不顯示不閃爍
  • }
  • //************LCD1602寫指令函數(shù)************************
  • void write_com(uchar com)   //lcd1602寫指令:rs低電平,rw低電平,en從高電平變?yōu)榈碗娖?li>{
  •         delay(5);
  •         lcd_rs = 0;                           // 選擇寫指令
  •         lcd_en = 0;                           // 將使能端置0
  •         P2 = com;                           // 將要寫的命令送到數(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ù)據(jù)函數(shù)************************
  • void write_data(uchar date)//lcd1602寫數(shù)據(jù):rs高電平,rw低電平,en從高電平變低電平
  • {
  •         delay(5);
  •         lcd_rs = 1;                           // 選擇寫數(shù)據(jù)
  •         lcd_en = 0;                           // 將使能端置0
  •         P2 = date;                           // 將要寫的數(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)//*通過指針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 welcome()        //掃描顯示學(xué)號加姓名,幾秒延時(shí)后結(jié)束
  • {
  •         init_lcd();
  •         lcd1602_display(xuehao,xingming);
  •         delay(200);
  • }
  • void HC05_Init()                          //超聲波模塊初始化函數(shù)
  • {
  •         Tx=1;                                                //觸發(fā)脈沖
  •         NOP();NOP();NOP();NOP();
  •         Tx=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()
  • {
  •         welcome();
  •         init_lcd();
  •         delay(5);
  •         TMOD=0x09;        //定時(shí)器T0工作方式1  GATE0=1
  •         EA=1;                        //開總中斷
  •         TR0=1;                        //啟動(dòng)定時(shí)器
  •         EX0=1;                        //開外部中斷
  •         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í)間,上升沿到來時(shí)候開始計(jì)時(shí),下降沿到來進(jìn)入外部中斷,關(guān)閉計(jì)時(shí)器,停止計(jì)時(shí)
  •         TH0=0;
  •         TL0=0;
  • }


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

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品日产欧美久久久久 | 国产成人免费视频 | 久久亚洲国产 | 午夜看片| 成人三级电影 | 超碰8 | 九色国产| 欧美精品一区二区三区在线播放 | 久久久久综合 | 交专区videossex农村 | 国产一级毛片精品完整视频版 | av在线播放一区二区 | 久久精品国产久精国产 | 麻豆国产一区二区三区四区 | 国产精品视频一区二区三区不卡 | www.中文字幕.com | 91精品国产91久久久久久三级 | 久久精品久久久久久 | 欧美激情综合五月色丁香小说 | 国产激情视频在线 | 国产a级毛片 | 亚洲免费一区 | 久久久久久久久久久一区二区 | 中文字幕日韩欧美 | 手机av在线 | 国产成人精品福利 | 欧美在线一区二区三区 | 国产精品美女久久久免费 | 精品视频一区二区三区在线观看 | 欧美成人二区 | 欧美亚洲国产一区二区三区 | 久久久久国产 | 一区观看 | www.4虎影院 国产999精品久久久影片官网 | 欧美性猛交| 成人精品一区二区户外勾搭野战 | 欧美色性 | 黄网站在线播放 | av黄色在线 | 国产一区久久 | 色综合99 |