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

2022-11-28 15:25:08 字數 2426 閱讀 4300

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轉換的結果從串列埠傳送出去。

C語言程式設計,微控制器,微控制器C語言程式設計程式設計,一臉懵,求大佬們教我

一點都不會做不應該的,你寫出來,可以幫你修改 如按鍵如何獲取,定時器如何設定等等,基本都是照抄例程的 微控制器c語言程式設計程式設計,一臉懵,求大佬們教我 是要 實現呢?還是在開發板上實現?這種程式,你可以在這裡搜尋到答案的。求一個簡單的51微控制器c語言程式設計 機的外部結構 1.dip40 雙列...

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

51微控制器程式設計時彙編和c語言如何結合?51系列微控制器混合程式設計時候 c語言定義的變數如何傳遞到組合語言?10 一般建議在組合語言裡定義變數,c語言的變數受很多因素影響,不一定都可以傳遞給彙編。大部分c語言全域性變數可以直接在彙編中使用,區域性變數不是特別熟悉不要亂用,容易受到優化的影響。一...

學習微控制器用什麼軟體?微控制器程式設計用什麼軟體

微控制器不是一交就會的你買一個模型 就有!完後好像是給你一本書你對著書上的做就ok了慢慢就會了!或者你搜搜微控制器電子版圖書看看就ok了。1 學習微控制器最好從51系列開始。2 過去普遍採用彙編,但建議用目前普遍的c語言。3 開發環境用keil c 4 會c不一定會開發微控制器,況且微控制器c語言與...