[爆卦]Keil C是什麼?優點缺點精華區懶人包

為什麼這篇Keil C鄉民發文收入到精華區:因為在Keil C這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者Aquatics (小瑞)看板C_and_CPP標題Re: [問題] 單晶片使用Keil C ?...


※ 引述《hotpot21 (小新)》之銘言:
: 大學時期學C(螞蟻書) 只是在電腦上Run
: 現在碰到單晶片使用Keil C,有看過相關程式、與51晶片的各接腳功能
: 有些地方一直搞不懂
: (程式主要是控制LCD的驅動IC)
: 請問。。。
: 1.程式裡的哪些變數才是對應到晶片上的接腳? 一直連結不起來 @@
: 怎麼設定 ?

查閱 8051的datasheet,裡面有SFR 位址定義
然後對照 Keil 的 .H 檔案,
例如

sfr P0 = 0x80;

就是將P0 宣告對應SFR的0x80
所以在C code裡面,使用P0 時,compiler 就會知道要去存取 0x80


: 2.初學者如何吸收才會較有效率?
: 又如果在"晶片控制LCD的驅動IC"方面來說 要如何學習與吸收?
多寫多看sample多debug


: 3.看到程式裡有如下:
: void WRITE(unsigned int cmd)
: {
: .
: .
: .
: .
: .
: XBYTE[0X01] = cmd ;
: }
: 請問 XBYTE[0X01] 是什麼意思?

能用 XBYTE 是因為有include "ABSACC.H"
裡面對XBYTE有定義

#define XBYTE ((unsigned char volatile xdata *) 0)

應用到xdata資料型態,在keil manual 裡面有說明

簡單來說,是使用組語 MOVX 指令來存取
至於MOVX的動作,datasheet 有時序圖說明


: 4. 譬如 location = 0X0000
: 只知道 0X0000 是16進制 但為何要 = 0X0000 ? 而不是一般的數@@
可以寫 location = 0
只是為了coding style 一致所以寫 0x0000
像 LCM = 0x8000
你也可以寫 LCM = 32768,compile 出來都一樣的

寫16進位對於製作外部decode 電路會比較清楚 。


: 麻煩各位前輩教導!! 原諒小弟的才疏學淺..
: 非常感謝各位

寫得沒有很詳細,建議你自己自己查書;會學得更多。
good luck

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.84.233.198
hotpot21:非常感謝你的耐心指導 1.詳細 懂了 2.了解 有推薦的書? 06/21 13:07
hotpot21:3.IC datasheet時序圖看不懂!! XBYTE定義 我再去研究一下 06/21 13:12
hotpot21:4. 0是十進制? 為了coding style是何意? 06/21 13:14
james732:KeilC的官網有說明文件可以看 建議初學者先去看一下 06/21 13:21
hotpot21:英文? 還是去看看!! 感謝 06/21 13:24
james732:是英文沒錯 不過不難讀 我英文很爛都看得懂了 XDDD 06/21 13:25
hotpot21:說不定我比你更爛XD!! 整個看完? 06/21 13:27
Aquatics:應急可先看相關部分,有空整個go through 一遍,以後查 06/21 13:30
Aquatics:比較快 :) 06/21 13:30
hotpot21:相關部分是? 總覺得都很關..連... XD 06/21 13:33
james732:用關鍵字去查吧 06/21 13:53
hotpot21:thanks 06/21 14:21
zlw:根據C/C++標準的規定,0就是0沒有幾進制,加上0x就是16進位, 06/21 14:25
zlw:如0xA;加上0就是八進制,如010其實是0x8;其他當然就是10進制 06/21 14:26
zlw:組合語言,記得好像是用10h中的h代表16進位,10b的b代表二進位 06/21 14:28
hotpot21:了解 感謝 06/21 14:30
VictorTom:其實應該是以 ?進制表示法 來表達一個數而已.... 06/21 19:34
VictorTom:那些constant不管用幾進制表示, 代表的數仍是相同的. 06/21 19:35
VictorTom:所以才會說只是為了維護coding style一致而已:) 06/21 19:35
hotpot21:?->什麼東東;coding style讓程式看起來易讀? 06/21 20:53
hotpot21:感謝解說 很詳細!! 06/21 20:54

你可能也想看看

搜尋相關網站