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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機(jī)控制光敏傳感器 Proteus仿真程序

[復(fù)制鏈接]
ID:807437 發(fā)表于 2021-6-23 08:36 | 顯示全部樓層 |閱讀模式
proteus內(nèi)容如圖: 51hei.gif
Snipaste_2021-06-23_08-30-40.png

單片機(jī)源程序如下:
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int

  5. sbit CS = P1^0;
  6. sbit CLK = P1^1;
  7. sbit DO = P1^2;
  8. uchar code tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0x40,0x3e,0x00};
  9. uchar code du[] = {0xfe,0xfd,0xfb,0xf7};
  10. uint huancun[] = {0,0,0,0};
  11. void delay();
  12. void display();        
  13. uchar Read_ADC0831();


  14. void main(){
  15.         uint i;
  16.         long adc_data;
  17.         while(1){
  18.         i++;
  19.         if(i == 100){
  20.                 i = 0;
  21.                 adc_data = Read_ADC0831() * 100;
  22.                 adc_data = adc_data / 51;         
  23.                                  
  24.                 if(adc_data > 461 && adc_data <= 494)
  25.                 {
  26.                         adc_data = adc_data * (-3.1818);
  27.                         adc_data = adc_data + 1576.35;
  28.                         adc_data = adc_data / 10;
  29.                 }
  30.                 else if(adc_data > 438 && adc_data <= 461)
  31.                 {
  32.                         adc_data = adc_data * (-3.6364);
  33.                         adc_data = adc_data + 1782.74;
  34.                         adc_data = adc_data / 10;
  35.                 }
  36.                 else if(adc_data > 401 && adc_data <= 438)
  37.                 {
  38.                         adc_data = adc_data * (-4.8571);
  39.                         adc_data = adc_data + 2319.98;
  40.                         adc_data = adc_data / 10;
  41.                 }
  42.                 else if(adc_data > 373 && adc_data <= 401)
  43.                 {
  44.                         adc_data = adc_data * (-6);
  45.                         adc_data = adc_data + 2782;
  46.                         adc_data = adc_data / 10;
  47.                 }
  48.                 else if(adc_data > 341 && adc_data <= 373)
  49.                 {
  50.                  adc_data = adc_data * (-8);
  51.                  adc_data = adc_data + 3528;
  52.                  adc_data = adc_data / 10;
  53.                 }
  54.                 else if(adc_data > 300 && adc_data <= 341)
  55.                         {
  56.                          adc_data = adc_data * (-9.375);
  57.                          adc_data = adc_data + 3990.63;
  58.                          adc_data = adc_data / 10;
  59.                         }
  60.                 else if(adc_data > 263 && adc_data <= 300)
  61.                         {
  62.                          adc_data = adc_data * (-12.5);
  63.                          adc_data = adc_data + 4950;
  64.                          adc_data = adc_data/10;
  65.                         }
  66.                 else if(adc_data > 222 && adc_data <= 263)
  67.                         {
  68.                          adc_data = adc_data *(-19.512);
  69.                          adc_data = adc_data + 6831.66;
  70.                          adc_data = adc_data / 10;
  71.                         }
  72.                 else if(adc_data > 137 && adc_data <= 222)
  73.                         {
  74.                          adc_data = adc_data * (-41.1765);
  75.                          adc_data = adc_data + 11641.18;
  76.                          adc_data = adc_data / 10;
  77.                         }
  78.                 else if(adc_data > 91 && adc_data <= 137)
  79.                         {
  80.                          adc_data = adc_data * (-100);
  81.                          adc_data = adc_data + 19700;
  82.                          adc_data = adc_data / 10;
  83.                         }
  84.                  else if(adc_data > 66 && adc_data <= 91)
  85.                         {
  86.                          adc_data = adc_data * (-235.2941);
  87.                          adc_data = adc_data + 32294.12;
  88.                          adc_data = adc_data / 10;
  89.                         }
  90.                 else if(adc_data > 50 && adc_data <= 66)
  91.                         {
  92.                          adc_data = adc_data * (-454.5455);
  93.                          adc_data = adc_data + 47000;
  94.                          adc_data = adc_data / 10;
  95.                         }
  96.                 else if(adc_data > 39 && adc_data <= 50)
  97.                         {
  98.                          adc_data = adc_data * (-727.2727);
  99.                          adc_data = adc_data + 62000;
  100.                          adc_data = adc_data / 10;
  101.                         }
  102.                 else if(adc_data > 33 && adc_data <= 39)
  103.                         {
  104.                          adc_data = adc_data * (-1000);
  105.                          adc_data = adc_data + 74000;
  106.                          adc_data = adc_data / 10;
  107.                         }
  108.                 else if(adc_data > 25 && adc_data <= 33)
  109.                         {
  110.                          adc_data = adc_data * (-2166.6667);
  111.                          adc_data = adc_data + 111500;
  112.                          adc_data = adc_data / 10;
  113.                         }
  114.                 else if(adc_data > 17 && adc_data <= 25)
  115.                         {
  116.                          adc_data = adc_data * (-4848.4211);
  117.                          adc_data = adc_data / 10;
  118.                          adc_data = adc_data + 17736.253;
  119.                         }
  120.                 else if(adc_data >= 14 && adc_data <= 17){
  121.                          adc_data = adc_data * (-3846.1538);
  122.                          adc_data = adc_data / 10;
  123.                          adc_data = adc_data + 15692.308;
  124.                         
  125.                         }

  126.                 huancun[0] = adc_data / 1000;   
  127.                 huancun[1] = adc_data % 1000 / 100;   
  128.                 huancun[2] = adc_data % 100 / 10;           
  129.                 huancun[2] += 10;                        
  130.                 huancun[3] = adc_data % 10;                  
  131.                 }
  132.                 display();
  133.         }
  134. }

  135. void delay(){
  136.         uchar i;
  137.         for(i = 0;i < 180;i++);
  138. }

  139. void display(){
  140.         uchar i;
  141.         for(i = 0;i < 4;i++){        
  142.                 P3 = du[i];
  143.                 P2 = tab[huancun[i]];
  144.                 delay();
  145.         }
  146. }

  147. uchar Read_ADC0831(){
  148.         uchar i,temp;
  149.         DO = 1;
  150.         _nop_();
  151.         _nop_();
  152.         CS = 0;
  153.         _nop_();
  154.         _nop_();
  155.         CLK = 0;
  156.         _nop_();
  157.         _nop_();
  158.         CLK = 1;
  159.         _nop_();
  160.         _nop_();
  161.         CLK = 0;
  162.         _nop_();
  163.         _nop_();
  164.         CLK = 1;
  165.         _nop_();
  166.         _nop_();
  167.         CLK = 0;
  168.         _nop_();
  169.         _nop_();
  170.         for(i = 0;i < 8;i++){        
  171.                 CLK = 1;
  172.                 _nop_();
  173.                 _nop_();
  174.                 temp <<= 1;
  175.                
  176.                 if(DO){
  177.                         temp++;         
  178.                 }
  179.                
  180.                 CLK = 0;
  181.                 _nop_();
  182.                 _nop_();
  183.         }
  184.         CS = 1;
  185.         _nop_();
  186.         _nop_();
  187.         
  188.         return(temp);
  189. }
復(fù)制代碼
此為如題所示C源程序和proteus仿真51hei下載: light_sensor.zip (90.03 KB, 下載次數(shù): 97)

評分

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

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:1079314 發(fā)表于 2023-5-26 11:15 | 顯示全部樓層
代碼有問題,一運(yùn)行顯示992.3
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲国产aⅴ成人精品无吗 欧美激情欧美激情在线五月 | 欧美高清dvd| 成人做爰69片免费观看 | 在线免费黄色小视频 | 色秀网站 | 成人性视频免费网站 | 日本男人天堂 | 最新一级毛片 | 日韩精品一区二区三区在线观看 | 日本啊v在线 | 噜噜噜色网 | 精品在线 | 国产高清在线精品 | 国产一区二区在线免费播放 | 久久99久久98精品免观看软件 | 精品一二区 | 色精品 | 欧美一区二区三区国产精品 | a级黄色片视频 | 日日操操操| 国产精品久久久亚洲 | 国产精品日韩欧美一区二区三区 | 人人性人人性碰国产 | 天天操操 | 在线成人www免费观看视频 | 日韩激情一区 | 亚洲视频中文字幕 | 国产91精品久久久久久久网曝门 | 中文字幕国产精品 | 国产成人精品一区二区三区网站观看 | 一区二区国产在线 | 亚洲欧美日韩电影 | 欧美日韩视频在线播放 | 欧美色综合 | 久久精品色欧美aⅴ一区二区 | 自拍视频网 | 一本岛道一二三不卡区 | 97视频精品| 欧美精品区 | 国产a区| 精品日韩一区 |