新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 嵌入式PLC芯片組的多路模擬量應(yīng)用開發(fā)

嵌入式PLC芯片組的多路模擬量應(yīng)用開發(fā)

作者: 時間:2018-09-10 來源:網(wǎng)絡(luò) 收藏

本文引用地址:http://butianyuan.cn/article/201809/388815.htm

2、軟件開發(fā)

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

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

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

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

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

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



關(guān)鍵詞: PLC 嵌入式 多路 模擬量

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉