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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

這個循跡程序的循跡為什么只能進去一次

[復制鏈接]
跳轉到指定樓層
樓主
ID:327115 發表于 2018-10-28 17:02 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit DIRl=P1^0; //方向信號
sbit PUIl=P1^1; //脈沖信號
sbit DIRr=P1^2;
sbit PUIr=P1^3;

uchar temp,signal,L_flag,R_flag;

//extern L_flag,R_flag;

void Timer0Init()
{
        TMOD|=0X01;//選擇為定時器0模式,工作方式1,僅用TR0打開啟動。

         TH0=0XFF;        //給定時器賦初值,定時0.2ms
     TL0=0X38;
        ET0=1;//打開定時器0中斷允許
        EA=1;//打開總中斷
        TR0=1;//打開定時器                        
}

void Timer1Init()
{
        TMOD|=0X10;//選擇為定時器1模式,工作方式1,僅用TR1打開啟動。
        TH1=0XFF;        //給定時器賦初值,定時0.2ms
        TL1=0X38;        
        ET1=1;//打開定時器1中斷允許
        EA=1;//打開總中斷
        TR1=1;//打開定時器                        
}

void main()
{
     temp=P0;
         signal=temp&0xff;
         
     DIRl=0;
     DIRr=1;//電機正轉
         Timer0Init();  //定時器0初始化
         Timer1Init();  //定時器1初始化
         while(1)
         {
           if(signal==0X87)//10000111
             {L_flag=2;R_flag=2;
                 temp=P0;
         signal=temp&0xff;
                 }
         if(signal==0X3F)//11100001
             {L_flag=2;R_flag=2;
                   temp=P0;
         signal=temp&0xff;
                 }

     if(signal==0X0F)//00001111
                 {L_flag=1;R_flag=3;
                   temp=P0;
         signal=temp&0xff;
                 }
        if(signal==0XF0)//11110000
                 {L_flag=3;R_flag=1;
                  temp=P0;
         signal=temp&0xff;
                 }

        if(signal==0X1F)//00011111
             {L_flag=1;R_flag=3;
                  temp=P0;
         signal=temp&0xff;
                 }
        if(signal==0XF8)//11111000
                 {L_flag=3;R_flag=1;
                   temp=P0;
         signal=temp&0xff;
                 }

        if(signal==0XFC)//11111100
                 {L_flag=3;R_flag=1;
                  temp=P0;
         signal=temp&0xff;
                 }
         if(signal==0X3F)//00111111
                  {L_flag=1;R_flag=3;
                 temp=P0;
         signal=temp&0xff;
                 }

         if(signal==0xC3)
         {L_flag=2;R_flag=2;
           temp=P0;
         signal=temp&0xff;
         }
         }
         
            
}

void timer0() interrupt 1
{
        
        if(L_flag==1)
                {TH0=0XFE;        //給定時器賦初值,定時0.3ms
             TL0=0XD4;
            }
        if(L_flag==2)//11100001         
        {     TH0=0XFF;        //給定時器賦初值,定時0.2ms
             TL0=0X38;
        }
        if(L_flag==3)
     {
          TH0=0XFF;        //給定時器賦初值,定時0.1ms
             TL0=0X9C;
          }
    PUIl=~PUIl;
  
   }
//**********************************************************
void Timer1() interrupt 3
{
                if(R_flag==1)
                {TH1=0XFE;        //給定時器賦初值,定時0.3ms
             TL1=0XD4;
            }
        if(R_flag==2)//11100001         
        {     TH1=0XFF;        //給定時器賦初值,定時0.2ms
             TL1=0X38;
        }
        //******************
        if(R_flag==3)
     {
          TH1=0XFF;        //給定時器賦初值,定時0.1ms
             TL1=0X9C;
          }
    PUIr=~PUIr;         
        }





這個是步進電機   用定時器t0,t1來控制他的速度     但是循跡只進去了一次   只能檢測最開始的狀態  
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:222948 發表于 2018-10-28 21:38 | 只看該作者
一直在while程序里面出不來,一直循環,就只能循跡一次
回復

使用道具 舉報

板凳
ID:164602 發表于 2018-10-29 08:46 | 只看該作者
你將每個if內的
temp=P0;
         signal=temp&0xff;
現金條語句取出,放在所有if語句完的后成試試,就是這樣——

if(signal==0X87)//10000111
             {L_flag=2;R_flag=2;
                 }
         if(signal==0X3F)//11100001
             {L_flag=2;R_flag=2;
                 }

     if(signal==0X0F)//00001111
                 {L_flag=1;R_flag=3;
                 }
        if(signal==0XF0)//11110000
                 {L_flag=3;R_flag=1;
                 }

        if(signal==0X1F)//00011111
             {L_flag=1;R_flag=3;
                 }
        if(signal==0XF8)//11111000
                 {L_flag=3;R_flag=1;
                 }

        if(signal==0XFC)//11111100
                 {L_flag=3;R_flag=1;
                 }
         if(signal==0X3F)//00111111
                  {L_flag=1;R_flag=3;
                 }

         if(signal==0xC3)
         {L_flag=2;R_flag=2;
         }
           temp=P0;
         signal=temp&0xff;
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 九九久久这里只有精品 | 亚洲一区二区三区免费在线 | 成人网在线看 | 欧美视频三区 | 欧美亚洲视频在线观看 | 黄网站在线播放 | 亚洲国产专区 | 国产精品一区二区在线 | 成人av高清 | 国产精品久久久久久久久久免费看 | 成人午夜精品一区二区三区 | 成人av电影在线 | 99re超碰| 亚洲国产欧美在线人成 | 国产欧美在线一区 | 婷婷免费视频 | 影音先锋中文在线 | 日韩视频观看 | 日韩成人免费视频 | 91精品久久久久久久久中文字幕 | 久久99精品久久久久久国产越南 | 国产女人叫床高潮大片免费 | 精品一区二区三区不卡 | 亚洲九九| 欧美一区二区三区精品 | 久久精品亚洲精品国产欧美kt∨ | 国产电影一区二区在线观看 | 在线免费国产 | 极品国产视频 | 97超碰人人草 | 精彩视频一区二区三区 | 成人免费视频 | 综合久久av| 九一在线观看 | 国产精品一区二区三区在线播放 | 一区二区在线不卡 | 成人亚洲网 | 久久久久亚洲精品 | 日韩久久久久久 | 日韩av手机在线观看 | 国产日韩精品在线 |