新聞中心

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

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

        作者: 時間:2018-09-10 來源:網絡 收藏

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

        2、軟件開發

        是基于Cygnal公司的C8051f040芯片開發的,所以二次程序的開發使用51匯編語言。開發選擇的編譯器是KEILC51,因為它可以生成我們所需要的.HEX文件。內核留出了七個用戶嵌入程序接口,我們只需要充分理解各個接口的功能就可了進行二次開發了,需要熟悉如下內容:a、內核功能b、內核結構c、內核任務管理d、內核存儲空間分配。【1】由于系統軟件中已經加入了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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 偃师市| 通州区| 江都市| 特克斯县| 南郑县| 南皮县| 高州市| 水城县| 满城县| 辛集市| 沽源县| 乌苏市| 沅陵县| 济宁市| 睢宁县| 高邑县| 灵武市| 明光市| 莎车县| 彰武县| 黔江区| 河北省| 绩溪县| 达州市| 渭源县| 临泉县| 龙陵县| 唐海县| 山阴县| 东海县| 海安县| 进贤县| 洪泽县| 杭锦后旗| 安徽省| 阳原县| 蓬溪县| 盱眙县| 龙里县| 营口市| 温泉县|