找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2378|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

基于STC89C51單片機(jī)的光強(qiáng)檢測(cè)程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:952422 發(fā)表于 2021-7-20 09:56 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
最近學(xué)習(xí)了AD 覺(jué)得光敏檢測(cè)很有意思
于是就根據(jù)光敏檢測(cè)的值點(diǎn)個(gè)燈吧

使用的普中51 A2開(kāi)發(fā)板
原理圖在附件

源代碼 如下
  1. #include <reg52.h>

  2. #define XPT2046_VBAT 0xAC
  3. unsigned int ADvalue;
  4. unsigned int led_num=0;

  5. sbit XPT2046_CS=P3^5;  
  6. sbit XPT2046_DCLK=P3^6;
  7. sbit XPT2046_DIN=P3^4;
  8. sbit XPT2046_DOUT=P3^7;

  9. void Delay(unsigned int xms)
  10. {
  11.         unsigned char i, j;
  12.         while(xms--)
  13.         {
  14.                 i = 2;
  15.                 j = 239;
  16.                 do
  17.                 {
  18.                         while (--j);
  19.                 } while (--i);
  20.         }
  21. }

  22. unsigned int XPT2046_ReadAD(unsigned char Command)
  23. {
  24.         unsigned int ADValue=0;
  25.         unsigned char i;
  26.         XPT2046_DCLK=0;
  27.         XPT2046_CS=0;
  28.         
  29.         for(i=0;i<8;i++)
  30.         {
  31.                 XPT2046_DIN=Command&(0x80>>i);
  32.                 XPT2046_DCLK=1;
  33.                 XPT2046_DCLK=0;
  34.         }
  35.         
  36.         for(i=0;i<16;i++)
  37.         {
  38.                         XPT2046_DCLK=1;
  39.                         XPT2046_DCLK=0;
  40.                         if(XPT2046_DOUT)
  41.                         {
  42.                                 ADValue|=(0x8000>>i);
  43.                         }
  44.         }
  45.         XPT2046_CS=1;
  46.         return ADValue>>8;
  47. }

  48. void led_light()
  49. {
  50.         switch(led_num)
  51.         {
  52.                 case 1:P2=0xfe;break;
  53.                 case 2:P2=0xfc;break;
  54.                 case 3:P2=0xf8;break;
  55.                 case 4:P2=0xf0;break;
  56.                 case 5:P2=0xe0;break;
  57.                 case 6:P2=0xc0;break;
  58.                 case 7:P2=0x80;break;
  59.                 case 8:P2=0x00;break;
  60.         }
  61. }

  62. void pd()
  63. {
  64.         if(ADvalue>0&&ADvalue<=10)
  65.                 led_num=1;
  66.         else if(ADvalue>10&&ADvalue<=18)
  67.                 led_num=2;
  68.         else if(ADvalue>18&&ADvalue<=26)
  69.                 led_num=3;
  70.         else if(ADvalue>26&&ADvalue<=34)
  71.                 led_num=4;
  72.         else if(ADvalue>34&&ADvalue<=42)
  73.                 led_num=5;
  74.         else if(ADvalue>42&&ADvalue<=50)
  75.                 led_num=6;
  76.         else if(ADvalue>50&&ADvalue<=52)
  77.                 led_num=7;
  78.         else if(ADvalue>52)
  79.                 led_num=8;
  80. }

  81. void main()
  82. {
  83.         while(1)
  84.         {
  85.                 ADvalue=XPT2046_ReadAD(XPT2046_VBAT);
  86.                 Delay(5);
  87.                 pd();
  88.                 led_light();
  89.         }
  90. }
復(fù)制代碼

Keil代碼工程51hei附件下載:
光強(qiáng)燈.zip (20.84 KB, 下載次數(shù): 27)
A2開(kāi)發(fā)板原理圖(1).pdf (227.86 KB, 下載次數(shù): 18)

評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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