麻煩逐條詳細寫以下程式(微控制器C語言)的解釋

時間 2021-08-30 11:20:55

1樓:

上面有很多中斷和定時器的東西,可參考有關書籍,沒多複雜。ie=0x40就相當於是ie=0x00,01000000,00000000,其中有1的那一位不起作用。它是ie中斷暫存器。

10ms是波特率相關,硬體決定的,初期可以查表確定裝載的數值。

前一部分程式是延時的,猜測後一部分是4*4鍵盤的吧。具體可以hi我。

2樓:漆雨

……無敵型的……c語言你懂……彙編不行?

至少偶木有發現彙編**……幾乎全是c語言的。所以你不需要注釋……

3樓:匿名使用者

餓。。。

你問的都是c裡面的 預處理指令。具體的你自己去查一下,1. #define 巨集名 巨集定義字串2. # ifdef 識別符號

10ms這種是和硬體有關的,這裡就是你微控制器的timer.

具體的你自己查下麼。。

4樓:海獅

fosc估計是晶振頻率。

原理就是設定後會一直累加,當溢位(2^16=65536)時,觸發et2。

但是ie=0x40時et2中斷才能被接受。

硬體參考table 5裡面有ie的值的含義,太長,不在描述。

如果主頻是24mhz

10ms就是24mhz*0.01s=0.24m如果主頻是18.432mhz

10ms就是18.432mhz*0.01s=0.18432m#define timer2h 0xb1 //10ms#define timer2l 0xe0

timer2=0xb1e0 = 45536每次計數時間=(2^16-45536)*12=0.24m硬體參考的2-89頁有詳細的描述和計算方法。

你直接去看at89s51的參考手冊好了。

程式設計參考:

硬體參考:

這個一定要給分!幫你把公式算出來了!

下面這段微控制器c語言程式是一段濾波函式?是什麼意思麻煩給講解一下

5樓:匿名使用者

其實你拿紙筆算一下就能看出來,這是乙個四次均值濾波。

緩衝區的值加上最新取樣值以後,乘以四分之三(最新取樣值的權值為四分之一)。

6樓:匿名使用者

getadc(1); //ad轉換開始函式

current_buf += adcr; //將baiad值du疊加

currentval =(word)(current_buf>>2); //8位ad,配置的是zhi左對齊,dao要右移兩位得到正確值

current_buf -= currentval; //感覺不是濾波,版

不清楚這行的目權的。

微控制器程式錯誤,51微控制器c語言程式錯誤

後面兩個錯誤是沒有宣告函式,最簡單的方法就是把main函式調到程式的最後,你看看還有沒有錯誤,我們 hhh.c 113 error c211 call not to a function這個呼叫函式名不存在 hhh.c 114 error c211 call not to a function這個呼...

51微控制器c語言程式注釋標註,51微控制器C語言程式注釋標註

四喜丸子 按鍵掃瞄顯示程式,這有什麼難的?自己每一句照著分析分析不就行了。微控制器c語言程式設計,中間幾段程式注釋不會寫,一些步驟看不懂,望講解 20 考試翻版 微控制器的東西要看晶元的資料手冊,裡面有很多講解,其實微控制器裡特定的位址代表了微控制器特定的功能,你賦特定的值就會啟動或關閉功能,微控制...

我一直使用C語言寫微控制器程式,不太清楚程式進入中斷後,一系列PUSH到底是把ACC,PSW等

push指令是把所要儲存的資料存到內部資料儲存器裡,也就是內部ram,具體哪個地址要看sp堆疊指標的指向,如果預設sp為07h的話,那麼存的空間地址就從08h開始。這些值都是可以用直接定址呼叫的,想幹什麼都行。但記著在中斷程式返回前把它們按照順序pop回原來的暫存器裡。 你用c語言程式設計的時候不看...