微控制器C51程式設計兩個問題(裡面詳細,歡迎高手)

時間 2021-09-01 18:48:17

1樓:匿名使用者

問題一:為什麼說delay(500)就是延時0.5s呢?

是估算的. c 不能精確定時, 通過調節 for(j=0;j<125;j++) 的 125的數值.

取125剛好接近 1ms.

我就做了好幾個 20us, 1ms, 1s,的delay程式. 把他們執行很多次後, 用秒錶核對. 1ms 程式也是用的125 這個值, 很接近1ms.

試過其他數值,執行1天后偏差很大.比如124. 一天後就差了10多分鐘.

delay(500)就是delay 500 個 1ms = 0.5s問題二:晶振週期 ×12 = 晶振頻率 / 12,應該知道為什麼了吧? 哈.

2樓:匿名使用者

1、這個函式需要看晶振及微控制器,得到一條指令的時間void delay(unsigned int i)}時間 = 500*一條for指令的時間。

2、看下書吧,書上解釋的很詳細。

3樓:匿名使用者

用medwin**軟體,可以**出一個執行一次delay函式的時間。

不同的微控制器或不同的晶振頻率,執行同一個函式的時間是不一樣的。

4樓:120馬恆偉

我們都初學,好好看看書吧

c51微控制器程式求助

sec cnt equ 30h sec 0x equ 31h org 0000h sjmp mian org 000bh sjmp int t0 mian mov sec cnt,20 mov sec 0x,00h mov tmod,01h mov th0,65536 50000 256mov tl...

微控制器C語言程式設計,51微控制器C語言程式設計

使用兩個定時器或一個定時器中使用兩個計數都能滿足你的要求。建議使用一個定時器和一個計數器即可,如計數器為i,則if i 測溫定時 0 溫度測量 if i 步進電機定時 0 步進電機控制 注 此時要求兩個控制模組的定時步長是一致,比如都是1ms 設定一個比較小的定時間隔,例如1ms,用靜態變數累加,比...

c51微控制器中斷程式中的interrupt1,2,3是由什麼決定的

中斷是指由於某種事件的發生 硬體或者軟體的 計算機暫停執行當前的程式,轉而執行另一程式,以處理髮生的事件,處理完畢後又返回原程式繼續作業的過程。中斷是處理器一種工作狀態的描述。1 int0 外部中斷0,由p3.2埠引入,低電平或下降沿引起。預設優先順序最高。2 int1 外部中斷1,由p3.3埠引入...