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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3868|回復: 1
收起左側

基于單片機噪聲報警系統源程序與Proteus仿真電路設計

[復制鏈接]
ID:898981 發表于 2021-3-31 14:40 | 顯示全部樓層 |閱讀模式
該設計方案由硬件和軟件兩部分組成。噪聲測量儀的硬件電路系統,包括噪聲信號的轉換、放大、交直流轉換與電壓、頻率轉換電路以及單片機系統的硬件電路、LED顯示電路等。軟件部分主要是用單片機語言編程,實現對信號的采集、轉換及顯示。對于不同型號的單片機只需要相應的改變一下地址即可。

仿真原理圖如下,只是一個簡單的模擬而已(proteus仿真工程文件可到本帖附件中下載)
51hei.png

電路原理圖如下:
R45~(1KOC2E3MJWC@$N1}NS.png

OR2HF~_$V`GG39~EW[H5}@P.png

單片機源程序如下:
  1. <font face="宋體">#include <reg52.h>
  2. #include "LCD1602.h"
  3. unsigned char welcome[]={"welcome!"};
  4. unsigned char Show0[6]={"Noise:"};
  5. unsigned char Show1[5]={"dB"};
  6. /*unsigned int code Countnum[60]={ 11,  13,  15,  17,  19,  22,  24,  27,  31,  34,      //T0計數值
  7.                             39,  44,  49,  55,  62,  69,  78,  87,  98,  110,
  8.                             123, 138, 155, 174, 195, 219, 246, 276, 309, 347,
  9.                             390, 438, 491, 550, 618, 693, 778, 873, 979, 1099,
  10.                             1233,1383,1552,1742,1954,2193,2460,2760,3097,3475,
  11.                             3899,4375,4909,5508,6180,6934,7780,8729,9794,10989,};*/
  12. unsigned long code Countnum[100]={10,11,12,13,15,17,19,22,25,28,
  13.                                 31,35,39,43,48,54,60,67,75,84,
  14.                                 94,105,117,131,146,163,182,204,228,255,
  15.                                 286,320,359,402,451,506,567,636,713,799,
  16.                                 896,1005,1127,1264,1418,1590,1783,2000,2244,2517,
  17.                                 2824,3168,3556,3989,4475,5020,5632,6319,7089,7953,
  18.                                 8923,10011,11232,12602,14139,15863,17798,19969,22405,25138,
  19.                                 28204,31644,35504,39835,44694,50146,56263,63127,70828,79469,
  20.                                 89164,100042,112247,125941,141305,158544,177886,199588,223937,251257,
  21.                                 281910,316303,354891,398187,446765,501270,562424,631039,708025,794404,};



  22. unsigned char code dB[100][3]={"031","032","033","034","035","036","037","038","039","040",        //T0計數值對應 dB
  23.                               "041","042","043","044","045","046","047","048","049","050",
  24.                               "051","052","053","054","055","056","057","058","059","060",
  25.                               "061","062","063","064","065","066","067","068","069","070",
  26.                               "071","072","073","074","075","076","077","078","079","080",
  27.                               "081","082","083","084","085","086","087","088","089","090",
  28.                               "091","092","093","094","095","096","097","098","099","100",
  29.                               "101","102","103","104","105","106","107","108","109","110",
  30.                               "111","112","113","114","115","116","117","118","119","120",
  31.                               "121","122","123","124","125","126","127","128","129","130",
  32.                               };      

  33. sbit beep=P2^2;
  34. sbit key_1=P2^1;
  35. sbit key_2=P2^0;

  36. //////////////////////////////////////////////////////全局變量/////////////////////////////////////////////////////
  37. unsigned long count,c;
  38. uchar t,z;

  39. uchar shu,ys;

  40. //////////////////////////////////////////////////////函數聲明////////////////////////////////////////////////////
  41.    


  42.     /************************************
  43.     延時子程序
  44.     延時時間(xms*1)ms
  45. *************************************/
  46. void delayms(uint xms)           //延時xms
  47. {
  48.     uint x,y;
  49.     for(x=xms;x>0;x--)
  50.         for(y=90;y>0;y--);
  51. }

  52. void key()
  53. {
  54.     if (key_1==0)
  55.     {
  56.         delayms(10);
  57.         if (key_1==0)
  58.         {
  59.             while(key_1==0);
  60.             if (shu<99) shu++;
  61.         }
  62.     }
  63.     if (key_2==0)
  64.     {
  65.         delayms(10);
  66.         if (key_2==0)
  67.         {
  68.             while(key_2==0);
  69.             if (shu>0) shu--;
  70.         }
  71.     }

  72. }

  73. void alarm()
  74. {
  75.     ys++;
  76.     if (ys>20)
  77.     {
  78.         ys=0;
  79.         beep=!beep;
  80.     }
  81. }

  82. //////////////////////////////////////////主函數///////////////////////////////////////////////////////////
  83. void main(void)
  84. {
  85.     uint m,n;
  86.     uint i;
  87.     delayms(1000);
  88.     TMOD=0X15;           //T0外部計數 工作方式1    T1定時方式1
  89.     EA=0;                 //開總中斷
  90.     ET1=0;                 //關閉T1
  91.     TH0=0;
  92.     TL0=0;
  93.     TH1=(65536-50000)/256;       //裝初值
  94.     TL1=(65536-50000)%256;       //裝初值
  95.     init_1602();

  96.     WRITE_LCD1602_COM(0x80+3);    //    顯示地址
  97.       for(i=0; i<6; i++)
  98.     {
  99.         WRITE_LCD1602_DAT(Show0[i]);
  100.         delayms(5);
  101.     }

  102.     WRITE_LCD1602_COM(0x80+12);           //    顯示地址
  103.     for(i=0;i<2;i++)
  104.     {
  105.         WRITE_LCD1602_DAT(Show1[i]);
  106.         delayms(5);        
  107.     }
  108.     WRITE_LCD1602_COM(0xc0+3);           //    顯示地址
  109.     WRITE_LCD1602_byte("Limit:");

  110.     WRITE_LCD1602_COM(0xc0+12);           //    顯示地址
  111.     for(i=0;i<2;i++)
  112.     {
  113.         WRITE_LCD1602_DAT(Show1[i]);
  114.         delayms(5);        
  115.     }         
  116.     EA=1;
  117.     ET1=1;            //開T1
  118.     TR1=1;            //T1開始定時
  119.     TR0=1;            //T0開始計數
  120.     while(1)
  121.     {
  122.             key();
  123.             WRITE_LCD1602_COM(0xc0+9);
  124.               WRITE_LCD1602_DAT(0x30+(shu+31)/100%10);
  125.               WRITE_LCD1602_DAT(0x30+(shu+31)/10%10);
  126.               WRITE_LCD1602_DAT(0x30+(shu+31)%10);
  127.             i=0;
  128.             if(count==0)
  129.             continue;
  130.             while(count>Countnum[i])
  131.             {
  132.                 i++;
  133.             }
  134.             m=i;
  135.             i=0;
  136.             WRITE_LCD1602_COM(0x80+9);
  137.             for(n=0; n<3; n++)
  138.             {     
  139.                 WRITE_LCD1602_DAT(dB[m][n]);
  140.                 delayms(5);
  141.             }
  142.             WRITE_LCD1602_COM(0xc0+9);
  143.               WRITE_LCD1602_DAT(0x30+(shu+31)/100%10);
  144.               WRITE_LCD1602_DAT(0x30+(shu+31)/10%10);
  145.               WRITE_LCD1602_DAT(0x30+(shu+31)%10);
  146.             if(m>=shu)
  147.             {
  148.                 alarm();
  149.             }else
  150.             {
  151.                 beep=1;
  152.             }
  153.     }   
  154. }

  155. void Timer0() interrupt 1
  156. {
  157.     z++;
  158. }

  159. void Timer1() interrupt 3
  160. {
  161.     TR1=0;      //關閉T1定時
  162.     TH1=(65536-50000)/256;
  163.     TL1=(65536-50000)%256;
  164.     t++;
  165.         if(t==20)       //定時1s時間到
  166.         {
  167.             t=0;
  168.             TR0=0;        //T0停止計數
  169.             c=z*65535+(TH0*256+TL0);        // 將計數值讀取
  170.             TH0=0;                        //清空計數值
  171.             TL0=0;                       //清空計數值
  172.             TR0=1;                           //T0開始計數
  173.             count=c;
  174.             c=0;
  175.             z=0;
  176.         }
  177.     TR1=1;        //T1開始定時                                    

  178. }



  179. </font>
復制代碼
全部資料51hei下載地址:
10仿真.rar (98.4 KB, 下載次數: 50)
噪聲計原理圖.pdf (87.99 KB, 下載次數: 38)
1程序.rar (30.97 KB, 下載次數: 31)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:904699 發表于 2021-4-12 21:54 | 顯示全部樓層
你好,我想問一下,你的這個設計可以測量聲音的分貝值嗎?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品福利在线 | 欧美在线一区二区三区 | 成人午夜激情 | 男女免费在线观看视频 | 男女深夜网站 | 99久久精品国产毛片 | 成人免费网站www网站高清 | 亚洲一区二区黄 | 美国a级毛片免费视频 | 国产精品亚洲成在人线 | 久久亚洲免费 | 亚洲天天干 | 久久久久久一区 | 欧美激情久久久 | 欧美色综合天天久久综合精品 | 亚洲精久久| 美女视频h | 国产天天操 | 中文字幕第90页 | 免费a在线 | 国产a区 | 一区在线视频 | 五月天婷婷狠狠 | 亚洲精品黑人 | 久久com| www.国产视频| 亚洲三区视频 | 亚洲精品视频免费观看 | 欧美日韩不卡合集视频 | 91久久久久久久久久久 | 日韩在线免费观看视频 | 欧美日韩一区二区三区在线观看 | 我要看免费一级毛片 | 91在线视频免费观看 | 欧美视频精品 | 久久久久一区二区三区 | 色男人的天堂 | 亚洲风情在线观看 | 欧美在线观看一区 | 国产乱码精品1区2区3区 | 天堂综合网久久 |