基于可調(diào)式穩(wěn)壓器LM的直流穩(wěn)壓電源課程設(shè)計(jì)自己制作(完整資料)_第1頁(yè)
基于可調(diào)式穩(wěn)壓器LM的直流穩(wěn)壓電源課程設(shè)計(jì)自己制作(完整資料)_第2頁(yè)
基于可調(diào)式穩(wěn)壓器LM的直流穩(wěn)壓電源課程設(shè)計(jì)自己制作(完整資料)_第3頁(yè)
基于可調(diào)式穩(wěn)壓器LM的直流穩(wěn)壓電源課程設(shè)計(jì)自己制作(完整資料)_第4頁(yè)
基于可調(diào)式穩(wěn)壓器LM的直流穩(wěn)壓電源課程設(shè)計(jì)自己制作(完整資料)_第5頁(yè)
已閱讀5頁(yè),還剩71頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于可調(diào)式穩(wěn)壓器LM的直流穩(wěn)壓電源課程設(shè)計(jì)自己制作(完整資料)(可以直接使用,可編輯優(yōu)秀版資料,歡迎下載)

***********************電子技術(shù)課程設(shè)計(jì)總結(jié)報(bào)告基于可調(diào)式穩(wěn)壓器LM的直流穩(wěn)壓電源課程設(shè)計(jì)自己制作(完整資料)(可以直接使用,可編輯優(yōu)秀版資料,歡迎下載)題目:運(yùn)算放大器組成的0-20倍放大器學(xué)生姓名:只寫(xiě)一個(gè)人的名字系別:電氣信息工程系專業(yè)年級(jí):2004級(jí)電氣工程專業(yè)1班指導(dǎo)教師:某某某2011年7月基于可調(diào)式穩(wěn)壓器LM317的直流穩(wěn)壓電源TAG:可調(diào)式穩(wěn)壓器LM317LM317直流穩(wěn)壓電源LM317電源摘要:該設(shè)計(jì)主要利用可調(diào)式穩(wěn)壓器LM317實(shí)現(xiàn)直流穩(wěn)壓電源的正負(fù)輸出可調(diào)性.整個(gè)電源主要由變壓器、整流電路、濾波電路,以及穩(wěn)壓電路幾部分組成。其體積小,穩(wěn)定性好且性價(jià)比較高。主要介紹其具體實(shí)現(xiàn)及原理,并分析具體硬件電路的工作原理及具體實(shí)現(xiàn)方法.結(jié)合單片機(jī)原理以及其他相關(guān)集成電路模塊的相關(guān)原理實(shí)現(xiàn)了直流穩(wěn)壓電源的顯示等具體功能.經(jīng)反復(fù)實(shí)驗(yàn),結(jié)果表明其具有靈活的可調(diào)性,控制效果良好.該電源可廣泛運(yùn)用于電力電子、儀表、控制等實(shí)驗(yàn)場(chǎng)合。關(guān)鍵詞:可調(diào)式穩(wěn)壓器;直流穩(wěn)壓電源;整流電路;濾波電路1、引言:在電子線路的相關(guān)應(yīng)用中,電源是其必不可少的部分,電源系統(tǒng)質(zhì)量的優(yōu)劣和性能的可靠性直接決定著整個(gè)電子設(shè)備的質(zhì)量.直流穩(wěn)壓電源作為直流能量的提供者,在各種電子設(shè)備中有著極其重要的地位,它的性能良好與否直接影響到電子產(chǎn)品的精度、穩(wěn)定性和可靠性。隨著電子技術(shù)的日益發(fā)展,電源技術(shù)也得到了很大的發(fā)展,它從過(guò)去一個(gè)不太復(fù)雜的電子線路發(fā)展到今天具有較強(qiáng)功能的模塊.人們對(duì)電源的質(zhì)量、功能和性能要求也隨之變得越來(lái)越高.本文介紹一種以可調(diào)式穩(wěn)壓器為核心組成的正負(fù)輸出可調(diào)的直流穩(wěn)壓電源.該電源主要由電源變壓器、單相橋式整流電路、濾波電路和穩(wěn)壓電路等部分所組成。單向交流電經(jīng)過(guò)這幾部分電路后即可轉(zhuǎn)換成正負(fù)輸出可調(diào)的穩(wěn)定直流電壓。在本電源設(shè)計(jì)中,不僅制作了實(shí)用的穩(wěn)壓電源,更是結(jié)合單片機(jī)原理、匯編語(yǔ)言等學(xué)科,提高電源的性能和功能,使電源設(shè)備功能更加完善,使用方便,顯示直觀.初步實(shí)現(xiàn)了電子產(chǎn)品的體積小、功能多、性能高、價(jià)格低、智能化等方面的功能。2、電路所用核心元器件(1)LM317簡(jiǎn)介L(zhǎng)M317是美國(guó)國(guó)家半導(dǎo)體公司的三端可調(diào)正穩(wěn)壓器集成電路.我國(guó)和世界各大集成電路生產(chǎn)商均有同類產(chǎn)品可供選用,是使用極為廣泛的一類串連集成穩(wěn)壓器。LM317的輸出電壓范圍是1.2V至37V,負(fù)載電流最大為1。5A(chǔ).它的使用非常簡(jiǎn)單,僅需兩個(gè)外接電阻來(lái)設(shè)置輸出電壓。此外它的線性調(diào)整率和負(fù)載調(diào)整率也比標(biāo)準(zhǔn)的固定穩(wěn)壓器好。LM317內(nèi)置有過(guò)載保護(hù)、安全區(qū)保護(hù)等多種保護(hù)電路。通常LM317不需要外接電容,除非輸入濾波電容到LM317輸入端的連線超過(guò)6英寸(約15厘米)。使用輸出電容能改變瞬態(tài)響應(yīng)。調(diào)整端使用濾波電容能得到比標(biāo)準(zhǔn)三端穩(wěn)壓器高的多的紋波抑制比。LM317能夠有許多特殊的用法。比如把調(diào)整端懸浮到一個(gè)較高的電壓上,可以用來(lái)調(diào)節(jié)高達(dá)數(shù)百伏的電壓,只要輸入輸出壓差不超過(guò)LM317的極限就行。當(dāng)然還要避免輸出端短路.還可以把調(diào)整端接到一個(gè)可編程電壓上,實(shí)現(xiàn)可編程的電源輸出。317穩(wěn)壓塊存在一個(gè)最小穩(wěn)定工作電流的問(wèn)題,可以通過(guò)設(shè)定R1和R2阻值的大小,而使317穩(wěn)壓塊空載時(shí)輸出的電流大于或等于其最小穩(wěn)定工作電流,從而保證317穩(wěn)壓塊在空載時(shí)能夠穩(wěn)定地工作。此時(shí),只要保證Vo/(R1+R2)≥1.5mA,就可以保證317穩(wěn)壓塊在空載時(shí)能夠穩(wěn)定地工作。上式中的1。5mA為317穩(wěn)壓塊的最小穩(wěn)定工作電流。當(dāng)然,只要能保證317穩(wěn)壓塊在空載時(shí)能夠穩(wěn)定地工作,Vo/(R1+R2)的值也可以設(shè)定為大于1.5mA的任意值。經(jīng)計(jì)算可知R1的最大取值為R1≈0.83KΩ。又因?yàn)镽2/R1的最大值為28.6。所以R2的最大取值為R2≈23。74KΩ.在使用317穩(wěn)壓塊的輸出電壓計(jì)算公式計(jì)算其輸出電壓時(shí),必須保證R1≥0。83KΩ,R2≤23。74KΩ兩個(gè)不等式同時(shí)成立,才能保證317穩(wěn)壓塊在空載時(shí)能夠穩(wěn)定地工作。當(dāng)然在317穩(wěn)壓塊的輸出端并聯(lián)泄流電阻R,也可以為317穩(wěn)壓塊提供最小穩(wěn)定工作電流。但是,由于并聯(lián)的泄流電阻不能隨輸出電壓的變化而變化,如果要保證317穩(wěn)壓塊在輸出電壓為1.25V時(shí),其輸出電流大于其最小穩(wěn)定工作電流,則在317穩(wěn)壓塊的輸出電壓為37V時(shí),流過(guò)泄流電阻的電流就太大了,這樣不僅浪費(fèi)了電能,而且增加了317穩(wěn)壓塊的負(fù)擔(dān),不是一種妥當(dāng)?shù)霓k法。3、直流穩(wěn)壓電源的實(shí)現(xiàn)原理本設(shè)計(jì)電路主要采用三端可調(diào)式集成穩(wěn)壓器LM317,構(gòu)成正負(fù)輸出可調(diào)的穩(wěn)壓電源電路。本電源電路的原理框圖如圖1所示,其主要由變壓器、整流、濾波、穩(wěn)壓、等部分所組成。4、電路工作原理分析(1)電源變壓器由于電源變壓器的副邊電壓有效值將決定后面電路的需要,所以在此應(yīng)選擇輸出電壓有效值為12V的電源變壓器.(2)整流部分該設(shè)計(jì)采用單相橋式整流電路(橋式KBP307).其由四只二極管組成,其構(gòu)成原則就是保證在變壓器副邊電壓u:的整個(gè)周期內(nèi),負(fù)載上的電壓和電流方向始終不變。為達(dá)到這一目的,需要在Uz的正、負(fù)半周內(nèi)正確引導(dǎo)流向負(fù)載的電流,使其方向不變,設(shè)變壓器副邊兩端分別為a和b,則a為“+”b為“一”時(shí)應(yīng)有電流流出a點(diǎn),a為“一”b為“+”時(shí)應(yīng)有電流流入a點(diǎn);相反,a為“+”b為“一”時(shí)應(yīng)有電流流入b點(diǎn),因而a和b點(diǎn)均應(yīng)接兩只二極管,以引導(dǎo)電流,具體電路原理如圖2所示。如果橋式整流電路變壓器副邊中點(diǎn)接地,就應(yīng)將兩個(gè)負(fù)載電阻相連接且連接中點(diǎn)接地。根據(jù)橋式整流電路的工作原理,當(dāng)a點(diǎn)為“+”b點(diǎn)為“一”時(shí),Dl、D3導(dǎo)通,D2、D4截止,U01=U2,U02=一U2;而當(dāng)b點(diǎn)為“+”a點(diǎn)為“一”時(shí),D2、D4導(dǎo)通,D1、D3截止,U01=一U2,U02=U2,這樣兩個(gè)負(fù)載上就分別獲得正、負(fù)電壓.若設(shè)變壓器副邊電壓u2=U2sinwt,U2為其有效值。當(dāng)u2為正半周時(shí),電流由a點(diǎn)流出,經(jīng)Dl、RL、D3流入b點(diǎn),因而負(fù)載電阻RL上的電壓等于變壓器副邊電壓,即uo=u2,D2和D4管承受的反向電壓為一u2。當(dāng)u2為負(fù)半周時(shí),電流由b點(diǎn)流出,經(jīng)D2、RL、D4流入a點(diǎn),負(fù)載電阻RL上的電壓等于一u2,即uo=一u2,D1、D3承受的反向電壓為u2。這樣,由于D1、D3和D2、D4兩對(duì)二極管交替導(dǎo)通,致使負(fù)載電阻RL上在u2的整個(gè)周期內(nèi)都有電流通過(guò),而且方向不變,則輸出電壓uo=|U2sinwt|。(2)濾波電路經(jīng)過(guò)整流后的直流電幅值變化很大,會(huì)影響電路的工作性能.可利用電容的“通交流,隔直流”的特性,在電路中并人兩個(gè)并聯(lián)電容作為電容濾波器,濾去其中的交流成分.電容濾波電路是最常見(jiàn)也是最簡(jiǎn)單的濾波電路,在整流電路的輸出端(即負(fù)載電阻兩端)并聯(lián)一個(gè)電容即構(gòu)成電容濾波電路。濾波電容容量較大,因此一般均采用電解電容,在接線時(shí)要注意電解電容的正負(fù)極。電容濾波電路利用電容的充、放電作用,使輸出電壓趨于平滑。如果將兩個(gè)濾波電容相連接,且連接點(diǎn)接地,就可同時(shí)得到輸出電壓平滑的正負(fù)電源。在理想情況下,變壓器副邊無(wú)損耗,二極管導(dǎo)通電壓為零,所以電容兩端電壓相等.而當(dāng)其上升到峰值后開(kāi)始下降,電容便通過(guò)負(fù)載電阻放電,其電壓也開(kāi)始下降,趨勢(shì)與電容兩端電壓基本相同.但是由于電容按指數(shù)規(guī)律放電,所以當(dāng)其下降到一定數(shù)值后,電容將繼續(xù)通過(guò)負(fù)載放電,電容兩端電壓按指數(shù)規(guī)律緩慢下降.總之,在電容充電時(shí),回路電阻為整流電路的內(nèi)阻,即變壓器電阻和二極管的導(dǎo)通電阻,其數(shù)值很小,因而時(shí)間常數(shù)很小。電容放電時(shí),回路電阻為RL,放電時(shí)間常數(shù)R。.C通常遠(yuǎn)大于充電的時(shí)間常數(shù)。因此濾波效果取決于放電時(shí)間。電容愈大,負(fù)載電阻愈大,濾波后輸出電壓愈平滑,并且其平均值愈大。換言之,當(dāng)濾波電容容量一定時(shí),若負(fù)載電阻減小(即負(fù)載電流增大),則時(shí)間常數(shù)RLC減小,放電速度加快,輸出電壓平均值即下降,且脈動(dòng)變大。故在此選擇一個(gè)濾波電容2200。輸出電壓的平均值U似蝴與放電時(shí)間常數(shù)RLC有關(guān)。RLC越大,電容器放電速度越慢,則輸出電壓所包含的紋波成分越小,U馭㈣越大.為獲得平滑的輸出電壓,一般取放電時(shí)間常數(shù)為:式中:T為交流電的周期,在濾波電路放電時(shí)間常數(shù)滿足上式的關(guān)系時(shí),可用下式對(duì)輸出電壓的平均值約為電容兩端電壓的1。2倍。濾波電路輸出電壓波形難于用解析式來(lái)描述,近似估算時(shí),其波形近似為鋸齒波,此時(shí)脈動(dòng)系數(shù)S可按下式近似估算,其中T為電網(wǎng)電壓的周期。當(dāng)濾波電容選定后,輸出電壓平均值U0和輸出電流平均值I0的關(guān)系稱為輸出特性,脈動(dòng)系數(shù)S和輸出電流平均值I0的關(guān)系稱為濾波特性。電容濾波電路如圖3(1).輸出特性和濾波特性如圖3(2)所示。圖3(1)電容濾波電路圖圖3(2)輸出特性級(jí)濾波特性曲線表明,電容愈大電路帶負(fù)載的能力愈強(qiáng),濾波效果愈好;電流平均值愈大(即負(fù)載電阻的RL愈小),電壓平均值愈低,S的值愈大。為減小輸出電壓的脈動(dòng)成分,采用的濾波電容器的容值越大越好,交流電源的頻率越高越好。目前在計(jì)算機(jī)、電視機(jī)等電子設(shè)備中采用了高頻整流電源,它的濾波電容的容量就比50赫茲工頻交流電的濾波電容小得多。(3)穩(wěn)壓部分集成串聯(lián)型穩(wěn)壓電路有三個(gè)引腳,分別為輸入端,輸出端和公共端,因而稱為三端穩(wěn)壓器。按功能可分為固定式穩(wěn)壓電路和可調(diào)式穩(wěn)壓電路;前者的輸出電壓不能進(jìn)行調(diào)節(jié),為固定值;后者可通過(guò)外接元件使輸出電壓得到很寬的調(diào)節(jié)范圍。便于實(shí)時(shí)控制,此設(shè)計(jì)采用可調(diào)式三端穩(wěn)壓器LM317。LM317可調(diào)式三端穩(wěn)壓器有三個(gè)引出端,分別為輸入端、輸出端和電壓調(diào)整端(簡(jiǎn)稱調(diào)整端)。調(diào)整端是基準(zhǔn)電壓電路的公共端,其典型值為1.25V。其典型線性調(diào)整率為0。01%,負(fù)載調(diào)整率為0.1%,80dB的紋波抑制比,其工作溫度范圍為o℃至+125℃。LM317可調(diào)式三端穩(wěn)壓依靠外接電阻來(lái)調(diào)節(jié)輸出電壓的,為保證輸出電壓的精度和穩(wěn)定性,要選擇精度高的電阻,同時(shí)電阻要緊靠穩(wěn)壓器,防止輸出電流在連線上產(chǎn)生誤差電壓。為了減小電位器上的紋波電壓,可在其上并聯(lián)了一個(gè)lo的電容,由于電容容量較大,一旦輸入端斷開(kāi),電容將從穩(wěn)蘸器輸出端向穩(wěn)壓器放電,易使穩(wěn)壓器損壞,因此在穩(wěn)壓器的輸入端和輸出端之間跨接一個(gè)二極管,并置在輸出短路時(shí),曦套將向穩(wěn)壓器調(diào)熬端放電,并使調(diào)整管發(fā)射結(jié)反偏,為了保護(hù)穩(wěn)壓器,故加一個(gè)二極管。利用電容可以抵消輸入線較長(zhǎng)時(shí)的電感效應(yīng),以防止電路產(chǎn)生壹激振蕩,其容量較小,一般小于1,故在此選擇0.1。圖4LM317的基本應(yīng)用電路圖5LM317穩(wěn)壓電源電路.LM317輸出電流為1。5A,輸出電壓可在1.25—37V之間連續(xù)調(diào)節(jié),其輸出電壓由兩只外接電阻R1、RP1決定,輸出端和調(diào)整端之間的電壓差為1.25V,這個(gè)電壓將產(chǎn)生幾毫安的電流,經(jīng)R1、RP1到地,在RP1上分得的電壓加到調(diào)整端,通過(guò)改變RP1就能改變輸出電壓。注意,為了得到穩(wěn)定的輸出電壓,流經(jīng)R1的電流小于3。5mA。LM317在不加散熱器時(shí)最大功耗為2W,加上200×200×4mm3散熱板時(shí)其最大功耗可達(dá)15W。VD1(IN4002)為保護(hù)二極管,防止穩(wěn)壓器輸出端短路而損壞IC,VD2(IN4002)用于防止輸入短路而損壞集成電路。安裝時(shí)注意電容C2應(yīng)靠近IC的輸入端,C3應(yīng)靠近IC的輸出端,這樣能更好地抑制紋波。5、設(shè)計(jì)步驟及電路元件選擇電路參數(shù)計(jì)算如下:大部分元件的選擇都有彈性。IC選用LM317或與其功能相同的其它型號(hào)(如KA317等,可向售貨員咨詢).二極管選1N4001-1N4007均可,因?yàn)檫@里涉及到的電壓比較小。一般當(dāng)整流輸出電流大時(shí),必須用電解電容濾波穩(wěn)壓;輸出電流小時(shí),用一般電容或電解電容濾波都可以,如果對(duì)直流輸出電壓有紋波系數(shù)要求或者為了防止高頻噪音,用電解電容和小容量無(wú)極性電容并聯(lián)使用效果較好。小容量電容可濾掉脈動(dòng)直流中的高次諧波,電解電容濾掉大幅值的低頻成分,穩(wěn)壓范圍寬、效果好.穩(wěn)壓范圍寬、效果好。整流濾波電路對(duì)電容器的容量和耐壓值要求不是太高,一般根據(jù)輸出電流大小估算電容器的容量,輸出電流大,容量就大;電流小,容量就小。但是,容量太大會(huì)降低輸出電壓值,太小則會(huì)導(dǎo)致電壓脈動(dòng)大、不穩(wěn)定.故C1選擇耐壓大于16V、容量470—2200μF的電解電容均可。C2選用普通的磁片電容即可,容量為10×104=100000PF=0.1μF。C3的選擇類似于C1,電阻選用1/8W的小型電阻。圖5是由LM317三端可調(diào)雙電源穩(wěn)壓電路,正輸出電壓是可調(diào)的。電路中的VREF=V31(或V21)=1。2V,R1和R2=(120~240)Ω,為保證空載情況下輸出電壓穩(wěn)定,R1和R2不宜高于240Ω。R2和R2的大小根據(jù)輸出電壓調(diào)節(jié)范圍確定。變壓器的選擇。輸出電壓為3~6V,最大電流可達(dá)100mA,因此變壓器的功率必須為6W以上,輸出電壓為兩個(gè)15V的變壓器(即15*25W的變壓器或選用中間抽頭的)。6、各部分電路圖及其仿真結(jié)果(1)單向橋式整流電路圖及其仿真結(jié)果整流電路的任務(wù)是把交流電壓轉(zhuǎn)變?yōu)橹绷髅}動(dòng)的電壓電路圖:仿真結(jié)果:(2)電容濾波電路圖及其仿真結(jié)果電路圖:仿真結(jié)果:濾波電容C=22uF濾波電容C=470uF時(shí)(3)穩(wěn)壓電源電路的電路圖及仿真通過(guò)調(diào)節(jié)滑動(dòng)變阻器Rp1的阻值可得到3~6V的穩(wěn)定的直流電壓電路圖:仿真結(jié)果:輸出電壓U2的波形圖:輸出電壓U0的波形圖:7、總結(jié)本系統(tǒng)主要以三端可調(diào)式集成穩(wěn)壓器LM317為核心部件,并結(jié)合蓽片瓿等原理.該電源具有輸出電壓范圍寬,輸出電流大,性能穩(wěn)定等優(yōu)點(diǎn)。能較好地進(jìn)行數(shù)字億的信息顯示及智能控制,不僅提高了穩(wěn)壓電源的綜合性能,而且能防止負(fù)載短路、過(guò)載。通過(guò)其體設(shè)計(jì)及實(shí)際測(cè)試,充分證明了該系統(tǒng)設(shè)計(jì)方案的可行性程有效性,各項(xiàng)性能指標(biāo)均達(dá)到了預(yù)期的要求,廣泛適用于各種電子類研究及實(shí)驗(yàn)室,積極推進(jìn)各種電子行業(yè)的技術(shù)與質(zhì)量管理事業(yè)的快速發(fā)展.摘要近年來(lái),隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷深入,同時(shí)帶動(dòng)傳統(tǒng)控制檢測(cè)技術(shù)日益更新.在實(shí)時(shí)檢測(cè)和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往作為一個(gè)核心部件來(lái)使用,正在不斷的應(yīng)用到實(shí)際生活中,并且根據(jù)具體硬件結(jié)構(gòu)軟硬件結(jié)合,加以完善。十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊.那么靠什么來(lái)實(shí)現(xiàn)這井然秩序呢?靠的就是交通信號(hào)燈的自動(dòng)指揮系統(tǒng)。交通信號(hào)燈控制方式很多。本系統(tǒng)采用MCS-51系列單片機(jī)STC89C51為中心器件來(lái)設(shè)計(jì)交通燈控制器,實(shí)現(xiàn)了通過(guò)信號(hào)燈對(duì)路面狀況的智能控制。從一定程度上解決了交通路口堵塞、車輛停車等待時(shí)間不合理、急車強(qiáng)通等問(wèn)題。系統(tǒng)具有結(jié)構(gòu)簡(jiǎn)單、可靠性高、成本低、實(shí)時(shí)性好、安裝維護(hù)方便等優(yōu)點(diǎn),有廣泛的應(yīng)用前景。關(guān)鍵詞:交通燈單片機(jī)數(shù)碼管一.總體設(shè)計(jì)思路1.1設(shè)計(jì)目的及思路設(shè)計(jì)目的了解交通燈管理的基本工作原理,熟練掌握STC89C51的工作原理和應(yīng)用編程,熟悉STC89C51單片機(jī)并行接口的各種工作方式和應(yīng)用,并了解計(jì)數(shù)器/定時(shí)器的工作方式和應(yīng)用編程外部中斷的方法,掌握多位LED顯示問(wèn)題的解決。設(shè)計(jì)思路(1)分析目前交通路口的基本控制技術(shù),提出自己的交通控制的初步方案.(2)確定系統(tǒng)交通控制的總體設(shè)計(jì),增加了倒計(jì)時(shí)顯示提示。(3)進(jìn)行顯示電路.(4)進(jìn)行軟件系統(tǒng)的設(shè)計(jì)。1.2實(shí)際交通燈顯示時(shí)序及狀態(tài)轉(zhuǎn)換的理論分析圖1所示為紅綠燈轉(zhuǎn)換的狀態(tài)圖。S2S1S2S1S4S3S4S3圖1紅綠燈狀態(tài)轉(zhuǎn)換圖狀態(tài)S1S2S3S4時(shí)間30s5s30s5s東西道紅燈亮紅燈亮綠燈亮黃燈亮南北道綠燈亮黃燈亮紅燈亮紅燈亮表1十字路口指示燈燃亮方案說(shuō)明:(1)當(dāng)東西方向?yàn)榧t燈,此道車輛禁止通行,東西道行人可通過(guò);南北道為綠燈,此道車輛通過(guò),行人禁止通行。時(shí)間為60秒。(2)黃燈閃爍5秒,警示車輛和行人紅、綠燈的狀態(tài)即將切換.(3)當(dāng)東西方向?yàn)榫G燈,此道車輛通行;南北方向?yàn)榧t燈,南北道車輛禁止通過(guò),行人通行。時(shí)間為80秒.東西方向車流大通行時(shí)間長(zhǎng)。(4)這樣如上表的時(shí)間和紅、綠、黃出現(xiàn)的順序依次出現(xiàn)這樣行人和車輛就能安全暢通的通行。(5)此表可根據(jù)車流量動(dòng)態(tài)設(shè)定紅綠燈初始值。共四種狀態(tài),分別設(shè)定為S1、S2、S3、S4,交通燈以這四種狀態(tài)為一個(gè)周期,循環(huán)執(zhí)行如下圖所示:圖2交通燈狀態(tài)循環(huán)圖圖2交通燈狀態(tài)循環(huán)圖程序就是在上述四種狀態(tài)下循環(huán)轉(zhuǎn)化的。一個(gè)周期四個(gè)狀態(tài),在正常模式下共花費(fèi)1分10秒。二.具體設(shè)計(jì)方案2.1方案要求:本設(shè)計(jì)要求與交通信號(hào)實(shí)際控制一致,采用LED模擬信號(hào)燈,信號(hào)燈分東西、南北二組,分別有紅、黃、綠三色。其工作狀態(tài)由程序控制,啟動(dòng)、停止按鈕分別控制信號(hào)燈的啟動(dòng)與停止。白天/黑夜轉(zhuǎn)換開(kāi)關(guān)可對(duì)信號(hào)進(jìn)行控制轉(zhuǎn)換。并且要求能用兩位數(shù)碼管(或者一位數(shù)碼管)來(lái)顯示紅燈或者綠燈等待的時(shí)間,在黃燈的時(shí)候數(shù)碼管不顯示。信號(hào)燈的控制要求如下:⑴假設(shè)東西方向交通繁忙為主干道,車流量為南北交通的兩倍.因此東西方向的綠燈通行時(shí)間為是南北方向上的兩倍。⑵開(kāi)始時(shí)東西方向綠燈先亮,南北為紅燈。⑶按下啟動(dòng)按鈕開(kāi)始工作,,按下停止按鈕,停止工作.白天/黑夜轉(zhuǎn)換開(kāi)關(guān)閉合時(shí)為黑夜工作狀態(tài),這時(shí)只有黃燈來(lái)回閃爍,斷開(kāi)為白天工作狀態(tài)。白天工作狀態(tài)要求:東西方向綠燈亮40s,然后黃燈閃三下(1下/秒,共5秒),然后紅燈亮20s,而南北方向?yàn)榧t燈亮40s然后綠燈亮20s,然后黃燈也閃三下;如此周期循環(huán)下去。示意圖2。2方案分析根據(jù)十字路口交通燈的要求,可將本系統(tǒng)分為三個(gè)模塊,第一模塊是控制模塊,主要負(fù)責(zé)整個(gè)系統(tǒng)的控制和運(yùn)算,從而使各模塊正常工作,第二個(gè)模塊式顯示模塊包括LED燈和數(shù)碼管;第三是電源模塊,給各模塊提供電源,讓各模塊工作。其系統(tǒng)設(shè)計(jì)結(jié)構(gòu)如圖:圖3.系統(tǒng)設(shè)計(jì)結(jié)構(gòu)圖圖3.系統(tǒng)設(shè)計(jì)結(jié)構(gòu)圖2。389C51單片機(jī)引腳功能說(shuō)明89C51外部引腳圖:(可以直接拷入ASM程序文件中,作注釋使用,十分方便)

┏━┓┏━┓

P1.0

┫1┗┛40┣

Vcc?

P1.1

┫2

39┣

P0.0

P1.2

┫3

38┣

P0.1

?

P1。3

┫4

37┣

P0。2

P1.4

┫5

36┣

P0.3

P1.5

┫6

35┣

P0.4

P1.6

┫7

34┣

P0.5

?

P1。7

┫8

33┣

P0。6

?

RST/Vpd

┫9

32┣

P0.7

?

RXDP3.0

┫10

31┣

—EA/Vpp(內(nèi)1/外0程序地址選擇)?

TXDP3.1

┫11

30┣

ALE/—P(地址鎖存輸出)?-INT0P3.2

┫12

29┣

-PSEN

(外部程序讀選通輸出)

-INT1P3。3

┫13

28┣

P2。7

?

T0

P3.4

┫14

27┣

P2。6

T1

P3.5

┫15

26┣

P2.5

—WRP3。6

┫16

25┣

P2。4

?

-RDP3.7

┫17

24┣

P2。3

?

X2

┫18

23┣

P2。2

?

X1

┫19

22┣

P2.1

GND

┫20

21┣

P2.0

?

┗━━━━┛引腳說(shuō)明:?

①電源引腳?

Vcc(40腳):典型值+5V.

Vss(20腳):接低電平.?

②外部晶振?

X1、X2分別與晶體兩端相連接。當(dāng)采用外部時(shí)鐘信號(hào)時(shí),X2接振蕩信號(hào),X1接地

③輸入輸出口引腳:

P0口:I/O雙向口。作輸入口時(shí),應(yīng)先軟件置“1”。

P1口:I/O雙向口。作輸入口時(shí),應(yīng)先軟件置“1”。?

P2口:I/O雙向口。作輸入口時(shí),應(yīng)先軟件置“1"。

P3口:I/O雙向口.作輸入口時(shí),應(yīng)先軟件置“1”。

④控制引腳:?

RST/Vpd、ALE/—PROG、—PSEN、-EA/Vpp組成了MSC-51的控制總線。

RST/Vpd(9腳):復(fù)位信號(hào)輸入端(高電平有效).

第二功能:加+5V備用電源,可以實(shí)現(xiàn)掉電保護(hù)RAM信息不丟失。?

ALE/-PROG(30腳):地址鎖存信號(hào)輸出端。

第二功能:編程脈沖輸入.?

—PSEN(29腳):外部程序存儲(chǔ)器讀選通信號(hào).?

—EA/Vpp(31腳):外部程序存儲(chǔ)器使能端。?

第二功能:編程電壓輸入端(+21V).圖6.單片機(jī)8051的內(nèi)部結(jié)構(gòu)圖6.單片機(jī)8051的內(nèi)部結(jié)構(gòu)2.4單片機(jī)最小系統(tǒng)時(shí)鐘電路圖7.時(shí)鐘電路XTAL1是片內(nèi)振蕩器的反相放大器輸入端,XTAL2則是輸出端,使用外部振蕩器時(shí),外部振蕩信號(hào)應(yīng)直接加到XTAL1,而XTAL2懸空.內(nèi)部方式時(shí),時(shí)鐘發(fā)生器對(duì)振蕩脈沖二分頻,如晶振為12MHz,時(shí)鐘頻率就為6MHz.晶振的頻率可以在1MHz-24MHz內(nèi)選擇。電容取30PF左右.系統(tǒng)的時(shí)鐘電路設(shè)計(jì)是采用的內(nèi)部方式,即利用芯片內(nèi)部的振蕩電路。AT89單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器。引腳XTAL1和XTAL2分別是此放大器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外晶體諧振器一起構(gòu)成一個(gè)自激振蕩器。外接晶體諧振器以及電容C1和C2構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中.對(duì)外接電容的值雖然沒(méi)有嚴(yán)格的要求,但電容的大小會(huì)影響震蕩器頻率的高低、震蕩器的穩(wěn)定性、起振的快速性和溫度的穩(wěn)定性。因此,此系統(tǒng)電路的晶體振蕩器的值為12MHz,電容應(yīng)盡可能的選擇陶瓷電容,電容值約為22μF.在焊接刷電路板時(shí),晶體振蕩器和電容應(yīng)盡可能安裝得與單片機(jī)芯片靠近,以減少寄生電容,更好地保證震蕩器穩(wěn)定和可靠地工作。復(fù)位電路在振蕩器運(yùn)行時(shí),有兩個(gè)機(jī)器周期(24個(gè)振蕩周期)以上的高電平出現(xiàn)在此引腿時(shí),將使單片機(jī)復(fù)位,只要這個(gè)腳保持高電平,51芯片便循環(huán)復(fù)位.復(fù)位后P0-P3口均置1引腳表現(xiàn)為高電平,程序計(jì)數(shù)器和特殊功能寄存器SFR全部清零.當(dāng)復(fù)位腳由高電平變?yōu)榈碗娖綍r(shí),芯片為ROM的00H處開(kāi)始運(yùn)行程序.復(fù)位是由外部的復(fù)位電路來(lái)實(shí)現(xiàn)的。片內(nèi)復(fù)位電路是復(fù)位引腳RST通過(guò)一個(gè)斯密特觸發(fā)器與復(fù)位電路相連,斯密特觸發(fā)器用來(lái)抑制噪聲,它的輸出在每個(gè)機(jī)器周期的S5P2,由復(fù)位電路采樣一次。復(fù)位電路通常采用上電自動(dòng)復(fù)位和按鈕復(fù)位兩種方式,此電路系統(tǒng)采用的是上電與按鈕復(fù)位電路。當(dāng)時(shí)鐘頻率選用6MHz時(shí),C取22μF,Rs約為200Ω,Rk約為1K。復(fù)位操作不會(huì)對(duì)內(nèi)部RAM有所影響.常用的復(fù)位電路如下圖所示:圖8.復(fù)位電路圖顯示電路顯示器普遍地用于直觀地顯示數(shù)字系統(tǒng)的運(yùn)行狀態(tài)和工作數(shù)據(jù),按照材料及產(chǎn)品工藝,單片機(jī)應(yīng)用系統(tǒng)中常用的顯示器有:發(fā)光二極管LED顯示器、液晶LCD顯示器、CRT顯示器等。LED數(shù)碼管是現(xiàn)在最常用的顯示器之一。發(fā)光二極管(LED)由特殊的半導(dǎo)體材料砷化鎵、磷砷化鎵等制成,可以單獨(dú)使用,也可以組裝成分段式或點(diǎn)陣式LED顯示器件(半導(dǎo)體顯示器)。分段式顯示器(LED數(shù)碼管)由7條線段圍成8字型,每一段包含一個(gè)發(fā)光二極管。外加正向電壓時(shí)二極管導(dǎo)通,發(fā)出清晰的光。只要按規(guī)律控制各發(fā)光段亮、滅,就可以顯示各種字形或號(hào)。LED數(shù)碼管有共陽(yáng)、共陰之分。本系統(tǒng)采用的是兩位共陰極數(shù)碼管三.電路圖和程序圖10.交通燈電路圖具體程序:#include<REG51.H>#defineucharunsignedchar#defineuintunsignedintuintnum,shi,ge;sbitred=P1^0;sbityel=P1^1;sbitgre=P1^2;? voiddelay(){uinta;for(a=500;a〉0;a-—);? }ucharcodearry_duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};voidinitial(){EA=1;ET0=1;TMOD=0x01;TH0=0x4c;TL0=0xd0;}voiddisplay(intY){shi=Y/10;ge=Y%10;TR0=1;while(shi|ge!=0){P2=0xfe;P3=arry_duan[shi];delay();P2=0xfd;P3=?arry_duan[ge];delay();}TR0=0;}voidtimer0()interrupt1{TH0=0x4c;TL0=0xd0;num++;if(num==20){num=0;ge-—;if(ge==-1){ge=9;shi—-;}}}main(){initial();while(1){red=0;yel=0;gre=1;display(40);red=0;yel=1;gre=0;display(3);red=1;yel=0;gre=0;display(20);red=0;yel=1;gre=0;display(3);}}程序編譯和。hex文件創(chuàng)建截圖仿真截圖四.實(shí)驗(yàn)心得體會(huì)通過(guò)本次試驗(yàn)我復(fù)習(xí)了單片機(jī)程序的編寫(xiě),電路的連接以及程序的調(diào)試仿真,更加深刻的感受到了單片機(jī)的強(qiáng)大功能,通過(guò)實(shí)驗(yàn)也加強(qiáng)了動(dòng)手操作的能力,和同學(xué)一起更加懂得了相互合作的重要性,以后我會(huì)更加努力的把本專業(yè)知識(shí)學(xué)好學(xué)精,爭(zhēng)取為國(guó)家做到屬于自己應(yīng)做的奉獻(xiàn)。五.課程設(shè)計(jì)參考資料1.《電子系統(tǒng)綜合設(shè)計(jì)》郭勇北京大學(xué)出版社2.《數(shù)字電子技術(shù)基礎(chǔ)》閻石高教出版社3.《模擬電子技術(shù)基礎(chǔ)》童詩(shī)白高教出版社4.《單片機(jī)原理及應(yīng)用》張毅剛高等教育出版社計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)任務(wù)書(shū)學(xué)院計(jì)算機(jī)與信息工程學(xué)院專業(yè)網(wǎng)絡(luò)工程課程名稱計(jì)算機(jī)網(wǎng)絡(luò)題目基于C/S模式的簡(jiǎn)單聊天程序完成期限自2016年6月13日至2016年6月26日共兩周內(nèi)容及任務(wù)一、項(xiàng)目的目的利用socket。實(shí)現(xiàn)客戶與服務(wù)器間的信息互通。二、項(xiàng)目任務(wù)的主要內(nèi)容和要求(1)用戶聊天室具有群發(fā),私聊,輸入昵稱與端口號(hào)等基本設(shè)置。點(diǎn)擊“連接”按鈕實(shí)現(xiàn)與服務(wù)器的連接。點(diǎn)擊“斷開(kāi)"按鈕實(shí)現(xiàn)與服務(wù)器的斷開(kāi)連接。(2)服務(wù)器聊天室具有啟動(dòng)服務(wù)器,停止服務(wù)器,顯示當(dāng)前在線的用戶功能.點(diǎn)擊“啟動(dòng)”按鈕實(shí)現(xiàn)與服務(wù)器的連接。點(diǎn)擊“停止”按鈕實(shí)現(xiàn)與服務(wù)器的斷開(kāi)連接。(3)設(shè)計(jì)一個(gè)登錄程序.驗(yàn)證通過(guò)后才能進(jìn)入聊天室.(4)當(dāng)服務(wù)器與客戶機(jī)連接成功后。能夠互相接受和發(fā)送消息。當(dāng)多個(gè)客戶機(jī)啟動(dòng)時(shí),服務(wù)器會(huì)創(chuàng)建子線程處理對(duì)應(yīng)線程的消息。三、項(xiàng)目設(shè)計(jì)(研究)思路(1)設(shè)計(jì)步驟:先畫(huà)出聊天室的模型,布局。(2)設(shè)計(jì)要點(diǎn):設(shè)計(jì)主類與子類,分別實(shí)現(xiàn)不同的功能(3)主要技術(shù)分析:需要掌握socket通信,swing和awt,io的簡(jiǎn)單應(yīng)用.(4)解決思路:先按照草稿圖設(shè)計(jì)出聊天室布局。再寫(xiě)各個(gè)類的功能。簡(jiǎn)單測(cè)試與修改代碼。最后完善.四、具體成果形式和要求(見(jiàn)第一部分)進(jìn)度安排起止日期工作內(nèi)容6。13-6.18設(shè)計(jì)聊天室的模型,布局6.19-6.20編寫(xiě)代碼,初步實(shí)現(xiàn)聊天程序6。21-6。26完善代碼,優(yōu)化界面,完成任務(wù)主要參考資料[1]趙生慧?!禞ava面向?qū)ο蟪绦蛟O(shè)計(jì)》(第二版)[M]。北京:中國(guó)水利水電出版社,2013.[2]萬(wàn)常選?!稊?shù)據(jù)庫(kù)系統(tǒng)原理與設(shè)計(jì)》(第二版)[M]。北京:清華大學(xué)出版社,2012.[3]謝鈞,謝希仁.《計(jì)算機(jī)網(wǎng)絡(luò)教程》(第四版)[M].北京:人民郵電出版社,2014。[4]李剛.《瘋狂JAVA講義》[M]。(第三版).北京:電子工業(yè)出版社,2014。[5]耿祥義、張躍平?!叮蔭va2實(shí)用教程》[M].(第三版).北京:清華大學(xué)出版社,2006.[6]劉海杰?!叮蔭va編程設(shè)計(jì)》[M]。北京:中國(guó)鐵道出版社,2006.指導(dǎo)教師意見(jiàn)(簽字):年月日系(教研室)主任意見(jiàn)(簽字):年月日基于C/S模式的簡(jiǎn)單聊天程序設(shè)計(jì)說(shuō)明書(shū)學(xué)院名稱:計(jì)算機(jī)與信息工程學(xué)院班級(jí)名稱:網(wǎng)絡(luò)工程142學(xué)生姓名:張三學(xué)號(hào):2014211540題目:基于C/S模式的簡(jiǎn)單聊天程序指導(dǎo)教師姓名:陳海寶起止日期:2016.6.13-2016.6.26目錄TOC\o"1—3"\h\z\uHYPERLINK\l"_Toc455482174”一、選題背景PAGEREF_Toc455482174\h1二、方案論證PAGEREF_Toc455482175\h1三、過(guò)程論述PAGEREF_Toc455482176\h2HYPERLINK\l"_Toc455482177"3。1服務(wù)器端PAGEREF_Toc455482177\h23。2客戶機(jī)端PAGEREF_Toc455482178\h8HYPERLINK\l"_Toc455482179”四、結(jié)果分析PAGEREF_Toc455482179\h15HYPERLINK\l"_Toc455482180”五、結(jié)論PAGEREF_Toc455482180\h17第一部分:正文部分一、選題背景使用Socket實(shí)現(xiàn)網(wǎng)上聊天功能.用戶可以通過(guò)客戶端連接到服務(wù)器端并進(jìn)行網(wǎng)上聊天。聊天時(shí)可以啟動(dòng)多個(gè)客戶端.服務(wù)器端啟動(dòng)后,接收客戶端發(fā)來(lái)的用戶名和密碼驗(yàn)證信息。驗(yàn)證通過(guò)則以當(dāng)前的聊天客戶列表信息進(jìn)行響應(yīng);此后接收客戶端發(fā)來(lái)的聊天信息,轉(zhuǎn)發(fā)給客戶端指定的聊天客戶(即私聊)或所有其他客戶端;在客戶斷開(kāi)連接后公告其退出聊天系統(tǒng)的信息??蛻舳藛?dòng)后在GUI界面接收用戶輸入的服務(wù)器端信息、賬號(hào)和密碼等驗(yàn)證客戶的身份。驗(yàn)證通過(guò)則顯示當(dāng)前系統(tǒng)在線客戶列表。客戶可以與指定對(duì)象進(jìn)行私聊,也可以向系統(tǒng)中所有在線客戶發(fā)送信息。二、方案論證基于C/S的簡(jiǎn)單聊天室可以實(shí)現(xiàn)用戶與服務(wù)器間,服務(wù)器與多個(gè)用戶間的通信。聊天室程序通常需要完成以下一些基本功能:

(1)登錄聊天室;

(2)啟動(dòng)服務(wù)器;

(3)關(guān)閉服務(wù)器;

(4)用戶之間的聊天;

(5)退出聊天室。

本系統(tǒng)其體功能需求如下:

(1)聊天室管理員經(jīng)登錄界面登錄到管理界面,即系統(tǒng)的服務(wù)器端.用戶經(jīng)登錄界面進(jìn)入聊天大廳。(2)不論是管理員還是用戶都需要在登錄界面輸入正確的用戶名和密碼后才可以登錄到各自的界面中去。(3)系統(tǒng)的兩個(gè)主要界面都是為方便管理員和用戶操作的.首先,管理員進(jìn)入到管理界面后可以方便的啟動(dòng)/停止服務(wù)器,看到在線用戶的信息和聊天信息。用戶進(jìn)入到聊天大廳中可以聊天,查看服務(wù)器狀態(tài)。

(4)一個(gè)用戶退出聊天室對(duì)其他用戶不能產(chǎn)生影響,而服務(wù)器斷開(kāi)與客戶端的連接則所有的用戶都失去與服務(wù)器的連接。

(5)用戶的聊天信息錄入,重寫(xiě),發(fā)送,接收方便,快捷。

(6)服務(wù)器狀態(tài),聊天信息和在線用戶人數(shù)及時(shí)刷新。

(7)聊天室系統(tǒng)運(yùn)行穩(wěn)定、安全性高、三、過(guò)程論述3.1服務(wù)器端(1)首先實(shí)現(xiàn)的是服務(wù)器開(kāi)始工作

界面,如圖3-1所示:圖3—1代碼如下:publicChatServer(){try{System.out。println(”服務(wù)器開(kāi)始工作.。..。.");server=newServerSocket(port);//初始化服務(wù)器套接字while(true){?socket=server.accept();//等待連接 System.out。println(socket.getInetAddress()+"連接\n”);//得到客戶機(jī)地址 Clientclient=newClient(socket);//實(shí)例化一個(gè)客戶線程(其中線程Client中Socket,這里的Socket只是起個(gè)過(guò)渡作用)?clients.add(client);//增加客戶線程到向量中?client.start();//啟動(dòng)線程?notifyChatRoom();//監(jiān)視聊天室連接變化}}catch(Exceptionex){ ex。printStackTrace();}}(2)監(jiān)視聊天室連接情況,并顯示出來(lái),如圖3—2所示:圖3-2代碼如下:publicstaticvoidnotifyChatRoom(){ StringBuffernewUser=newStringBuffer(”newUser"); for(inti=0;i<clients。size();i++){??Clientc=(Client)clients.elementAt(i); ?newUser.a(chǎn)ppend(":"+c。name);?} sendClients(newUser);}publicstaticvoidsendClients(StringBuffermessage){?for(inti=0;i〈clients.size();i++)?{ ?Clientclient=(Client)clients。elementAt(i);??client。send(message);?}}publicvoidcloseAll(){ while(clients。size()〉0){? Clientclient=(Client)clients.firstElement();??try{?? client.socket.close(); }catch(IOExceptione){ ? e.printStackTrace(); ?}? clients.removeElement(client);//移出客戶端?}}publicstaticvoiddisconnect(Clientc){//斷開(kāi)客戶端try{System.err。println(c.ip+"斷開(kāi)連接\n”);}catch(Exceptionex){ex.printStackTrace();}clients。removeElement(c);c。socket=null;}(3)再次是實(shí)現(xiàn)服務(wù)器與客戶機(jī)連接機(jī)制,如果有客戶機(jī)申請(qǐng)連接,則為此客戶機(jī)創(chuàng)建線程,代碼如下:publicChatServer(){try{System.out.println("服務(wù)器開(kāi)始工作。。..。。”);server=newServerSocket(port);//初始化服務(wù)器套接字while(true){ socket=server.accept();//等待連接 System。out。println(socket。getInetAddress()+"連接\n");//得到客戶機(jī)地址?Clientclient=newClient(socket);//實(shí)例化一個(gè)客戶線程(其中線程Client中Socket,這里的Socket只是起個(gè)過(guò)渡作用) clients。add(client);//增加客戶線程到向量中?client.start();//啟動(dòng)線程?notifyChatRoom();//監(jiān)視聊天室連接變化}}catch(Exceptionex){?ex。printStackTrace();}publicChatServer(){try{System.out.println("服務(wù)器開(kāi)始工作...。..");server=newServerSocket(port);//初始化服務(wù)器套接字while(true){ socket=server.accept();//等待連接 System。out.println(socket.getInetAddress()+"連接\n”);//得到客戶機(jī)地址 Clientclient=newClient(socket);//實(shí)例化一個(gè)客戶線程(其中線程Client中Socket,這里的Socket只是起個(gè)過(guò)渡作用)?clients。add(client);//增加客戶線程到向量中 client.start();//啟動(dòng)線程 notifyChatRoom();//監(jiān)視聊天室連接變化}}catch(Exceptionex){ ex.printStackTrace();}(4)再次是實(shí)現(xiàn)服務(wù)器的消息發(fā)送和接受的處理機(jī)制,如圖3-3所示:圖3—3代碼如下:publicClient(Sockets){socket=s;try{reader=newBufferedReader(newInputStreamReader(s.getInputStream()));//得到輸入流ps=newPrintStream(s。getOutputStream());//到輸出流Stringinfo=reader.readLine();//讀取接收到的信息StringTokenizerstinfo=newStringTokenizer(info,":");//分解字符串Stringhead=stinfo.nextToken();//獲取關(guān)鍵字System.out。println(stinfo.toString());System.out。println(head);if(stinfo.hasMoreTokens()){name=stinfo.nextToken();//獲取用戶名}if(stinfo。hasMoreTokens()){ip=stinfo.nextToken();//獲取IP地址}}catch(IOExceptionex){ex.printStackTrace();}System。out。println(name);System.out。println(ip);}publicvoidsend(StringBuffermsg){ps.println(msg);//輸出信息ps.flush();}publicvoidrun(){while(true){Stringline=null;try{line=reader。readLine();System。out。println("line:"+line);}catch(IOExceptionex){ex.printStackTrace();//輸出錯(cuò)誤信息Chat(yī)Server。disconnect(this);//斷開(kāi)連接ChatServer.notifyChatRoom();//更新信息}if(line==null){//客戶離開(kāi)ChatServer。disconnect(this);Chat(yī)Server.notifyChatRoom();}StringTokenizerst=newStringTokenizer(line,”:");//分解字符串Stringkeyword=st。nextToken();if(keyword。equals("MSG")){//發(fā)送來(lái)的聊天信息StringBuffermsg=newStringBuffer("MSG:");msg.append(name);//在信息上增加用戶名msg.append(st。nextToken(”\0\n"));Chat(yī)Server。sendClients(msg);//發(fā)送聊天語(yǔ)句到各個(gè)客戶端System。out.println(msg);}elseif(keyword.equals(”quit")){//退出命令ChatServer.disconnect(this);//斷開(kāi)連接ChatServer。notifyChatRoom();//刷新信息}}}}}3.2客戶機(jī)端(1)客戶機(jī)登錄界面如圖3-4所示:圖3—4代碼如下:publicclassChat(yī)ClientextendsJFrameimplementsActionListener{TextFieldtfName=newTextField();//姓名輸入文本域ButtonbtConnect=newButton(”登陸");//連接按鈕ButtonbtDisconnect=newButton("退出”);//斷開(kāi)連接按鈕TextAreatfChat=newTextArea();//顯示聊天信息文本域ButtonbtSend=newButton("發(fā)送”);TextFieldtfMessage=newTextField();//聊天輸入java.awt。Listlist1=newjava.a(chǎn)wt.List(9);//顯示在線用戶信息Socketsocket=null;//連接端口PrintStreamps=null;//輸出流Listenlisten=null;//監(jiān)聽(tīng)線程類classListenextendsThread{BufferedReaderreader;PrintStreamps;Stringcname;Socketsocket;ChatClientchatClient;publicListen(ChatClientclient,Stringname,Socketsocket){try{this.chatClient=client;this。socket=socket;this.cname=name;reader=newBufferedReader(newInputStreamReader(socket.getInputStream()));ps=newPrintStream(socket.getOutputStream());}catch(IOExceptione){e.printStackTrace();}}publicvoidrun(){while(true){Stringline=null;try{line=reader.readLine();//讀取數(shù)據(jù)流System。out。println(”客戶端:"+line);}catch(IOExceptionex){ex.printStackTrace();ps。println(”quit");;//斷開(kāi)連接return;}StringTokenizerstinfo=newStringTokenizer(line,":");//分解字符串Stringkeyword=stinfo.nextToken();if(keyword.equals(”MSG")){chat(yī)Client.tfChat.append(line+"\n”);}elseif(keyword.equals("newUser")){chatClient。list1.clear();chat(yī)Client.list1.a(chǎn)dd("users”,0);inti=1;while(stinfo.hasMoreTokens()){chatClient.list1.add(stinfo.nextToken(),i++);}}}}}publicChatClient(Socketsocket){this.setLayout(newBorderLayout());JPanelpanel1=newJPanel();Labellabel=newLabel("賬號(hào)");panel1.setBackground(Color.pink);panel1.add(label);panel1.add(tfName);panel1。add(btConnect);panel1。add(btDisconnect);this。add(panel1,BorderLayout.SOUTH);JPanelpanel2=newJPanel();tfChat.setBackground(Color.yellow);panel2.add(tfChat);panel2。add(list1);this。add(panel2,BorderLayout.CENTER);JPanelpanel3=newJPanel();Labellabel2=newLabel("聊天板");panel3.add(label2);panel3.add(tfMessage);panel3.add(btSend);this。add(panel3,BorderLayout.NORTH);this。setBounds(50,50,400,350);this.setVisible(true);btConnect.a(chǎn)ddActionListener(this);btDisconnect.addActionListener(this);btSend.a(chǎn)ddActionListener(this);}?(2)其次是實(shí)現(xiàn)消息的接受和發(fā)送處理機(jī)制,代碼如下:publicvoidrun(){while(true){Stringline=null;try{line=reader.readLine();//讀取數(shù)據(jù)流System.out.println("客戶端:"+line);}catch(IOExceptionex){ex。printStackTrace();ps.println("quit");;//斷開(kāi)連接return;}StringTokenizerstinfo=newStringTokenizer(line,":");//分解字符串Stringkeyword=stinfo。nextToken();if(keyword.equals(”MSG")){chat(yī)Client.tfChat。append(line+”\n");}elseif(keyword。equals(”newUser")){chatClient。list1。clear();chatClient.list1。add(”users”,0);inti=1;while(stinfo.hasMoreTokens()){chat(yī)Client。list1。add(stinfo.nextToken(),i++);}}}}}(3)再次是實(shí)現(xiàn)客戶端登陸界面以及功能的實(shí)現(xiàn),如圖3-5所示:圖3—5代碼如下:publicclassChatClientextendsJFrameimplementsActionListener{TextFieldtfName=newTextField();//姓名輸入文本域ButtonbtConnect=newButton("登陸”);//連接按鈕ButtonbtDisconnect=newButton(”退出”);//斷開(kāi)連接按鈕TextAreatfChat=newTextArea();//顯示聊天信息文本域ButtonbtSend=newButton(”發(fā)送");TextFieldtfMessage=newTextField();//聊天輸入java.a(chǎn)wt.Listlist1=newjava.awt。List(9);//顯示在線用戶信息Socketsocket=null;//連接端口PrintStreamps=null;//輸出流Listenlisten=null;//監(jiān)聽(tīng)線程類classListenextendsThread{BufferedReaderreader;PrintStreamps;Stringcname;Socketsocket;ChatClientchatClient;publicListen(Chat(yī)Clientclient,Stringname,Socketsocket){try{this。chat(yī)Client=client;this。socket=socket;ame=name;reader=newBufferedReader(newInputStreamReader(socket。getInputStream()));ps=newPrintStream(socket。getOutputStream());}cat(yī)ch(IOExceptione){e。printStackTrace();}}publicvoidrun(){while(true){Stringline=null;try{line=reader.readLine();//讀取數(shù)據(jù)流System.out.println("客戶端:"+line);}cat(yī)ch(IOExceptionex){ex.printStackTrace();ps。println("quit");;//斷開(kāi)連接return;}StringTokenizerstinfo=newStringTokenizer(line,”:");//分解字符串Stringkeyword=stinfo.nextToken();if(keyword.equals("MSG”)){chatClient.tfChat(yī).a(chǎn)ppend(line+"\n");}elseif(keyword.equals("newUser")){chatClient.list1。clear();chatClient.list1.a(chǎn)dd("users",0);inti=1;while(stinfo.hasMoreTokens()){chatClient。list1.add(stinfo。nextToken(),i++);}}}四、結(jié)果分析(1)首先啟動(dòng)服務(wù)器,如圖4—1所示:圖4—1(2)其次登陸客戶端,如圖4—2所示:圖4—2(3)驗(yàn)證通過(guò)之后會(huì)自動(dòng)進(jìn)入客戶端聊天室,如圖4-3所示:圖4-3(4)下面是對(duì)話部分,如圖4—4所示:圖4-4五、結(jié)論通過(guò)課程設(shè)計(jì)的編程和對(duì)編程過(guò)程中遇到的問(wèn)題的思考,有效的提高了我對(duì)數(shù)據(jù)結(jié)構(gòu)的認(rèn)識(shí)和理解,切實(shí)的提高了我的編程能力,補(bǔ)全了我的不足。通過(guò)這次課程設(shè)計(jì),我鞏固所了學(xué)過(guò)的知識(shí),能用JAVA熟練地運(yùn)用其中的一些,進(jìn)一步掌握了各個(gè)指令的功能是轉(zhuǎn)向。課程設(shè)計(jì)是對(duì)我們所學(xué)的這些東西一個(gè)綜合的運(yùn)用。在整個(gè)程序的編寫(xiě)中,調(diào)試占了很大部分的時(shí)間。要想寫(xiě)好程序,必須認(rèn)真對(duì)待代碼的每一個(gè)細(xì)節(jié),還必須熟練的掌握各種命令,這對(duì)程序的調(diào)試是非常重要的。通過(guò)這次實(shí)際動(dòng)手能力的培養(yǎng),我進(jìn)一步熟悉了使用方法,基本達(dá)到了能獨(dú)立閱讀、編制和調(diào)試一定規(guī)模的水平.課程設(shè)計(jì)是對(duì)自己所學(xué)知識(shí)掌握程度最好的檢驗(yàn),特別是對(duì)于一些細(xì)節(jié)問(wèn)題。考試還并不能完全的說(shuō)明什么,因?yàn)榭碱}都是一些單個(gè)的問(wèn)題,大多只是知識(shí)的某一方面.而課程設(shè)計(jì)不同,我們要用到很多的單個(gè)知識(shí)點(diǎn),把他們綜合起來(lái)運(yùn)用到自己的課題當(dāng)中。雖然實(shí)踐時(shí)間不長(zhǎng),但給我們對(duì)知識(shí)的運(yùn)用,利用都有了很好的發(fā)揮。人多力量大這句話是真理啊,不懂得地方問(wèn)同學(xué),不會(huì)的地方也問(wèn)同學(xué),自己努力的同時(shí)跟別人共同進(jìn)步,這就是合作,學(xué)會(huì)合作是我們以后必備的重要的一項(xiàng)人際技能。第三部分:參考文獻(xiàn)[1]趙生慧?!禞ava面向?qū)ο蟪绦蛟O(shè)計(jì)》(第二版)[M]。北京:中國(guó)水利水電出版社,2013。[2]萬(wàn)常選.《數(shù)據(jù)庫(kù)系統(tǒng)原理與設(shè)計(jì)》(第二版)[M]。北京:清華大學(xué)出版社,2012。[3]謝鈞,謝希仁.《計(jì)算機(jī)網(wǎng)絡(luò)教程》(第四版)[M].北京:人民郵電出版社,2014.[4]李剛?!动偪馢AVA講義》[M].(第三版).北京:電子工業(yè)出版社,2014。[5]耿祥義、張躍平。《Java2實(shí)用教程》[M].(第三版).北京:清華大學(xué)出版社,2006.[6]劉海杰?!叮剩醰a編程設(shè)計(jì)》[M]。北京:中國(guó)鐵道出版社,2006.學(xué)生簽名:填表日期:年月日第四部分:指導(dǎo)教師評(píng)語(yǔ)?第五部分:成績(jī)?cè)u(píng)定指導(dǎo)教師簽名:填表日期:年月日湖州師范學(xué)院信息與工程學(xué)院畢業(yè)設(shè)計(jì)(論文)2011屆題目基于51單片機(jī)的數(shù)控穩(wěn)壓電源專業(yè)電子信息工程學(xué)生姓名學(xué)號(hào)指導(dǎo)教師論文字?jǐn)?shù)完成日期湖州師范學(xué)院文印中心印制摘要:數(shù)控直流穩(wěn)壓電源就是能用數(shù)字來(lái)控制電源輸出電壓的大小,而且能使輸出的直流電壓能保持穩(wěn)定、精確的直流電壓源。本文介紹了利用D/A轉(zhuǎn)換電路、輔助電源電路、去抖電路等組成的數(shù)控穩(wěn)壓電源電路,詳述了電源的基本電路結(jié)構(gòu)和控制策略。它與傳統(tǒng)的穩(wěn)壓電源相比,具有操作方便,電壓穩(wěn)定度高的特點(diǎn),其結(jié)構(gòu)簡(jiǎn)單、制作方便、成本低,輸出電壓在0-10V之間連續(xù)可調(diào),其輸出電壓大小以0.1V步進(jìn),輸出電壓的大小調(diào)節(jié)是通過(guò)“+”、“-”兩個(gè)鍵操作的,而且可以根據(jù)實(shí)際要求組成具有不同的輸出電壓值的穩(wěn)壓源電路。該電源控制電路選用89C51單片機(jī)控制主電路采用串聯(lián)調(diào)整穩(wěn)壓技術(shù)具有線路簡(jiǎn)單、響應(yīng)迅速、穩(wěn)定性好、效率高等特點(diǎn)。詳細(xì)分析了電源的拓?fù)鋱D及工作原理。關(guān)鍵詞:穩(wěn)壓電源、單片微型機(jī);數(shù)控直流、D/A轉(zhuǎn)換;目錄TOC\o”1—3”\h\z\u第一章緒論1HYPERLINK\l”_Toc260775281"1。1數(shù)控直流穩(wěn)壓電源的產(chǎn)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論