微控制器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微控制器程式設計

include define uchar unsigned char define uint unsigned intsbit high key p1 0 sbit low key p1 1 sbit led p2 0 sbit speak p2 1 uint count void delay ui...

51微控制器,C51程式問題,望前輩優化或者給好的編寫建議,分數有很多哈。。謝謝

我前幾天就做了一個差不多的,監測脈衝數,每個脈衝數對應一個資料,資料差值比較大,每次採集的脈衝數會有波動,如果直接現實會出行資料跳動的情況。要做出一個資料穩定的,但是有變化時又要及時反映出來。比如說資料平穩後突然來一個大資料,就需要對這個干擾濾除,如果之後的資料都變為大資料了,那麼我就要在這個資料點...

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

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