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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3828|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久精品国产 | 国产精品久久久久久久久久 | 蜜月aⅴ免费一区二区三区 99re在线视频 | 97人人澡人人爽91综合色 | 亚洲黄色高清视频 | 成年人在线视频 | 天天操夜夜看 | 最新中文字幕在线 | 日本欧美黄色片 | 欧美二区在线 | 麻豆一区二区三区 | 国产精品爱久久久久久久 | 97高清国语自产拍 | 中文字幕亚洲欧美日韩在线不卡 | 国产精品亚洲第一 | 男女羞羞免费网站 | 欧美成人精品一区二区男人看 | 国产一级片一区二区 | 国产在线高清 | 日韩免费 | 亚洲一区二区在线播放 | 一区二区三区成人 | 作爱视频免费看 | 久久爱综合 | 91最新入口 | 中文在线一区二区 | 亚洲一区二区三区视频 | 视频在线观看一区 | 久久精品视频91 | 亚洲三区在线观看 | 午夜av一区二区 | 欧美一区二区三区在线观看 | 日本成人综合 | 青青久在线视频 | 精品不卡 | 国产精品揄拍一区二区久久国内亚洲精 | 欧美一区二区三区在线观看 | 亚洲国产精品一区二区www | 午夜天堂精品久久久久 | 一区二区在线免费观看 | 成人在线视频观看 |