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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機測量氣壓與上位機通信

[復制鏈接]
跳轉到指定樓層
樓主
ID:789726 發表于 2021-5-5 14:30 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
基于單片機的測量氣壓與上位機通信
  1. #include<reg52.h>                        

  2. typedef unsigned int u16;         
  3. typedef unsigned char u8;

  4. u8 AD_val;
  5. u8 j=0;

  6. sbit  RS=P2^4;
  7. sbit  RW=P2^3;
  8. sbit  E=P2^2;

  9. sbit  LED1=P1^5;
  10. sbit  LED2=P1^6;
  11. sbit  LED3=P1^7;

  12. sbit cs=P1^0;
  13. sbit clk=P3^6;
  14. sbit dio=P3^7;

  15. u8 str[]="qi_ya_:";
  16. u8 str1[]="KPa";
  17. void delayms(u16 ms)  //延時函數
  18. {
  19.         u8 i;
  20.         while(ms--)
  21.         for(i=0;i<123;i++);
  22. }

  23. void w_com(u8 com)    //寫指令寄存器
  24. {
  25.           RS=0;
  26.         RW=0;
  27.         E=1;
  28.         P0=com;
  29.         E=0;
  30.         delayms(1);
  31. }

  32. void w_dat(u8 dat)  //寫數據寄存器
  33. {
  34.          RS=1;
  35.         RW=0;
  36.         E=1;
  37.         P0=dat;
  38.         E=0;
  39.         delayms(1);        
  40. }

  41. void lcd_ini(void)  //液晶屏初始化
  42. {
  43.         delayms(10);
  44.         w_com(0x38);
  45.         delayms(10);
  46.         w_com(0x0c);
  47.         delayms(10);
  48.         w_com(0x06);
  49.         delayms(10);
  50.         w_com(0x01);
  51.         delayms(10);
  52.         w_com(0x38);
  53.         delayms(10);
  54. }

  55. void UsartInit()  //串口接收初始化
  56. {
  57.         SCON=0X50;                        
  58.         TMOD=0X20;                        
  59.         PCON=0X00;                        
  60.         TH1=250;                                
  61.         TL1=250;
  62.         ES=1;                                                
  63.         EA=1;                                                
  64.         TR1=1;                                       
  65. }

  66. u8 A_D()          //AD0832 AD模數轉換初始化函數
  67. {
  68.         u8 i,dat;
  69.         cs=1;
  70.         
  71.         clk=0;
  72.         cs=0;
  73.         clk=1;

  74.         clk=0;
  75.         dio=1;
  76.         clk=1;

  77.         clk=0;
  78.         dio=0;
  79.         clk=1;
  80.         
  81.         clk=0;
  82.         dio=1;
  83.         clk=1;
  84.         
  85.         for(i=0;i<8;i++)
  86.         {
  87.                 clk=1;
  88.                 clk=0;
  89.                 dat<<=1;
  90.                 dat|=(u8)dio;
  91.         }
  92.         cs=1;
  93.         return dat;
  94. }


  95. void main()           //主函數
  96. {        
  97.     u8 i,r;
  98.         double s,l;
  99.     lcd_ini();
  100.     w_com(0x80);
  101.     for(i=0;str[i]!='\0';i++)
  102.     w_dat(str[i]);
  103.         w_com(0xcb);
  104.         for(i=0;str1[i]!='\0';i++)
  105.     w_dat(str1[i]);
  106.         UsartInit();
  107.         LED1=0;
  108.     LED2=0;
  109.     LED3=0;  
  110.         while(1)
  111.         {  EA=0;
  112.            AD_val=A_D();
  113.            EA=1;

  114.            s=(1.0/256)*AD_val*5;
  115.            l=((s-0.27)/1.8);
  116.            r=100*l;
  117.            j=r;

  118.            EA=0;
  119.            w_com(0xc7);
  120.            w_dat(r/100+0x30);
  121.            w_dat(r/10%10+0x30);
  122.            w_dat(r%10+0x30);
  123.            EA=1;

  124.            if(r<20)
  125.            {
  126.                    LED1=1;
  127.                 LED2=0;
  128.                 LED3=0;
  129.                 }
  130.                 if(r<40&&r>20)
  131.            {
  132.                    LED1=0;
  133.                 LED2=1;
  134.                 LED3=0;
  135.                 }
  136.                 if(r>40)
  137.            {
  138.                    LED1=0;
  139.                 LED2=0;
  140.                 LED3=1;
  141.                 }
  142.            delayms(100);   
  143.         }               
  144. }

  145. void Usart() interrupt 4         //串口發送中斷函數
  146. {
  147.         u8 receiveData;
  148.         receiveData=SBUF;
  149.         RI=0;
  150.         SBUF=j;
  151.         while(!TI);                        
  152.         TI=0;                                                
  153. }

復制代碼

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

使用道具 舉報

沙發
ID:857846 發表于 2021-11-23 15:03 | 只看該作者
有詳細資料嘛,作者
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品国产精品国产专区不卡 | 国产一区二区免费 | 成人免费一区二区 | 亚洲+变态+欧美+另类+精品 | 欧美精品一区二区三区在线 | 久久国产精品无码网站 | a精品视频 | 91电影| 欧美黑人又粗大 | 成人av看片 | 国产成人精品午夜 | 久久国产婷婷国产香蕉 | 成年人国产在线观看 | 欧美群妇大交群中文字幕 | 一本色道精品久久一区二区三区 | 国产一区二区三区在线 | 国产精品国产精品国产专区不卡 | 国产精品一区二区三区免费观看 | 久久久久国产一区二区三区四区 | 91文字幕巨乱亚洲香蕉 | 欧洲成人免费视频 | 青青草av在线播放 | 国产91网址| 四虎最新视频 | 色噜噜亚洲男人的天堂 | 久在线| 婷婷久久五月天 | 91观看| 天堂久久网 | 天天干天天插 | 午夜影院在线观看版 | 天堂网中文字幕在线观看 | 亚洲精品日韩精品 | 欧美日韩精品一区二区三区视频 | 99久久婷婷 | jizz在线免费观看 | 久久精品欧美一区二区三区麻豆 | 久久久精品综合 | 亚洲人人 | 免费成人av网站 | 成人在线欧美 |