<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > CAN總線(xiàn)在分布式烤煙控制系統中的應用

CAN總線(xiàn)在分布式烤煙控制系統中的應用

作者: 時(shí)間:2009-06-19 來(lái)源:網(wǎng)絡(luò ) 收藏

3.1 硬件組成
AT89C52是控制器的核心,完成溫度和濕度的采樣與控制、控制算法運算、鍵盤(pán)掃描、LCD顯示、數據通信等功能。
LCD顯示器用于現場(chǎng)顯示采樣的溫度及濕度、控制參數設定值等,由于需要顯示的內容較少,選用段式顯示器;而鍵盤(pán)用于在現場(chǎng)設置控制參數,為了簡(jiǎn)化接口電路,采用獨立式鍵盤(pán)電路,即每個(gè)按鍵占用AT89C52的一位開(kāi)關(guān)量輸入。
DS18B20和直流電機控制電路組成溫濕度采樣與控制電路。DS18B20的控制程序按其規定的時(shí)序進(jìn)行編寫(xiě),通過(guò)執行SETB P1.7(或P1.6)和CLR P1.7(P1.6)即可產(chǎn)生所需要的軟件脈沖,從而實(shí)現對溫濕度的數字化輸入;而直流電機的控制通過(guò)對P1.5(P1.4)進(jìn)行控制產(chǎn)生高低電平,再送由三極管和直流繼電器組成的電機驅動(dòng)電路,即可實(shí)現對電機的正反轉控制,通過(guò)傳動(dòng)機構帶動(dòng)火門(mén)(或窗門(mén))移動(dòng)對溫度和濕度進(jìn)行調節。
控制器接口由、6N137和82C250組成,如圖3所示。以并行接口芯片和中斷形式與AT89C52連接,AT89C52對映射到存儲器的有關(guān)寄存器進(jìn)行讀寫(xiě),即可實(shí)現SJA1000初始化設置、數據收發(fā)、數據校驗等操作;6N137組成光電隔離電路以提高系統的抗干擾能力;82C250則提高驅動(dòng)能力。

3.2 程序設計
控制器程序除了完成定時(shí)對溫濕度的采樣與閉環(huán)控制和實(shí)現人機接口外,還要對監控計算機通過(guò)發(fā)送來(lái)的遠程命令進(jìn)行響應,以便執行特定的功能。由于系統采用中斷方式實(shí)現溫濕度的定時(shí)采樣和總線(xiàn)的通信,因此程序包括主程序和中斷服務(wù)程序兩部分,其中定時(shí)中斷程序較為簡(jiǎn)單,在此不再詳細介紹。
3.2.1 主程序
主程序完成對定時(shí)器和CAN總線(xiàn)的初始化,并循環(huán)掃描鍵盤(pán)和控制LCD顯示。
對CAN總線(xiàn)的初始化主要是對SJA1000的工作方式、接收濾波方式、接收屏蔽寄存器(AMR)、接收代碼寄存器(ACR)、波特率參數和中斷允許寄存器進(jìn)行設置,在初始化前必須使SJA1000進(jìn)行復位模式,當初始化設置完成后,須使SJA1000回到正常工作模式,才能實(shí)現正常工作。為增強程序的可讀性,在程序執行代碼前使用EQU偽指令將SJA1000各寄存器所對應的存儲器地址定義成特定的符號。
MOV DPTR,#MOD ;方式寄存器
MOV A,#09H
MOVX @DPTR,A ;使SJA1000進(jìn)入復位模式
…… ;其他寄存器設置
MOV DPTR,#MOD ;方式寄存器
MOV A,#08H
MOVX @DPTR,A ;使SJA1000進(jìn)入工作模式
……
3.2.2 中斷服務(wù)程序
當監控計算機通過(guò)CAN總線(xiàn)向控制節點(diǎn)發(fā)送數據時(shí),一旦CAN數據幀內的接收方地址與初始化程序中設置的地址匹配時(shí),SJA1000即通過(guò)INT1(外部中斷)向AT89C52發(fā)送中斷請求,當AT89C52響應中斷請求后立即轉向中斷服務(wù)程序執行,在中斷服務(wù)程序內進(jìn)行信息的解釋?zhuān)⑦M(jìn)行相應的控制,如傳送溫濕度數據、修改控制參數等。在對SJA1000接收的信息進(jìn)行處理前,還需要對總線(xiàn)脫離、錯誤報警、接收溢出等進(jìn)行處理。
MOV DPTR,#SR ;狀態(tài)寄存器地址
MOVX A,@DPTR
ANL A,#0C3H ;讀取總線(xiàn)脫離、錯誤報警、接收溢出、有數據等位
JNZ ERRPROG ;轉錯誤處理程序
…… ;正常處理程序



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>