一、概述
專案需要價效比高一點的晶元,在澄海這邊,台灣的晶元佔了很大的市場。台灣晶元的特點是便宜,沒辦法,玩具出口生產量太大,1分錢的差價都有可能累積出大價錢。選型時選了應廣微控制器。對於用慣了c開發的人,用彙編來開發還是有些抗拒的。看了一下簡介,應廣微控制器支援mini-c語言,一看就跟c語言有關,我們來了解一下:
二、mini-c介紹
應廣科技的mini-c語法結構,是一種界於標準c和彙編的一種語言,對於小資源的mcu來說,該語法非常精簡實用。
也就是說,對比匯程式設計序,它的編寫方法基本保留了c語言的風格。非常適合剛入手這款晶元的朋友。
三、基礎規則
1、變數定義:大多數新手在c51中用 unsigned char 定義8位變數,unsigned int 定義16位變數,但是在mini-c裡。實驗使用: byte 為 8-bit 資料型態;
word 為 16 bit;
eword 為 24 bit;
dword 為 32 bit。
相當於 #define byte unsigned char ; #define word unsigned int 已經內部幫你設定好了。對比中應該看到我用了大寫,我們知道在彙編中,沒有大小寫的區分,在這個 mini-c 語言中,也沒有大小寫的區分。
所有的 word 變數,皆可以當 point 使用。讀取 rom 的方法,一般有如下三種語法:
○ *point$l (取 low byte)。
○ *point$h (取 high byte)。
○ *point$w (取 word)。
四、程式表達
c語言作為面向過程的語言,在這個mini-c裡表現的尤為徹底,先說乙個短板,函式表示式不能帶引數,也不能傳出引數。這個玩法確實有點坑,不過好在彙編的語法它也支援一點,這樣就好辦了,我們用 累加器a 充當幫運工,帶進資料和帶出資料。
優點在於,程式表達是保留了很多指令,這就為程式設計提供了很好的便捷性了。舉個例子:
word ww;
bit bit_1;
bit_1 = 1; // 等同於 set1 bit_1
bit_1 = 0; // 等同於 set0 bit_1
ww.15 = 1; // 等同於 set1 ww.15,等同於 set1 [email protected]
.delay 50; //延時50個指令週期
通過查閱晶元的中文手冊,即可得到晶元支援的指令。對於未知指令是否支援,也可以使用一下方法來查詢:
語法:_sys(op:指令) : 如果指令存在,則回傳 1。
指令的格式,採用各系列 ic 的 datasheet 的指令集命名方法。
#if _sys (op:swapc io.n) // 判斷是否有 swapc io.n 的指令
swapc_ equ swapc // 將 swapc_ 直接代換成 swapc 指令
#else
swapc_ macro iob // 以巨集指令取代 swapc 指令
iob = 0;
t0sn cf;
iob = 1;
endm
#endif
swapc_ io_bit; // swapc_ 就可變成通用命令。
其他類似命令,如 _sys (op:comp a i) // a 跟立即值比較
_sys (op:pushw index) // pushw word_memory
_sys (op:swap m) // swap byte_memory
_sys (op:xor io a) // xor register, a
_sys (op:stopexe) //
_sys (op:pmode n) //
都可以用來判斷指令是否支援。
應廣微控制器adc 應廣微控制器選型表 2014
series 系列型號 fppa 核心數otp rom k word ram byte adc bit ch i olcd bit ch pwmint special functions package re.pms150 s08 sop8 2501c,12c509 pmc150 s08 sop8 ...
應廣微控制器adc 應廣微控制器adc和pwm例程
應廣微控制器otp單核系列主要有以下幾個系列,15x系列為純io,13x系列為帶12bit的adc,17x系列為帶8bit的adc,現在我用pms132b寫個adc pwm例程,方便大家快速上手.不多說,上 include extern.h adc word usadcsum word usadcs...
應廣微控制器休眠和按鍵喚醒
對應電池供電的產品,在不使用的時候,微控制器和外設都應該進入休眠狀態,用於減少對電池電量消耗.在使用的時候又能夠通過按鍵,或是其他訊號喚醒系統,然後進入正常工作狀態.在電壓v3.3v的情況下,應廣微控制器的休眠電流幾乎在2ua以下,經常測到都是一點幾ua.非常不錯 那麼應廣微控制器的低功耗和按鍵喚醒...