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

正文內容

畢業(yè)設計論文基于rs485的遠程采集與控制系統的設計-資料下載頁

2025-06-23 16:35本頁面
  

【正文】 發(fā)光,接著三極管導通,這是7腳輸出高電平,致使T1導通,此后開關K1合上并且指示燈亮,從而控制AD/DA電路的數據采集與反饋工作。D19是保護二極管。 2路DA轉換電路 TLC5615簡介本系統的2路DA轉化電路都用到了TLC5615芯片,TLC5615是一個串行10 位DAC芯片,性能比早期電流型輸出的DAC要好。只需要通過3根串行總線就可以完成10位數據的串行輸入,易于和工業(yè)標準的微處理器或微控制器(單片機) 接口,適用于電池供電的測試儀表、移動電話,也適用于數字失調與增益調整以及工業(yè)控制場合。其主要特點如下:? 單5V 電源工作;? 3線串行接口;? 高阻抗基準輸入端;? DAC 輸出的最大電壓為2倍基準輸入電壓;? 上電時內部自動復位;? 微功耗, ;? 轉換速率快, ;小型(D) 封裝TL C5615CD 和塑料DIP(P) 封裝TLC5615CP的工作溫度范圍均為0℃~70℃;而小型(D)封裝TL C5615ID和塑料DIP(P) 封裝TLC5615IP的工作溫度在40 ℃~85℃的范圍內。 TLC5615功能框圖 TLC5615 ,它主要由以下幾部分組成:(1) 10 位DAC 電路;(2) 一個16 位移位寄存器, 接受串行移入的二進制數,并且有一個級聯的數據輸出DOUT ;(3) 并行輸入輸出的10 位DAC 寄存器, 為10位DAC 電路提供待轉換的二進制數據;(4) 電壓跟隨器為參考電壓端REFIN 提供很高的輸入阻抗,大約10MΩ;(5) 2 電路提供最大值為2 倍于REFIN 的輸出; (6) 上電復位電路和控制電路。 TLC5615 的內部功能框圖 TLC5615 的TLC5615 的引腳分布圖 TLC5615引腳功能8 腳直插式TLC5615 所示。各引腳功能如下:? DIN ,串行二進制數輸入端。? SCLK ,串行時鐘輸入端。? CS ,芯片選擇,低有效。? DOUT ,用于級聯的串行數據輸出。? GND ,模擬地。? REFIN ,基準電壓輸入端。? OUT ,DAC 模擬電壓輸出端。? VDD ,正電源電壓端。 TLC5615推薦工作條件? VDD ,~ ,通常取5V ;? 高電平輸入電壓: ;? 低電平輸入電壓, ;? 基準輸入電壓: 2V~ (VDD 2) , ;? 負載電阻:不得小于2kΩ。 TLC5615的時序TLC5615 工作時序如圖3. 11所示。可以看出,只有當片選CS 為低電平時, 串行輸入數據才能被移入16 位移位寄存器。當CS 為低電平時,在每一個SCL K 時鐘的上升沿將DIN 的一位數據移入16位移寄存器。注意, 二進制最高有效位被導前移入。接著,CS 的上升將16 位移位寄存器的10 位有效數據鎖存于10 位DAC 寄存器, 供DAC 電路進行轉換。 當片選CS 為高電平時,串行輸入數據不能被移入16 位移位寄存器。注意, CS 的上升和下降都必須發(fā)生在SCL K 為低電平期間。從圖中可以看出,最大串行時鐘速率為:f( sclk ) max =1/ tw ( CH ) + tw( CS )≈14MHz TLC5615 工作時序如圖 TLC5615的兩種工作方式從圖39可以看出, 16位移位寄存器分為高4位虛擬位、低2位填充位以及10位有效位。在單片TLC561工作時, 只需要向16位移位寄存器按先后輸入10位有效位和低2位填充位, 2位填充位數據任意,這是第一種方式,即12位數據序列。第二種方式為級聯方式, 即16位數據序列, 可以將本片的DOUT接到下一片的DIN, 需要向16位移位寄存器按先后輸入高4位虛擬位、10位有效位和低2位填充位, 由于增加了高4位虛擬位, 所以需要16個時鐘脈沖。無論工作在哪一種方式,輸出電壓為:VOU = VREFIN N / 1024其中, VREFIN是參考電壓, N 為輸入的二進制數。 DA電路 : 兩路DA轉換電路及兩路穩(wěn)壓電路 其中電壓源VCC(最大5V)經過電阻的分壓后變?yōu)閂CC的基準電壓,DD4為保護二極管。由于系統要求能提供最大10V的輸出反饋,而單片機最大只能輸出5V電壓,因此穩(wěn)壓電路中用到LM358運放。LM358里面包括有兩個高增益、獨立的、內部頻率補償的雙運放,適用于電壓范圍很寬的單電源,而且也適用于雙電源工作方式,它的應用范圍包括傳感放大器、直流增益模塊和其他所有可用單電源供電的使用運放的地方使用。從INN1+輸入的最大5V的信號Vi1經過2倍放大后從OUT1輸出(此時輸出最大為10V),OUT1腳與INT2+相連在此段經過1:1放大,最終從OUT2輸出最大10V的信號。 3路AD轉換電路 : 3路AD轉換電路由于STC12C5410AD 帶有 8 路 10 位高速 A/D 轉換器,因此不再另用AD轉換芯片,直接用單片機的PP1P12采集3路節(jié)點信號。AD轉換電路同樣用到了LM358雙運算放大器,兩組信號分別送入U8處理,剩下的一組送入U9處理,最后經過電阻的分壓把輸出電壓降為原電壓的一半,在送入單片機處理。 本章小結本章設計了以STC12C5410AD單片機為核心的基于RS485通信的遠程數據采集與控制器,根據系統要求確立了3路數據采集電路、2路數據反饋電路、2路繼電器控制電路。并且在不通過RS485總線的情況下系統也能進行2路繼電器開關控制、反饋2路本地模擬控制量和采集3路本地節(jié)點信號的工作。 4 基于RS485通信遠程采集與控制器的軟件設計本章主要介紹主機和從機的軟件設計,整個系統軟件采用模塊化和結構化設計方法。本章從軟件的角度論述遠程采集與控制器系統的實現,論述的內容包括軟件系統的通信協議、整體設計與實現、系統的初始化、RS485總線程序、繼電器控制程序、DA輸出控制程序、AD采集程序的設計。 通信協議的設計 對于任何涉及數據接收和發(fā)送的系統,通信協議的設計都是軟件設計的前提和關鍵。對于協議設計而言,最重要的就是數據幀結構的設計。除了數據幀結構的定義外,整個系統的通信還需要遵守下面的規(guī)則: (1)主機主導整個通信過程。由主機判斷從機是否按下發(fā)送準備好按鍵,從機發(fā)送準備好信號后,主機要求這些從機提交其相對應設備的狀態(tài)信息。 (2)主機在發(fā)送完準備好命令后,進入接收狀態(tài)。 (3)主機接收到從機的返回命令幀后,發(fā)送“等待接收”指令,進入接收狀態(tài)。 (4)從機復位后,將等待主機發(fā)送指令,并根據具體的指令內容做出應答。 本系統的數據傳輸有以下特點: (1) AD采樣部分,采用10位ADC,DA輸出部分,采用10位DAC。(2)數據統一使用9600波特率,若傳輸距離超過200米,可考慮降低波特率。(3)接收數據幀:一共15字節(jié),包括起始字節(jié)、結束字節(jié)、地址、兩路DAC輸出數據等。: 基于RS485總線的遠程采集與控制系統接收幀格式表 數據位置(第n字節(jié))01234567功能起始字節(jié)地址發(fā)送控制1路DA輸出值高2位1路DA輸出值低8位2路DA輸出值高2位2路DA輸出值低8位預留空間數據位置(第n字節(jié))89101112功能預留字節(jié)預留字節(jié)預留字節(jié)繼電器控制結束字節(jié) 預留字節(jié)表示為以后功能擴展準備的空間,為無效數據。(4)發(fā)送數據幀:模塊將測得的數據發(fā)送給主機,3~7字節(jié)是發(fā)送當前該模塊的輸出值,以供主機讀取。數據的詳細格式,: 基于RS485總線的遠程采集與控制系統發(fā)送幀格式表 數據位置01234567功能起始字節(jié)固定0Xaa地址起始字節(jié)固定0X001路DA輸出值高2位1路DA輸出值低8位2路DA輸出值高2位2路DA輸出值低8位1路ADC測量值高2位數據位置89 10 11 12 13 14 15功能1路ADC測量值低8位2路ADC測量值高2位2路ADC測量值低8位3路ADC測量值高2位3路ADC測量值低8位1個或多個按鍵按下的鍵值結束字節(jié)固定0X55 起始字節(jié)定義為“0xaa”,結束字節(jié)定義為“0x55”當起始字節(jié)跟結束字節(jié)有誤時,從機都收不到數據。地址字節(jié)實際上存放的是從機對應的設備號,此設備號在一開始就由撥碼開關組S3予以設置。由于只用了一個字節(jié)作為地址位,因此地址范圍為0~255。當從機數量大于256臺時,可考慮用幾個字節(jié)作為地址位(雖然RS485通信允許的最大從機數為32臺,但使用特殊的RS485收發(fā)器芯片可突破此限制,比如,本設計采用的MAX485芯片,最大從機數可達到256臺)。在工作時,每一個設備都按規(guī)定設置好,一般不會改動,改動時重新設置開關即可得到,但要注意設置時應該避免地址重復。主從機通信時,主機先判斷S3開關是否按下,按下說明主機已準備好發(fā)送數據,這時主機才開始接向從機發(fā)送數據。從機發(fā)來的數據幀中前2字節(jié)分別為起始字節(jié),從機地址(即發(fā)送數據給哪臺從機)。由于DAC輸出數據為10位,而一字節(jié)只有8位,為此DAC輸出的高八位與低2位分開存放,從機接收時再去相應位去取出還原。 主機發(fā)送數據程序語句如下: send[3]=DAC1/0xff。 // send[3]存放DAC1高8位 send[4]=DAC1%0xff。 // send[4]存放DAC1低2位 send[5]=DAC2/0xff。 // send[5]存放DAC2高8位 send[6]=DAC2%0xff。 // send[6]存放DAC2低2位 從機接收數據程序語句如下: DAC1 = Data_buf[3]*4+Data_buf[4]。// 取Data_buf[3]作為DAC1的高8位,Data_buf[4] 作為DAC1的低2位 DAC2 = Data_buf[5]*4+Data_buf[6]。 // 取Data_buf[5]作為DAC1的高8位,Data_buf[6] 作為DAC1的低2位 主程序流程 主機主程序流程主機端軟件主要是進行通信接口部分和數據采集和控制部分的設計。主機一邊偵察從機是否有數據發(fā)送過來,一邊向從機發(fā)送控制命令。每按下一次S3按鍵主機就像從機發(fā)送一次控制命令。當沒有按鍵按下時,主機一直偵察從機是否有數據發(fā)送過來。只有S3按鍵按下,并且RS485總線為發(fā)送狀態(tài)時主機才向從機發(fā)送控制命令,因此整個數據發(fā)送階段分為了準備發(fā)送階段和發(fā)送階段。只有總線為發(fā)送狀態(tài)時主機才向從機發(fā)送數據,因此從機發(fā)送過來的數據應先存放在臨時數據存放區(qū),判斷RS485總線為發(fā)送狀態(tài)時才送到從機進行數據處理。從機發(fā)過來的數據也是先放在臨時數據存放區(qū),判斷滿足通信協議后才接收。主要的流程是:首先對相關參數及函數的設定,設置各個緩沖區(qū)。一開始RS485總線設置為接收模式,進行系統初始化,設置串行中斷為高優(yōu)先級,然后進入死循環(huán)。判斷準備發(fā)送按鍵是否按下,再發(fā)送數據,數據發(fā)送后判斷總線是否為準備接收狀態(tài),最后接收數據。: 主機系統主程序流程圖主要的程序代碼如下:void main (){ uchar i。 uchar Data_buf[Rcv_Lenth]。 //存放從從機接收的數據 uchar JiDian1=0,JiDian2=0。 //繼電器開 uint AIN1=55, AIN2=66, AIN3=77, DAC1=128, DAC2=255。 i=0。 RS485_Rcv_Mode()。 System_Init()。 //系統初始化 PS=1。//PSH=1。// 優(yōu)先級設置 LED1=0。 LED2=0。 RS485_Rcv_Mode()。 while (1) { if(S3==0) { send[0] = 0xaa。 //起始字節(jié) send[1] = 0x2b。 //地址 send[2] = 0xff。 //起始字節(jié) /*DAC輸出控制,由于DAC輸出數據為10位,而一字節(jié)只有8位,為此DAC輸出的高八位與低2位分開存放,從機接收時再去相應位去取出還原*/ DAC1+=20。 DAC2+=40。 if(DAC1=1023)DAC1=1023。 if(DAC2=1023)DAC2=1023。 send[3]=DAC1/0xff。// send[3]存放DAC1高8位 send[4]=DAC1%0xff。// send[4]存放DAC1低2位 send[5]=DAC2/0xff。 send[6]=DAC2%0xff。 // 繼電器輸出 if(JiDian1==0) JiDian1 = 1。 else JiDian1 = 0。 send[11] = 14|JiDian1。 //起始字節(jié) // RS485發(fā)送數據 send[12] = 0x55。 //結束字節(jié) RS485_Send_Flag=1。 delay_ms(150)。 // 按鍵去抖 } // 發(fā)送數據出去 if(RS485_Send_Flag) { if(Rflag==0) { Max485_se
點擊復制文檔內容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1