我剛學微控制器的,我需要編寫延時40ms的子程式,但不懂如何入

時間 2021-08-11 15:58:11

1樓:匿名使用者

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

軟體延時就是靠編寫迴圈程式讓其迴圈執行來達到延時目的,另一種方法是硬體延時,用微控制器內部的定時器來產生延時效果,這種方法不佔用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,這個涉及到的東西較多,我就不具體說了,你可以檢視微控制器的相關書籍,上面講的很詳細。

2樓:匿名使用者

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

51微控制器求用組合語言編寫延時1小時的子程式要

延時一小時,這麼長,應該要用定時器,不能用迴圈的方式。org 00h ajmp main org 0bh ajmp t0int0 org 30h main mov sp,60h mov r4,20 mov tmod,01h mov th0,3ch 12m晶振時定時初值取 3cb0h,還可細調如 tl...

我寫的微控制器軟體延時程式在arm中卻不能用

你可能沒有理解延時程式的實質吧 延時 cpu每執行一條指令都需要耗一定的時間,一般為主頻週期的整數倍,只要知道一些指令所耗時間,這些時間都是和cpu彙編指令系統嚴格對應的,而c 要弄清楚的話,最好反彙編一下,看它對應的彙編指令,然後準確計算 就像for i 0 i 120 i 這條 i自加,然後與1...

我是剛學微控制器的菜鳥,高手幫幫忙啊,利用動態掃描顯示法,,讓

include reg51.h include intrins.h include math.h unsigned char code data led 17 數碼管顯示段碼 sbit wd p3 6 void delay unsigned char i unsigned char kzw 位碼vo...