找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機模擬感應(yīng)燈程序Proteus仿真 ADC0832采集光敏電阻自動燈光控制

[復(fù)制鏈接]
ID:129825 發(fā)表于 2024-1-20 11:36 | 顯示全部樓層 |閱讀模式
模擬感應(yīng)燈仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.gif

用普通電位器來模擬光敏電阻

單片機源程序如下:
  1. #include <reg52.h>
  2. #include <intrins.h>

  3. /*********************************************************/
  4. // 宏定義
  5. /*********************************************************/

  6. #define uchar unsigned char                // 以后unsigned char就可以用uchar代替
  7. #define uint  unsigned int                // 以后unsigned int 就可以用uint 代替

  8. /*********************************************************/
  9. // 端口定義
  10. /*********************************************************/

  11. sbit ADC_CS  = P2^5;                                         // ADC0832的CS引腳
  12. sbit ADC_CLK = P2^6;                                         // ADC0832的CLK引腳
  13. sbit ADC_DAT = P2^7;                                         // ADC0832的DI/DO引腳

  14. sbit LED = P2^1;
  15. sbit Induction  = P3^2;                                        // 人體紅外檢測模塊


  16. /*********************************************************/
  17. // ADC0832的時鐘脈沖
  18. /*********************************************************/
  19. void WavePlus()
  20. {
  21.         _nop_();
  22.         ADC_CLK = 1;
  23.         _nop_();
  24.         ADC_CLK = 0;
  25. }

  26. /*********************************************************/
  27. // 獲取指定通道的A/D轉(zhuǎn)換結(jié)果
  28. /*********************************************************/
  29. uchar Get_ADC0832()
  30. {
  31.         uchar i;
  32.         uchar dat1=0;
  33.         uchar dat2=0;
  34.         
  35.         ADC_CLK = 0;                                // 電平初始化
  36.         ADC_DAT = 1;
  37.         _nop_();
  38.         ADC_CS = 0;
  39.         WavePlus();                                        // 起始信號
  40.         ADC_DAT = 1;
  41.         WavePlus();                                        // 通道選擇的第一位
  42.         ADC_DAT = 0;      
  43.         WavePlus();                                        // 通道選擇的第二位
  44.         ADC_DAT = 1;
  45.         
  46.         for(i=0;i<8;i++)                // 第一次讀取
  47.         {
  48.                 dat1<<=1;
  49.                 WavePlus();
  50.                 if(ADC_DAT)
  51.                         dat1=dat1|0x01;
  52.                 else
  53.                         dat1=dat1|0x00;
  54.         }
  55.         
  56.         for(i=0;i<8;i++)                // 第二次讀取
  57.         {
  58.                 dat2>>= 1;
  59.                 if(ADC_DAT)
  60.                         dat2=dat2|0x80;
  61.                 else
  62.                         dat2=dat2|0x00;
  63.                 WavePlus();
  64.         }
  65.         
  66.         _nop_();                                                // 結(jié)束此次傳輸
  67.         ADC_DAT = 1;
  68.         ADC_CLK = 1;
  69.         ADC_CS  = 1;   

  70.         if(dat1 == dat2)                        // 返回采集結(jié)果
  71.                 return dat1;
  72.         else
  73.                 return 0;
  74. }

  75. /*********************************************************/
  76. // 自動燈光控制
  77. /*********************************************************/
  78. void AutoControl()
  79. {
  80.         uchar ret;
  81.         ret=Get_ADC0832();                // 獲取AD采集結(jié)果(環(huán)境光照強度)
  82.         if(ret <= 29 && Induction == 1)        
  83.         {
  84.                 LED = 0; //點亮LED
  85.         }        
  86.         else
  87.         {
  88.                 LED = 1;
  89.         }               
  90. }

  91. /*********************************************************/
  92. // 主程序
  93. /*********************************************************/
  94. void main()
  95. {
  96.         while(1)
  97.         {
  98.                 AutoControl();
  99.         }
  100. }
復(fù)制代碼

仿真程序51hei附件下載:
感應(yīng)燈.zip (128.08 KB, 下載次數(shù): 49)


評分

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

查看全部評分

回復(fù)

使用道具 舉報

ID:291549 發(fā)表于 2024-1-22 20:05 | 顯示全部樓層
感謝這么好的仿真程序
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表