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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機實時數據采集ADC0809與報警系統源程序

[復制鏈接]
跳轉到指定樓層
樓主
51實時數據采集ADC0809與報警系統

單片機源程序如下:
  1. /*============================================================
  2. //
  3. //程序編寫:劉先生

  4. 接線:D0--D7接P0.0-P0.7
  5.       ST---P2.3
  6.           EOC--P2.2
  7.           OE---P2.1
  8.           CLK--P2.0

  9. [注:使用12M或11.0592M晶振,實測使用11.0592M]
  10. =============================================================*/
  11. #include <reg52.H>                //器件配置文件
  12. #include <intrins.h>
  13. #include "lcd.h"

  14. #define adc0809_data  P3 //單片機P0接模塊D0~D7引腳

  15. sbit STR = P2^3; //單片機P2.3接模塊STR引腳, 啟動轉換信號
  16. sbit EOC = P2^2; //單片機P2.2接模塊EOC, 轉換結束信號,高電平有效
  17. sbit OE  = P2^1; //單片機P2.1接模塊OE,輸出允許信號,高電平有效
  18. sbit CLK = P2^0; //單片機P2.0接CLK ,ADC0809時鐘,輸入50-800KHZ的頻率
  19.                  //一般選用500K

  20.                                  //將短接片去掉開啟位選功能,否則默認IN0為輸入引腳
  21. sbit AA = P2^6;         //單片機P2.6接模塊A引腳
  22. sbit BB = P2^5;         //單片機P2.6接模塊B引腳
  23. sbit CC = P2^4;         //單片機P2.6接模塊C引腳

  24. unsigned char AD_DATA[1]; //保存IN0通道轉換后的數據
  25. unsigned char disbuff[4] = { 0,0,0,0,};
  26. unsigned char Disp[]="0123456789";         //使用字符串保存數字0~9所對應的ASCLL碼
  27. unsigned char I_Disp[]="Smoke_C : ";           //初始顯示值
  28. unsigned char i;



  29. /***********************************
  30. 函數名:  AD()
  31. 功能:    啟動AD轉換將值儲存于 AD_DATA[0]

  32. ***********************************/
  33. void AD(void )
  34. {
  35.    STR=0;

  36.    STR=1; //啟動AD轉換

  37.    STR=0;  
  38.    while(0==EOC);//等待轉換結束
  39.    OE=1;  
  40.    AD_DATA[0]=adc0809_data; //讀取AD數據,數據范圍為0-255
  41.    OE=0;  
  42. }
  43. /***********************************
  44. 函數名:  t0()
  45. 功能:    產生ADC0809CLK所需要的時鐘

  46. ***********************************/
  47. void t0(void) interrupt 1 using 0
  48. {  
  49.    CLK=~CLK;
  50. }
  51. /***********************************
  52. 函數名:  Conut()
  53. 功能:    將AD_DATA[0]的各位拆分以方便lcd顯示

  54. ***********************************/
  55. void Conut(void)
  56. {
  57.          disbuff[0]=AD_DATA[0]/100;
  58.          disbuff[1]=AD_DATA[0]/10%10;
  59.          disbuff[2]=AD_DATA[0]%10;
  60. }
  61. /***********************************
  62. 函數名:  delayms()
  63. 功能:    延時 ms 毫秒

  64. ***********************************/
  65. void delayms(unsigned int ms)
  66. {
  67.         unsigned char j;
  68.         i=100;
  69.         for(;ms;ms--)
  70.         {
  71.                 while(--i)
  72.                 {
  73.                         j=10;
  74.                         while(--j);
  75.                 }
  76.         }
  77. }
  78. /***********************************
  79. 函數名:  LcdDisplay()
  80. 功能:    用lcd顯示數組disbuff[]中的值

  81. ***********************************/

  82. void LcdDisplay(void)
  83. {
  84.         LcdWriteCom(0x0b+0x80);
  85.         for(i=0;i<3;i++)
  86.         {
  87.                 LcdWriteData(Disp[disbuff[i]]);        
  88.         }                                
  89. }
  90. /***********************************
  91. 函數名:  Analog_IO_Sel()
  92. 參數說明: m 的值對應ADC0809芯片上模擬輸入的IO
  93. 功能:    確定模擬輸入位選

  94. ***********************************/

  95. void Analog_IO_Sel(unsigned char m)
  96. {
  97.         switch(m)
  98.         {
  99.                 case 0 : CC = 0; BB = 0; AA = 0; break;
  100.                 case 1 : CC = 0; BB = 0; AA = 1; break;
  101.                 case 2 : CC = 0; BB = 1; AA = 0; break;
  102.                 case 3 : CC = 0; BB = 1; AA = 1; break;
  103.                 case 4 : CC = 1; BB = 0; AA = 0; break;
  104.                 case 5 : CC = 1; BB = 0; AA = 1; break;
  105.                 case 6 : CC = 1; BB = 1; AA = 0; break;
  106.                 case 7 : CC = 1; BB = 1; AA = 1; break;
  107.         }
  108. }

  109. void main()
  110. {
  111.         EA=1; //開總中斷
  112.     TMOD=0x02; //設定定時器 T0工作方式
  113.     TH0=216; //利用T0中斷產生CLK信號
  114.     TL0=216;  
  115.     TR0=1; //啟動定時器T0
  116.     ET0=1;
  117.     STR=0;
  118.     OE=0;
  119.         Analog_IO_Sel(0);  //設置為IN0輸入

  120.         LcdInit();
  121.         for(i=0;i<10;i++)                  //顯示初始值
  122.         {
  123.                 LcdWriteData(I_Disp[i]);        
  124.         }

  125.         while(1)
  126.           {
  127.              AD();
  128.          Conut();                        //計算
  129.                  LcdDisplay();                //lcd顯示
  130.                  delayms(10);                //10MS         
  131.           }         
  132. }
復制代碼

所有資料51hei提供下載:
單片機控制系統綜合實訓.7z (181.49 KB, 下載次數: 58)


捕獲.PNG (71.41 KB, 下載次數: 114)

捕獲.PNG

評分

參與人數 1黑幣 +5 收起 理由
tanxin19991120 + 5 很給力!

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久91精品国产一区二区三区 | 国外成人在线视频 | 午夜视频网站 | 国产成人精品一区二区三 | 国产98色在线 | 日韩 | 国产精品久久久久免费 | 久久国产精品72免费观看 | 日韩国产一区二区 | 欧美日韩亚洲国产 | 91大片 | 国产一区免费 | 久久久久久久一区 | 日韩视频一区二区 | 成人精品一区二区三区中文字幕 | 国产欧美精品区一区二区三区 | 精品国产不卡一区二区三区 | 亚洲国产精品视频一区 | 日韩中文在线视频 | 国产成人在线视频免费观看 | 日韩欧美国产一区二区 | 在线观看国产视频 | 欧美一级一区 | 91精品国产91久久久久久丝袜 | h视频免费在线观看 | 欧美日韩中文国产一区发布 | 国产精品久久性 | 免费在线看黄 | 免费看一级毛片 | 亚洲成人www | 久久综合一区 | 精品久久一区 | 日韩一区二区在线看 | 日韩精品在线视频 | www.黄色在线观看 | 狠狠爱网址 | 久久久久亚洲 | 日韩视频专区 | 国产午夜精品理论片a大结局 | 中文字幕视频在线 | 97超在线视频| 精品国产成人 |