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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機+PCF8591 AD光敏電阻亮度顯示源碼

  [復制鏈接]
跳轉到指定樓層
樓主
51單片機AD實驗:使用AD采出光敏電阻阻值隨光照強度變化的數值,附有實驗結果圖和詳細源碼



單片機源程序如下:
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit sda=P2^0;
  6. sbit scl=P2^1;
  7. sbit dula=P2^6;
  8. sbit wela=P2^7;
  9. uchar code table[]={

  10.                 0x3F,  //"0"
  11.                 0x06,  //"1"
  12.                 0x5B,  //"2"
  13.                 0x4F,  //"3"
  14.                 0x66,  //"4"
  15.                 0x6D,  //"5"
  16.                 0x7D,  //"6"
  17.                 0x07,  //"7"
  18.                 0x7F,  //"8"
  19.                 0x6F,  //"9"
  20.                 0x77,  //"A"
  21.                 0x7C,  //"B"
  22.                 0x39,  //"C"
  23.                 0x5E,  //"D"
  24.                 0x79,  //"E"
  25.                 0x71,  //"F"
  26.                          };
  27. void delay()  //5us
  28. {;;}
  29. void delay1(uint z)//1ms
  30. {
  31.         uint x,y;
  32.         for(x=z;x>0;x--)
  33.                 for(y=120;y>0;y--);       
  34. }
  35. void display(uchar value)
  36. {
  37.         uchar bai,shi,ge;
  38.         bai=value/100;
  39.         shi=value%100/10;
  40.         ge=value%100%10;

  41.         dula=1;
  42.         P0=table[bai];
  43.         dula=0;
  44.         P0=0xff;
  45.         wela=1;
  46.         P0=0xfe;
  47.         wela=0;
  48.         delay1(1);

  49.         dula=1;
  50.         P0=table[shi];
  51.         dula=0;
  52.         P0=0xff;
  53.         wela=1;
  54.         P0=0xfd;
  55.         wela=0;
  56.         delay1(1);

  57.         dula=1;
  58.         P0=table[ge];
  59.         dula=0;
  60.         P0=0xff;
  61.         wela=1;
  62.         P0=0xfb;
  63.         wela=0;
  64.         delay1(1);
  65. }
  66. void start()
  67. {
  68.         scl=1;
  69.         _nop_();
  70.         sda=1;
  71.         delay();
  72.         sda=0;
  73.         delay();
  74.         scl=0;
  75.         _nop_();
  76. }
  77. void stop()
  78. {
  79.         scl=1;
  80.         _nop_();
  81.         sda=0;
  82.         delay();
  83.         sda=1;
  84.         delay();
  85. }
  86. void respons()
  87. {
  88.         scl=1;
  89.         _nop_();
  90.         sda=0;
  91.         delay();
  92.         scl=0;
  93.         _nop_();
  94. }
  95. void norespons()
  96. {
  97.         scl=1;
  98.         _nop_();
  99.         sda=1;
  100.         delay();
  101. }
  102. void init()
  103. {
  104.         scl=1;
  105.         _nop_();
  106.         sda=1;
  107.         _nop_();
  108. }
  109. void write_byte(uchar dat)
  110. {
  111.         uchar i,temp;
  112.         temp=dat;
  113.         for(i=0;i<8;i++)
  114.         {
  115.                 scl=0;
  116.                 _nop_();
  117.                 if((temp&0x80)==0x80)
  118.                         sda=1;          //д1
  119.                 else
  120.                         sda=0;          //д0
  121.                 scl=1;
  122.                 _nop_();
  123.                 temp<<=1;
  124.         }
  125.         scl=0;
  126.         _nop_();
  127. }
  128. uchar read_byte()
  129. {
  130.         uchar dat,i;
  131.         sda=1;
  132.         _nop_();
  133.         scl=0;
  134.         _nop_();
  135.         for(i=0;i<8;i++)
  136.         {
  137.                 scl=1;
  138.                 _nop_();
  139.                 if(sda)
  140.                         dat|=0x01;
  141.                 if(i<7)
  142.                          dat<<=1;
  143.                 scl=0;
  144.                 _nop_();       
  145.         }
  146.         return dat;
  147. }
  148. void DAC_write(uchar dat)
  149. {
  150.         start();
  151.         write_byte(0x90);
  152.         respons();
  153.         write_byte(0x40);
  154.         respons();
  155.         write_byte(dat);
  156.         respons();
  157.         stop();

  158. }
  159. uchar ADC_read(uchar com)
  160. {
  161.         uchar dat;
  162.         dat=com;
  163.         start();
  164.         write_byte(0x90);
  165.         respons();
  166.         write_byte(com);
  167.         respons();
  168.         start();
  169.         write_byte(0x91);
  170.         respons();
  171.         dat=read_byte();
  172.         norespons();
  173.         stop();
  174.         return dat;
  175. }
  176. void main()
  177. {
  178.         uchar i=0,ad_value;
  179.         init();
  180.         while(1)
  181.         {
  182.                
  183.                 ad_value=ADC_read(0x42);
  184.                 display(ad_value);
  185.                 /*DAC_write(i);
  186.                 i++;  */
  187.                 delay1(1);
  188.         }
  189. }
復制代碼

所有資料51hei提供下載:
例程.zip (22.82 KB, 下載次數: 186)


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

使用道具 舉報

沙發
ID:326117 發表于 2018-5-10 21:12 | 只看該作者
你好,有沒有是用LCD1602顯示的程序?
回復

使用道具 舉報

板凳
ID:451532 發表于 2018-12-21 14:44 來自手機 | 只看該作者
你號,這個需要的元器件是什么了,我是新手,有點不懂
回復

使用道具 舉報

地板
ID:517335 發表于 2019-4-21 10:09 | 只看該作者
何璇 發表于 2018-5-10 21:12
你好,有沒有是用LCD1602顯示的程序?

你有沒有用LCD1602顯示的程序
回復

使用道具 舉報

5#
ID:504613 發表于 2019-7-3 14:18 | 只看該作者
沒發現值是反的嗎?正常是光亮,數值大才對
回復

使用道具 舉報

6#
ID:427492 發表于 2019-8-1 11:17 | 只看該作者
12332323 發表于 2019-7-3 14:18
沒發現值是反的嗎?正常是光亮,數值大才對

這個元件不知道什么原因,就是光照越強,數值越小。測熱敏電阻電壓也是溫度越高數值越小。搞不懂
回復

使用道具 舉報

7#
ID:653193 發表于 2019-11-30 20:05 | 只看該作者
那個能不能把接線發一下
回復

使用道具 舉報

8#
ID:653193 發表于 2019-11-30 20:06 | 只看該作者
那個能不能把接線發一下
回復

使用道具 舉報

9#
ID:585455 發表于 2020-9-13 16:51 | 只看該作者
我測試都只顯示255,哪裡搞錯了嗎?
回復

使用道具 舉報

10#
ID:585455 發表于 2020-9-13 18:52 | 只看該作者
我接線錯誤,已經不會顯示255,非常抱歉。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产成人精品久久二区二区91 | 亚洲激情在线观看 | 九九导航 | 久久精品a级毛片 | 亚洲国产伊人 | 欧美性受xxxx白人性爽 | 日韩精品网站 | 日韩有码一区 | 日韩av一区二区在线 | 涩涩导航| 中文字幕亚洲国产 | 91麻豆精品国产91久久久久久久久 | 紧缚调教一区二区三区视频 | 一区中文字幕 | 在线电影日韩 | 91最新入口 | 欧美日韩精品 | 成人在线电影网站 | 黄视频在线网站 | 国产剧情一区二区三区 | 99热精品在线 | 一区二区三区在线播放 | 日韩一区二区三区在线看 | 日韩欧美一区二区三区免费观看 | 国产视频中文字幕 | 免费国产视频在线观看 | 国产婷婷色一区二区三区 | 91久久精品| 成人福利网站 | 一级免费毛片 | 成人亚洲视频 | 91玖玖| 91在线影院| 国产一级片免费在线观看 | 久久久久成人精品免费播放动漫 | 亚洲69p | 一区二区三区中文字幕 | 欧美日本久久 | 日韩高清av | 成人精品网 | 日韩午夜在线播放 |