微控制器程式設計 define FOSC 1843200L是什么意思?define是怎么用的

2023-02-12 16:35:38 字數 2426 閱讀 4917

1樓:匿名使用者

定義 fosc 是個常量1843200唄 以後程式中的所有focs都用1843200替代

後面加個l 好像是指是long型別 也有加lu的 不加l就預設是int型 不是很專業 大概這個意思

2樓:程久生

你好,呵呵,這個值是預設的晶振頻率值

微控制器程式設計問題

3樓:匿名使用者

強制長整形,無論前面的數值是多大多小,固定長度為長整形。

具體位元組數取決於編譯器。

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

4樓:

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

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

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

5樓:漆雨

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

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

6樓:匿名使用者

餓。。。

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

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

具體的你自己查下麼。。

7樓:海獅

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語言預編譯時間問題

8樓:

(65536-time_per/time)/256

(65536-time_per/time)%256

#define time (12*1000000)/fosc

這裡進行了大量的實型資料的乘除運算,您可以看看程式生成的彙編,編譯器可能生成了大段的彙編來完成這些計算(您可以人工優化這段彙編試一試)。每次定時器中斷裡面都去計算,這樣耗費的時間太多了,造成了很大的誤差。改為直接數值代入,那就是幾句mov就完成了,所以能正常執行。

您可以對比一下微控制器產生正弦波,如果去計算y=sin x,那麼只能產生幾hz的。 微控制器沒有乘法器,雖然能較快地做加減和位移,但是多位元組的乘除對51微控制器來說,確實比較困難。多采用查表的方法來回避這種計算。

編譯器很可能出錯,產生大量的冗餘編碼,這是在實際應用中遇到過的,全靠人工優化(幾句c都搞出了將近1k的彙編,那個汗啊)。所以應該儘量避免這種程式設計方式。

9樓:唯武德馨一般幾

樓上的,你好像說的不對吧,你有沒有學過編譯原理。

巨集定義都是在編譯時就處理好了(屬於預處理,直接在編譯時處理好代進去用的),執行時並不佔用大量的實型資料運算。

8051微控制器程式設計,**求解釋?th1,tl1賦初值

10樓:潘達

就是波特率計算公式而已,這樣做的好處是,只要改變巨集設定就行,省得你使用不同波特率或晶振除錯都得先算一下波特率對應的計數器設定,萬一算錯了還麻煩。。。。

11樓:匿名使用者

是一個公式,這樣直接由軟體計算初值,不需要人工計算。

微控制器大神,這些語句什麼意思,最終實現了什麼功能,謝謝各位

12樓:匿名使用者

註釋的足夠詳細了,最終的實現的功能就是微控制器將ad轉換的結果從串列埠傳送出去。

急!微控制器程式設計求助,凌陽微控制器程式設計求救!著急!

mov a,50h 執行後a的值為50h儲存單元的值 即40h mov r0,a r0 40h mov a,00h mov r0,a r0 即40單元的值為00hmov a,3bh a的值為3bh單元的值,你得這段程式沒有給出,設為xx mov 41h,a 41h單元的值也為xxmov 42h,41...

STC微控制器PWM程式設計,STC微控制器PWM程式設計!

pwm 主要是定時器 和 暫存器的配置 只要配置合適 pwm就出來了 stc微控制器產生pwm,這有一個程式,有人能詳細解釋下它怎麼產生pwm波嗎,能逐句詳解嗎 哥們,這個已經很詳細了 大概說說吧,pwm 54 是定義的一組pwm脈寬輸出陣列,pwm脈寬輸出是0 255 0的時候脈寬輸出最大,255...

51微控制器程式設計,用C語言,51微控制器程式設計時彙編和C語言如何結合?

給你一個矩陣鍵盤的參考程式 行列掃描 通過高四位全部輸出低電平,低四位輸出高電平。當接收到的資料,低四位不全為高電平時,說明有按鍵按下,然後通過接收的資料值,判斷是哪一列有按鍵按下,然後再反過來,高四位輸出高電平,低四位輸出低電平,然後根據接收到的高四位的值判斷是那一行有按鍵按下,這樣就能夠確定是哪...