freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

can總線的溫室控制系統(tǒng)設(shè)計-wenkub.com

2025-07-27 00:13 本頁面
   

【正文】 在開始另一個讀周期前,必須有1μS以上的高電平恢復(fù)期。 while(i0)i。 i=103。(3)DS18B20發(fā)出60~240μS的低電平作為應(yīng)答信號。 count。CAN_Send_anylength(wendu,4)。}//定時器0中斷,不夠8個就在此發(fā)送void time_intt0(void) interrupt 1 using 2 { TH0=0x3c。TL0=0x00。 while(!TI)。 TL1 = 0xFA。void init_serialm(void){ SCON = 0x50。//數(shù)碼管位選sbit P2_3=P2^3。sbit DS=P2^4。// unsigned char code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0x88, x83,0xc6,0xa1,0x86,0x8e }。// }}}附錄二 2號CAN節(jié)點程序代碼include include include define uchar unsigned chardefine uint unsigned intvoid CAN_Send_onebyte(unsigned char CAN_TX_data,unsigned char length1)。 CAN_Send_onebyte(1,1)。 //初始化成功,開總中斷 while(1){ tmpchange()。 init_serialm()。 EA=0。 EA=1。 //設(shè)置中斷,接收和發(fā)送中斷 SJA_BCANAdr=REG_CONTROL。 SJA_BCANAdr=REG_OCR 。 s=BCAN_SET_OBJECT(0xFF,0x4E,0x16,0x00,0xff,0xff,0xff,0xff)。 s=BCAN_CREATE_COMMUNATION()。 //請求發(fā)送 }}//初始化SJA10000unsigned char Sja_1000_Init(void){ bit s。 //訪問地址指向發(fā)送緩沖區(qū)1,修改成頭文件 *SJA_BCANAdr=0x00。 //訪問地址指向發(fā)送緩沖區(qū)1,修改成頭文件 *SJA_BCANAdr=length1。 temptt=*SJA_BCANAdr。 memcpy(RevceData,SJA_BCANAdr,length)。0x0F。 if((*SJA_BCANAdr)amp。 default: return 1。 if((*SJA_BCANAdr amp。 0x01)==1) return 1。 else return 1。 break。 //訪問地址指向命令寄存器 *SJA_BCANAdr=cmd。 //置位復(fù)位請求 和單濾波模式 if((*SJA_BCANAdramp。 } //CAN控制器進(jìn)入復(fù)位工作模式 bit BCAN_ENTER_RETMODEL(void) //置位復(fù)位請求 { unsigned char TempData。}//該函數(shù)用于檢測CAN控制器的接口是否正常 bit BCAN_CREATE_COMMUNATION(void) { SJA_BCANAdr=REG_TEST。} SJA_BCANAdr=REG_BTR1。 break。 case ByteRate_1000k: BTR0_num=0x00。 break。 BTR1_num=0xfa。 case ByteRate_200k://24MHZ BTR0_num=0x43。 break。 BTR1_num=0x1b。 case ByteRate_50k: BTR0_num=0x0e。 break。 BTR1_num=0x1C。 switch (BR_Num) { case ByteRate_5k: BTR0_num=0xBF。 if(*SJA_BCANAdr != BCAN_AMR3) return 1。 SJA_BCANAdr=REG_TXBuffer7。 SJA_BCANAdr=REG_TXBuffer5。 *SJA_BCANAdr=BCAN_ACR2。 *SJA_BCANAdr=BCAN_ACR0。 if(*SJA_BCANAdr != Clock_Out) return 1。//選通第一位數(shù)碼管的陽極位選端,即給數(shù)碼管的共陽極供電 P2_3=1。 P1=table[12]。//選通第一位數(shù)碼管的陽極位選端,即給數(shù)碼管的共陽極供電 P2_1=0。//選通第一位數(shù)碼管的陽極位選端,即給數(shù)碼管的共陽極供電 P2_3=1。0x7f。//選通第二位數(shù)碼管的陽極位選端,即給數(shù)碼管的共陽極供電 P2_2=1。 xiao=A3。 A2=A2t/10。 //返回溫度值}void display18B20(uint temp) //顯示程序{ uchar A1,A2,A2t,A3。 //兩字節(jié)合成一個整型變量。 //連續(xù)讀兩個字節(jié)數(shù)據(jù) b=tmpread()。 delay(1)。 // 跳過序列號命令 tmpwritebyte(0x44)。j++)。 for (i=0。//在15~60μS的時間內(nèi)DS18820對信號線檢? DS=1。while(i0)i。 i++。j++) { testb=datamp。 uchar j。 //將一個字節(jié)數(shù)據(jù)返回}/*寫操作:主機(jī)將信號線從高電平 拉至低電平,產(chǎn)生寫起始信號。i=8。 return (dat)。i++。 DS=0。從而完成了一個讀周期。 i=4。 //DS18B20初始化 DS=0。(2)主機(jī)將信號線置為高電平,時間為15~60 μS。 while(i0) i。 while(!TI)。 //波特率9600初始值 TL1=0xFA。void init_serialm(void){ SCON=0x50。//數(shù)碼管位選sbit P2_1=P2^1。unsigned char data RevceData[10]。在此向所有曾幫助過我的老師表示我由衷的謝意,并祝愿我的老師們培養(yǎng)出越來越多的優(yōu)秀人才,桃李滿天下!同時也非常感謝幫助過我的同學(xué)們,愿他們步入社會后工作順利,前程似錦!附錄一 1號CAN節(jié)點程序代碼include include include define uchar unsigned chardefine uint unsigned intunsigned char ser,shi,ge,xiao。其中我要特別感謝的是我的專業(yè)課老師也是我的畢業(yè)論文的指導(dǎo)老師張明海老師。 該溫度采集模塊不僅能夠更方便地獲取通信數(shù)據(jù),并把數(shù)據(jù)通過CAN現(xiàn)場總線發(fā)送到PC機(jī),而且系統(tǒng)結(jié)構(gòu)簡潔、擴(kuò)展方便、抗干擾能力強(qiáng)、可靠性高、實時響應(yīng)性好。在自動化控制系統(tǒng)中,合理安排這29位識別碼可以使許多問題得以簡化。網(wǎng)上的資料很多,這給我們提取出對我們用的資料增加了難度,但是它確是特別方便的,其中的資料有時候能給我們解決問題的直接答案,有時候是給我們指了一條如何解決問題的思路。在此基礎(chǔ)上出現(xiàn)上述問題時,我們先檢查下位機(jī)相關(guān)通信的程序代碼,看是否有錯誤,然后再檢查是否上位機(jī)發(fā)送數(shù)據(jù)的格式與上位機(jī)接收和顯示數(shù)據(jù)的格式一致。如果不能則修改其中代碼或者修改窗體的控件的相關(guān)參數(shù),直到能使系統(tǒng)穩(wěn)定運(yùn)行為止。用代碼實現(xiàn)時可以將其分為畫時鐘的表盤和畫走針兩個部分。相關(guān)程序代碼如下: MSComm控件的OnComm事件MSComm控件的OnComm事件在使用VB進(jìn)行通信設(shè)計中是至關(guān)重要的,此處我們只用其中的一種情況,即Case EvReceive。圖51 系統(tǒng)上位機(jī)窗體設(shè)計效果圖2. 代碼編寫代碼編寫就是針對窗體中所加的控件的屬性和行為進(jìn)行設(shè)置和控制,這部分內(nèi)容在VB工程的代碼窗口中。1. Visual Bisic界面設(shè)計Visual Bisic界面設(shè)計即為系統(tǒng)上位機(jī)人機(jī)界面設(shè)計。就這樣反復(fù)調(diào)試程序,直到下位機(jī)系統(tǒng)能正確的按照我們的意愿對某個按鍵進(jìn)行響應(yīng)為止。此模塊疏通后再加入串行通信部分代碼,首先用串口助手測試數(shù)據(jù)的收發(fā),看單片機(jī)與上位機(jī)之間能否正常收發(fā)數(shù)據(jù),如不能修改代碼,再編譯、燒錄、觀察,直到數(shù)據(jù)收發(fā)正常為止。2)在DS18B20測溫程序設(shè)計中,向DS18B20發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS18B20的返回信號,一旦某個DS18B20接觸不好或斷線,當(dāng)程序讀該DS18B20時,將沒有返回信號,程序進(jìn)入死循環(huán)。 b+=(aamp。 //跳過ROM write_byte(0xbe)。//跳過ROM write_byte(0x44)。編寫程序的具體步驟可參考圖44。如執(zhí)行數(shù)據(jù)讀寫指令則需要嚴(yán)格遵循DS18B20的讀寫時序來操作。存儲器操作指令分別是寫RAM數(shù)據(jù)(4EH)、讀RAM數(shù)據(jù)(BEH)、跳過ROM匹配(CCH)、溫度轉(zhuǎn)換(44H)。 }}3. DS18B20的軟件設(shè)計首先我們必須對DS18B20芯片進(jìn)行復(fù)位,復(fù)位就是讓控制器(單片機(jī))給DS18B20單總線至少480us的低電平信號。//讀出需要的length個字節(jié)數(shù)據(jù) for(i=0。//取數(shù)據(jù)長度 if ((ttamp。0x01) { SJA_BCANAdr=REG_RXBuffer1。N接收緩沖區(qū)狀態(tài)=“滿”? 釋放接收緩沖區(qū)(設(shè)置命令寄存器) 處理接收到的報文Y從接收緩沖區(qū)讀取新報文并保存 開始 結(jié)束 圖43 CAN節(jié)點數(shù)據(jù)接收流程圖根據(jù)圖示編寫程序程序代碼如下。當(dāng)接收緩沖區(qū)狀態(tài)標(biāo)志指示為“空”時,表示沒有接收到報文;在沒有新的檢查接收緩沖區(qū)狀態(tài)的要求前,CPU則繼續(xù)當(dāng)前的任務(wù)。 //標(biāo)識碼 SJA_BCANAdr = REG_RXBuffer4。 //幀信息SJA_BCANAdr = REG_RXBuffer2。 if((tempttamp。 發(fā)送緩沖區(qū)釋放? 禁止CAN中斷 將報文寫入發(fā)送緩沖區(qū) 置位發(fā)送請求是否處于發(fā)送完狀態(tài)Y Y 做其它任務(wù)或簡單循環(huán)N N 結(jié)束 開始 圖42 CAN節(jié)點數(shù)據(jù)發(fā)送流程圖根據(jù)以上圖示編寫程序代碼,部分程序代碼如下,其他程序代碼見附錄一。 //設(shè)置成功 else return 1。 TempData= *SJA_BCANAdr。其初始化流程圖如圖41所示。 CAN_Send_anylength(dabuf,1)。 //清除標(biāo)志位 redata=SBUF。PC機(jī)端設(shè)置好通信中所用串口的屬性,如通信端口、波特率、數(shù)據(jù)位等,單片機(jī)程序據(jù)此編寫驅(qū)動程序,程序主要包括串口的初始化和中斷接收數(shù)據(jù)以及發(fā)送數(shù)據(jù)。5)加復(fù)位電壓檢測電路。使用完全光耦隔離的方法來提高抗干擾能力,減少互感振蕩,光耦器件應(yīng)該選擇高速類型。我們可以通過控制交流電動機(jī)的供電電源的通斷來控制交流電動機(jī)的運(yùn)行狀態(tài)。試驗中,當(dāng)采用普通信號電纜傳輸長度超過50m時,讀取的測量數(shù)據(jù)將發(fā)生錯誤;當(dāng)將總線電纜改為屏蔽雙絞線時,正常通信距離可達(dá)150m;當(dāng)采用帶屏蔽層且每米絞合次數(shù)更多的雙絞線電纜時,正常通信距離進(jìn)一步加長。 DS18B20與單片機(jī)的連接從控制器到DS18S20的連接僅需一條數(shù)據(jù)線,完成溫度采集與轉(zhuǎn)換所需的電源可以由數(shù)據(jù)線本身提供而無需外部供電,功耗較低。圖36 DS18B20內(nèi)部結(jié)構(gòu)圖DS18B20的引腳功能描述如下表32?! ?)測量結(jié)果直接輸出數(shù)字溫度信號,以“一 線總線”串行傳送給CPU,同時可傳送CRC校驗碼,具有極強(qiáng)的抗干擾糾錯能力。   5)溫范圍-55℃~+125℃,在10~+85℃時精度為177。
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1