• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    單片機(jī)模塊化多輸出值C函數(shù)的編程實(shí)現(xiàn)

    2016-06-24 02:38:58李加明
    關(guān)鍵詞:模塊化

    李加明

    (南京航空航天大學(xué) 2015級(jí)工科研究試驗(yàn)班,南京 211106)

    李加明

    (南京航空航天大學(xué) 2015級(jí)工科研究試驗(yàn)班,南京 211106)

    摘要:單片機(jī)C標(biāo)準(zhǔn)編程不能實(shí)現(xiàn)函數(shù)的多個(gè)輸出值,目前常用的全局變量法雖可變通實(shí)現(xiàn),但破壞了函數(shù)的模塊化原則。本文突破一些常規(guī)思維,探索出兩種類型的多種模塊化多輸出值C函數(shù)的編程方法,并提出了新式的C函數(shù)語法規(guī)則,實(shí)現(xiàn)了較為規(guī)范通用的模塊化多輸出值C函數(shù)的編程。本方法編程思路新穎,具有較高的技術(shù)實(shí)用價(jià)值。

    關(guān)鍵詞:C函數(shù);多輸出值;模塊化;MCU

    引言

    函數(shù)是單片機(jī)與嵌入式系統(tǒng)C語言程序的核心,標(biāo)準(zhǔn)C函數(shù)定義遵循y=f(x1,x2,…,xn)的數(shù)學(xué)形式,其中x1,x2,…,xn為代表函數(shù)各輸入值的形式參數(shù),y為函數(shù)唯一的輸出值。函數(shù)調(diào)用以輸入值實(shí)際參數(shù)代替形式參數(shù),經(jīng)運(yùn)算后由return語句返回一個(gè)輸出值。

    但在實(shí)際應(yīng)用中,往往希望函數(shù)能有多個(gè)輸出值,例如用于工業(yè)控制的西門子S7-300/400可編程控制器程序中,其具有函數(shù)功能的FC、FB、SFC、SFB塊均可直接實(shí)現(xiàn)多輸出值。相比之下,標(biāo)準(zhǔn)C函數(shù)不能直接實(shí)現(xiàn)多輸出值,其功能存在明顯的不足。

    當(dāng)需要C函數(shù)有多輸出值時(shí),可將一個(gè)函數(shù)分為幾個(gè)函數(shù)實(shí)現(xiàn),但從算法和效率考慮顯然極不合理。目前通常采用全局變量法變通實(shí)現(xiàn):由return語句正常返回一個(gè)輸出值,其余輸出值均由另設(shè)的全局變量獲得,但函數(shù)的模塊化原則遭到了極大破壞。

    實(shí)現(xiàn)模塊化原則的任意多輸出值的C函數(shù)有很大的技術(shù)需求價(jià)值,值得探索。筆者在C語言編程學(xué)習(xí)中,摸索并試驗(yàn)成功了兩大類多種模塊化多輸出值C函數(shù)的編程方法。各例程分別在軟件Keil C51V9.00與8位機(jī)STC90C516RD+、軟件CCS5.2.1.00018與16位機(jī)MSP430F6638、軟件Keil MDK5.14.0.0與32位機(jī)STM32F103RBT6平臺(tái)編譯下載并運(yùn)行通過。其中,16位機(jī)MSP430F6638和32位機(jī)STM32F103RBT6芯片均具備直接的硬件在線運(yùn)行調(diào)試功能,文中選取了對(duì)應(yīng)的CCS5.2.1.00018和Keil MDK5.14.0.0軟件觀察硬件運(yùn)行結(jié)果畫面。

    51核8位機(jī)STC90C516RD+芯片自身不具備硬件在線運(yùn)行調(diào)試功能,故在Keil C51V9.00軟件仿真運(yùn)行成功基礎(chǔ)上添加代碼,通過其串行口向PC機(jī)發(fā)送硬件運(yùn)行結(jié)果,由PC機(jī)側(cè)串行口軟件觀察硬件運(yùn)行結(jié)果。對(duì)于大多數(shù)不具備硬件在線運(yùn)行調(diào)試功能的8位單片機(jī)芯片,這樣的硬件運(yùn)行調(diào)試方法是非常實(shí)用且必要的。文中給出了添加串行口功能的程序和PC機(jī)側(cè)串行口軟件XCOM觀察的硬件運(yùn)行結(jié)果畫面。

    1標(biāo)準(zhǔn)C函數(shù)的定義與調(diào)用

    標(biāo)準(zhǔn)C函數(shù)返回一個(gè)輸出值的程序如下:

    int func(int a,int b){/*函數(shù)定義*/

    int y; y=a+b; return(y); }/*返回一個(gè)輸出值*/

    int main(void){

    int n1,n2;/*輸入*/

    int sum;/*輸出*/

    while(1){

    n1=-132;n2=-12; sum=func(n1,n2);}

    }/*函數(shù)調(diào)用*/

    此例是標(biāo)準(zhǔn)C函數(shù)的定義與調(diào)用:函數(shù)形式參數(shù)表僅包括各輸入量,唯一輸出量由函數(shù)體return語句返回。函數(shù)采取“輸出量=函數(shù)名(輸入量表)”的格式定義與調(diào)用。

    全局變量法實(shí)現(xiàn)標(biāo)準(zhǔn)C函數(shù)的多個(gè)輸出值如下:

    int sum; /*全局變量sum:函數(shù)的另一輸出值*/

    int func(int a,int b){/*函數(shù)定義*/

    int subs;

    subs=a-b;/*一個(gè)輸出值為局部變量subs*/

    sum=a+b;/*另一輸出值為全局變量sum*/

    return(subs);

    }/*正常返回一個(gè)輸出值subs*/

    int main(void){

    int n1, n2;/*輸入*/

    int sub;/*輸出*/

    while(1){

    n1=-132;n2=-12; sub=func(n1,n2);}

    }/*由函數(shù)調(diào)用獲得一個(gè)輸出值sub,另一輸出值由全局變量sum獲得*/

    此例為目前實(shí)現(xiàn)標(biāo)準(zhǔn)C函數(shù)多輸出值常用的全局變量法:函數(shù)func由return返回一個(gè)輸出值sub,另一輸出值sum也需由函數(shù)func計(jì)算,但函數(shù)只能返回一個(gè)輸出值,故只得將sum定義為在函數(shù)func與調(diào)用func的main程序中均有效的全局變量,變通實(shí)現(xiàn)函數(shù)func的兩個(gè)輸出值。

    全局變量法可變通實(shí)現(xiàn)函數(shù)的多輸出值,因而應(yīng)用廣泛。但此方法的函數(shù)體內(nèi)包括了作為輸出量的全局變量,破壞了函數(shù)“模塊自身內(nèi)聚,模塊間不耦合”的模塊化原則,致使函數(shù)無法獨(dú)立、難以移植共用,且極大降低了編程的可靠性與清晰性。

    2維持標(biāo)準(zhǔn)C函數(shù)語法規(guī)則的改進(jìn)編程

    標(biāo)準(zhǔn)C函數(shù)只能由return直接返回一個(gè)輸出值,可對(duì)這個(gè)輸出值進(jìn)行思路拓展:C語言有一種構(gòu)造數(shù)據(jù)類型“結(jié)構(gòu)”,能包含多個(gè)不同類型的數(shù)據(jù)成員,但對(duì)外卻可以作為一個(gè)數(shù)據(jù)單位出現(xiàn)。若運(yùn)用return直接返回一個(gè)結(jié)構(gòu)變量,也符合標(biāo)準(zhǔn)C函數(shù)的語法規(guī)則。函數(shù)定義時(shí)可將所需的多個(gè)輸出量匯集到一個(gè)專用結(jié)構(gòu)變量中,調(diào)用后逐個(gè)拆分讀取返回的結(jié)構(gòu)變量的數(shù)據(jù)成員,則可間接獲得函數(shù)的多個(gè)輸出值。

    如下面的例程中,函數(shù)定義將各輸出量匯集定義到結(jié)構(gòu)中,仍采用標(biāo)準(zhǔn)C函數(shù)的格式調(diào)用:OUT=calc(n1,n2),多個(gè)輸出值可由結(jié)構(gòu)OUT的成員OUT.sum、OUT.sub、OUT.mul、OUT.div間接獲得。CCS5.21.00018與Keil MDK5.14.0.0觀察的硬件在線調(diào)試運(yùn)行結(jié)果略——編者注。

    typedef struct{

    int sum; int sub;

    unsigned int mul; unsigned char div;

    }result;

    /*定義專用結(jié)構(gòu)result,匯集4個(gè)輸出量*/

    result calc(int a,int b){/*函數(shù)定義*/

    result c;

    c.sum=a+b; c.sub=a-b; c.mul=a*b; c.div=a/b;

    return(c); }/*返回一個(gè)結(jié)構(gòu)變量*/

    int main(void){

    int n1,n2;/*輸入*/

    volatile result OUT;

    /*輸出,默認(rèn)條件,CCS和KeilMDK編譯時(shí)此處需添加volatile,而KeilC51編譯時(shí)此處無需volatile,詳細(xì)見后文敘述*/

    while(1){

    n1=-132;n2=-12;

    OUT=calc(n1,n2);}/*函數(shù)調(diào)用*/

    }

    對(duì)于51核8位機(jī)STC90C516RD+,由于芯片自身不支持硬件在線運(yùn)行調(diào)試功能,故在Keil C51V9.00軟件仿真運(yùn)行成功基礎(chǔ)上添加代碼,通過其串行口及printf()函數(shù)向PC機(jī)發(fā)送硬件運(yùn)行結(jié)果,程序略——編者注。

    由PC機(jī)側(cè)串口軟件XCOM觀察的硬件運(yùn)行結(jié)果略——編者注。

    本方法是維持標(biāo)準(zhǔn)C函數(shù)語法規(guī)則的改進(jìn)方法,通過結(jié)構(gòu)間接實(shí)現(xiàn)函數(shù)的多輸出值,結(jié)果正確、實(shí)用。標(biāo)準(zhǔn)C函數(shù)return不能直接返回多個(gè)輸出值,所以函數(shù)定義時(shí)需另行定義一個(gè)專用結(jié)構(gòu)變量并將期望的多個(gè)輸出量以成員方式匯集定義到其中,函數(shù)調(diào)用后還需對(duì)返回的唯一結(jié)構(gòu)變量進(jìn)行成員拆分讀取才可獲得期望的多輸出值,編程與數(shù)據(jù)操作均顯復(fù)雜繁瑣。

    3重新設(shè)計(jì)新式C函數(shù)語法規(guī)則的編程

    標(biāo)準(zhǔn)C函數(shù)的形式參數(shù)表僅包括輸入量,輸出量只能依靠return返回,這正是其不能直接實(shí)現(xiàn)多輸出值的根源。為了從根本上解決問題,突破常規(guī)思維,放棄標(biāo)準(zhǔn)C函數(shù)的語法規(guī)則,重新設(shè)計(jì)可直接實(shí)現(xiàn)多輸出值的新式的函數(shù)定義與調(diào)用語法規(guī)則:①函數(shù)體中完全取消return語句,再不用return返回輸出值;②將函數(shù)期望的多個(gè)輸出量與輸入量共同納入形式參數(shù)表。

    新式C函數(shù)的定義與調(diào)用形如:f(x1,x2,…,xn,y1,y2,…,yn),即“函數(shù)名(輸入量表,輸出量表)”格式,函數(shù)體內(nèi)完全取消return語句。采用新式函數(shù)語法規(guī)則,沒有原標(biāo)準(zhǔn)語法規(guī)則的不足限制,可靈活自由地實(shí)現(xiàn)多種通用規(guī)范的結(jié)構(gòu)化多輸出值C函數(shù)的編程方法。

    3.1數(shù)組法

    下面的例程中,函數(shù)的多個(gè)輸出量用數(shù)組result[]定義,函數(shù)以calc(n1,n2,res)格式調(diào)用,輸出的res數(shù)組的元素res[0]、res[1]、res[2]、res[3]即為函數(shù)的多個(gè)輸出值。CCS5.21.00018與Keil MDK5.14.0.0觀察的硬件在線調(diào)試運(yùn)行結(jié)果略——編者注。

    void calc(int a,int b,int result[]){

    /*新語法規(guī)則函數(shù)定義:輸入輸出量均納入形式參數(shù)表,取消return語句*/

    result[0]=a+b; result[1]=a-b;

    result[2]=a*b; result[3]=a/b;}

    int main(void){

    int n1,n2; /*輸入*/

    int res[4]; /*輸出*/

    while(1)

    { n1=-132;n2=-12; calc(n1,n2,res);}

    } /*新語法規(guī)則函數(shù)調(diào)用*/

    對(duì)于51核8位機(jī)STC90C516RD+,由于芯片自身不支持硬件在線運(yùn)行調(diào)試功能,故在Keil C51V9.00軟件仿真運(yùn)行成功基礎(chǔ)上添加代碼,通過其串行口及printf()函數(shù)向PC機(jī)發(fā)送硬件運(yùn)行結(jié)果,程序略——編者注。

    由PC機(jī)側(cè)串口軟件XCOM觀察的硬件運(yùn)行結(jié)果略——編者注。

    函數(shù)多個(gè)輸出值的數(shù)據(jù)類型相同時(shí),只需定義一個(gè)數(shù)組;如多個(gè)輸出值的數(shù)據(jù)類型不相同,只需依據(jù)其數(shù)據(jù)類型歸類定義多個(gè)數(shù)組即可,數(shù)組的個(gè)數(shù)不受限制。

    3.2“宏函數(shù)”法

    本方法以帶參數(shù)的宏來定義類似函數(shù)功能的“宏函數(shù)”,宏的參數(shù)表包括全部輸入與輸出量。例程中,宏以CALC(n1,n2,sum,sub,mul,div)格式調(diào)用后即可直接獲得所需的多個(gè)輸出值sum、sub、mul、div。CCS5.21.00018與Keil MDK5.14.0.0觀察的硬件在線調(diào)試運(yùn)行結(jié)果略——編者注。

    #define CALC(a,b,summ,subs,mult,divi){

    (summ)=(a)+(b); (subs)=(a)-(b);

    (mult)=(a)*(b); (divi)=(a)/(b);}

    /*新語法規(guī)則“宏函數(shù)”定義:輸入輸出量均納入形式參數(shù)表,取消return語句*/

    int main(void){

    int n1,n2;/*輸入*/

    volatile int sum, sub, mul;

    volatile unsigned char div;/*輸出,默認(rèn)條件,CCS和KeilMDK編譯時(shí)此處需添加volatile,而Keil C51編譯時(shí)此處無需volatile,詳細(xì)見后文敘述*/

    while(1){

    n1=-132; n2=-11;

    CALC(n1,n2,sum,sub,mul,div);}

    } /*新語法規(guī)則“宏函數(shù)”調(diào)用*/

    對(duì)于51核8位機(jī)STC90C516RD+,由于芯片自身不支持硬件在線運(yùn)行調(diào)試功能,故在Keil C51V9.00軟件仿真運(yùn)行成功基礎(chǔ)上添加代碼,通過其串行口及printf()函數(shù)向PC機(jī)發(fā)送硬件運(yùn)行結(jié)果,程序略——編者注。

    由PC機(jī)側(cè)串口軟件XCOM觀察的硬件運(yùn)行結(jié)果略——編者注。

    用宏代替函數(shù)有如下優(yōu)點(diǎn):①函數(shù)的形式參數(shù)類型在定義時(shí)即已固定,實(shí)際參數(shù)類型必須由編程定義與之保持一致,不能自動(dòng)匹配,編程不便;而宏的參數(shù)類型完全由調(diào)用時(shí)的實(shí)際參數(shù)確定,數(shù)據(jù)類型自然自動(dòng)匹配,編程簡(jiǎn)便。②函數(shù)調(diào)用要付出為形式參數(shù)分配臨時(shí)單元及現(xiàn)場(chǎng)保護(hù)恢復(fù)等額外代碼的時(shí)間開銷;而宏調(diào)用的實(shí)質(zhì)是在編譯階段就已完成的代碼中展開,運(yùn)行時(shí)完全不存在函數(shù)上述的額外時(shí)間開銷,故運(yùn)算速度明顯快于函數(shù)。

    宏的不足是:宏多次調(diào)用時(shí),每次均會(huì)展開一套大部分相互重復(fù)的代碼,最終的程序代碼比函數(shù)調(diào)用方式的大。但目前單片機(jī)的程序存儲(chǔ)器足夠大,速度更為重要,所以,“宏函數(shù)”在運(yùn)算速度及參數(shù)類型自動(dòng)匹配方面具備獨(dú)特應(yīng)用價(jià)值。

    3.3指針法

    研究C語言的指針,總結(jié)并成功驗(yàn)證本方法:函數(shù)定義時(shí),各輸出量形式參數(shù)均冠以符號(hào)*,以指針方式定義;函數(shù)調(diào)用時(shí),各輸出量實(shí)際參數(shù)前均冠以地址符&。例程中,函數(shù)各輸出量形式參數(shù)為summ、subs、mult、divi,故定義格式為:

    void calc(int a,int b,int *summ,int *subs,unsigned int *mult,unsigned char *divi)

    函數(shù)各輸出量實(shí)際參數(shù)為sum、sub、mul、div,故調(diào)用格式為:

    calc(n1,n2,&sum,&sub,&mul,&div)

    CCS5.21.00018與Keil MDK5.14.0.0觀察的硬件在線調(diào)試運(yùn)行結(jié)果略——編者注。

    void calc(int a,int b,int *summ,int *subs,unsigned int *mult,unsigned char *divi){

    *summ=a+b; *subs=a-b; *mult=a*b; *divi=a/b;}

    /*新語法規(guī)則:輸入輸出量均納入形式參數(shù)表,取消return語句。函數(shù)各輸出量形式參數(shù)均以其指針定義;函數(shù)體內(nèi)采用對(duì)指針形式參數(shù)指向的值賦值的方式實(shí)現(xiàn)對(duì)各輸出量的賦值*/

    int main(void) {

    int n1,n2;/*輸入*/

    int sum,sub;

    unsigned int mul;

    unsigned char div;/*輸出*/

    while(1){

    n1=-132; n2=-12;

    calc(n1,n2,&sum,&sub,&mul,&div);}

    }/*函數(shù)調(diào)用:各輸出值的實(shí)際參數(shù)sum,sub,mul,div前均冠以地址符& */

    對(duì)于51核8位機(jī)STC90C516RD+,由于芯片自身不支持硬件在線運(yùn)行調(diào)試功能,故在Keil C51V9.00軟件仿真運(yùn)行成功基礎(chǔ)上添加代碼,通過其串行口及printf()函數(shù)向PC機(jī)發(fā)送硬件運(yùn)行結(jié)果,程序略——編者注。

    由PC機(jī)側(cè)串口軟件XCOM觀察的硬件運(yùn)行結(jié)果略——編者注。

    本方法概括為,當(dāng)函數(shù)輸入為x1,x2,…,xn、輸出為y1,y2,…,yn、函數(shù)名為f 時(shí),函數(shù)定義格式為:

    f(x1,x2…xn,*y1,*y2…*yn)

    調(diào)用格式為:

    f(x1,x2…xn,&y1,&y2…&yn)

    與數(shù)組法比較,不同數(shù)據(jù)類型的多個(gè)輸出量不需歸類定義;與“宏函數(shù)”法比較,是完全規(guī)范的函數(shù)定義與調(diào)用。相比前述的模塊化多輸出值C函數(shù)的編程方法,在函數(shù)定義與調(diào)用方面,本方法的編程風(fēng)格最為規(guī)范化。

    4兩類結(jié)構(gòu)化多輸出值函數(shù)編程的比較

    4.1維持標(biāo)準(zhǔn)C函數(shù)語法規(guī)則的改進(jìn)編程

    此方法的函數(shù)參數(shù)表仍僅包括輸入量,仍保留函數(shù)體return返回輸出量,故受到標(biāo)準(zhǔn)C函數(shù)語法不足的限制,編程與數(shù)據(jù)操作均顯復(fù)雜繁瑣,不是函數(shù)多輸出值編程的最好方法。

    4.2重新設(shè)計(jì)新式C函數(shù)語法規(guī)則的編程

    此類方法打破標(biāo)準(zhǔn)C函數(shù)語法的思路限制,取消了函數(shù)體return語句,將輸入與輸出參數(shù)全部納入?yún)?shù)表,依此方法重新設(shè)計(jì)的新式函數(shù)語法規(guī)則回避了原標(biāo)準(zhǔn)C函數(shù)的固有不足。

    雖然無法推翻C語言的基本語法,但源自于C語言基本語法的標(biāo)準(zhǔn)C函數(shù)的語法規(guī)則并不是不可取代的,此類方法放棄了標(biāo)準(zhǔn)C函數(shù)的語法規(guī)則,可靈活自由地實(shí)現(xiàn)通用規(guī)范的模塊化多輸出值的C函數(shù)編程,是解決函數(shù)多輸出值編程困擾的最好方法。

    5輸出變量定義增加volatile的試驗(yàn)及體會(huì)

    結(jié)構(gòu)法和宏函數(shù)法列舉的16位及32位機(jī)程序,試驗(yàn)中發(fā)現(xiàn)輸出變量需要添加volatile進(jìn)行定義。在8位機(jī)Keil C51V9.00軟件編譯時(shí),不添加volatile完全沒有任何問題,但在16位機(jī)CCS5.2.1.00018及32位機(jī)Keil MDK5.14.0.0軟件編譯時(shí),如果不添加volatile,編譯時(shí)會(huì)產(chǎn)生報(bào)警,輸出變量會(huì)被意外地優(yōu)化省略掉。

    各類單片機(jī)C軟件平臺(tái)對(duì)程序編譯時(shí)均會(huì)對(duì)代碼進(jìn)行自認(rèn)為最合理的優(yōu)化,但有時(shí)會(huì)優(yōu)化過度,導(dǎo)致結(jié)果意外錯(cuò)誤。前例程序中遇到的報(bào)警就是優(yōu)化過度,經(jīng)試驗(yàn),對(duì)會(huì)被意外優(yōu)化省略掉的輸出變量增加volatile定義,問題即可解決。

    volatile的功能簡(jiǎn)單地說,就是防止編譯器對(duì)代碼進(jìn)行優(yōu)化。在作為變量定義的修飾關(guān)鍵字時(shí)其功能為:①確保本變量不會(huì)被編譯器優(yōu)化而省略;②確保變量存儲(chǔ)在內(nèi)存,在生成的代碼中,每次的變量訪問均要重新從內(nèi)存直接讀值,而不是去訪問寄存器里的變量備份。使用volatile能徹底回避代碼過度優(yōu)化導(dǎo)致的意外錯(cuò)誤,確保編譯結(jié)果的正確性。

    同樣默認(rèn)設(shè)置對(duì)相同C程序編譯,16位與32位機(jī)編譯系統(tǒng)比8位機(jī)編譯系統(tǒng)的編譯優(yōu)化力度要強(qiáng)得多,更易出現(xiàn)過度優(yōu)化問題。觀察MSP430、STM32單片機(jī)的各類例程,變量添加volatile定義的現(xiàn)象確實(shí)比51核單片機(jī)的多,也佐證了這個(gè)印象。試驗(yàn)還發(fā)現(xiàn),變量添加volatile定義會(huì)微量增加存儲(chǔ)空間占用,雖然目前單片機(jī)存儲(chǔ)空間一般都足夠且對(duì)于存儲(chǔ)空間更多的16位與32位機(jī)影響更小,但一般還是希望volatile定義的變量越少越好。當(dāng)編程難以判斷變量是否需要volatile定義時(shí),可以設(shè)想先對(duì)這些變量均添加volatile定義,再逐步取消各自的volatile進(jìn)行調(diào)試驗(yàn)證,直至在確保結(jié)果正確前提下留下最少的volatile定義的變量為止。

    結(jié)語

    本文探索的編程方法具備良好通用的技術(shù)實(shí)用價(jià)值,其中,新式函數(shù)語法規(guī)則的編程較為規(guī)范,是模塊化多輸出值C函數(shù)編程的較好方法。

    參考文獻(xiàn)

    [1] 劉同法.單片機(jī)C語言編程基礎(chǔ)與實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2009.

    [2] 何欽銘.C語言程序設(shè)計(jì)[M].3版.北京:科學(xué)出版社,2010.

    [3] 廖常初.S7-300/400 PLC應(yīng)用技術(shù)[M].3版.北京:機(jī)械工業(yè)出版社,2011.

    [4] 西門子.西門子S7-300/400編程手冊(cè)[EB/OL].[2016-01].http://www.gongkong.com/download/200709/63764.html.

    李加明(本科),機(jī)電與控制方向。

    (責(zé)任編輯:薛士然收修改稿日期:2016-01-05)

    Li Jiaming

    (2015 Engineering Research Experimental Class,Nanjing Aeronautics Astronautics University,Nanjing 211106,China)

    Abstract:MCU C standard programming can not achieve multiple output value function.Although it can be solved by the global variate at present,but the function modular principle is destroyed.In the paper,two kinds of modular multiple output C function programming method are explored,and a new type of C function syntax rules is proposed.Then the more standardized and versatile programming for modular multiple output C function is achieved.The method has novel programming idea and excellent practical technic value.

    Key words:C function;multiple output value;modularity;MCU

    中圖分類號(hào):TP368.1

    文獻(xiàn)標(biāo)識(shí)碼:A

    猜你喜歡
    模塊化
    模塊化自主水下機(jī)器人開發(fā)與應(yīng)用
    基于模塊化控制系統(tǒng)在一體化教學(xué)中的應(yīng)用
    模塊化住宅
    馬勒推出新型模塊化混動(dòng)系統(tǒng)
    考慮模塊化和退貨率的供應(yīng)鏈大規(guī)模定制模型
    ACP100模塊化小型堆研發(fā)進(jìn)展
    從模塊化中得到的二氧化碳
    模塊化VS大型工廠
    非模塊化設(shè)計(jì)四合一爐對(duì)流室的模塊化吊裝
    機(jī)械制造技術(shù)模塊化教學(xué)改革研究
    久久久久国内视频| 自线自在国产av| 男女下面插进去视频免费观看| 亚洲男人天堂网一区| 热99国产精品久久久久久7| 人妻久久中文字幕网| 欧美日韩一级在线毛片| 亚洲av国产av综合av卡| 日韩人妻精品一区2区三区| 久久中文字幕人妻熟女| 久久久水蜜桃国产精品网| 久久天堂一区二区三区四区| h视频一区二区三区| 麻豆成人av在线观看| 啦啦啦中文免费视频观看日本| 成人国语在线视频| 精品免费久久久久久久清纯 | 欧美日韩国产mv在线观看视频| 久久精品国产99精品国产亚洲性色 | 最新在线观看一区二区三区| 18禁美女被吸乳视频| 亚洲精品美女久久久久99蜜臀| 免费黄频网站在线观看国产| 动漫黄色视频在线观看| 成人精品一区二区免费| 色尼玛亚洲综合影院| 日韩中文字幕视频在线看片| 一本—道久久a久久精品蜜桃钙片| 一进一出抽搐动态| 亚洲人成电影观看| 两性夫妻黄色片| 母亲3免费完整高清在线观看| 欧美在线一区亚洲| 国产黄频视频在线观看| www.999成人在线观看| 欧美精品高潮呻吟av久久| 精品一区二区三卡| 精品人妻1区二区| 成人特级黄色片久久久久久久 | 在线观看人妻少妇| 久久久久久久国产电影| 黄色成人免费大全| 丝袜美足系列| 久久国产精品人妻蜜桃| 18禁裸乳无遮挡动漫免费视频| 国产极品粉嫩免费观看在线| 久久久久久久久久久久大奶| 中亚洲国语对白在线视频| 男女免费视频国产| 性色av乱码一区二区三区2| 国产一区二区三区综合在线观看| 成年动漫av网址| 国产淫语在线视频| 久久精品国产亚洲av香蕉五月 | 久热这里只有精品99| 欧美变态另类bdsm刘玥| 国产不卡av网站在线观看| 亚洲成av片中文字幕在线观看| 久久久国产欧美日韩av| 丁香六月天网| 丁香欧美五月| 亚洲伊人色综图| 热re99久久国产66热| 热99re8久久精品国产| 日本wwww免费看| 国产精品 国内视频| 日韩人妻精品一区2区三区| 国产成人精品无人区| 精品免费久久久久久久清纯 | 国产精品.久久久| 久久精品熟女亚洲av麻豆精品| 91字幕亚洲| 国产高清视频在线播放一区| 欧美日韩亚洲高清精品| 丰满饥渴人妻一区二区三| 麻豆成人av在线观看| 欧美人与性动交α欧美软件| 搡老乐熟女国产| 欧美成人免费av一区二区三区 | 精品少妇黑人巨大在线播放| 99国产精品一区二区蜜桃av | 日韩欧美免费精品| 99精国产麻豆久久婷婷| 丝袜美腿诱惑在线| 18在线观看网站| 香蕉国产在线看| av超薄肉色丝袜交足视频| 叶爱在线成人免费视频播放| 欧美激情极品国产一区二区三区| 久久av网站| 国产一卡二卡三卡精品| 亚洲成人国产一区在线观看| 日韩欧美三级三区| 免费高清在线观看日韩| 大型av网站在线播放| 久久久久久久精品吃奶| 精品国产乱码久久久久久男人| 国产男女超爽视频在线观看| 国产精品一区二区在线观看99| 国产亚洲欧美在线一区二区| 大香蕉久久网| 极品教师在线免费播放| a在线观看视频网站| 高清黄色对白视频在线免费看| 国产av精品麻豆| 精品一品国产午夜福利视频| 中文亚洲av片在线观看爽 | 午夜日韩欧美国产| 欧美日韩国产mv在线观看视频| 亚洲午夜精品一区,二区,三区| 激情在线观看视频在线高清 | 热re99久久国产66热| 欧美人与性动交α欧美软件| 亚洲专区字幕在线| 美女国产高潮福利片在线看| 欧美日韩av久久| 亚洲精品一卡2卡三卡4卡5卡| 757午夜福利合集在线观看| 精品国产超薄肉色丝袜足j| 91字幕亚洲| 日韩制服丝袜自拍偷拍| 国产野战对白在线观看| 国产一区二区三区综合在线观看| 黑丝袜美女国产一区| 天天操日日干夜夜撸| 女人被躁到高潮嗷嗷叫费观| 久热爱精品视频在线9| 精品人妻1区二区| 午夜福利一区二区在线看| 精品人妻熟女毛片av久久网站| 国产欧美亚洲国产| 国产欧美亚洲国产| 成年人免费黄色播放视频| 久久精品人人爽人人爽视色| 99在线人妻在线中文字幕 | 啦啦啦免费观看视频1| av视频免费观看在线观看| av视频免费观看在线观看| 久久精品aⅴ一区二区三区四区| 在线观看免费视频网站a站| 久久狼人影院| 精品视频人人做人人爽| 少妇精品久久久久久久| av线在线观看网站| 91字幕亚洲| 亚洲精品在线观看二区| 成人国产一区最新在线观看| 免费在线观看影片大全网站| 丝袜在线中文字幕| 久久久久久免费高清国产稀缺| 欧美成人午夜精品| 中文亚洲av片在线观看爽 | 一级a爱视频在线免费观看| 亚洲色图av天堂| 黄色视频在线播放观看不卡| 建设人人有责人人尽责人人享有的| 日韩一区二区三区影片| 女同久久另类99精品国产91| 天堂俺去俺来也www色官网| 国产日韩欧美视频二区| 成人国产一区最新在线观看| 欧美午夜高清在线| 成人免费观看视频高清| 在线看a的网站| 免费观看a级毛片全部| 久久这里只有精品19| 午夜久久久在线观看| 一区二区三区国产精品乱码| 成年版毛片免费区| 亚洲精品国产区一区二| 在线观看66精品国产| 亚洲av成人不卡在线观看播放网| 搡老岳熟女国产| 蜜桃在线观看..| 国产午夜精品久久久久久| 国产有黄有色有爽视频| a在线观看视频网站| 在线观看免费午夜福利视频| 首页视频小说图片口味搜索| 色尼玛亚洲综合影院| av国产精品久久久久影院| 中文字幕高清在线视频| 欧美激情久久久久久爽电影 | 一区二区三区国产精品乱码| 在线十欧美十亚洲十日本专区| 国产精品免费视频内射| 12—13女人毛片做爰片一| 国产精品麻豆人妻色哟哟久久| 亚洲第一av免费看| 亚洲男人天堂网一区| 精品久久久久久久毛片微露脸| 亚洲七黄色美女视频| 超色免费av| 免费不卡黄色视频| 国产人伦9x9x在线观看| 丝袜美足系列| 午夜两性在线视频| 韩国精品一区二区三区| 捣出白浆h1v1| 国产av精品麻豆| 久久精品成人免费网站| 欧美日韩一级在线毛片| 久久久久国产一级毛片高清牌| 我的亚洲天堂| 又黄又粗又硬又大视频| 悠悠久久av| av欧美777| 久久精品人人爽人人爽视色| av网站免费在线观看视频| 黄色片一级片一级黄色片| 成人18禁在线播放| av国产精品久久久久影院| 欧美日韩av久久| 久久精品国产a三级三级三级| 亚洲第一青青草原| 久久人妻福利社区极品人妻图片| 亚洲五月婷婷丁香| 一本—道久久a久久精品蜜桃钙片| 久久人妻av系列| 一本综合久久免费| 女人被躁到高潮嗷嗷叫费观| 久久精品国产亚洲av香蕉五月 | 久久精品人人爽人人爽视色| 色精品久久人妻99蜜桃| 性少妇av在线| 久久ye,这里只有精品| 国产在视频线精品| 亚洲,欧美精品.| 国产精品香港三级国产av潘金莲| 久久久久精品人妻al黑| 久久精品成人免费网站| 国产精品久久电影中文字幕 | 中亚洲国语对白在线视频| 视频区图区小说| 国产片内射在线| 热99国产精品久久久久久7| 国产欧美日韩一区二区三区在线| av欧美777| 亚洲人成77777在线视频| 国产精品久久久久久人妻精品电影 | 精品久久蜜臀av无| 窝窝影院91人妻| 免费在线观看影片大全网站| 精品一品国产午夜福利视频| 18禁美女被吸乳视频| 久久久久视频综合| 国产精品电影一区二区三区 | 超碰97精品在线观看| 午夜福利乱码中文字幕| 免费观看人在逋| 视频区图区小说| 精品一区二区三区av网在线观看 | 成年动漫av网址| 精品国产一区二区三区久久久樱花| 欧美日韩视频精品一区| 国产一区二区 视频在线| 成年人午夜在线观看视频| 老汉色∧v一级毛片| 日韩精品免费视频一区二区三区| 亚洲精品中文字幕一二三四区 | 精品国产亚洲在线| 考比视频在线观看| av超薄肉色丝袜交足视频| 婷婷丁香在线五月| 搡老熟女国产l中国老女人| 亚洲伊人色综图| 国产一区二区激情短视频| 69精品国产乱码久久久| 国产精品电影一区二区三区 | 99国产精品一区二区三区| www.自偷自拍.com| 蜜桃在线观看..| 久久亚洲真实| 老司机午夜福利在线观看视频 | 丝袜在线中文字幕| 欧美黄色片欧美黄色片| 汤姆久久久久久久影院中文字幕| 国产亚洲午夜精品一区二区久久| 高清欧美精品videossex| 纯流量卡能插随身wifi吗| 一区福利在线观看| 91av网站免费观看| 无人区码免费观看不卡 | 日本五十路高清| 亚洲av电影在线进入| 视频区图区小说| 窝窝影院91人妻| 热re99久久精品国产66热6| 国产欧美日韩一区二区三| 交换朋友夫妻互换小说| av又黄又爽大尺度在线免费看| 搡老熟女国产l中国老女人| 好男人电影高清在线观看| 视频区欧美日本亚洲| 国产欧美日韩一区二区精品| 两个人看的免费小视频| 中文亚洲av片在线观看爽 | 欧美精品高潮呻吟av久久| 免费女性裸体啪啪无遮挡网站| 国产成人一区二区三区免费视频网站| 啦啦啦中文免费视频观看日本| 久久久久久久国产电影| 国产免费现黄频在线看| 国产麻豆69| 美国免费a级毛片| 91成人精品电影| 久久国产精品大桥未久av| 一区二区av电影网| 日日摸夜夜添夜夜添小说| 亚洲国产成人一精品久久久| 国产欧美亚洲国产| 精品国产乱码久久久久久小说| 日日爽夜夜爽网站| 成人国产一区最新在线观看| 男女之事视频高清在线观看| 色综合欧美亚洲国产小说| 色播在线永久视频| 狠狠精品人妻久久久久久综合| 精品少妇黑人巨大在线播放| 久久久国产成人免费| 中文字幕最新亚洲高清| 曰老女人黄片| 一个人免费看片子| 国产精品自产拍在线观看55亚洲 | 国产成人精品久久二区二区91| 亚洲伊人久久精品综合| 窝窝影院91人妻| 国产精品久久久久久精品古装| 蜜桃在线观看..| 电影成人av| 熟女少妇亚洲综合色aaa.| 无限看片的www在线观看| 乱人伦中国视频| 美女高潮到喷水免费观看| 波多野结衣一区麻豆| 久久人人爽av亚洲精品天堂| 少妇 在线观看| 欧美老熟妇乱子伦牲交| 欧美精品一区二区免费开放| 黄片播放在线免费| 国产欧美日韩一区二区三区在线| 免费高清在线观看日韩| 成年女人毛片免费观看观看9 | 日本a在线网址| 欧美成人免费av一区二区三区 | 国产精品亚洲av一区麻豆| 国精品久久久久久国模美| 美女视频免费永久观看网站| 亚洲中文av在线| 国产97色在线日韩免费| 不卡av一区二区三区| 男女无遮挡免费网站观看| 嫁个100分男人电影在线观看| 久久久久精品国产欧美久久久| 亚洲中文字幕日韩| 久久精品国产亚洲av香蕉五月 | 午夜福利在线观看吧| 一级毛片精品| 国产日韩欧美在线精品| 夜夜爽天天搞| 日本av手机在线免费观看| 黑人巨大精品欧美一区二区蜜桃| 中文字幕另类日韩欧美亚洲嫩草| 熟女少妇亚洲综合色aaa.| 亚洲三区欧美一区| 国产成人精品在线电影| 一本色道久久久久久精品综合| a级毛片黄视频| 考比视频在线观看| 欧美乱妇无乱码| 黄色毛片三级朝国网站| 啦啦啦免费观看视频1| 亚洲精品自拍成人| 一级毛片精品| 丁香欧美五月| 免费看十八禁软件| 亚洲精品久久午夜乱码| 日韩制服丝袜自拍偷拍| 国产免费福利视频在线观看| 最近最新中文字幕大全电影3 | 美女高潮喷水抽搐中文字幕| 如日韩欧美国产精品一区二区三区| 一级毛片女人18水好多| 好男人电影高清在线观看| 久久人妻福利社区极品人妻图片| 少妇的丰满在线观看| 成年人午夜在线观看视频| 国产欧美日韩一区二区三| 91国产中文字幕| 久久青草综合色| 精品亚洲乱码少妇综合久久| 亚洲九九香蕉| 欧美另类亚洲清纯唯美| 一区二区三区激情视频| 99国产精品免费福利视频| 久久香蕉激情| 王馨瑶露胸无遮挡在线观看| videos熟女内射| 纵有疾风起免费观看全集完整版| 男女高潮啪啪啪动态图| 超碰97精品在线观看| 美女高潮到喷水免费观看| 日本vs欧美在线观看视频| 老司机亚洲免费影院| 少妇被粗大的猛进出69影院| 欧美成狂野欧美在线观看| 精品少妇内射三级| 天天躁狠狠躁夜夜躁狠狠躁| 精品福利永久在线观看| 久久影院123| 纯流量卡能插随身wifi吗| 天天添夜夜摸| svipshipincom国产片| 久久婷婷成人综合色麻豆| 黑丝袜美女国产一区| 多毛熟女@视频| 国产一区二区三区视频了| 国产成人精品在线电影| 午夜激情久久久久久久| 午夜两性在线视频| 99在线人妻在线中文字幕 | 国产欧美日韩一区二区精品| 9191精品国产免费久久| 天天影视国产精品| 国产精品成人在线| 丝袜美足系列| 国产成人系列免费观看| 电影成人av| xxxhd国产人妻xxx| 巨乳人妻的诱惑在线观看| 久9热在线精品视频| 手机成人av网站| 欧美激情极品国产一区二区三区| 欧美一级毛片孕妇| 欧美成人午夜精品| 成人免费观看视频高清| 成人18禁在线播放| 每晚都被弄得嗷嗷叫到高潮| 国产免费现黄频在线看| 国产亚洲午夜精品一区二区久久| 成人国产一区最新在线观看| 纵有疾风起免费观看全集完整版| 亚洲情色 制服丝袜| 亚洲成人免费av在线播放| 精品一区二区三卡| 国产成人精品无人区| 国精品久久久久久国模美| 精品人妻在线不人妻| 女人精品久久久久毛片| 国产精品久久久久久精品古装| 国产精品久久久久久人妻精品电影 | 久久 成人 亚洲| 久久精品国产亚洲av香蕉五月 | 制服诱惑二区| 免费日韩欧美在线观看| 亚洲精品美女久久av网站| 正在播放国产对白刺激| 国产日韩欧美亚洲二区| 超色免费av| 不卡av一区二区三区| 国产欧美日韩精品亚洲av| 中文字幕色久视频| 97在线人人人人妻| 91国产中文字幕| 在线 av 中文字幕| 90打野战视频偷拍视频| 国产日韩一区二区三区精品不卡| 亚洲国产毛片av蜜桃av| 最新美女视频免费是黄的| 搡老岳熟女国产| 精品国产一区二区久久| 亚洲欧美精品综合一区二区三区| 在线天堂中文资源库| 丰满迷人的少妇在线观看| 国产精品国产av在线观看| 精品午夜福利视频在线观看一区 | 亚洲精品一二三| 欧美黄色淫秽网站| 超碰97精品在线观看| 亚洲精品中文字幕一二三四区 | 国产精品久久久人人做人人爽| 老司机午夜十八禁免费视频| 又紧又爽又黄一区二区| 黑丝袜美女国产一区| 91大片在线观看| 国产成人系列免费观看| 免费观看a级毛片全部| 国产精品久久久久久精品电影小说| 亚洲精品美女久久久久99蜜臀| 色综合欧美亚洲国产小说| 欧美日韩亚洲高清精品| 一级片免费观看大全| 国产成人精品久久二区二区免费| 国产av一区二区精品久久| 极品人妻少妇av视频| 一边摸一边做爽爽视频免费| 国内毛片毛片毛片毛片毛片| 青青草视频在线视频观看| 巨乳人妻的诱惑在线观看| 国产极品粉嫩免费观看在线| 国产精品免费视频内射| 国内毛片毛片毛片毛片毛片| 亚洲欧美日韩高清在线视频 | 亚洲伊人久久精品综合| 热re99久久精品国产66热6| 亚洲精品中文字幕一二三四区 | 欧美激情 高清一区二区三区| 国产97色在线日韩免费| 老司机靠b影院| 高清毛片免费观看视频网站 | 欧美黄色片欧美黄色片| 久久久国产一区二区| 波多野结衣av一区二区av| 国产成人免费观看mmmm| 狠狠精品人妻久久久久久综合| 久久精品亚洲av国产电影网| 亚洲五月色婷婷综合| 久久久久久久精品吃奶| av不卡在线播放| 中文字幕另类日韩欧美亚洲嫩草| 中文字幕高清在线视频| 一二三四社区在线视频社区8| 亚洲精品国产色婷婷电影| 巨乳人妻的诱惑在线观看| 日韩大片免费观看网站| 精品人妻1区二区| 99热网站在线观看| 新久久久久国产一级毛片| 欧美人与性动交α欧美精品济南到| 一边摸一边做爽爽视频免费| 纵有疾风起免费观看全集完整版| 无限看片的www在线观看| 欧美日韩中文字幕国产精品一区二区三区 | 丁香欧美五月| 女人精品久久久久毛片| 亚洲 国产 在线| 亚洲人成电影免费在线| 欧美亚洲日本最大视频资源| 国产黄色免费在线视频| 国产精品98久久久久久宅男小说| 免费观看人在逋| 9191精品国产免费久久| 国产在线免费精品| 色视频在线一区二区三区| 欧美午夜高清在线| 黑人猛操日本美女一级片| 99re在线观看精品视频| 18禁裸乳无遮挡动漫免费视频| 午夜免费成人在线视频| 国产国语露脸激情在线看| 女人被躁到高潮嗷嗷叫费观| 两性夫妻黄色片| 亚洲精品在线美女| 后天国语完整版免费观看| 欧美日韩亚洲高清精品| 99香蕉大伊视频| 伊人久久大香线蕉亚洲五| 一区在线观看完整版| 久久久精品区二区三区| a在线观看视频网站| 国产精品98久久久久久宅男小说| 99国产精品一区二区蜜桃av | 不卡av一区二区三区| 久久99一区二区三区| 久久久久网色| 久久精品国产亚洲av高清一级| 咕卡用的链子| 亚洲性夜色夜夜综合| 中文字幕高清在线视频| 日韩欧美免费精品| 免费在线观看视频国产中文字幕亚洲| 老司机影院毛片| 欧美乱码精品一区二区三区| 欧美激情高清一区二区三区| 午夜91福利影院| 免费高清在线观看日韩| 午夜日韩欧美国产| 欧美激情高清一区二区三区| 99国产精品一区二区三区| 国产成人精品无人区| 九色亚洲精品在线播放| 在线观看免费日韩欧美大片| 欧美亚洲日本最大视频资源| tocl精华| 嫩草影视91久久| 黄色片一级片一级黄色片| 在线亚洲精品国产二区图片欧美| 午夜精品久久久久久毛片777| 黄色 视频免费看| 中文字幕人妻熟女乱码| 亚洲国产欧美日韩在线播放| 一区在线观看完整版| 少妇粗大呻吟视频| 精品熟女少妇八av免费久了| 国产欧美日韩一区二区三区在线| 午夜精品久久久久久毛片777| 999精品在线视频| 69精品国产乱码久久久| 好男人电影高清在线观看| 亚洲国产av影院在线观看| 成人国产一区最新在线观看| 午夜福利在线观看吧| 搡老熟女国产l中国老女人| 欧美在线一区亚洲| 777久久人妻少妇嫩草av网站| 黄色视频,在线免费观看| 国产成人免费无遮挡视频| 一个人免费在线观看的高清视频| 在线观看舔阴道视频| 亚洲欧美一区二区三区黑人| 精品福利观看| 91国产中文字幕| 老熟妇仑乱视频hdxx| 亚洲伊人久久精品综合| 亚洲欧美色中文字幕在线|