• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 利用全局及外部變量實現C51無能數化調用A51函數

    利用全局及外部變量實現C51無能數化調用A51函數

    作者: 時間:2012-03-08 來源:網絡 收藏

    在研制無紙記錄儀之前,作者用MASM51開發了其他儀表,采樣部分有些相同,因此這次采樣程序并不是重新編寫,而是把以前的MASM51程序按的規則來修改。以前ASM的程序(數據段部分)如下所示:
    bseg

    write_alw bit 00h;
    vz_bit bit 01h
    fs_bit bit 02h
    ce_bit bit p1.6
    ram_cs bit p1.2
    b373 bit p1.1
    bit_dog bit p1.4
    data_bit bit P2.6
    sclk_bit bit P3.4
    drdy_bit bit p3.3
    ends
    ;
    dseg
    org 08h
    org 28h
    sample_w; ds 12
    sa_p: ds 1 ;當前通道號
    ram_point: ds 2
    sa_timer: ds 8 ;0,1,2,3每通道兩字節
    sa_vzt: ds 8 ;0,1,2,3 vz
    ends
    ;
    cseg
    org 0h
    begin: reti
    org 03h
    lcall sample
    reti
    sample:
    ……
    ends

    從上述程序可以看出,在采樣程序中所用到的并不少,定義在數據存儲區28H單元起始的空間中。這樣安排,對匯編程序沒什么問題,但與主程序連接的時候,并不一定好,很多時候碰到地址空間溢出的問題(主程序編譯連接后將近16K字節,CPU采用ATMEL公司的AT89C55WD)。如何調整這些的分配,并非容易。另外,隨時要用到采樣單元sample_w[12]的值,如果采用一般的參數傳遞,將是相當復雜而繁瑣的;而采用C51無參數經,極大簡化了這些工作,大大提高了工作效率。

    本文第2部分的程序,采用Keil公司的Keil C V6.10集成開發工具包完成。所研制的無紙記錄儀已經通過福建省科技廳的鑒定。


    上一頁 1 2 3 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 简阳市| 商水县| 万州区| 阿坝县| 涿州市| 壶关县| 蛟河市| 伊通| 巴中市| 建德市| 江津市| 运城市| 武汉市| 建昌县| 诸城市| 琼结县| 冀州市| 怀宁县| 上蔡县| 荥阳市| 岐山县| 招远市| 二连浩特市| 冕宁县| 南溪县| 海原县| 兴城市| 繁昌县| 固镇县| 鄂托克前旗| 邵阳县| 通城县| 洪江市| 普陀区| 隆昌县| 澄江县| 兴化市| 桐城市| 银川市| 定兴县| 保定市|