請問微控制器高手們這個軟體延時延時了多長時間?謝謝

2021-07-30 22:17:19 字數 4115 閱讀 4785

1樓:匿名使用者

有一個很簡單而且很準確的方法:用keilc**,在keilc主介面的左面有一個微控制器執行時間的引數。但是必須設定好晶振和微控制器型號,否者會出誤差。

2樓:

迴圈了100萬次 可根據使用的晶振來計算指令週期,再來計算出延時時間

3樓:匿名使用者

彙編啊,這個不怎麼了解啊

請問有誰懂微控制器的延時程式,幫我看看延時子程式具體延時多長時間,求詳細步驟

4樓:匿名使用者

mov指令需要兩個機器週期;djnz執行一次也需要兩個機器週期。djnz總共執行了r3*r4個機器週期,r3=7*16+15=114+15=129,r4=15*16+15=255, nop一個機器週期,總計執行機器週期為r3*r4+1nop+2個mov=32895+1+4=32900,加入12mhz晶體,一個機器週期1微秒,大概延時32.9毫秒。

延時過程就是類似失眠了數羊,耗費時間而已

5樓:匿名使用者

你看哈你的cpu頻率或者晶振頻率是多少 算出時鐘週期 這樣就好辦多了

我剛學微控制器的,我需要編寫延時40ms的子程式,但不懂如何入手.麻煩高手們幫幫忙!謝謝

6樓:匿名使用者

首先需要確定晶振頻率,然後可以採用軟體延時和硬體延時兩種方法。

軟體延時就是靠編寫迴圈程式讓其迴圈執行來達到延時目的,另一種方法是硬體延時,用微控制器內部的定時器來產生延時效果,這種方法不佔用cpu資源,推薦用此方法。

首先需要確定晶振頻率,然後可以採用軟體延時和硬體延時兩種方法。

軟體延時就是靠編寫迴圈程式讓其迴圈執行來達到延時目的,另一種方法是硬體延時,用微控制器內部的定時器來產生延時效果,這種方法不佔用cpu資源,推薦用此方法。

假設晶振頻率12mhz,那麼一個機器週期為12/12mhz=1us軟體延時40ms:

mov r3,#200

diy1:mov r2,#100

diy:djnz r2,diy;執行一次2us,共執行20000次djnz r3,diy1

硬體延時涉及到定時器,需要計算定時初值,40ms可以採用定時器的模式1,最大可延時65ms,這個涉及到的東西較多,我就不具體說了,你可以檢視微控制器的相關書籍,上面講的很詳細。

7樓:匿名使用者

告訴我你的晶振頻率。還有你是要彙編還是c?都說一下。

51微控制器延時的問題

8樓:

硬體**,然後設定斷點,看一下前後的時間。要是非得準確求得,那就得反彙編一下,然後看彙編語句,每條彙編語句的時間累加,然後求得時間!

按照我的專案經驗的話,有時候我們不需要那麼精確的延時時間。軟體延時由於編譯器的原因,還有編譯器優化的原因,不同的的編譯軟體,同樣的程式,延時時間也有點差別。

9樓:匿名使用者

把**編譯出來,反彙編看看就認得了嘛

10樓:微享樂

1x142x2x機器週期 機器週期由你的晶振決定

11樓:安科瑞王凱鋒

光看程式是不可能看出來的!!!要對應具體的晶振是多少的!!!!

請問怎樣在微控制器中延時一年?延時程式。

12樓:匿名使用者

for(a=0;a<10000;a++)

for(b=0;b<10000;b++)

for(c=0;c<10000;c++)

..............後面自己算

13樓:海角之約

利用定時器的週期進行計數即可,例如定時器是100ms,記100次是10秒,600次是1分,依次類推可延遲一年。

請問微控制器c語言中延時函式的延時時長怎麼計算啊????

14樓:3d裝號

這個是說不出來的,不同的微控制器,不同的晶振都有不同的效果,一般地可以用軟體或者硬體**看,軟仿可以看時間差,硬體仿就直接寫入微控制器,然後用示波器去看,逐步調整到需要的值。

15樓:匿名使用者

延時的長短只有通過軟體**觀察

同一段延時的**在不同情況有不同延時時間

一:與你用的晶振有關

二:與你的**技術有關 有的採用8級流水線速度超快

16樓:匿名使用者

通過**軟體來觀察延時時間,我用過at89s52,12m晶振的

for(int z)

這個我測過幾乎就是1ms。

17樓:義劍霸天

加啊不就對了嗎! 笨蛋!

求微控制器高手幫我解決一下這個程式,時間能顯示,但是隻要一按鍵盤時,分就會不停的亂跳,請問是怎麼回事

18樓:做而論道

按鍵程式中的,延時函式,應該使用顯示函式,否則,顯示,就會停頓。

按鍵程式中,缺少等待釋放的環節,按一下,就可能會出現幾

十、幾百次的操作。

微控制器延時程式具體怎麼計算?

19樓:

1,你的微控制器時鐘是多少。2,你的微控制器一條指令是幾個時鐘週期。這樣就可以算啦

20樓:

不要考試的話~推薦使用微控制器小精靈~別下最新版本的那個要錢……

21樓:喻清懿

這個要看你用的什麼微控制器了,他的時鐘週期與他的振盪頻率有關,每一個語句的執行時間還有他的指令週期有關,查下微控制器相關資料,應該是都有的.

為什麼這個微控制器延時子程式用了push和pop?

22樓:

請你參考:

高手們喜歡這樣寫,看懂了就沒有那麼可怕了,其實就是一種儲存資料的方法。

下面逐句分析,先說明一下吧:push與pop必須成對出現,否則就亂了;另外誰跟誰是一對也得弄清。

delay:

mov r2,#30h    //以下3行不解釋了

acall delay0

retdelay0: push 02h   //把02h單元的資料入棧,就是把r2的資料存入堆疊。

//用的是第一組暫存器(m1m0=00)

//把堆疊看作蓋樓,現在蓋了一層

delay1: push 02h    //還是把r2 的資料入棧,這是大樓的第二層了

delay2: push 02h    //還是把r2 的資料入棧,這是大樓的第三層了

delay3: djnz r2, delay3    //在這一行迴圈,直到r2為0

pop 02h    //第三層出棧,把棧內的資料彈給02h單元,就是裝入r2。

//第三層拆了,不存在了。

djnz r2, delay2    //r2不為0,返回delay2,重新蓋第三層。

//r2為0,往下執行,第三層不蓋了,第三層不存在了。

pop 02h    //第二層出棧,棧內資料彈給r2,第二層拆了

djnz r2, delay1    //r2不為0,返回delay1,重蓋第二層。

//r2為0,往下執行,第二層不蓋了,第二層不存在了。

pop 02h    //第一層出棧,第一層拆了

djnz r2, delay0    //r2不為0,返回delay0,重蓋第一層。

//r2為0,往下執行,第一層不蓋了,整個大樓消失了。

ret3.看懂沒有,好好看看,仔細想想,相信你能弄懂!!!!

23樓:匿名使用者

為什麼用?其實呢,就是隻想用r2,不想用其它的暫存器了,可能是因為其它的暫存器都被用了。只用一個暫存器,延時的時間比較短,可是又要延時很長時間,就用這種方法了,入棧,再出棧。

讓人看了發懵。確實很少有人這麼寫,特立獨行吧。

每個人的程式設計習慣和想法是不同的,但,不管用什麼指令,只要能達到延時的目的就行。

所以,不必要去追糾別人程式,只要按自己的想法就好了。

這就是彙編寫程式的缺陷,用c語言寫程式就非常好理解了。

請問哪位高手用微控制器做過CAN匯流排

首先canbus是問答式的通訊方式報文最大長度11char 1仲裁場 共12位 bit10 bit9 bit8 bit7 bit6 功能編碼 bit5 bit4 bit3 目的地址 版bit2 bit1 bit0 源插地址 rtr遠端幀 2.控制場 權ide r0 dl3 dl2 dl1 dl0 0...

請問這段微控制器組合語言程式(關於定時器延時)是什麼意思

delay mov r3,14h 迴圈20次mov tmod,10h 定時器1工作於模式1 16位定時器 mov th1,3ch 賦初值,50毫秒溢位一次mov tl1,0b0h setb tr1 啟動定時器1 lp1 jbc tf1,lp2 溢位位為1,則清0後轉移到lp2 sjmp lp1 否則...

求大神指教,這個微控制器的引腳圖是用什麼軟體畫的?是不是什麼軟

這個當然是用altium desiger 畫的了,這個是專門的pcb繪製軟體,在這裡可以繪製一切元器件,晶片的原理圖的,前身是protel,很強大的 給個全圖啊 看著像走線 引腳是黑的 microsoft office excel 2003 應該是我猜的 像下面的積體電路引腳圖是用什麼軟體畫的。或者...