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

標(biāo)題: 單片機(jī)超聲波測(cè)距Proteus仿真代碼,LCD1602顯示 [打印本頁(yè)]

作者: 賊六的噠噠噠    時(shí)間: 2021-5-6 20:16
標(biāo)題: 單片機(jī)超聲波測(cè)距Proteus仿真代碼,LCD1602顯示
超聲波測(cè)距仿真,LCD1602顯示帶程序

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序如下:
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uint  unsigned int
  4. #define uchar unsigned char
  5. #define NOP() {_nop_();_nop_();_nop_();_nop_();}
  6. //------LCD引腳-----
  7. sbit lcd_rs=P0^6;

  8. sbit lcd_en=P0^7;
  9. //------超聲波引腳-------
  10. sbit Tx=P3^3;                //觸發(fā)控制信號(hào)輸入
  11. sbit Rx=P3^2;                //回響信號(hào)輸出
  12. uchar xuehao[]={"   17110201138  "};
  13. uchar xingming[]={"NAME:zhaolongda"};
  14. uchar code table[]={" Distance Test:"};                //LCD第一行顯示
  15. uchar temp_dis[]= {"    000.0 cm"};                                //LCD第二行
  16. long int t,distance;
  17. uchar cache[4]={0,0,0,0};
  18. //--------延時(shí)-------
  19. void delay(uint ms)
  20. {
  21.         uint t;
  22.         while(ms--)
  23.                 for(t=0;t<30;t++);
  24. }
  25. void write_com(uchar com);//init_lcd()函數(shù)需要用到,所以先提前聲明
  26. //************LCD1602初始化函數(shù)************************
  27. void init_lcd()
  28. {
  29.         write_com(0x38);           //設(shè)置16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)接口
  30.         write_com(0x08);           //寫一個(gè)字符后地址指針加1
  31.         write_com(0x01);           //顯示清零,數(shù)據(jù)指針清零
  32.         write_com(0x06);           //寫一個(gè)字符后地址指針加1
  33.         write_com(0x0c);           //關(guān)顯示,光標(biāo)不顯示不閃爍
  34. }


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


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

  59. //************LCD1602顯示函數(shù)******************
  60. void lcd1602_display(uchar *q,uchar *p)//*通過(guò)指針p和q分別指向兩個(gè)數(shù)組的第一個(gè)數(shù),然后進(jìn)行數(shù)組掃描顯示,一次性顯示兩行字符
  61. {
  62.         write_com(0x80);             // 現(xiàn)將數(shù)據(jù)指針定位到第一行第一個(gè)字處
  63.         while(*q!='\0')
  64.         {
  65.                 write_data(*q);
  66.                 q++;
  67.                 delay(1);       
  68.         }
  69.         write_com(0xc0);           // 現(xiàn)將數(shù)據(jù)指針定位到第二行第一個(gè)字處
  70.         while(*p!='\0')
  71.         {
  72.                 write_data(*p);
  73.                 p++;
  74.                 delay(1);       
  75.         }
  76. }

  77. //************LCD1602顯示歡迎函數(shù)******************
  78. void welcome()        //掃描顯示學(xué)號(hào)加姓名,幾秒延時(shí)后結(jié)束
  79. {       
  80.         init_lcd();
  81.         lcd1602_display(xuehao,xingming);
  82.         delay(200);          

  83. }
  84. void HC05_Init()                          //超聲波模塊初始化函數(shù)
  85. {
  86.         Tx=1;                                                //觸發(fā)脈沖
  87.         NOP();NOP();NOP();NOP();
  88.         Tx=0;
  89.         distance=0.1725*t;                        //距離計(jì)算
  90. }
  91. void distance_convert(long int dat)             //距離計(jì)算函數(shù)
  92. {
  93.         cache[0]=dat/1000;
  94.         cache[1]=dat/100%10;
  95.         cache[2]=dat/10%10;
  96.         cache[3]=dat%10;
  97.         temp_dis[4]=cache[0]+'0';
  98.         temp_dis[5]=cache[1]+'0';
  99.         temp_dis[6]=cache[2]+'0';
  100.         temp_dis[8]=cache[3]+'0';
  101. }
  102. //------------主程序-----------
  103. void main()
  104. {
  105.        
  106.       
  107.         welcome();
  108.         
  109.         init_lcd();
  110.         delay(5);
  111.         TMOD=0x09;        //定時(shí)器T0工作方式1  GATE0=1
  112.         EA=1;                        //開總中斷
  113.         TR0=1;                        //啟動(dòng)定時(shí)器
  114.         EX0=1;                        //開外部中斷
  115.         IT0=1;                        //設(shè)置為下降沿中斷方式
  116.         while(1)
  117.         {
  118.                 HC05_Init();
  119.                 distance_convert(distance);
  120.                 lcd1602_display(table,temp_dis);  
  121.                
  122.         }
  123. }
  124. //外部中斷0
  125. void int0() interrupt 0
  126. {
  127.         t=(TH0*256+TL0);        //計(jì)算高電平持續(xù)的時(shí)間,上升沿到來(lái)時(shí)候開始計(jì)時(shí),下降沿到來(lái)進(jìn)入外部中斷,關(guān)閉計(jì)時(shí)器,停止計(jì)時(shí)
  128.         TH0=0;
  129.         TL0=0;
  130. }
復(fù)制代碼

所有資料51hei提供下載:
超聲波測(cè)距仿真.zip (90.57 KB, 下載次數(shù): 426)



作者: 黑泡泡    時(shí)間: 2021-5-18 13:10
程序有誤,1602讀寫命令錯(cuò)了
作者: dragon19790000    時(shí)間: 2021-10-2 18:07
下載程序中,仿真報(bào)錯(cuò)啊
作者: heicad    時(shí)間: 2021-10-3 02:13
dragon19790000 發(fā)表于 2021-10-2 18:07
下載程序中,仿真報(bào)錯(cuò)啊

我用Proteus8.8打開,雙擊單片機(jī)重新選擇hex文件,可以運(yùn)行呢

51hei.png (26.72 KB, 下載次數(shù): 109)

51hei.png

作者: 魚文韻    時(shí)間: 2021-11-29 16:55
很好的資源,準(zhǔn)備去試一試。
作者: CHANGSTM51    時(shí)間: 2022-5-22 01:19
剛下載,明天好好研究
作者: Y97    時(shí)間: 2022-12-20 21:16
剛下載準(zhǔn)備試試看




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 毛片网站在线播放 | 一区二区精品视频 | 亚洲最新视频 | 日韩欧美在线一区 | 国产精品久久久久久中文字 | 色综合欧美 | 国产一级免费视频 | 国产在线欧美 | 亚洲国产欧美日韩 | 91视频免费观看 | 精品国产99 | 深夜福利网站 | 在线观看视频一区二区 | 美日韩丰满少妇在线观看 | 美女福利视频 | 99热久| 深夜福利影院 | 久久精品视| 99视频在线精品免费观看2 | 黄色片在线播放 | 狠狠干综合网 | 久久精品久久久久久久 | 亚洲天堂国产 | 欧美成人精品 | 亚洲激情另类 | 国产高清在线观看 | 天海翼一区二区 | 亚洲国产欧美日韩 | 欧美视频在线观看一区 | 国产高清91 | аⅴ资源新版在线天堂 | 欧美日韩精品在线 | 伊人网视频 | 美日韩一区二区三区 | 中文字幕在线一区 | 国产精品美女毛片真酒店 | 9999精品视频| 精品国产成人 | 二区在线观看 | 一区二区不卡 | 亚洲精品在线看 |