浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網(wǎng) » 技術(shù)資料 » 嵌入式系統(tǒng)

利用全局及外部變量實(shí)現(xiàn)C51無能數(shù)化調(diào)用A51函數(shù)

發(fā)布時(shí)間:2008/6/3 0:00:00 訪問次數(shù):631

        作者:福州福建省電子技術(shù)研究所(350001)莊文斌

     福州北京郵電大學(xué)福建分校(350003) 林 穎

     來源:《電子技術(shù)應(yīng)用》

     摘要:利用c51全局及外部變量,可實(shí)現(xiàn)無參數(shù)化調(diào)用a51函數(shù),不但避免開了傳統(tǒng)c51調(diào)用c51時(shí)繁瑣的接口約定,而且把在a51中所用到的變量全部放至c51程序中而不必考慮變量在內(nèi)存中的位置,使編程更加簡(jiǎn)潔。用實(shí)例驗(yàn)證了該方法的優(yōu)越性和有效性。

    

    

     關(guān)鍵詞:c51

     a51 匯編語言 無參數(shù)化調(diào)用

     <<電子技術(shù)應(yīng)用>>2001年第7期發(fā)表茍帥的文章“asm51無參數(shù)化調(diào)用c51函數(shù)的實(shí)現(xiàn)”,闡述了asm51無參數(shù)化調(diào)用c51函數(shù)的實(shí)現(xiàn)原理并給出實(shí)例來驗(yàn)證該方法的優(yōu)越性和可行性。作者在文章中表明這樣一種觀點(diǎn):“利用匯編語言對(duì)i/o接口、中斷向量及程序空間分配的巨大優(yōu)勢(shì),讓程序員對(duì)mcs51內(nèi)的每一字節(jié)甚至是每一比特(可位尋址空間)全部進(jìn)行統(tǒng)籌安排,設(shè)計(jì)好各個(gè)程序模塊,包括i/o口地址和中斷向量地址的處理;同時(shí)在具體數(shù)據(jù)處理、通信等不需要過多與硬件打交道的程序模塊中,充分利用c51語言強(qiáng)大高效的編程能力”。上述觀點(diǎn)并沒有錯(cuò),但是對(duì)i/o接口、中斷向量及程序空間分配及mcs-51內(nèi)的每一個(gè)字節(jié)甚至是每一比特(可位尋址空間)全部進(jìn)行統(tǒng)籌安排,對(duì)于大多數(shù)程序員來講恰恰是件不容易的事。地址空間、棧的起始地址和中斷向量地址的分配等,經(jīng)常顧此失彼,這邊可行,那邊又出問題。其實(shí)完全可以把上述繁重的工作交給c51去完成,由c51定義各個(gè)變量并自動(dòng)分配各個(gè)變量的空間,而集中精力完成所需功能的a51程序設(shè)計(jì)。筆者在研制基于c51、插拔式dflash存儲(chǔ)器的無紙記錄儀中,就是利用全局及外部變量實(shí)現(xiàn)c51無參數(shù)化調(diào)用a51函數(shù)的,取得了很好的效果。

     1 c51無參數(shù)化調(diào)用a51函數(shù)的實(shí)現(xiàn)原理

     為了說明其原理,必須理解局部變量、全局變量和外部變量的意義。

     局部變量:是在函數(shù)內(nèi)部定義的變量,只在定義它的函數(shù)內(nèi)部有效,僅在使用它時(shí),才為它分配內(nèi)存單元。

     全局變量:又稱外部變量,是在函數(shù)外部定義的變量,可以為多個(gè)函數(shù)共同使用,其有效作用范圍是從它定義的位置開始直到整個(gè)程序文件結(jié)束。若一個(gè)全局變量不是在程序文件開始處定義的,但又希望在它的定義點(diǎn)之前的函數(shù)中引用該變量,這時(shí)應(yīng)在引用該變量的函數(shù)中用關(guān)鍵字extern將其說明為外部變量。此外如果一個(gè)程序模塊文件中應(yīng)用另一個(gè)程序模塊中定義的變量時(shí),也必須用extern進(jìn)行說明。全局變量在整個(gè)程序的執(zhí)行過程中都要占用內(nèi)存單元。

     外部變量(extern):使用存儲(chǔ)種類說明符extern定義的變量稱為外部變量。按照缺省規(guī)則,凡在所有函數(shù)之前,在函數(shù)外部定義的變量都是外部變量,定義時(shí)可以不寫extern說明符。但是,在一個(gè)函數(shù)體內(nèi)說明一個(gè)在該函數(shù)體外或別的程序模塊文件中定義過的外部變量時(shí),則必須使用extern說明符。一個(gè)外部變量被定義之后,它就被分配了固定的內(nèi)存空間。外部變量的生存期為程序的整個(gè)執(zhí)行時(shí)間。

     c語言允許將大型的程序分解為若干個(gè)獨(dú)立的程序模塊,各個(gè)模塊可分別進(jìn)行編譯,然后將它們連接在一起。如果某個(gè)變量需要在所有程序模塊文件中使用,只要在一個(gè)程序模塊中將該變量定義成全局變量,而在其它程序模塊中用extern說明該變量是已被定義過的外部變量就可以了。

     在c51中定義函數(shù)時(shí)如果冠以關(guān)鍵字extern即將其明確定義為一個(gè)外部函數(shù)。

     具體方法是:在c51用unsigned char定義的變量,則在a51中必須對(duì)應(yīng)聲明該變量在data區(qū);在c51用bit定義位變量,則在a51中必須對(duì)應(yīng)聲明該變量在可位選區(qū)。a51中用關(guān)鍵字extrn表示外部變量,對(duì)應(yīng)關(guān)系如下:

     c51 定義 a51聲明

     unsigned char varible_name<->extrn

     data(varible_name)

     bit bit_name <->extrn bit (bit_name)

     此外,c51編譯器支持在c語言

        作者:福州福建省電子技術(shù)研究所(350001)莊文斌

     福州北京郵電大學(xué)福建分校(350003) 林 穎

     來源:《電子技術(shù)應(yīng)用》

     摘要:利用c51全局及外部變量,可實(shí)現(xiàn)無參數(shù)化調(diào)用a51函數(shù),不但避免開了傳統(tǒng)c51調(diào)用c51時(shí)繁瑣的接口約定,而且把在a51中所用到的變量全部放至c51程序中而不必考慮變量在內(nèi)存中的位置,使編程更加簡(jiǎn)潔。用實(shí)例驗(yàn)證了該方法的優(yōu)越性和有效性。

    

    

     關(guān)鍵詞:c51

     a51 匯編語言 無參數(shù)化調(diào)用

     <<電子技術(shù)應(yīng)用>>2001年第7期發(fā)表茍帥的文章“asm51無參數(shù)化調(diào)用c51函數(shù)的實(shí)現(xiàn)”,闡述了asm51無參數(shù)化調(diào)用c51函數(shù)的實(shí)現(xiàn)原理并給出實(shí)例來驗(yàn)證該方法的優(yōu)越性和可行性。作者在文章中表明這樣一種觀點(diǎn):“利用匯編語言對(duì)i/o接口、中斷向量及程序空間分配的巨大優(yōu)勢(shì),讓程序員對(duì)mcs51內(nèi)的每一字節(jié)甚至是每一比特(可位尋址空間)全部進(jìn)行統(tǒng)籌安排,設(shè)計(jì)好各個(gè)程序模塊,包括i/o口地址和中斷向量地址的處理;同時(shí)在具體數(shù)據(jù)處理、通信等不需要過多與硬件打交道的程序模塊中,充分利用c51語言強(qiáng)大高效的編程能力”。上述觀點(diǎn)并沒有錯(cuò),但是對(duì)i/o接口、中斷向量及程序空間分配及mcs-51內(nèi)的每一個(gè)字節(jié)甚至是每一比特(可位尋址空間)全部進(jìn)行統(tǒng)籌安排,對(duì)于大多數(shù)程序員來講恰恰是件不容易的事。地址空間、棧的起始地址和中斷向量地址的分配等,經(jīng)常顧此失彼,這邊可行,那邊又出問題。其實(shí)完全可以把上述繁重的工作交給c51去完成,由c51定義各個(gè)變量并自動(dòng)分配各個(gè)變量的空間,而集中精力完成所需功能的a51程序設(shè)計(jì)。筆者在研制基于c51、插拔式dflash存儲(chǔ)器的無紙記錄儀中,就是利用全局及外部變量實(shí)現(xiàn)c51無參數(shù)化調(diào)用a51函數(shù)的,取得了很好的效果。

     1 c51無參數(shù)化調(diào)用a51函數(shù)的實(shí)現(xiàn)原理

     為了說明其原理,必須理解局部變量、全局變量和外部變量的意義。

     局部變量:是在函數(shù)內(nèi)部定義的變量,只在定義它的函數(shù)內(nèi)部有效,僅在使用它時(shí),才為它分配內(nèi)存單元。

     全局變量:又稱外部變量,是在函數(shù)外部定義的變量,可以為多個(gè)函數(shù)共同使用,其有效作用范圍是從它定義的位置開始直到整個(gè)程序文件結(jié)束。若一個(gè)全局變量不是在程序文件開始處定義的,但又希望在它的定義點(diǎn)之前的函數(shù)中引用該變量,這時(shí)應(yīng)在引用該變量的函數(shù)中用關(guān)鍵字extern將其說明為外部變量。此外如果一個(gè)程序模塊文件中應(yīng)用另一個(gè)程序模塊中定義的變量時(shí),也必須用extern進(jìn)行說明。全局變量在整個(gè)程序的執(zhí)行過程中都要占用內(nèi)存單元。

     外部變量(extern):使用存儲(chǔ)種類說明符extern定義的變量稱為外部變量。按照缺省規(guī)則,凡在所有函數(shù)之前,在函數(shù)外部定義的變量都是外部變量,定義時(shí)可以不寫extern說明符。但是,在一個(gè)函數(shù)體內(nèi)說明一個(gè)在該函數(shù)體外或別的程序模塊文件中定義過的外部變量時(shí),則必須使用extern說明符。一個(gè)外部變量被定義之后,它就被分配了固定的內(nèi)存空間。外部變量的生存期為程序的整個(gè)執(zhí)行時(shí)間。

     c語言允許將大型的程序分解為若干個(gè)獨(dú)立的程序模塊,各個(gè)模塊可分別進(jìn)行編譯,然后將它們連接在一起。如果某個(gè)變量需要在所有程序模塊文件中使用,只要在一個(gè)程序模塊中將該變量定義成全局變量,而在其它程序模塊中用extern說明該變量是已被定義過的外部變量就可以了。

     在c51中定義函數(shù)時(shí)如果冠以關(guān)鍵字extern即將其明確定義為一個(gè)外部函數(shù)。

     具體方法是:在c51用unsigned char定義的變量,則在a51中必須對(duì)應(yīng)聲明該變量在data區(qū);在c51用bit定義位變量,則在a51中必須對(duì)應(yīng)聲明該變量在可位選區(qū)。a51中用關(guān)鍵字extrn表示外部變量,對(duì)應(yīng)關(guān)系如下:

     c51 定義 a51聲明

     unsigned char varible_name<->extrn

     data(varible_name)

     bit bit_name <->extrn bit (bit_name)

     此外,c51編譯器支持在c語言

相關(guān)IC型號(hào)

熱門點(diǎn)擊

 

推薦技術(shù)資料

DFRobot—玩的就是
    如果說新車間的特點(diǎn)是“靈動(dòng)”,F(xiàn)QPF12N60C那么... [詳細(xì)]
版權(quán)所有:51dzw.COM
深圳服務(wù)熱線:13751165337  13692101218
粵ICP備09112631號(hào)-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式


 復(fù)制成功!