【正文】
plication in the industrial scene of an obstacle, the increase in the relay or Hub, USB transmission distance is usually more than a dozen meters, which run on the industrial scene is obviously too short. Now there is a lot of industrial use RS485 transmission of data acquisition equipment. RS485 has its inherent advantages that its transmission distance can reach 1,200 meters, and a number of equipment can be articulated. Deficiencies lies in the slow speed of transmission, the use of bus, equipment mutual influence between the low reliability, Card needs the support the high cost of installing such trouble. RS485 of these shortings can be just as USB cover, USB and the transmission distance is limited precisely RS48539。[16]張菊,2006年01期。[14]羅偉雄,2005年07期。馬潮 葉勇建..AVR高速嵌入式單片機(jī)原理與應(yīng)用(修訂版) 。[12]耿德根[10]:中國(guó)電力出版社,2005年。[7]:Atmel公司。鄒理和. [5]顧德仁原編,:高等教育出版社,1986年。[3]:人民郵電出版社,1995年。再次感謝師長(zhǎng)、同學(xué)、朋友給了我無(wú)言的幫助,在這里請(qǐng)接受我誠(chéng)摯的謝意!學(xué)生簽名:日 期: 參考文獻(xiàn)[1]。同時(shí),更重要的是建立了自信心。所有的設(shè)計(jì)工作均獨(dú)立完成,當(dāng)時(shí)的困難現(xiàn)在看起來(lái)已經(jīng)不算問(wèn)題,但在缺少相關(guān)資料和經(jīng)驗(yàn)的條件下進(jìn)行研究 工作確實(shí)不是件容易的事情。這篇論文的完成與王老師付出的辛苦勞動(dòng)分不開(kāi),再次表達(dá)我的謝意! 還要感謝所有幫助過(guò)我的朋友們,特別是在設(shè)計(jì)快完成時(shí)候劉亮同學(xué)的幫助,還感謝寢室同學(xué)的幫助,在設(shè)計(jì)期間大家互相探討,互相學(xué)習(xí),大家共同度過(guò)了這段緊張的學(xué)習(xí)。致 謝在這里首先要感謝學(xué)校給予我的培養(yǎng),還要感謝四年來(lái)所有授課的老師,特別要感謝論文的指導(dǎo)老師王老師,在論文的設(shè)計(jì)中,不僅得到了王老師的親自授課,還得到了資料上的支持和啟發(fā)。通過(guò)本次設(shè)計(jì),達(dá)到了畢業(yè)設(shè)計(jì)的目的和要求。同時(shí)也啟發(fā)了自己以后的學(xué)習(xí)方法,在以后的學(xué)習(xí)和生活中都是很好的經(jīng)驗(yàn)。在設(shè)計(jì)中不斷的遇到困難和失敗,通過(guò)和老師,同學(xué)請(qǐng)教,資料的查閱都一一得到了解決,并且在解決中得到了學(xué)習(xí)和進(jìn)步。在軟件設(shè)計(jì)中,先進(jìn)行了AVR匯編語(yǔ)言的學(xué)習(xí),對(duì)各個(gè)模塊分別設(shè)計(jì),最后在進(jìn)行C語(yǔ)言的設(shè)計(jì),對(duì)兩者進(jìn)行比較,顯示出來(lái)了C語(yǔ)言的簡(jiǎn)單化,同時(shí)也繼續(xù)加強(qiáng)了對(duì)C語(yǔ)言。在A/D芯片,放大芯片,儲(chǔ)存芯片等使用中,進(jìn)行了各種芯片的學(xué)習(xí),在不斷的與類似芯片的對(duì)比,得出了最佳的選擇,使硬件設(shè)備達(dá)到了系統(tǒng)要求的最優(yōu)化。與以前學(xué)的C51進(jìn)行了對(duì)比學(xué)習(xí),學(xué)習(xí)起來(lái)得心應(yīng)手,在了解其先進(jìn)性時(shí),對(duì)自己的知識(shí)面有了更大的提高和更新。特別是在設(shè)計(jì)采集模塊時(shí),對(duì)采集理論知識(shí)有了更加深刻的認(rèn)識(shí),使以前的理論得到了實(shí)際的應(yīng)用。在由于本人的學(xué)識(shí)有限,本設(shè)計(jì)有許多需要改進(jìn)的地方,望各位評(píng)閱者給予修改和建議。最后需改進(jìn)的是增加外設(shè)接口,能夠高速的實(shí)現(xiàn)與PC機(jī)通信,能夠進(jìn)行PC顯示和調(diào)試,實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)采集,實(shí)現(xiàn)數(shù)據(jù)采集的網(wǎng)絡(luò)化。通過(guò)單片機(jī)控制實(shí)現(xiàn)溫度,濕度,和光度的調(diào)節(jié),實(shí)現(xiàn)采集控制一體化,實(shí)現(xiàn)溫室控制智能化。首先是在所設(shè)計(jì)的采集系統(tǒng)可以與控制系統(tǒng)實(shí)現(xiàn)通信,對(duì)采集的數(shù)據(jù)與設(shè)定初始值進(jìn)行比較。由于本人知識(shí)水平有限,只能達(dá)到自己水平設(shè)計(jì)高度。在硬件完善后,根據(jù)每個(gè)硬件模塊的功能進(jìn)行軟件設(shè)計(jì),軟件設(shè)計(jì)主要是針對(duì)單片機(jī)控制電路,在軟件設(shè)計(jì)中主要分為定時(shí)中斷,外部中斷, SPI通信等子程序,每個(gè)子程序應(yīng)用C語(yǔ)言編寫(xiě),先進(jìn)行獨(dú)立調(diào)試,在最后對(duì)子程序合并,進(jìn)行綜合調(diào)試,達(dá)到硬件驅(qū)動(dòng)的要求。在數(shù)據(jù)處理中對(duì)數(shù)據(jù)進(jìn)行了顯示和儲(chǔ)存,在數(shù)據(jù)有PC口傳輸通信。再根據(jù)三大模塊對(duì)每個(gè)模塊進(jìn)行了功能的具體化設(shè)計(jì),在數(shù)據(jù)采集模塊中又進(jìn)行了溫度和電信號(hào)的轉(zhuǎn)換,模擬信號(hào)的放大。在按照系統(tǒng)采集速度,精確度,穩(wěn)定度,等設(shè)計(jì)原則和要求,得出了設(shè)計(jì)的大體方案。return 0。}outportb(Ox37a,inportb(Ox37a)lOx04)。y20=y21。}y00=y01。 line(x0,y30,xl,y31)。 line(x0,y20,x 1,y21)。 line(x0,y 1 O,x l ,y I 1)。 line(x0,y00,x 1,y01)。 y31=180value[3]*。 y1 1=180value[1 1*。 if(xl=xm) x1=0。 x0=0。 putpixel(x1,y31,WHITE)。 putpixel(x1,y11,YELLOW)。 rectangle(0,0,300,180)。69if(x 1 =xm))xI==O){clearviewport()。 } cout+endl+”Adding result to file ”。 printf(“%d %4xh。4)。 j=3 j++) {value[]}=(Oxflf)amp。 cout+”Actural Values:”。 } cout+”\tNo.”+i+endl。j+ +) //得的字符流輸出獲 {printf(“%2xh,”, *p)。 Gout+”Received Stream:”。//接收數(shù)據(jù)出錯(cuò) else{ clrscrQ。Oxfb)。if((inportb(Ox379)amp。int y00=180,y01=180,y10=180,y11=180,y20=180,y21=180,y30=180,y31=180。xo=0O,yo=O,xm=300,ym=180。int xo=150,yo=100,xm=450,ym=400。window(1,1,80,5)。exit([]。 printf(“Press any key to halt:”)。errorcode“graphresultQ。gdriver, amp。int gdriver=DETECT, gmode, errorcode。int i=0j。return 0。}while(length!=0)。 P++。0x01) {outportb(Ox379,Ox return 1。 P++。}int Receive(char *buf){char *p=buf。} while(length!=0)。 p++。 return 1。 do{if(inportb(Ox379)amp。} 總程序 C語(yǔ)言源程序清單:include include include include include include include include int Send(char *buf){char *p=buf。i++){send_spi_data(tmpdata,4)。i++)for(i=0。// for(i=0。tmpdata[2] = 0x56。tmpdata[0] = 0x34。}/*void main(){int i。}while(size0)。CLR_WCK(data)。}// buf++。}buf++。// delay(1)。CLR_BCK(data)。short_delay(1)。// delay(1)。}else{CLR_DATA(data)。i++){if((*buf)amp。for(i=0。j2。k2。do{SET_WCK(data)。if((size%4)!=0) return FALSE。int i,j,k。unsigned char *buf=buff。i {int temp =0。}// Note: the size of buffer to send must be dword multiple// size is the number of bytes to sendvoid short_delay(int n){int i。SET_DATA(data)。getch()。printf(“Pull down DATA \n”)。SET_BCK(data)。getch()。printf(“Pull down BCK \n”)。SET_WCK(data)。getch()。printf(“Pull down WCK \n”)。printf(“Please press enter to begin send data\n”)。 outportb(LPT_PORT,X)。 outportb(LPT_PORT,X)。 }define CLR_DATA(X) {X=Xamp。 } // define SET_BCK(X) {X=X | (12)(~(12))。 outportb(LPT_PORT,X)。 outportb(LPT_PORT,X)。開(kāi)始現(xiàn)場(chǎng)保護(hù)取中斷源信息收取USB數(shù)據(jù)流指令分析設(shè)置解釋執(zhí)行指令并回復(fù)關(guān)中斷進(jìn)入鍵盤(pán)設(shè)置程序設(shè)置執(zhí)行程序現(xiàn)場(chǎng)恢復(fù)返回讀取采樣值采樣值處理;存入Ram或直接傳到PC換頁(yè)或通知PCRam存滿?帶回復(fù)指令YN鍵盤(pán)中斷AD中斷 外部中斷服務(wù)程序 SPI通信程序設(shè)計(jì)在設(shè)計(jì)中,我們模數(shù)轉(zhuǎn)換的ADS7835芯片采取SPI的方式進(jìn)行通訊,SPI通信程序如下:define LPT_PORT 0x378define CLR_WCK(X) {X=Xamp。開(kāi)始初始化、參數(shù)設(shè)置消息循環(huán)、等待指令主要的中斷有兩種:定時(shí)中斷和外部定時(shí)中斷由定時(shí)器產(chǎn)生,作為定時(shí)采樣時(shí)的觸發(fā)信號(hào)和時(shí)標(biāo)。二級(jí)管組成橋式整流,MC7415T和MC7405T是為系統(tǒng)提供+12V和5V的電壓。LCD功能是通過(guò)對(duì)數(shù)字譯碼,對(duì)采集數(shù)據(jù)進(jìn)行顯示,達(dá)到系統(tǒng)與人的交互。6N137是一種光電隔離器,實(shí)現(xiàn)被采集信號(hào)與主控電路隔離,在系統(tǒng)中主要是發(fā)揮其隔離的功能。OP07是在一級(jí)放大以后進(jìn)行二級(jí)放大,分別由RW2—RW6實(shí)現(xiàn)增益控制。 PB0 PB1 PA7PA0按鍵地址選通 R/WE RS D7D0三態(tài)緩沖ATMEGA16 LCD和鍵盤(pán)電路圖 總電路設(shè)計(jì) 總設(shè)計(jì)電路 各元件功能簡(jiǎn)述,本電路主要是由三路信號(hào)的流程模塊組成,其三個(gè)模塊的功能和組成都是相同,每個(gè)信號(hào)模塊都是由AD620,0P07,ADS7835,6N137,繼電器,電阻,電容,等元件組成。作為提供給用戶的界面。使整個(gè)數(shù)據(jù)采集系統(tǒng)的靈敏度有了很大的提高。 A/D轉(zhuǎn)換隔離電路圖 單片機(jī)控制電路設(shè)計(jì)而對(duì)于三路通道的而言,三片AD的CONV和CLK可由PBl和PBO共同控制,系統(tǒng)硬件設(shè)計(jì)及實(shí)現(xiàn)而數(shù)據(jù)DATA則可分別接到PDO、PD2這三個(gè)端口。因此,一路的信號(hào)需要3塊隔離芯片。 放大電路圖 A/D轉(zhuǎn)換隔離電路設(shè)計(jì)經(jīng)由前面二級(jí)放大后的模擬信號(hào)通過(guò)AD7835轉(zhuǎn)換成數(shù)字信號(hào),繼而再通過(guò)光隔離芯片6N137進(jìn)行隔離。6N137的輸出部分則使用另兩路電源,從而將電源完全隔離開(kāi)來(lái)。第4章 硬件電路設(shè)計(jì)完全隔離要求放大器兩邊的電源也必須隔離,因而電源同樣設(shè)計(jì)為由不同繞線組引出的交流電處理而得。可見(jiàn)所選的隔離芯片有很好隔離性能,而且前面的A/D校準(zhǔn)曲線表中的LCD數(shù)據(jù)是在通過(guò)這個(gè)隔離芯片以后測(cè)的,從表中的數(shù)據(jù)可以看到,隔離對(duì)數(shù)據(jù)的精確度基本沒(méi)有影響。12345678 6N137引角圖(1)引腳功能:*;*,接地;*2. 腳ANODE;* 輸出端; *;*;*. ;* 接電源。芯片的工作溫度可以在0℃70℃之間。6N137這款片在。高度集成的檢測(cè)器中的光電二極管檢測(cè)收集光子后用高增益