找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機 重復執(zhí)行代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:187947 發(fā)表于 2020-10-5 08:57 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式


寫了一個很簡單   步進馬達的測試程序,單片機執(zhí)行的時候  馬達一直在轉


可程序里 沒有 死循環(huán),只有一個 8拍   ,執(zhí)行完了 照理應該不轉了


  什么原因造成步進馬達一直轉  


代碼如下

#include <reg51.h>

void delay(int i)

{
        int j;
         int i;
        for(;i>0;i--)

            for(j=50;j>0;j--)

                      ;
}

int main()
{                                   

    int step[]={0x01,0x05,0x04,0x06,0x02,0x0a,0x08,0x09};         

    int i;

    for(i=7;i>=0;i--){

                        P2=step[ i ]   ;
                        delay(10)   ;

                                    }                           

   return 0;         
}



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

使用道具 舉報

沙發(fā)
ID:147710 發(fā)表于 2020-10-5 13:12 | 只看該作者
如圖修改:



回復

使用道具 舉報

板凳
ID:342954 發(fā)表于 2020-10-5 14:35 | 只看該作者
把return 0  不要改成FOR();;
回復

使用道具 舉報

地板
ID:342954 發(fā)表于 2020-10-5 14:37 | 只看該作者
把return 0 不要,改成for(;;){}
回復

使用道具 舉報

5#
ID:743654 發(fā)表于 2020-10-5 16:22 | 只看該作者
程序末尾寫個while(1);不然程序會回到主程序重復執(zhí)行。
回復

使用道具 舉報

6#
ID:453974 發(fā)表于 2020-10-7 08:20 | 只看該作者
把return 0換成while(1);
回復

使用道具 舉報

7#
ID:187947 發(fā)表于 2020-10-7 16:41 | 只看該作者

謝謝    找了一本c    51 的書    main 確實要加 while(1)
回復

使用道具 舉報

8#
ID:187947 發(fā)表于 2020-10-7 16:42 | 只看該作者
cheney03 發(fā)表于 2020-10-5 16:22
程序末尾寫個while(1);不然程序會回到主程序重復執(zhí)行。

的確如此   
回復

使用道具 舉報

9#
ID:187947 發(fā)表于 2020-10-7 16:50 | 只看該作者
統(tǒng)一回復  :  
查了資料   單片機  main 函數 結尾 一般做法都要加死循環(huán)  

哎 要是一開始找本c 51的書看看 問題就早發(fā)現(xiàn)了        
回復

使用道具 舉報

10#
ID:808634 發(fā)表于 2020-10-8 19:10 | 只看該作者
死循環(huán)的話
for(unsigned char d;;d++)
{
     放你要死循環(huán)的程序
}
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

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