![]() |
發布時間: 2022-5-5 16:41
正文摘要:本帖最后由 xiaoyuxinke 于 2022-5-8 14:11 編輯 本程序無需DS1302,無需定時器,另本程序使用匯編語言編寫,只要按所使用的晶振修改延時部分,可以做到一年誤差5秒以內. 視頻已上傳至優酷,需要的可以看一下.https:/ ... |
songxia8013 發表于 2023-2-10 15:49 DJNZ R6,[ DISCUZ_CODE_1 ]nbsp; 這個原來是DJNZ R6,$ 壇子里發不了$,所以自動轉成那樣了 |
鵜鶘 發表于 2023-10-22 10:58 匯編的移植性本來就不太友好,這是公認的缺點,所以這個我只能呵呵了 |
宏達工控 發表于 2023-10-22 10:00 我還要工作,沒太多時間來這里,只是偶然過來看看,所以實在報歉 |
songxia8013 發表于 2023-2-10 15:49 原程序中是: DJNZ R6,$ 但是壇子里不讓發$這個符號,所以變成這樣了 |
鵜鶘 發表于 2023-10-22 09:42 R6中的數減一,如果不為0原地執行, 就是說R6中的數不為0就重復執行這句, 直到R6等于0,才跳到下一句。 |
剛試了下,可以編譯,結果是-2,這樣就省了個標號,這在Keil中行得通,在其他的匯編環境中不知怎樣,這不是個標準用法,第一次看到。 |
xiaoyuxinke 發表于 2022-5-8 14:05 樓主既然對匯編熟系,對OD跟蹤 WINhex這些一定也不陌生吧,能不能出個教程,工業控制上經常用 |
xiaoyuxinke 發表于 2023-2-12 12:37 是啊,就是這個DJNZ R6,$是什么意思呢? 遍觀整個程序中并沒有這個標號,跳到哪里去呢? |
如果環境溫度不變更的情況下,時鐘可以做得很準(不管是匯編還是C) |
Dream匯編男孩 發表于 2023-4-25 16:55 什么問題,工只是業余來一下這里,平時工作較忙。 |
您好,我想問你點關于單片機匯編的問題可以嗎?我是個新手小白,在做設計遇到了一些問題不知道咋解決想找您幫個忙。如果不方便的話就算了,叨嘮您了,不好意思啊 |
songxia8013 發表于 2023-2-10 15:49 看我前面發的圖片上面就知道了 |
請教一下,這個DJNZ R6,[ DISCUZ_CODE_1 ]nbsp; 是什么意思? |
fsj5098 發表于 2022-5-26 17:40 整個程序沒用到中斷,為什么要用中斷呢 |
不管是c還是匯編,中斷操作肯定影響計時 |
不錯,我也是喜歡匯編!!! |
風云101 發表于 2022-5-9 23:53 喜歡就好,喜歡的才是適合自己的. |
madell 發表于 2022-5-6 18:53 說的對,這是匯編的優點,C和匯編各有優缺點. |
axiongzhang 發表于 2022-5-6 20:03 匯編并不是很難的,有人教就可以 |
就喜歡匯編的可操作性,就好比開車一樣,我自己握方向盤總比使喚別人握方向盤爽的多,當然使喚別人握方向盤肯定輕松多(類似C語言),但缺少那份激情,我喜歡匯編也是這原因,別跟我算法,我就編個時鐘或者一個手電筒控制程序,你跟我談算法 |
本人不會C,所以只好匯編充大頭了,各位見笑/![]() |
看不懂匯編程序,失敗 |
厲害,匯編做的延時是很精確的,直擊底層,是C無法比擬的。 |
如果加上年累積誤差校正,一年走時誤差控制在1秒以內是做的到的(這里只計論走時誤差,晶振的熱穩定誤差不討論,那個是元件性能決定的) |
heicad 發表于 2022-5-6 16:13 去理解一下C和匯編的差別,你會懂,一個匯編NOP指令,最多2-3微秒的時間,一個24M的晶振,幾微秒,一年誤差不會超過5秒種. 在C語言中,延時只是個模糊概念,不管你寫延時多少都不一定,要看編譯器怎么去做,但匯編語言你寫延時多少就是多少,可以做到很精準. |
一般來說 是不可能達到一年幾秒誤差的精度的,樓主測試過嗎? |