新聞中心

        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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 左权县| 南靖县| 花莲县| 金门县| 伊吾县| 安顺市| 双柏县| 绍兴县| 玛纳斯县| 浠水县| 屯昌县| 湖州市| 蓬莱市| 南昌市| 梅州市| 化州市| 天等县| 新兴县| 康定县| 乐山市| 原阳县| 临海市| 苍南县| 黔东| 东莞市| 普陀区| 彝良县| 九台市| 淳化县| 铜陵市| 富顺县| 昌黎县| 炎陵县| 保德县| 余姚市| 望城县| 榆林市| 澄城县| 威信县| 黑水县| 兴业县|