找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

我想在不同光照強(qiáng)度下控制進(jìn)步電機(jī)的旋轉(zhuǎn)角度,利用光敏電阻和AD0832江湖救急。

[復(fù)制鏈接]
ID:154739 發(fā)表于 2017-3-29 13:40 | 顯示全部樓層 |閱讀模式
  • 我想在不同光照強(qiáng)度下控制進(jìn)步電機(jī)的旋轉(zhuǎn)角度,利用光敏電阻和AD 0832,進(jìn)行轉(zhuǎn)換我的程序在下邊請給位看看我的錯(cuò)誤在哪,我覺得在我的數(shù)據(jù)輸出在比較時(shí)出了錯(cuò)誤  給位能幫我解決下這個(gè)問題嗎
  • #include <reg52.h>
  • #define uchar unsigned char
  • #define uint unsigned int
  • sbit CLK0832= P1^1;
  • sbit CS0832= P1^0;
  • sbit Di0832= P1^2;
  • sbit Do0832= P1^2;
  • uchar light;
  • uchar state=0;
  • void delay(uint z)
  • {
  •         uint x,y;
  •         for(x=z;x>0;x--)
  •         for(y=110;y>0;y--);
  • }
  • uchar read0832()
  • {
  • uchar i,dat1,dat2;
  • CS0832=0;
  • CLK0832=0;
  • Di0832=1;
  • CLK0832=1;//òÔéÏ1y3ì2úéúáËò»¸ö¿aê¼DÅoÅ
  • CLK0832=0;
  • Di0832=1;//D¾Æ¬ÕaÄü½øDDμ¥í¨μà×a»»Ä£ê½
  • CLK0832=1;
  • CLK0832=0;
  • Di0832=0;
  • CLK0832=1;//¶Ôí¨μà0½øDD×a»»
  • CLK0832=0;
  • Di0832=1;
  • for(i=0;i<8;i++)
  • {
  •   CLK0832=1;
  •         CLK0832=0;
  •         if(Do0832==1)
  •         {
  •          dat1|=0x80>>i;
  •         }
  • }
  • for(i=0;i<8;i++)
  • {
  •   if(Do0832==1)
  •         {
  •          dat2|=0x80<<i;
  •         }
  •         CLK0832=1;
  •         CLK0832=0;
  • }
  • CS0832=1;
  • CLK0832=1;
  • Di0832=1;
  • if(dat1==dat2)
  • {
  •   return(dat1);
  • }
  • }
  • void move(uchar step)
  • {
  • uchar i;
  • P2=0x0f;
  • for(i=0;i<step;i++)
  • {
  •    P2=0x03;
  •          delay(200);
  •    P2=0x06;
  •          delay(200);
  •          P2=0x0c;
  •          delay(200);
  •          P2=0x09;
  •          delay(200);
  •         }
  • }
  • void reserve(uchar step)
  • {
  • uchar i;
  • P2=0x0f;
  • for(i=0;i<step;i++)
  • {
  •    P2=0x09;
  •          delay(200);
  •    P2=0x0c;
  •          delay(200);
  •          P2=0x06;
  •          delay(200);
  •          P2=0x03;
  •          delay(200);
  •         }
  • }
  • void movestep(uchar level)
  • {
  •   switch(level)
  •   {
  •          case 0:switch(state)
  •          {
  •           case 0:break;
  •                 case 1:reserve(1);break;
  •                 case 2:reserve(2);break;
  •                 case 3:reserve(3);break;
  •          }state=0;break;
  •          case 1:switch(state)
  •          {
  •           case 0:move(1);break;
  •                 case 1:break;
  •                 case 2:reserve(1);break;
  •                 case 3:reserve(2);break;
  •          }state=1;break;
  •          case 2:switch(state)
  •          {
  •           case 0:move(2);break;
  •                 case 1:move(1);break;
  •                 case 2:break;
  •                 case 3:reserve(1);break;
  •          }state=2;break;
  •          case 3:switch(state)
  •          {
  •           case 0:move(3);break;
  •                 case 1:move(2);break;
  •                 case 2:move(1);break;
  •                 case 3:break;
  •          }state=3;break;
  •         }
  • }
  • void main()
  • {
  •         while(1)
  •         {
  •          //delay(10);
  •         light=read0832();
  •         if(light>=0&&light<40)movestep(0);
  •         if(light>=40&&light<125)movestep(1);
  •         if(light>=125&&light<210)movestep(2);
  •         if(light>=210&&light<255)movestep(3);
  •         }
  • }


QQ截圖20170329133650.png
回復(fù)

使用道具 舉報(bào)

ID:82765 發(fā)表于 2017-3-29 14:58 | 顯示全部樓層
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
回復(fù)

使用道具 舉報(bào)

ID:154739 發(fā)表于 2017-3-29 16:13 | 顯示全部樓層
cjjcjj1 發(fā)表于 2017-3-29 14:58
你好!先查看一下 light 是不是讀取到正常值?

我的light就是在不同光照 下AD轉(zhuǎn)換的電壓值 ,我也是不太確定比較這部分。能告訴下嗎
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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