新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式PLC芯片組的多路模擬量應用開發

        嵌入式PLC芯片組的多路模擬量應用開發

        作者: 時間:2010-12-12 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/151223.htm

        2、軟件開發

        是基于Cygnal公司的C8051f040芯片開發的,所以二次程序的開發使用51匯編語言。開發選擇的編譯器是KEILC51,因為它可以生成我們所需要的.HEX文件。內核留出了七個用戶嵌入程序接口,我們只需要充分理解各個接口的功能就可了進行二次開發了,需要熟悉如下內容:a、內核功能b、內核結構c、內核任務管理d、內核存儲空間分配?!?】由于系統軟件中已經加入了232通信、485通信和CAN通信的功能,所以16路的二次驅動軟件的開發主要集中在量的AD轉換和資源區中AD值的實時刷新上。
        (1)程序規劃
        T4中斷:完成AD轉換和16個通道的切換程序
        USER_SCAN:PLC資源區中AD值的刷新。
        AD轉換過程如下:每一通道連續采樣16次,采樣完后得到累加和,然后啟動下一通道的AD轉換。
        PLC資源區中AD值的刷新過程如下:在梯形圖掃描周期結束時進行,把各路AD值的累加和求平均值后放入PLC的資源區的對應位置處。
        (2)程序代碼
        INIT_AD:;AD初始化
        MOVSFRPAGE,#ADC0_PAGE
        MOVREF0CN,#07H;內部參考電壓/輸出到VERF
        ;啟動內部溫度傳感器
        MOVAMX0CF,#00H;單極性輸入
        MOVADC0CF,#0B8H;D7——D3=SYSCLK/采樣時鐘-1
        ;采樣轉換時鐘=1US
        ;D2——D0=GAIN
        ;000GAIN=1
        MOVADC0CN,#90H;啟動AD采樣
        MOVAD_CHANNEL,#00H;AD通道號,初值為0
        MOVAD_COUNT,#00H;16次采樣次數計數。初值為0
        RET

        SAMPLE_AD:;AD采樣開始
        MOVSFRPAGE,#ADC0_PAGE;AD控制寄存器頁
        MOVA,AD_CHANNEL;采樣值的累加和是一個字基地址;為#XAI,偏移地址為AD_CHANNEL
        RLA

        MOVDPTR,#XAI;XAI存放16次采樣值的累加和
        ADDA,DPL;低字節相加
        MOVDPL,A
        MOVXA,@DPTR
        MOVB,A
        MOVA,ADC0L
        CLRC
        ADDCA,B
        MOVX@DPTR,A

        INCDPTR;高字節相加
        MOVXA,@DPTR
        MOVB,A
        MOVA,ADC0H
        ANLA,#0FH
        ADDCA,B
        MOVX@DPTR,A;#XAI中存放格式為低字節、高字節

        MOVSFRPAGE,#ADC0_PAGE;AD控制寄存器頁
        MOVADC0CN,#090H;啟動下次AD采樣

        INCAD_COUNT
        MOVA,AD_COUNT
        CLRC
        SUBBA,#16
        JNCFILL_XAI_XAD;當16次采樣完成后,把XAI中16;個采樣和(2字節)存放到XAD
        RET

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 吴堡县| 安达市| 阿尔山市| 封开县| 马尔康县| 平和县| 康马县| 建宁县| 民乐县| 从化市| 泸西县| 浦北县| 中方县| 松阳县| 五原县| 海阳市| 治县。| 三门县| 湟源县| 常宁市| 承德县| 稻城县| 青冈县| 大邑县| 文登市| 库尔勒市| 永川市| 永胜县| 南京市| 夹江县| 财经| 利辛县| 崇州市| 绥德县| 新绛县| 侯马市| 股票| 南涧| 区。| 焉耆| 黔东|