一 應廣微控制器的Mini C語言基礎

2021-08-19 18:34:48 字數 2082 閱讀 3010

一、概述

專案需要價效比高一點的晶元,在澄海這邊,台灣的晶元佔了很大的市場。台灣晶元的特點是便宜,沒辦法,玩具出口生產量太大,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.非常不錯 那麼應廣微控制器的低功耗和按鍵喚醒...