版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
畢業(yè)設(shè)計(jì)題目:學(xué)院名稱(chēng):班級(jí):學(xué)生姓名:學(xué)號(hào):指引教師:教師職稱(chēng):20年06月13
一:概述1.1選題背景和意義電源為保障系統(tǒng)安全性與穩(wěn)定性都起到有至關(guān)重要作用,本篇咱們重要研究恒流源。而恒流電源由于它體積特別小、損耗相對(duì)低、而效率較高、尚有它簡(jiǎn)潔電路都比較受歡迎,在咱們平時(shí)用計(jì)算機(jī)設(shè)備、通信設(shè)備,儀器儀表上面,尚有航空航天上面通信設(shè)備等都需要恒流源系統(tǒng)。近年來(lái)電子信息產(chǎn)業(yè)是發(fā)展相稱(chēng)快,恒流電源也更多被運(yùn)用到咱們生活中,因而,對(duì)恒流電源研究就顯得更故意義以及價(jià)值。數(shù)控恒流源技術(shù)是一種對(duì)實(shí)踐性規(guī)定很高工程技術(shù),它存在與各個(gè)行業(yè)中,咱們?cè)趯こ?huì)經(jīng)??吹?。電源技術(shù)還和電氣電子、控制理論等某些其他科學(xué)領(lǐng)域互相交叉融合,增進(jìn)了當(dāng)前信息技術(shù)和電源技術(shù)發(fā)展。這也預(yù)示著在系統(tǒng)上面對(duì)電源技術(shù)規(guī)定更高。普通電源系統(tǒng)在工作時(shí)候容易產(chǎn)生誤差,這樣會(huì)對(duì)整個(gè)系統(tǒng)精準(zhǔn)度產(chǎn)生影響,更嚴(yán)重是會(huì)帶來(lái)諸多嚴(yán)重后果。世界各國(guó)為理解決這個(gè)問(wèn)題便對(duì)電源產(chǎn)品制定了不同規(guī)定和一系列產(chǎn)品精度原則,只要達(dá)到規(guī)定達(dá)到原則后才可以進(jìn)入市場(chǎng)。經(jīng)濟(jì)全球化發(fā)展讓電源產(chǎn)品流通更加以便,但是必要滿(mǎn)足國(guó)際原則才可以有通行證。數(shù)控電源發(fā)展比較晚,從八十年代才開(kāi)始,那個(gè)時(shí)候電力電子理論就開(kāi)始建立。電力電子理論為此后電源產(chǎn)品發(fā)展奠定了較好理論基本,隨之,數(shù)控電流源技術(shù)得到了迅速蓬勃發(fā)展。但是市場(chǎng)上諸多產(chǎn)品還是輸出精度低,帶負(fù)載能力較差,體積相對(duì)大等缺陷。固然這也給了數(shù)控電流源發(fā)展指明方向就是不斷完善上面缺陷局限性。數(shù)控直流電流源對(duì)精度規(guī)定會(huì)越來(lái)越高。單片機(jī),新控制理論,這些都為精準(zhǔn)數(shù)控電源發(fā)展提供基本。從構(gòu)成上,數(shù)控電流源分為器件、主電路和控制電路三某些。在這個(gè)課題中咱們重要分析是基于單片機(jī)數(shù)控直流恒流源系統(tǒng)設(shè)計(jì),電源是可以向負(fù)載提供恒定電流。由于恒流電源在尋常生活中應(yīng)用范疇比較廣泛,在諸多地方都是不可缺少。例如咱們平時(shí)用充電器給蓄電池充電時(shí)候,當(dāng)蓄電池端電壓逐漸升高時(shí)候,充電電流就會(huì)慢慢減少。咱們保證以電流不變充電,這時(shí)候就必要隨時(shí)提高充電器輸出電壓,這樣勞動(dòng)強(qiáng)度和生產(chǎn)效率都會(huì)大打折扣,但是如果咱們當(dāng)前采用恒流源輸電呢,就可以完全彌補(bǔ)其局限性。當(dāng)咱們對(duì)電阻器阻值測(cè)量和分級(jí)時(shí)候,只要電流越穩(wěn)定,那么咱們就能使測(cè)量越精確。它還可以給放大電路提供偏流,或者作為有源負(fù)載等等。因此在差動(dòng)放大電路中咱們會(huì)經(jīng)??吹剿鼞?yīng)用。1.2國(guó)內(nèi)外研究現(xiàn)狀、發(fā)展動(dòng)態(tài)現(xiàn)狀:在咱們國(guó)家,咱們電源技術(shù)以電力電子技術(shù)作為核心,從二十世紀(jì)六十年代就開(kāi)始形成,在幾十年發(fā)展中,對(duì)系統(tǒng)效率規(guī)定更高和對(duì)功耗規(guī)定更低尚有通信設(shè)備技術(shù)更新這些都推動(dòng)了國(guó)內(nèi)電源行業(yè)中直流/直流轉(zhuǎn)換器邁向更高靈活性與智能化,電源產(chǎn)業(yè)也因而得到了迅速發(fā)展。在電源產(chǎn)業(yè)規(guī)模迅速發(fā)展同步,國(guó)家自然科學(xué)基金也提供較大協(xié)助和以推動(dòng)不斷創(chuàng)新,使國(guó)內(nèi)電力電子技術(shù)發(fā)展從吸取消化和普通跟蹤發(fā)展從而邁向前沿跟蹤和基本創(chuàng)新,咱們國(guó)家也生產(chǎn)中了電源產(chǎn)業(yè)某些難度較大和國(guó)際先進(jìn)水平相比某些產(chǎn)品以及較多具備代表性研究成果以及產(chǎn)品。咱們國(guó)家做出了諸多努力來(lái)增進(jìn)電源行業(yè)發(fā)展。雖然發(fā)展迅速但是國(guó)內(nèi)電源產(chǎn)業(yè)和世界上某些發(fā)達(dá)額國(guó)家做比較,咱們就會(huì)發(fā)現(xiàn)其實(shí)還是存在較大差距呢。隨著技術(shù)進(jìn)步與發(fā)展,人們對(duì)數(shù)控恒定電流器件需求越來(lái)越高。曾經(jīng)恒流源器件正在被迅速發(fā)展恒流源系統(tǒng)所代替。體積更小、精度更高、穩(wěn)定性更好是將來(lái)恒流源發(fā)展方向與拽求。由于咱們研究分析恒流源系統(tǒng)設(shè)計(jì)構(gòu)成是很有現(xiàn)實(shí)意義。相對(duì)與老式智能電源模塊,數(shù)字化智能電源模塊減少了生產(chǎn)過(guò)程中不擬定因素和人為參加環(huán)節(jié)從而減少了誤差彌補(bǔ)了老式電源模塊局限性,從而使電源模塊中更加可靠、更具備智能化和產(chǎn)品一致性,這樣極大提高了生產(chǎn)效率和生產(chǎn)產(chǎn)品可維護(hù)性。二:總體方案設(shè)計(jì)2.1設(shè)計(jì)任務(wù)輸入交流電壓200~240V,50Hz;輸出直流電壓≤6.5V。1、輸出電流范疇:0.04A~9.83A;2、可設(shè)立并顯示輸出電流給定值,規(guī)定輸出電流與給定值偏差絕對(duì)值≤0.05;3、運(yùn)用proteus軟件對(duì)整體電路進(jìn)行仿真驗(yàn)證。
2.2設(shè)計(jì)思路設(shè)計(jì)思路是:這個(gè)系統(tǒng)是485總線控制數(shù)控恒流源系統(tǒng),涉及各種數(shù)控恒流源電壓和電流監(jiān)控及控制。以單片機(jī)為主控制器,電腦輸入信號(hào)后,由轉(zhuǎn)換裝置將Rs232接線轉(zhuǎn)為Rs485總線。Rs485接線分別接模版一,模塊二等模塊。單片機(jī)接受到485傳數(shù)字信號(hào),通過(guò)D/A轉(zhuǎn)換輸出模仿量,控制信號(hào)變化。上位機(jī)PC端對(duì)恒流源進(jìn)行實(shí)時(shí)監(jiān)控,通過(guò)單片機(jī)PIC16F877AA/D輸入端接口,實(shí)時(shí)把模仿量轉(zhuǎn)化為數(shù)字量,再經(jīng)單片機(jī)分析解決反映給上位機(jī),在上位機(jī)上通過(guò)數(shù)字量形式呈現(xiàn)出來(lái),從而構(gòu)成穩(wěn)定恒流源。2.3總體方案設(shè)計(jì)在系統(tǒng)總設(shè)計(jì)方案里面,咱們會(huì)用到有單片機(jī)PIC16F877a模塊,D/A轉(zhuǎn)換模塊。,V/I轉(zhuǎn)換等,最后擬定系統(tǒng)框圖如圖2.1所示::圖2.1系統(tǒng)框圖此方案采用電腦控制變化輸入信號(hào)辦法來(lái)變化電流大小。運(yùn)用DAC0832在單片機(jī)程序控制下提供可變基準(zhǔn)電壓,電壓通過(guò)V/I轉(zhuǎn)換電路,壓控恒流源系統(tǒng)最后得到電流通過(guò)單片機(jī)PIC16F877AA/D轉(zhuǎn)換接口將輸出電流反饋至單片機(jī)進(jìn)行比較,調(diào)節(jié)DAC0832輸入電壓,從而達(dá)到數(shù)控目。
三:硬件模塊設(shè)計(jì)系統(tǒng)成功與否很大限度上在與硬件模塊設(shè)計(jì),咱們分別分析如下模塊3.1穩(wěn)壓電源電路設(shè)計(jì) 這個(gè)系統(tǒng)中有單片機(jī)PIC16F877a,DAC0832,OP07等這些器件都需要穩(wěn)壓電源。但由于咱們是在運(yùn)用Proteus仿真,因此對(duì)于此模塊咱們可以用軟件自帶勵(lì)磁電壓代替。3.2恒流源電路設(shè)計(jì)恒流源設(shè)計(jì)咱們采用運(yùn)放和場(chǎng)效應(yīng)管壓控恒流源。這個(gè)電路較簡(jiǎn)樸,穩(wěn)定性較高。電路由光耦合三極管,運(yùn)算放大器OP07、大功率場(chǎng)效應(yīng)管IRFP150N、采樣電阻R1等構(gòu)成。輸入模仿信號(hào)通過(guò)光耦合三極管會(huì)輸入一定電壓值,在這個(gè)電路中,調(diào)節(jié)管采用大功率場(chǎng)效應(yīng)管IRFP150N工作于飽和區(qū)時(shí),漏電流Id近似可以看作電壓U10控制電流,而場(chǎng)效應(yīng)管漏極電流和源極電流近似相等,因此可以看作為是珊極電壓控制著源極電流變化,通過(guò)測(cè)量采樣電阻R1兩端電壓值就可以斷定是達(dá)到了恒流效果。電路如圖3.1所示:圖3.1壓控恒流源原理圖3.3采樣電壓、電流電路設(shè)計(jì)在該電路中,采用OP07求差電路測(cè)量負(fù)載兩端電壓值輸出模仿信號(hào)U8,輸出模仿信號(hào)再經(jīng)OP07放大電路使輸出電壓變?yōu)椋≧14+R13)/R13倍電壓,然后再將模仿信號(hào)連接單片機(jī)PIC16F877A模仿信號(hào)接口RA0端,同步再將值返回給輸入信號(hào)做比較。如下圖3.1所示:圖3.1負(fù)載電流、電壓測(cè)量電路3.4D/A和A/D轉(zhuǎn)換器模塊單片機(jī)與外部數(shù)據(jù)連接分別由A/D模塊和D/A模塊,因此這兩個(gè)模塊選取與使用非常重要。3.4.1.D/A轉(zhuǎn)換器D/A轉(zhuǎn)換器可以將從單片機(jī)輸入數(shù)字信號(hào)轉(zhuǎn)化為容易比較直觀測(cè)量模仿信號(hào)。DAC0832與微解決器兼容,并且是8辨別率D/A轉(zhuǎn)換集成芯片。接口簡(jiǎn)樸,價(jià)格較低這些都是它長(zhǎng)處。DAC0832廣泛應(yīng)用在單片機(jī)系統(tǒng)中。8位輸入鎖存器、8位DAC寄存器、8位D/A轉(zhuǎn)換電路及轉(zhuǎn)換控制電路共同構(gòu)成D/A轉(zhuǎn)換器。如下圖3.2所示:圖3.2D/A轉(zhuǎn)換器圖D0~D7引腳是8位數(shù)據(jù)輸入線,TTL電平(5V等價(jià)于邏輯“1”,0V等價(jià)于邏輯“0”),在本系統(tǒng)中,這8個(gè)引腳作為單片機(jī)信號(hào)輸入線;ILE引腳:高電平有效,數(shù)據(jù)鎖存容許控制信號(hào)輸入線,在本系統(tǒng)中與單片機(jī)RA2引腳連接;CS引腳:片選信號(hào)輸入線,在本系統(tǒng)中做接地解決,低電平有效;WR1:這個(gè)是數(shù)據(jù)鎖存器寫(xiě)選通輸入線。在本系統(tǒng)中ILE、CS、WR1均做接地解決;XFER:數(shù)據(jù)傳播控制信號(hào)輸入線,低電平有效,負(fù)脈沖(脈寬應(yīng)不不大于500ns)有效;WR2:這個(gè)引腳是DAC寄存器選通輸入線,負(fù)脈沖有效。在本系統(tǒng)中將WR2、XFER做接地解決。IOUT1:電流1輸出端,其值隨DAC寄存器內(nèi)容變化而線性變化;IOUT2:電流輸出端2,其值與IOUT1值之和為一常數(shù);Rfb:這個(gè)引腳是反饋信號(hào)輸入線,變化Rfb端外接電阻值可調(diào)節(jié)轉(zhuǎn)換滿(mǎn)量程精度;Vcc:電源輸入端,Vcc范疇為+5V~+15V;*VREF:基準(zhǔn)電壓輸入線,VREF范疇為-10V~+10V;*AGND:模仿信號(hào)地;*DGND:數(shù)字信號(hào)地。3.4.2A/D轉(zhuǎn)換器由于咱們用是單片機(jī)PIC16F877A,而此單片機(jī)上面有RA0,RA1等模仿信號(hào)輸入端,因而咱們不需要再用其她A/D轉(zhuǎn)換模塊。3.4.3D/A與單片機(jī)連接電路在這個(gè)電路中,單片機(jī)RD8個(gè)引腳全接D/A08328個(gè)串行并行輸入口,給VCC施加5V電壓,CS,WR1,GND均做接地解決。ILE引腳接單片機(jī)RA2引腳作為單片機(jī)參照電壓輸出。整體D/A0832與單片機(jī)PIC16F877A連接電路如下圖3.3所示。圖3.3D/A與單片機(jī)圖3.5PIC16F877A控制模塊在恒流源系統(tǒng)設(shè)計(jì)中,咱們本次選用功能強(qiáng)大PIC16F877A單片機(jī)作為控制器。3.5.1PIC16F877A重要功能簡(jiǎn)樸簡(jiǎn)介P\o"IC(integratedcircuit)集成電路"IC16F877A\o"就是一種微型電腦,麻雀雖小,五臟俱全"單片機(jī)它功能比較齊全。它有33個(gè)I/O引腳,A有6個(gè),B有8個(gè),C有8個(gè),D有8個(gè),E有三個(gè)引腳。它內(nèi)部功能可以做A/D轉(zhuǎn)換器、模仿比較器,帶比較和捕獲功能定期器/計(jì)數(shù)器等等。它每個(gè)引腳基本均有2到三個(gè)功能。在這個(gè)本次設(shè)計(jì)中,咱們會(huì)用到它A/D轉(zhuǎn)換功能,實(shí)用性比較高。在這次設(shè)計(jì)中咱們重要用到PIC16F877A系統(tǒng)配備引腳有:VDD:正電源端。VSS:接地端。OSCI/CLKIN:時(shí)鐘振蕩器晶體連接端1/外部時(shí)鐘源輸入端。OSC2/CLKOUT:時(shí)鐘振蕩器晶體連接端2外部時(shí)鐘源輸出端。主復(fù)位引腳.MCLRNPP:人工復(fù)位輸入端(低電平有效)/編程電壓輸入端。RA0到RA3,RE1,RE2:模仿信號(hào)輸入端。RD0到RD7:并行口與其他微解決器連接端口。RC6,RC7:分別作為串行通信發(fā)送和接受數(shù)據(jù)端口。RC4,RC5:分別作為SPI數(shù)據(jù)輸入,輸出。除此晶振CLOCK=4MHZ。3.5.2PIC16F877A與485總線連接電路RS485傳播距離比較遠(yuǎn),從幾米大至幾千米,它抑制共模干擾能力特別強(qiáng),與232比較,485串口通訊可以一對(duì)多,在本次設(shè)計(jì)中,一種上位機(jī)可以發(fā)信號(hào)給各種下位機(jī)進(jìn)行控制,而上位機(jī)與下位機(jī)之間通訊就是通過(guò)485線連接。其中上位機(jī)通過(guò)485總線與單片機(jī)進(jìn)行連接原理如圖3.4所示:圖3.4D/A轉(zhuǎn)換器與485連接圖 3.6輸出電流測(cè)試圖樣咱們需要軟件有peotues,虛擬串口助手。將程序文獻(xiàn)寫(xiě)入單片機(jī),然后將虛擬串口導(dǎo)入到peotues軟件內(nèi)。然后開(kāi)始仿真運(yùn)營(yíng)。這時(shí)候可以看到整個(gè)電圖處在工作狀態(tài)。在虛擬串口中按照485通訊格式輸入字符串AA41000455。點(diǎn)擊執(zhí)行可以看到單片機(jī)系統(tǒng)顯示6.96A電流。變化輸入字符串輸出電流也會(huì)變化它們誤差大概在0.03左右。如下圖:未輸入字符串之前:輸入字符串:輸入字符串之后顯示電流值:3.7上位機(jī)測(cè)試在上位機(jī)頁(yè)面,左邊顯示是電流設(shè)立值,是輸入電流信號(hào)。右邊顯示是實(shí)時(shí)變化顯示輸出電流。由于咱們所選D/A轉(zhuǎn)換器為0832,其精度達(dá)不到,會(huì)產(chǎn)生某些誤差,導(dǎo)致輸入與輸出值有稍微偏差。如下圖:如果咱們輸入電流值是5A,上位機(jī)頁(yè)面所得到圖樣為:電路圖紙上面顯示電流為:當(dāng)變化外界電阻RVI大小時(shí)候。就會(huì)對(duì)輸出電流信號(hào)產(chǎn)生影響,上位機(jī)會(huì)實(shí)時(shí)采集顯示輸出電流變化值。四:軟件設(shè)計(jì)數(shù)控核心某些就是軟件設(shè)計(jì)了,是決定與否實(shí)現(xiàn)恒流源重要因素,在本篇設(shè)計(jì)中,咱們采用C語(yǔ)言編程設(shè)計(jì),運(yùn)用mplabide軟件進(jìn)行編譯。4.1程序闡明軟件某些需要解決重要難點(diǎn)是上位機(jī)輸入預(yù)置電流值轉(zhuǎn)換為誤差放大器高精度基準(zhǔn)電壓,并跟蹤顯示。在本次設(shè)計(jì)中咱們采用C語(yǔ)言,對(duì)PIC16F877A進(jìn)行編程以實(shí)現(xiàn)各種功能。軟件實(shí)現(xiàn)功能是:1.電流給定值設(shè)立2.測(cè)量輸出電流值3.控制DAC0832工作編程是個(gè)復(fù)雜環(huán)節(jié),不斷仿真研究后,詳細(xì)程序見(jiàn)附錄二。4.2程序流程圖軟件總體流程圖如下圖4.1所示。圖4.1軟件總體流程圖合同為0X01為本機(jī)地址,0X41為修改電流功能,背面兩個(gè)字節(jié)為電流設(shè)定值。最后以0X55為一幀結(jié)尾。按照流程圖思路編程,程序運(yùn)用mplabide軟件進(jìn)行編譯,在符合規(guī)定后寫(xiě)入單片機(jī)不斷進(jìn)行仿真調(diào)試,直至達(dá)到設(shè)計(jì)規(guī)定。總結(jié)本次畢業(yè)設(shè)計(jì)是對(duì)數(shù)控恒流源系統(tǒng)設(shè)計(jì)研究,選用是上位機(jī),下位機(jī)兩大模塊共同構(gòu)建而成。其中最重要就是下位機(jī)中單片機(jī)模塊,DA模塊,壓控恒流源模塊選用。在本次設(shè)計(jì)中還是遇到了不小困難。查閱網(wǎng)上資料時(shí)候比較零散繁瑣,諸多專(zhuān)業(yè)術(shù)語(yǔ)還都理解不了。在指引教師協(xié)助下才逐漸熟悉了正個(gè)電路構(gòu)建與功能應(yīng)用。在上位機(jī)設(shè)計(jì)和軟件設(shè)計(jì)上面都遇到了很大困難,讓作為本科畢業(yè)生我明顯感到自己所具備知識(shí)欠缺。本次畢業(yè)設(shè)計(jì),使得我對(duì)數(shù)控恒流源系統(tǒng)有了更加深刻結(jié)識(shí),對(duì)其原理更加清晰。固然,在做畢業(yè)設(shè)計(jì)過(guò)程中也明白了自身局限性之處,也學(xué)到了諸多東西,涉及對(duì)Proteus使用和對(duì)文獻(xiàn)資料查閱有了一定提高,我相信這也將對(duì)我即將踏出校園進(jìn)入工作崗位有很大協(xié)助。致謝通過(guò)這次畢業(yè)設(shè)計(jì)讓我學(xué)到了諸多東西,寫(xiě)論文資料要靠自己從圖書(shū)館和網(wǎng)上進(jìn)行查閱,較好鍛煉了我自學(xué)以及收集信息能力。在這里,我更應(yīng)當(dāng)感謝我導(dǎo)師徐峰教師,一位特別親切指引教師,一路陪我走來(lái),當(dāng)我有問(wèn)題時(shí)候,都會(huì)認(rèn)真詳細(xì)為我指引,有些問(wèn)題甚至將了好多遍,直到我聽(tīng)懂為止。在和同窗們交流中我也學(xué)到了諸多知識(shí)。在跨出校門(mén)進(jìn)入工作崗位后,我會(huì)更加努力學(xué)習(xí),以便獲得更大進(jìn)步。
TOC參考文獻(xiàn)[1]李廣弟,朱月秀,冷祖祁.。單片機(jī)基本。[2]馬忠梅,籍順心,張凱,馬巖。單片機(jī)C語(yǔ)言應(yīng)用程序設(shè)計(jì)。[3]清華大學(xué)電子學(xué)教研組,閻石(主編)。數(shù)字電子技術(shù)基本。[4]邱關(guān)源(原著),羅先覺(jué)(修訂)。電路分析。[5]曾波.?dāng)?shù)控恒流源[J].電子世界,第九期。[6]駱震波.直流數(shù)控電流源設(shè)計(jì)與實(shí)現(xiàn)。[7]今日電子,電源增刊,.111~113。全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽組委會(huì).全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽試題。附錄://-----------------------------------------------------------------//名稱(chēng):MODBUS總線通信仿真(從機(jī)程序)//-----------------------------------------------------------------//闡明:本例運(yùn)營(yíng)時(shí),從機(jī)接受主機(jī)命令,然后將執(zhí)行再把數(shù)據(jù)通過(guò)485回發(fā)給主機(jī).////-----------------------------------------------------------------#define_XTAL_FREQ4000000#defineINT8Uunsignedchar#defineINT16Uunsignedint#defineINT32Uunsignedlong#include<pic.h>#include<stdio.h>//__CONFIG(HS&WDTDIS&PWRTEN&BOREN&LVPDIS&DUNPROT&WRTEN&DEBUGEN&UNPROTECT);//__CONFIG(HS&WDTDIS&PWRTEN&BOREN&LVPDIS&DPROT&WP3&DEBUGDIS&PROTECT);//__CONFIG(HS&WDTDIS&PWRTEN&BOREN&LVPDIS&DUNPROT&WP3&DEBUGDIS&PROTECT);__CONFIG(FOSC_HS&WDTE_OFF&PWRTE_OFF&BOREN_ON&LVP_OFF&CPD_OFF&WRT_OFF&DEBUG_ON&CP_OFF);volatileINT8Urecv_Data[5];//={10,11,12,13,14,15,16,17,18,19,20};//串口接受數(shù)據(jù)緩沖區(qū)(11字節(jié))volatileINT8UDATA[2];//={21,22,23,24,25,26,27,28};//采集信號(hào)數(shù)據(jù)和接受進(jìn)行比對(duì)volatileINT8Urecv_idx=0;//串口接受數(shù)據(jù)緩沖區(qū)索引volatileINT8UCMD=0;//測(cè)試/*上位機(jī)命令:規(guī)定從機(jī)返回有關(guān)數(shù)據(jù)自定義命令碼(范疇65~66),65表達(dá)設(shè)立電路,66表達(dá)采集*/volatileINT16Ucount=0,test=0;//時(shí)間TIMER0定期1秒不夠,要count補(bǔ)充,當(dāng)count>3662時(shí)超過(guò)一分鐘//count=15時(shí)表達(dá)1秒//volatileINT16Ucount1=0,count2=0;staticINT8UCRC=0x55;//8位CRC校驗(yàn)碼//-----------------------------------------------------------------//#defineCLRWDT()asm("clrwdt")//#defineLED_RecvRB6//主機(jī)接受批示燈//#defineLED_SendRB7//主機(jī)發(fā)送批示燈#defineRDE_485RC5//RS485通信控制端高位容許發(fā)送/低位容許接受#definesl_Addr1//定義485從機(jī)地址,可依照規(guī)定修改,每個(gè)芯片不同樣//19200波特率每字符時(shí)間為:1/19200*(1+8+2)≈572us//幀間:3.5個(gè)字符時(shí)間為:572*(3.5+1)≈2574us//字節(jié)間:1.5個(gè)字符時(shí)間為:572*(1.5+1)≈1430us#defineFRAME_SPAN2574//相臨幀之間間隔時(shí)間#defineBYTE_SPAN1430//幀內(nèi)字節(jié)之間間隔時(shí)間bitF_T1,T_BYTE,T_FRAME,Recv_OK;//有關(guān)標(biāo)記位#definedelayus(x)\{\ INT16Ui;\ for(i=0;i<x;i++);\}//-----------------------------------------------------------------//宏定義:發(fā)送一字節(jié)并等待發(fā)送結(jié)束//-----------------------------------------------------------------#defineSend_Byte(x)\{\RDE_485=1;\TXREG=x;while(TRMT==0);\asm("NOP");asm("NOP");asm("NOP");\asm("NOP");asm("NOP");asm("NOP");\asm("NOP");asm("NOP");asm("NOP");\}//-----------------------------------------------------------------//宏定義:設(shè)立TIMER1定期初值并設(shè)有關(guān)標(biāo)志位//-----------------------------------------------------------------#defineSet_TIMER1(x)\{\TMR1H=(65536-x)>>8;\TMR1L=(65536-x)&0x0F;\TMR1IF=T_BYTE=T_FRAME=0;\F_T1=(x==FRAME_SPAN)?1:0;\if(F_T1)recv_idx=0;\}externvoidProcess_User();//-----------------------------------------------------------------//延時(shí)定義用延時(shí)程序15=1s//-----------------------------------------------------------------voiddelay(unsignedintx){ TMR0=0;count=0;T0IF=0; while(count<x) { if(T0IF==1) { count++; T0IF=0; } }}//-----------------------------------------------------------------//串口初始化//-----------------------------------------------------------------voidSerial_port_init(){SYNC=0;//選取異步通信模式BRGH=1;//選取高速波特率發(fā)生模式TXEN=1;//容許發(fā)送數(shù)據(jù)SPBRG=_XTAL_FREQ/16/19200-1;//設(shè)立波特率為19200SPEN=1;//串行通信端口打開(kāi)CREN=1;//使能持續(xù)接受串行數(shù)據(jù)}//-----------------------------------------------------------------//外設(shè)初始化(定期器,485等)//-----------------------------------------------------------------voidPer_Initialize(){ ADCON0=0X01;ADCON1=0X8E;//只打開(kāi)RA0作為AD采集,采集成果高6位為0 ADIF=0; TRISA0=1;TRISA2=0; CMCON=0X07; RDE_485=1;//日后修改 //設(shè)立D口作為數(shù)據(jù)輸出控制0832 TRISD=0; PORTD=0; //open=0; TRISC7=TRISC6=1;//TX,RX數(shù)據(jù)口方向配備 TRISC5=0;//485口數(shù)據(jù)方向?yàn)檩敵?TRISC4=0;//進(jìn)行485虛擬仿真時(shí)需要 //配備定期器TIME0 T0CS=0;PSA=0;PS2=1;PS1=1;PS0=1;//前256分頻給TIMER0 //T0CS=0;PSA=1;PS2=1;PS1=1;PS0=1;//前256分頻給看門(mén)狗 //T2CON=0X3F;PR2=230;TMR2IE=0;TMR2IF=0;//啟動(dòng)計(jì)數(shù)器T2 Serial_port_init(); RDE_485=1;//容許發(fā)送,禁止接受 RC4=0;//測(cè)試時(shí)用 //這兒可進(jìn)行有關(guān)端口初始化自己設(shè)立 //端口設(shè)立初始化完畢 RCIE=1;//容許串口接受中斷 TMR1IE=1;//容許時(shí)間TIMER1溢出中斷 PEIE=1;//外圍中斷 GIE=1;//全局中斷 RDE_485=0;//容許接受,禁止發(fā)送 RC4=1;//測(cè)試時(shí)用 TMR1ON=1;//啟動(dòng)TIMER1 delayus(2); Set_TIMER1(FRAME_SPAN); Recv_OK=0;}voidProcess_User()//自己定義程序進(jìn)行有關(guān)事務(wù)解決{ INT8Ui; if(recv_Data[1]==65)//表達(dá)設(shè)立電流 { PORTD=recv_Data[3]; ADIF=0; GO_DONE=1; while(ADIF==0); //ADIF=0; DATA[0]=ADRESH; DATA[1]=ADRESL; //test=(DATA[0]<<8)|DATA[1]; Send_Byte(sl_Addr);//發(fā)送從機(jī)地址 Send_Byte(recv_Data[1]);//發(fā)送指令 for(i=0;i<2;i++) Send_Byte(DATA[i]);//發(fā)送采集數(shù)據(jù) Send_Byte(CRC);//發(fā)送校驗(yàn)碼 } elseif(recv_Data[1]==66)//表達(dá)數(shù)據(jù)采集 { ADIF=0; GO_DONE=1; while(ADIF==0); //ADIF=0; DATA[0]=ADRESH; DATA[1]=ADRESL; Send_Byte(sl_Addr);//發(fā)送從機(jī)地址 Send_Byte(recv_Data[1]);//發(fā)送指令 for(i=0;i<2;i++) { Send_Byte(DATA[i]);//發(fā)送采集數(shù)據(jù) } Send_Byte(CRC);//發(fā)送校驗(yàn)碼 }}//-----------------------------------------------------------------//主程序//-----------------------------------------------------------------voidmain(){ RA2=1; Per_Initialize();//外設(shè)初始化RA2=1; PORTE=PORTE;//由于是施密特觸發(fā)器while(1){//---------------------------------------------------------//如果從機(jī)接受主數(shù)據(jù)成功則繼續(xù)下面解決if(Recv_OK&&recv_Data[1]==65){ GIE=0; Recv_OK=0; //數(shù)據(jù)校驗(yàn)時(shí)需要 if((recv_Data[0]==sl_Addr)&&(recv_Data[4]==CRC)) { RDE_485=1;//容許發(fā)送,禁止接受 RC4=0;//測(cè)試時(shí)用 //delayus(60);//延時(shí)1ms Process_User();//顧客自己解決數(shù)據(jù)可依照需求編寫(xiě) RDE_485=0;//容許接受,禁止發(fā)送 RC4=1;//測(cè)試時(shí)使用 } GIE=1;//開(kāi)中斷 }elseif(Recv_OK&&recv_Data[1]==66){ GIE=0; Recv_OK=0; //數(shù)據(jù)校驗(yàn)時(shí)需要 if((recv_Data[0]==sl_Addr)&&(recv_Data[4]==CRC)) { RDE_485=1;//容許發(fā)送,禁止接受 RC4=0;//測(cè)試時(shí)用 //delayus(60);//延時(shí)1ms Process_User();//顧客自己解決數(shù)據(jù)可依照需求編寫(xiě) RDE_485=0;//容許接受,禁止發(fā)送 RC4=1;//測(cè)試時(shí)使用 } GIE=1;//開(kāi)中斷 } }}//-----------------------------------------------------------------//主機(jī)定期中斷及485接受中斷服務(wù)程序//-----------------------------------------------------------------voidinterruptISR(){INT8UR;//CLRWDT();//----------------------TIMER1定期器溢出中斷--------------------if(TMR1IF){TMR1IF=
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《網(wǎng)店色彩設(shè)計(jì)》課件
- 《神經(jīng)癥年制》課件
- 《證券上市》課件
- 2024年農(nóng)業(yè)部門(mén)抗旱工作總結(jié)范文
- 2025年高考數(shù)學(xué)一輪復(fù)習(xí)之冪函數(shù)、指數(shù)函數(shù)、對(duì)數(shù)函數(shù)
- 單位管理制度匯編大全人力資源管理
- 單位管理制度合并匯編【人事管理】
- 單位管理制度分享合集人員管理十篇
- 單位管理制度范例匯編人事管理
- 單位管理制度呈現(xiàn)大全人事管理十篇
- 期末模擬卷 2024-2025學(xué)年人教版數(shù)學(xué)六年級(jí)上冊(cè)(含答案)
- GB/T 44351-2024退化林修復(fù)技術(shù)規(guī)程
- 《比特幣完整介紹》課件
- 江蘇省2023年生物小高考試題含答案解析
- 2019年同等學(xué)力(教育學(xué))真題精選
- [轉(zhuǎn)載]鄭桂華《安塞腰鼓》教學(xué)實(shí)錄
- 泵管清洗專(zhuān)項(xiàng)方案
- 門(mén)診手術(shù)室上墻職責(zé)、制度(共6頁(yè))
- 邊坡土壓力計(jì)算(主動(dòng)土壓力法)
- 鉆孔壓水試驗(yàn)計(jì)算EXCEL表格
- 機(jī)電安裝項(xiàng)目施工組織計(jì)劃方案
評(píng)論
0/150
提交評(píng)論