亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

電動機控制程序 求各位大神給予指點和幫助啊!!

[復制鏈接]
跳轉到指定樓層
樓主
ID:59839 發表于 2014-8-23 21:42 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

#include<reg52.h>
#define uchar unsigned char
#define uint  unsigned int
sbit P36=P3^6;
sbit P37=P3^7;
sbit P27=P2^7;
sbit Key=P0^2;
uchar Current_Level,Dest_Level;
uint i=0,M=0,N=0;
void DelayMS(uint dly);
void Key_scan(void);
void DcMonitor(void)
{
  if(Current_Level<Dest_Level)
  {
   M=Dest_Level-Current_Level;
   P27=1;
   P36=1;
   P37=0;
   Key_scan();
   for(i=N;i>0;i--)
   {
    Current_Level++;
   }
  }
else if(Current_Level>Dest_Level)
  {
   M=Current_Level-Dest_Level;
   P27=1;
   P36=0;
   P37=1;
   Key_scan();
   for(i=N;i>0;i--)
   {
    Current_Level--;
   }
  }
else
  {
   P27=0;
   P36=0;
   P37=0;
  }
}
void Key_scan(void)
{
  while(N<M)
  {while(Key==0)
   {
    DelayMS(10);
    if(Key==1)
    break;
    while(Key==0);
    N++;
   }
  }
}
void DelayMS (uint dly)
{
uint a,b;
for(a=dly;a>0;a--)
  for(b=247;b>0;b--);
}
void main()
{
P27=0;
P36=0;
P37=0;
  if(P1!=0XFF)
  {
   switch(P1)
   {
    case 0XFE:Dest_Level=5;DcMonitor();break;
    case 0XFD:Dest_Level=4;DcMonitor();break;  
    case 0XFB:Dest_Level=3;DcMonitor();break;
    case 0XF7:Dest_Level=2;DcMonitor();break;
    case 0XEF:Dest_Level=1;DcMonitor();break;
   }
  }
}
我想模擬的過程是這樣的:按下K1,電機開始轉動,右邊的開關采集到一個低電平信號之后,電機停止轉動,再按下K5,電機又開始轉動,開關采集到4個低電平信號之后,電機停止轉動,再按下K3,電機反向轉動,開關采集到兩個信號之后,電機停止轉動。這個有點類似電梯的控制,程序應該怎么改才能實現這樣的效果啊,求各位幫助,一起討論。!

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

使用道具 舉報

沙發
ID:26188 發表于 2014-8-23 23:44 來自觸屏版 | 只看該作者

回帖獎勵 +1

那你現在發的這個程序能實現哪些功能?
回復

使用道具 舉報

板凳
ID:26188 發表于 2014-8-23 23:45 來自觸屏版 | 只看該作者
最好把仿真的工程文件傳上來,我在本地幫你,仿真一下看看
回復

使用道具 舉報

地板
ID:59839 發表于 2014-8-24 09:47 | 只看該作者
hujia 發表于 2014-8-23 23:45
最好把仿真的工程文件傳上來,我在本地幫你,仿真一下看看

現在只能實現按鍵按下了,電機開始轉動,開關采集到信號之后,電機停止。先按K1,電機轉,開關采集一個信號,電機停止;再按K5,開關采集5個信號之后電機停止;再按K3,電機轉(還是原來的方向,沒有反向轉),開關采集3個信號之后電機停止。和我之前描述的過程不大一樣,這里面的問題是程序沒有把上一次按鍵按下的數值保存下來,供下一次使用,您給指點指點。!
回復

使用道具 舉報

5#
ID:59839 發表于 2014-8-24 09:54 | 只看該作者
563524748 發表于 2014-8-24 09:47
現在只能實現按鍵按下了,電機開始轉動,開關采集到信號之后,電機停止。先按K1,電機轉,開關采集一個信 ...


C.zip (11.75 KB, 下載次數: 8)
回復

使用道具 舉報

6#
ID:19715 發表于 2014-8-24 11:54 | 只看該作者
void main()
{
P27=0;
P36=0;
P37=0;
        while(1)
        {
          if(P1!=0XFF)
          {
                   switch(P1)
                   {
                    case 0XFE:Dest_Level=5; N=0;break;
                    case 0XFD:Dest_Level=4; N=0;break;  
                    case 0XFB:Dest_Level=3; N=0;break;
                    case 0XF7:Dest_Level=2; N=0;break;
                    case 0XEF:Dest_Level=1; N=0;break;
                   }
          }
         DcMonitor();
        }
}
回復

使用道具 舉報

7#
ID:59839 發表于 2014-8-24 15:38 | 只看該作者

我試了一下,可以仿真我說的功能了,我明白什么個意思了,謝謝你了。。!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表