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

正文內(nèi)容

(畢業(yè)論文)基于rs485的遠(yuǎn)程采集與控制系統(tǒng)的設(shè)計(jì)-資料下載頁

2025-05-31 22:00本頁面
  

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