【正文】
R4C V ol t5T H R6D IS7VCC8GND1555H S 110 1AD0AD1AD2AD3AD4AD5AD6AD7R3576 K+5R4R51KR6909 KT0RDWRT X D1R X D4V R E F5V C C3C A N H7C A N L6RS8GND2R882C 5 0IN3V D D2V C C8EN7OUT6GND56N 137AD61AD72A L E3CS4RD5WR6C L O C K O U T7X T A L 19X T A L 210R S T17I N T16V S S 18V S S 221V S S 315AD023AD124AD225AD326AD427AD528T X 013T X 114V D D 122V D D 218R X 019M O D E11V D D 312R X 120S J A 1000I N 026m s b 2 1212 220I N 1272 3192 418I N 2282 582 615I N 312 714l s b2 817I N 42E O C7I N 53A D D A25I N 64A D D B24A D D C23I N 75A L E22r e f( )16E N A B L E9S T A R T6r e f(+ )12C L O C K10A D C 0809AD0AD1AD2AD3AD4AD5AD6AD7P 27AD0AD1AD2AD3AD4AD5AD6AD7P 26RDWRI N T 0A L EIN3V D D2V C C8EN7OUT6GND56N 137R7 390R8390R9 R 10V C CC4100 pFR 11 390V C C 1R 12390R 13 5R 14 5C5 100 nFC6100 nFC730p FC830p FR 1547k D1D2CANBUSP 27P 21P 22P 20P 23P 23A L EP 20P 21P 22P 23P 26P 27T0I N T 0RSRWENS1S W P BS2S W P BS3S W P BS4S W P BS5S W P BS6S W P BGND3VCC1V out2L M 35321411U 1AL M 324R 18500 KR 171KR 1610K+ 12 VV C CIND5Q1CLK3Q2R4S6U 3AD5Q1CLK3Q2R4S6U 2AC L KALEP 13P 14P 15P 16P 17T1T R A N S 11234D3B R I D G E 1C9220 0uFC 12220 0uFC 14220 0uFV i n1GND2V out3L 781 2V i n1GND2V out3L 780 5C 10C 11C 13+ 12 V V C C220 V ~ 12V ~INR 1910KR 2010KR 2110K+ 5VP 17P 16P 13P 14P 15V C CGND1V i n2OV3+V4B 050 5SR 22240C 1535u FV C C 1 第 4章 軟件設計 節(jié)點 程序主要包括 主程序、 CAN 控制器初始化程序、 濕度檢測中斷程序、 接收程序和發(fā)送程序。其中主程序主要完成 中斷初始化、 鍵盤掃描、溫度檢測 和溫濕度顯示及報 警等功能 ; CAN 控制器初始化程序主要完成 SJA1000 的初始化設置; 濕度檢測中斷程序完成濕度傳感器的 脈沖 計數及 對應適度的計算 ; 接收程序由單片機的外部中斷完成,主要實現節(jié)點接收報文的處理;發(fā)送程序主要實現節(jié)點報文的發(fā)送。 主程序流程圖 主程序要完成中斷初始化,并調用 SJA1000 初始化程序,對矩陣鍵盤的掃描并存儲設定的溫濕度上下限及相應的控制信息,對溫度信號進行采樣, 同時將節(jié)點采集的溫濕度 數據幀發(fā)送到總線上 , 并將溫濕度值和報警信息送往 LCD1602液晶顯示器 。主程序流程圖如下圖 所示。 圖 主程序流程圖 SJA1000初始化程序流程圖 SJA1000 控制器初始化主要完成工作方式設置、接收濾波方式設置、接收屏蔽寄存器和接收代碼寄存器的設置、波特率參數設置和中斷允許寄存器設置等。SJA1000 初始化程序流程圖如下圖 所示。 圖 SJA1000 初始化程序流程圖 發(fā)送程序流程圖 發(fā)送溫濕度數據時,將待發(fā)送的數據按特定格式組合為一幀報文,送入SJA1000 發(fā)送緩沖區(qū),然后啟動 SJA1000 發(fā)送。 發(fā)送程序流程圖如下圖 所示。 圖 發(fā)送程序流程圖 接收程序流程圖 數據幀的接收在外部中斷服務程序里面完成,其中當 SJA1000 將總線驅動器收到的數據轉換存入接收緩沖區(qū)后即給單片機產生中斷,提示單片機對通信數據進行接收。接收程序流程圖如下圖 所示。 圖 接收程序流程圖 第 5章 課程設計總結 基于 CAN 總線的溫濕度節(jié)點設計 主要由單片機最小系統(tǒng)、 濕度檢測電路、溫度檢測電路、 A/D 轉換電路、鍵盤電路、顯示電路、 CAN 控制器、光電耦合電路、 CAN 收發(fā)器和電源電路構成 。 本節(jié)點以單片機 AT89S52 為主控制器,鍵盤設定溫濕度的上下限,由溫度傳感器檢測溫室內的溫度并經 A/D 轉換后送往單片機,濕度傳感器檢測濕度值轉換為脈沖信號送往單片機, LCD 實時顯示室內的溫濕度值及報警信息,單片機通過 CAN 總線控制器、光電耦合電路和 CAN 驅動器連接至 CAN 總線,與總線的其他節(jié)點通信,實現溫濕度值的檢測、處理及監(jiān)控。 基于 CAN 總線的溫濕度檢測系統(tǒng)可以有較大的檢測范圍 , 且傳輸 速率較高,便于遠程監(jiān)控和信息匯總及控制 ,提高了 溫室變量檢測 的精度,降低了人工 勞動 強度,具有較高的效率。 參考文獻 [1] 張鳳登 . 現場總線技術與應用 [J]. 北京 : 科學出版社 , [2] 李金剛 , 永鴻.基于 AT89C51 型單片機的 CAN 總線智能節(jié)點設計 [J]. 閏外電子元器件 , 2020(8 ): 2629 [3] 鄒琳軍 , 運濤.基于 SJAl000 的 CAN 總線系統(tǒng)智能符點設計 [J].單片機與嵌入式系統(tǒng)應用 , 2020(7): 147151 [4] 鄔寬明等 . CAN 總線原理和應用系統(tǒng)設計 . 北京航空航天人 學出版社 , [5] 李德良 . 基于寄生傳輸的檢測報警系統(tǒng) . 大連理 工 大學碩士學位論文, [6] 劉軍 張侃諭 . CAN 總線技術在溫室計算機控制系統(tǒng)中的應用 [J]. 自動化儀表, 2020, 23(11): 5356 [7] 宋紀恩 . CAN 總線在白動化系統(tǒng)中的應用 [J]. 農村電氣化, 2020 年第 l 期,3637 [8] 夏繼強 , 邢春香 . 現場總線工業(yè)控制網絡技術 [M]. 北京:北京航空航天大學出版社, [9] 何黎明 , 饒家明,田作華 . 基于現場總線的溫室分布式控制系統(tǒng) [M]. 計算機工程, 2020, 28(4): 222223 [10] 部寬明 . CAN 總線原理和應用系統(tǒng)設計 [M]. 北京:北京航空航天大學出版社, 1996 [11] 李真花 , 崔健 . CAN 總線輕松入門與實踐 . 北京:北京航空航天大學出版社, 附錄 主程序 : SJA_RST = 1。 SJA_CS = 0。 EX1 = 1。 IT1 = 0。 IT0 = 1。 EX0 = 1。 EA = 1。 SJA_CS = 1。 _nop_()。 _nop_()。 while(1) { key()。 ad()。 _nop_()。 _nop_()。 Rxd_deal()。 Txd_deal()。 lcd(0,Txd_data)。 } SJA1000 初始化子程序: BCANADR=BTR0。 *BCANADR=0X00。 BCANADR=BTR1。 *BCANADR=0X1C。 *BCANADR=0X48。 BCANADR=ACR。 *BCANADR=0XAA。 BCANADR=AMR。 *BCANADR=0XFF。 BCANADR=OCR。 *BCANADR=0X1A。 CAN 收發(fā)程序: BCANADR=CMR。 *BCANADR=0X04。 BCANADR=TXB0。 *BCANADR=0X40。 BCANADR=TXB1。 *BCANADR=0X48。 BCANADR=TXB2。 *BCANADR=0X11。 BCANADR=TXB3。 *BCANADR=0X22。 BCANADR=TXB4。 *BCANADR=0X33。 BCANADR=TXB5。 *BCANADR=0X44。 BCANADR=TXB6。 *BCANADR=0X66。 BCANADR=TXB7。 *BCANADR=0X77。 BCANADR=CMR。 *BCANADR=0X01。