![]() |
發布時間: 2018-9-12 08:38
正文摘要:其中這段程序是延時程序 但是不理解為什么具有延時功能 需要大神幫忙 #include<reg51.h> #define uchar unsigned char #define uint unsigned int #define R P2 #define C P3 uchar c ... |
具體延時多久,可以在keil中調試一下,看看系統運行時間! |
for(j=i;j>0;j--) for(k=110;k>0;k--); 這些都能起到延時的作用 推薦一個最基礎的延時程序也用的是for語句 很多人不知道for語句的延時具體是多長時間 看一下下面的歷程 unit i, j; for (i=500;i>0;i--) for(j=110;j>0;j--); 這是基礎的延時函數,當最后一句中j為110固定不變的時候,i等于多少就是延時多少毫秒 例如上面的例子就是延時500毫秒 |
void delay()函數執行的就是一個延時程序,依靠單片機執行一條指令來實現的累積延時 |
解決了嗎 |
有延時是因為程序執行需要時間,進入循環后一直在循環里跑,時間就一點一點跑過去了 |
小小新手的我只能復制換個排線順序或者修改下程序邏輯 |
換個排線順序或者修改下程序邏輯 |
for(j=i;j>0;j--) for(k=110;k>0;k--); 指令周期了解下 |
執行循環語句也會占用cpu的,即花費機器周期,也就起到了延時的作用 |
線序反了,執行空指令就是延時單純的消耗CPU時間 |
你試著把排線調個方向插,看看效果如何~![]() |