A. 51單片機main()函數執行到最後會復位嗎
main應該有個循環,你的是因為都沒有循環,所以會一直執行到單片機的最終後再從頭來所以你看到的不是你想要的結果
B. 單片機編程中MAIN是什麼意思
MAIN是主函數是程序的入口,一個程序有且只有一個主函數的。
你可以參考一下下面的資料:
C. 單片機MAIN函數里如果不用WHILE(1)那麼其中的程序只執行一次嗎
這是各中單片機自身決定的。有的單片機程序內如果沒有循環程序,那它會從頭執行到最後,然後返回最開始繼續執行。一直重復。
而有的單片機再執行一次之後,就會停止。
有的則是執行完後可能會進入無序運行狀態,就只不知道程序跑哪裡去了!
所以,在寫單片機程序的時候,最好是加上while循環,即便你的程序只運行一次,也要在最後加上while(1);使其一直指向這個語句而不會出現誤操作。
D. 單片機里的程序是從main函數開始執行的嗎請高手進。
那得看你的程序是怎麼寫的,可以配置讓單片機先執行別的程序再執行main
如果你沒有任何控制的話,執行完全部的程序,會從main()開始,如果要控制的話,也很簡單
分為兩類:
一類是不執行下面的指令,返回main()第一句指令,那直接使用return;就可以了
另一類是不范圍main()第一句指令,而從中間某一句開始執行,有兩種方法
1.對於循環層數較少的循環,可以使用break;
2.對於循環層數較多,不建議每層都使用break那就利用標簽也可以做到,你只要在程序需要的位置設個標簽,在程序最後返回標簽,就可以了
例如:
main()
{
k=1;
start:
P0=0x00;
//後面程序省略
//程序最後書寫如下這里可以加個你需要的條件,滿足條件後,跳轉從main{}的第一句開始再次執行
goto
start;
}
我經常這樣做,實踐證明,真的很好用,你可以試試
E. 單片機中斷結束後從哪main函數從頭開始執行嗎還是回到while(1);那裡
在mian函數執行的時候,產生中斷事件,main函數執行到什麼位置,程序會自動將執行到當前的位置(也就是PC寄存器的內容)壓入堆棧,去執行中斷程序。當中斷服務函數執行結束後。main函數會跳轉到剛才要執行的位置(也就是出棧)繼續執行程序 希望採納
F. 單片機中DB "MAIN"代表什麼意思
單片機匯編語言中,db是以位元組為單位,定義的一組數據,你可以理解為c語言中的數組。比如
tab:
db
0c0h,60h,6fh,0dbh.....
相當於c語言中:
unsigned
char
tab[]={0xc0,0x60,0x6f,0xdb......};
G. 為什麼在單片機里C語言中main函數執行完之後還要重新執行
單片機程序運行從main函數開始運行,而main函數裡面有一個while(1)死循環,程序會一直執行while(1)裡面的語句。
H. 單片機中的main 是什麼意思,還有acall和lcall分別是什麼意思
main是C語言主程序,在匯編中可能是一標號,ACALL匯編中是2KB范圍內子程序的絕對調用指令,LCALL是64KB內長調用.