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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3748|回復(fù): 1
收起左側(cè)

基于單片機(jī)噪聲報(bào)警系統(tǒng)源程序與Proteus仿真電路設(shè)計(jì)

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

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

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

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

單片機(jī)源程序如下:
  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計(jì)數(shù)值
  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計(jì)數(shù)值對應(yīng) 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. //////////////////////////////////////////////////////函數(shù)聲明////////////////////////////////////////////////////
  41.    


  42.     /************************************
  43.     延時(shí)子程序
  44.     延時(shí)時(shí)間(xms*1)ms
  45. *************************************/
  46. void delayms(uint xms)           //延時(shí)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. //////////////////////////////////////////主函數(shù)///////////////////////////////////////////////////////////
  83. void main(void)
  84. {
  85.     uint m,n;
  86.     uint i;
  87.     delayms(1000);
  88.     TMOD=0X15;           //T0外部計(jì)數(shù) 工作方式1    T1定時(shí)方式1
  89.     EA=0;                 //開總中斷
  90.     ET1=0;                 //關(guān)閉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開始定時(shí)
  119.     TR0=1;            //T0開始計(jì)數(shù)
  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;      //關(guān)閉T1定時(shí)
  162.     TH1=(65536-50000)/256;
  163.     TL1=(65536-50000)%256;
  164.     t++;
  165.         if(t==20)       //定時(shí)1s時(shí)間到
  166.         {
  167.             t=0;
  168.             TR0=0;        //T0停止計(jì)數(shù)
  169.             c=z*65535+(TH0*256+TL0);        // 將計(jì)數(shù)值讀取
  170.             TH0=0;                        //清空計(jì)數(shù)值
  171.             TL0=0;                       //清空計(jì)數(shù)值
  172.             TR0=1;                           //T0開始計(jì)數(shù)
  173.             count=c;
  174.             c=0;
  175.             z=0;
  176.         }
  177.     TR1=1;        //T1開始定時(shí)                                    

  178. }



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

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品福利av导航 | 成年人网站免费视频 | 国产91久久精品一区二区 | 亚洲不卡在线观看 | 九九免费观看视频 | 欧美成人二区 | 国产精品伦一区二区三级视频 | 国产精品一区在线 | 羞羞视频免费观 | 午夜日韩视频 | 中文字幕一区二区三区日韩精品 | 日日干日日色 | 91激情电影 | 日韩av免费看 | 国产精品欧美一区二区三区不卡 | 亚洲精品一区二区三区蜜桃久 | 日韩欧美国产精品综合嫩v 一区中文字幕 | 成人午夜免费在线视频 | 日韩欧美专区 | 国产成人免费在线观看 | 成人一级黄色毛片 | 91文字幕巨乱亚洲香蕉 | 日韩中文在线视频 | 91精品免费视频 | 中文在线视频观看 | 一区二区三区视频在线 | 久久国产精品一区二区 | 成人av网页| 国产高清视频在线观看播放 | 日韩网站在线观看 | 久久久久久久国产精品影院 | 国产美女在线看 | 精品国产一区二区三区久久久久久 | 男人天堂久久久 | 亚洲国产成人精品女人久久久 | 91精品综合久久久久久五月天 | 毛片免费看的 | 91在线免费视频 | 亚洲精品99久久久久久 | 欧美日韩在线一区二区三区 | 亚洲高清av |