南京信息工程大學(xué)光電計(jì)數(shù)器課程畢業(yè)論文報(bào)告_第1頁
南京信息工程大學(xué)光電計(jì)數(shù)器課程畢業(yè)論文報(bào)告_第2頁
南京信息工程大學(xué)光電計(jì)數(shù)器課程畢業(yè)論文報(bào)告_第3頁
南京信息工程大學(xué)光電計(jì)數(shù)器課程畢業(yè)論文報(bào)告_第4頁
南京信息工程大學(xué)光電計(jì)數(shù)器課程畢業(yè)論文報(bào)告_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

濱江學(xué)院課程報(bào)告題目反射式光電計(jì)數(shù)器設(shè)計(jì)院系濱江學(xué)院專業(yè)電子科學(xué)與技術(shù)學(xué)生姓名***學(xué)號指導(dǎo)教師常建華職稱副教授二0一三年十一月二十一日目錄緒論1.1光電計(jì)數(shù)器原理·······································11.2國內(nèi)外研究現(xiàn)狀·······································21.3本文主要研究內(nèi)容·····································2第二章光電計(jì)數(shù)器設(shè)計(jì)方案論證2.1遮光式光電計(jì)數(shù)器·····································32.2反射式光電計(jì)數(shù)器·····································32.3方案選擇·············································4硬件電路設(shè)計(jì)3.1STC89C52簡介·········································53.2電源電路·············································73.3傳感器部分···········································83.3.1E18-D50NK反射式紅外傳感器······················83.3.2發(fā)射與接收電路··································93.4復(fù)位電路·············································113.5晶振電路·············································123.6顯示電路·············································123.6.1線段的顯示······································133.6.2字符的顯示······································133.6.3漢字的顯示······································133.6.41602字符型LCD簡介·····························133.6.51602LCD的基本參數(shù)及引腳功能·····················143.6.61602LCD主要技術(shù)參數(shù)····························143.6.71602LCD的指令說明及時序·························15反射式光電計(jì)數(shù)器的軟件設(shè)計(jì)4.1顯示程序·············································17第五章系統(tǒng)調(diào)試···········································23參考文獻(xiàn)··················································23致謝······················································24附錄······················································24反射式光電計(jì)數(shù)器設(shè)計(jì)***南京信息工程大學(xué)濱江學(xué)院電子科學(xué)與技術(shù),南京210044摘要:本文基于STC89c52單片機(jī)設(shè)計(jì)了一個結(jié)構(gòu)簡單、性能穩(wěn)定的工業(yè)流水線用反射式光電計(jì)數(shù)器,可實(shí)現(xiàn)產(chǎn)品流水線產(chǎn)品的實(shí)時計(jì)數(shù)功能。該系統(tǒng)采用型號為E18-D50NK的紅外傳感器為信號采集裝置,將光信號轉(zhuǎn)換成電信號。以電磁繼電器、三極管構(gòu)成放大電路,放大后的信號經(jīng)單片機(jī)處理后顯示在數(shù)碼管上。當(dāng)系統(tǒng)出現(xiàn)鎖死情況時可以通過復(fù)位鍵調(diào)整,直至系統(tǒng)正常工作。該系統(tǒng)優(yōu)點(diǎn)是硬件電路簡單,控制系統(tǒng)可靠,具有很強(qiáng)的實(shí)用價值。該系統(tǒng)拓展后,可用于生產(chǎn)流水線的工件計(jì)數(shù),具有很好的應(yīng)用前景。關(guān)鍵詞:STC89c52單片機(jī)E18-D50NK紅外傳感器實(shí)時計(jì)數(shù)緒論1.1光電計(jì)數(shù)器原理光電式傳感器就是基于光電效應(yīng)的理論基礎(chǔ)用于光電信號之間的相互轉(zhuǎn)換的一種傳感器。其中光電效應(yīng)可以分為三類。1.外光電效應(yīng):能使電子在光照射條件下逸出物體表面。光電倍增管,真空光電管等就是利用了外光電效應(yīng)。內(nèi)光電效應(yīng):能使物質(zhì)的電阻率在光線照射條件下改變。半導(dǎo)體光敏電阻這類的器件就是利用了內(nèi)光電效應(yīng)。3.光生伏特效應(yīng):物體在光線作用下產(chǎn)生電動勢的現(xiàn)象即光生電動勢。光電晶體管、光電池等就是利用了光生伏特現(xiàn)象。由于敏感的光波長是在可見光附近,包括紅外波長和紫外波長。因此,當(dāng)光電元件受光照后,電特性就會發(fā)生變化這就是光電效應(yīng)。光電計(jì)數(shù)器通常采用的光電傳感器有攝像頭、光電管等,采用的光的種類有普通光和激光,可見光和不可見光等。組成光電傳感器的三部分為光源、光學(xué)通路和光電元件。光電式傳感器是以光電器件作為轉(zhuǎn)換元件的傳感器,光電檢測方法具有精度高、應(yīng)用快、非接觸等優(yōu)點(diǎn),而可測參數(shù)多,光電傳感器的結(jié)構(gòu)簡單,形式靈活多變因此,光電式傳感器在檢測和控制中應(yīng)用非常廣泛。1.2國內(nèi)外研究現(xiàn)狀光自動化的計(jì)數(shù)提高了工業(yè)生產(chǎn)上的效率以及準(zhǔn)確性計(jì)數(shù)的自動化和智能化最終能加速實(shí)現(xiàn)現(xiàn)代化的工業(yè)。隨著生產(chǎn)自動化、設(shè)備數(shù)字化和機(jī)電一體化的發(fā)展,對光電計(jì)數(shù)器的需求日益增多。提高自動計(jì)數(shù)器的實(shí)時性、穩(wěn)定性是現(xiàn)在國內(nèi)外自動計(jì)數(shù)生產(chǎn)研究的主要課題。產(chǎn)品自動計(jì)數(shù)主要用于工廠的流水線,往往是處于高溫等環(huán)境中所以單片機(jī)的功耗一定要低。恰巧的是,STC89c52單片機(jī)符合這一要求。1.3本文主要研究內(nèi)容本文的研究方向就是基于STC89c52單片機(jī)設(shè)計(jì)出一個簡易但是性能穩(wěn)定且靈敏度高的工業(yè)流水線用反射式光電計(jì)數(shù)器,能夠?qū)崟r的計(jì)數(shù)產(chǎn)品流水線上產(chǎn)品的數(shù)量。該系統(tǒng)采用STC89c52單片機(jī)為處理芯片,對紅外傳感器采集的信號進(jìn)行處理。采用發(fā)射式型號E18-D50NK的紅外傳感器,它能夠靈敏實(shí)時的采集光信號,由于工件的遮擋導(dǎo)致光信號的變化從而導(dǎo)致電信號的變化。借由繼電器實(shí)現(xiàn)小電流控制大電流的功能。用E18-D50NK的紅外傳感器可確保系統(tǒng)的靈敏性、穩(wěn)定性。可以實(shí)現(xiàn)工業(yè)流水線計(jì)數(shù)器實(shí)時計(jì)數(shù)的功能。設(shè)計(jì)光電計(jì)數(shù)器,實(shí)現(xiàn)無接觸計(jì)數(shù),主要用于工廠生產(chǎn)線工件計(jì)數(shù)。采用反射式光電傳感器,要求使用紅外發(fā)光二極管、光電管檢測,要求光電發(fā)射管和接收管相鄰放置,在制作實(shí)物可用導(dǎo)線引出長度,能夠?qū)崿F(xiàn)無接觸計(jì)數(shù),獨(dú)立設(shè)計(jì)光電計(jì)數(shù)器電路原理圖,畫出完整的電路原理圖(包含電源部分)和PCB板圖,查找資料,要求做出實(shí)物,可以使用萬用板或者PCB板制作實(shí)物,獨(dú)立完成。第二章光電計(jì)數(shù)器設(shè)計(jì)方案論證2.1遮光式光電計(jì)數(shù)器遮光式光電計(jì)數(shù)器工作原理:從紅外發(fā)光管和紅外接收器在產(chǎn)品生產(chǎn)流水線的兩邊。紅外發(fā)光管發(fā)射出的紅外光線能夠直射在如光敏電阻和光電管等光電元件上。當(dāng)有產(chǎn)品經(jīng)過遮光式計(jì)數(shù)器的時候紅外光線就會被該產(chǎn)品遮擋(比如瓶裝啤酒)。那么這時候光電元件的電信號必然會因?yàn)榇藭r光信號的改變而改變,從而生成脈沖通過放大器可計(jì)數(shù)記下被遮擋的次數(shù),通過數(shù)字顯示顯示具體的數(shù)量。圖2.1遮光式光電計(jì)數(shù)器2.2反射式光電計(jì)數(shù)器反射式光電計(jì)數(shù)器工作原理:紅外發(fā)光管和紅外接收器在同一邊。當(dāng)產(chǎn)品流水線沒有產(chǎn)品經(jīng)過的時候紅外發(fā)光管發(fā)出的紅外線不會被發(fā)射。反之,當(dāng)有產(chǎn)品經(jīng)過的時候紅外發(fā)光管發(fā)出的紅外線就會被產(chǎn)品反射,反射光并被接收器接收。這時候因?yàn)楣庑盘柕淖兓厝粚?dǎo)致光電元件電信號的變化。從而形成計(jì)數(shù)脈沖,光電隔離耦進(jìn)行合并行輸入至STC89c52單片機(jī)。并用數(shù)碼管顯示具體數(shù)值便可實(shí)現(xiàn)物體的數(shù)量統(tǒng)計(jì)。發(fā)射與接收電路可以用一個集成好的紅外傳感器。集成焊接后的電路顯得簡單明了。圖2.2反射式光電計(jì)數(shù)器圖2.2反射式光電計(jì)數(shù)器方案選擇單片機(jī)STC89c52單片機(jī)STC89c52系統(tǒng)電源電路 計(jì)數(shù)顯示電路計(jì)數(shù)顯示電路發(fā)射接收電路發(fā)射接收電路圖2.3光電計(jì)數(shù)裝置的原理圖2.3光電計(jì)數(shù)裝置的原理在工業(yè)生產(chǎn)中肯定會考慮到設(shè)備成本,設(shè)備所占用的空間以及接線的方便程度。最重要的當(dāng)然是設(shè)備工作的穩(wěn)定性。結(jié)合上文對兩種光電計(jì)數(shù)器的介紹反式光電計(jì)數(shù)器的優(yōu)點(diǎn)不難被發(fā)現(xiàn)。由于發(fā)光管和接收器在同一邊無疑會大大的節(jié)省空間。將發(fā)光管和接收器集成在一起可以帶來接線和操作上的簡便。再者反射式光電計(jì)數(shù)器帶來的良好光路對齊,不受產(chǎn)品顏色和材質(zhì)的影響的特點(diǎn)都會給設(shè)備提供更佳的穩(wěn)定性。因此,在工業(yè)流水線用的光電計(jì)數(shù)器方案選擇上將采用反射式的光電計(jì)數(shù)器。STC89C52簡介3.1芯片簡介STC89C52是STC公司生產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。STC89C52使用經(jīng)典的MCS-51內(nèi)核,但做了很多的改進(jìn)使得芯片具有傳統(tǒng)51單片機(jī)不具備的功能。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,512字節(jié)RAM,32位I/O口線,看門狗定時器,內(nèi)置4KBEEPROM,MAX810復(fù)位電路,3個16位定時器/計(jì)數(shù)器,4個外部中斷,一個7向量4級中斷結(jié)構(gòu)(兼容傳統(tǒng)51的5向量2級中斷結(jié)構(gòu)),全雙工串行口。另外STC89C52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個中斷或硬件復(fù)位為止。最高運(yùn)作頻率35MHz,6T/12T可選。STC89c52共有4個(P0、P1、P2、P3口)8位并行I/O端口,共32個引腳。P0口雙向I/O口,用于分時傳送低8位地址和8位數(shù)據(jù)信號;P1、P2、P3口均為準(zhǔn)雙向I/O口;其中P2口還用于傳送高8位地址信號;P3口每一引腳還具有特殊功能,用于特殊信號的輸入輸出和控制信號。其引腳圖:其中引腳說明為:3.2STC89c52引角功能VCC:供電電壓。GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時,P1口作為第八位地址接收。P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口作為AT89C51的一些特殊功能口,RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機(jī)器周期的高電平時間。ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機(jī)器周期兩次/PSEN有效。在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。/EA/VPP:當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。3.2電源電路本文將直接采用筆記本電腦的USB給電板提供5V的直流電。同時,為了顯示電板是否通電在電板中添加一個電源指示燈,這個電源指示燈將采用發(fā)光二極管。發(fā)光二極管工作在正常工作狀態(tài)時,通過LED的電流10毫安就足矣了。因此,在電路中采用白發(fā)藍(lán)高亮的LED,所以可以取10mA左右的電流值,圖3.2中的R16是為了保護(hù)系統(tǒng)電路的限流電阻。圖3.2電源電路圖3.2電源電路3.3紅外傳感器3.3.1E18-D50NK反射式紅外傳感器光電開關(guān)電路主要由光電開關(guān)管,即光電傳感器是采用光電元件作為檢測元件的傳樣因此,光電式傳感器在檢測和控制中應(yīng)用非常廣泛。如下圖示為本次課程設(shè)計(jì)所采用的光電開關(guān),其型號為E18-D50NK圖3.3下圖為紅外傳感器輸出端的原理圖:圖3.4紅外傳感器信號輸入端紅外傳感器感受到外界信息時,產(chǎn)生高低電平,通過軟件程序設(shè)置單片機(jī)內(nèi)部寄存器,當(dāng)傳感器的高低脈沖被單片機(jī)接收到時,單片機(jī)產(chǎn)生中斷,中斷產(chǎn)生后進(jìn)入中斷服務(wù)程序,通過設(shè)置中斷服務(wù)程序,進(jìn)行計(jì)數(shù)。并通過P22,P23,P24,P25

口將計(jì)數(shù)信息傳送至數(shù)碼管,數(shù)碼管顯示計(jì)數(shù)的個數(shù)。當(dāng)需要置位是按下復(fù)位開關(guān),則計(jì)數(shù)器清零,數(shù)碼管顯示清零,重新開始計(jì)數(shù)。3.3.2發(fā)射與接收電路紅外發(fā)光管和紅外接收器在同一邊。當(dāng)產(chǎn)品流水線沒有產(chǎn)品經(jīng)過的時候紅外發(fā)光管發(fā)出的紅外線不會被發(fā)射。反之,當(dāng)有產(chǎn)品經(jīng)過的時候紅外發(fā)光管發(fā)出的紅外線就會被產(chǎn)品反射,反射光并被接收器接收。這時候因?yàn)楣庑盘柕淖兓厝粚?dǎo)致光電元件電信號的變化。從而形成計(jì)數(shù)脈沖,光電隔離耦進(jìn)行合并行輸入至STC89c52單片機(jī)。并用數(shù)碼管顯示具體數(shù)值便可實(shí)現(xiàn)物體的數(shù)量統(tǒng)計(jì)。發(fā)射與接收電路可以用一個集成好的紅外傳感器。然而,在自然光里面紅外線那是到處都有的,打個很簡單的比方太陽光里面就有紅外,除掉太陽光這個隨處可見的自然光外人工光源里面也是有許多的紅外,比如說火源,白熾燈光等等。既然這樣,在我們的身邊暗藏了如此之多的紅外線,接收裝置除了接收發(fā)射裝置發(fā)射的紅外線外肯定會受到其他光源的干擾。那么如何規(guī)避這個問題理所當(dāng)然的成了要解決的問題。通過查閱相關(guān)的資料可以知道雖然這些都是紅外線,但是同是紅外線它們的波長也是不同的。這時候就可以用調(diào)制解調(diào)來解決這個問題。具體點(diǎn)說就是將紅外線發(fā)射裝置以固定的頻率來發(fā)射紅外線,再讓接收裝置來“認(rèn)出”這些固頂頻率的紅外線。如此一來便可以規(guī)避相關(guān)光源的干擾。因?yàn)槟切┛梢詷?gòu)成干擾光源中的紅外線的頻率要不是雜亂無章要不就是擁有其固定的頻率,將紅外線發(fā)射裝置調(diào)制成迥異與這些干擾光源的頻率就可以規(guī)避這個問題。3.4復(fù)位電路復(fù)位就是給RESET引腳加上2個機(jī)器周期以上的高電平信號來實(shí)現(xiàn)單片機(jī)的初始化操作。除了進(jìn)入系統(tǒng)的正常初始化之外,最實(shí)用的地方就是當(dāng)程序運(yùn)行出錯或是操作失誤使系統(tǒng)處于死鎖狀態(tài),為了擺脫死鎖狀態(tài),需要按復(fù)位鍵重新復(fù)位。單片機(jī)小系統(tǒng)采用上電自動復(fù)位和手動按鍵復(fù)位兩種方式實(shí)現(xiàn)系統(tǒng)的復(fù)位操作。上電復(fù)位要求接通電源后,自動實(shí)現(xiàn)復(fù)位操作。當(dāng)系統(tǒng)得到工作電壓的時候,復(fù)位電路工作在上電自動復(fù)位狀態(tài),通過外部復(fù)位電路的電容充電來實(shí)現(xiàn),只要Vcc的上升時間不超過1ms就可現(xiàn)自動上電復(fù)位功能。手動復(fù)位要求在電源接通的條件下,在單片機(jī)運(yùn)行期間,用按鈕開關(guān)操作使單片機(jī)復(fù)位。其結(jié)構(gòu)如圖

中R15、C3和S1。上電自動復(fù)位通過電容C1充電來實(shí)現(xiàn)。手動按鍵復(fù)位是通過按鍵將R15與VCC接通來實(shí)現(xiàn)。本設(shè)計(jì)將采用按鍵的手動復(fù)位方式。如圖示兩種復(fù)位方式:圖3.8復(fù)位電路(a)手動復(fù)位(b)自動復(fù)位3.5晶振電路單片機(jī)內(nèi)部具有一個高增益反相放大器,用于構(gòu)成振蕩器。通常在引腳XTAK1和XTAL2跨接石英晶體和兩個補(bǔ)償電容構(gòu)成自激振蕩器,結(jié)構(gòu)如圖中Y1、C1、C2。可以根據(jù)情況選擇6MHz或24MHz等頻率的石英晶體,補(bǔ)償電容通常選擇30pF左右的瓷片電容。晶振電路可以為單片機(jī)提供單片機(jī)工作用的時鐘頻率。晶振電路在單片機(jī)系統(tǒng)中顯得至關(guān)重要,它為單片機(jī)工作提供固頂?shù)墓ぷ黝l率。就像馬路口的紅綠燈一樣,紅綠燈為車輛提供通行的時間,紅綠燈停止之后馬路將亂糟糟的。一樣的,假如沒有了晶振電路單片機(jī)將不能正常的有節(jié)奏的工作。除此之外,晶振的頻率對單片機(jī)工作的快慢有著直接的影響。一個穩(wěn)定的晶振電路可以為單片機(jī)提供可靠的工作頻率,單片機(jī)運(yùn)行將更為穩(wěn)定。如圖3.7所示,本文中采用內(nèi)部時鐘方式電路。其中補(bǔ)償電容通常選擇30pF左右的瓷片。圖中電容C1,C2的大小將會影響到晶振的穩(wěn)定和速度,C1,C2都將采用22Pf的電容。選擇6MHz或24MHz等頻率的石英晶體,電容來產(chǎn)生時鐘脈沖。如此來提供穩(wěn)定的時鐘頻率。圖3.9晶振電路3.6顯示部分液晶顯示器各種圖形的顯示原理:3.6.1線段的顯示點(diǎn)陣圖形式液晶由M×N個顯示單元組成,假設(shè)LCD顯示屏有64行,每行有128列,每8列對應(yīng)1字節(jié)的8位,即每行由16字節(jié),共16×8=128個點(diǎn)組成,屏上64×16個顯示單元與顯示RAM區(qū)1024字節(jié)相對應(yīng),每一字節(jié)的內(nèi)容和顯示屏上相應(yīng)位置的亮暗對應(yīng)。例如屏的第一行的亮暗由RAM區(qū)的000H——00FH的16字節(jié)的內(nèi)容決定,當(dāng)(000H)=FFH時,則屏幕的左上角顯示一條短亮線,長度為8個點(diǎn);當(dāng)(3FFH)=FFH時,則屏幕的右下角顯示一條短亮線;當(dāng)(000H)=FFH,(001H)=00H,(002H)=00H,……(00EH)=00H,(00FH)=00H時,則在屏幕的頂部顯示一條由8段亮線和8條暗線組成的虛線。這就是LCD顯示的基本原理。3.6.2字符的顯示用LCD顯示一個字符時比較復(fù)雜,因?yàn)橐粋€字符由6×8或8×8點(diǎn)陣組成,既要找到和顯示屏幕上某幾個位置對應(yīng)的顯示RAM區(qū)的8字節(jié),還要使每字節(jié)的不同位為“1”,其它的為“0”,為“1”的點(diǎn)亮,為“0”的不亮。這樣一來就組成某個字符。但由于內(nèi)帶字符發(fā)生器的控制器來說,顯示字符就比較簡單了,可以讓控制器工作在文本方式,根據(jù)在LCD上開始顯示的行列號及每行的列數(shù)找出顯示RAM對應(yīng)的地址,設(shè)立光標(biāo),在此送上該字符對應(yīng)的代碼即可。3.6.3漢字的顯示漢字的顯示一般采用圖形的方式,事先從微機(jī)中提取要顯示的漢字的點(diǎn)陣碼(一般用字模提取軟件),每個漢字占32B,分左右兩半,各占16B,左邊為1、3、5……右邊為2、4、6……根據(jù)在LCD上開始顯示的行列號及每行的列數(shù)可找出顯示RAM對應(yīng)的地址,設(shè)立光標(biāo),送上要顯示的漢字的第一字節(jié),光標(biāo)位置加1,送第二個字節(jié),換行按列對齊,送第三個字節(jié)……直到32B顯示完就可以LCD上得到一個完整漢字。3.6.41602字符型LCD簡介字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號等點(diǎn)陣式LCD,目前常用16*1,16*2,20*2和40*2行等的模塊。下面以長沙太陽人電子有限公司的1602字符型液晶顯示器為例,介紹其用法。一般1602字符型液晶顯示器實(shí)物如圖:3.6.51602LCD的基本參數(shù)及引腳功能1602LCD分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無差別,兩者尺寸差別如下圖10-54所示:圖10-541602LCD尺寸圖3.6.61602LCD主要技術(shù)參數(shù):顯示容量:16×2個字符芯片工作電壓:4.5—5.5V工作電流:2.0mA(5.0V)模塊最佳工作電壓:5.0V字符尺寸:2.95×4.35(W×H)mm引腳功能說明1602LCD采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表10-13所示:編號符號引腳說明編號符號引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極表10-13:引腳接口說明表第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第5腳:R/W為讀寫信號線,高電平時進(jìn)行讀操作,低電平時進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時可以讀忙信號,當(dāng)RS為高電平R/W為低電平時可以寫入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負(fù)極。3.6.71602LCD的指令說明及時序1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表10-14所示:序號指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標(biāo)返回000000001*3置輸入模式00000001I/DS4顯示開/關(guān)控制0000001DCB5光標(biāo)或字符移位000001S/CR/L**6置功能00001DLNF**7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標(biāo)志或地址01BF計(jì)數(shù)器地址10寫數(shù)到CGRAM或DDRAM)10要寫的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容表10-14:控制命令表1602液晶模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實(shí)現(xiàn)的。(說明:1為高電平、0為低電平)指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。指令3:光標(biāo)和顯示模式設(shè)置I/D:光標(biāo)移動方向,高電平右移,低電平左移S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。指令4:顯示開關(guān)控制。D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo)B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標(biāo)或顯示移位S/C:高電平時移動顯示的文字,低電平時移動光標(biāo)。指令6:功能設(shè)置命令DL:高電平時為4位總線,低電平時為8位總線N:低電平時為單行顯示,高電平時雙行顯示F:低電平時顯示5x7的點(diǎn)陣字符,高電平時顯示5x10的點(diǎn)陣字符。指令7:字符發(fā)生器RAM地址設(shè)置。指令8:DDRAM地址設(shè)置。指令9:讀忙信號和光標(biāo)地址BF:為忙標(biāo)志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫數(shù)據(jù)。指令11:讀數(shù)據(jù)。與HD44780相兼容的芯片時序表如下:讀狀態(tài)輸入RS=L,R/W=H,E=H輸出D0—D7=狀態(tài)字寫指令輸入RS=L,R/W=L,D0—D7=指令碼,E=高脈沖輸出無讀數(shù)據(jù)輸入RS=H,R/W=H,E=H輸出D0—D7=數(shù)據(jù)寫數(shù)據(jù)輸入RS=H,R/W=L,D0—D7=數(shù)據(jù),E=高脈沖輸出無表10-15:基本操作時序表讀寫操作時序如圖10-55和10-56所示:圖10-55讀操作時序圖10-56寫操作時序反射式光電計(jì)數(shù)器的軟件設(shè)計(jì)程序:#include"reg51.h"#include"delay.c"#include"1602.c"/******************數(shù)據(jù)定義****************************/unsignedcharcodedata1[]={"Initializing"};unsignedcharcodedata2[]={"Welcome"};unsignedcharcodedata3[]={"number:"};unsignedlongi=0;/***************************引腳定義******************************/sbitclear=P3^6;//清零sbitled=P3^3;//檢測到產(chǎn)品時LED亮sbitlight=P2^1;//反射式光電管信號/******************主函數(shù)開始*******************************/ voidmain(void){LCDInit(); DelayNms(50);DisplayListChar(5,0,data1); DelayNms(2000); DisplayListChar(0,1,data2); DelayNms(20);DisplayListChar(0,0,data3); i=0; Displaynumnumer(7,0,i); while(1) { if(light==1) { DelayNms(10); if(light==0) { i++; Displaynumnumer(7,0,i); while(light==0) { led=1;} } } led=0; if(clear==0) { DelayNms(10); if(clear==0) { i=0; Displaynumnumer(7,0,i); }}}}#include"reg51.h"/********************************************引腳定義****************************************************/sbitLCD_RS=P2^7;//定義引腳sbitLCD_RW=P2^6;sbitLCD_E=P2^5;/********宏定義******************************************************************************************/#defineLCD_DataP0#defineBusy0x80//用于檢測LCD狀態(tài)字中的Busy標(biāo)識unsignedcharcodedigit[]={"0123456789"};//定義字符數(shù)組顯示數(shù)字/***********讀狀態(tài)***************************************************************************************/ unsignedcharReadStatusLCD(void){ LCD_Data=0xFF; LCD_RS=0; LCD_RW=1; LCD_E=0; LCD_E=0; LCD_E=1; while(LCD_Data&Busy);//檢測忙信號 return(LCD_Data);}/***********寫數(shù)據(jù)***************************************************************************************/ voidWriteDataLCD(unsignedcharWDLCD){ ReadStatusLCD();//檢測忙 LCD_Data=WDLCD; LCD_RS=1; LCD_RW=0; LCD_E=0; //若晶振速度太高可以在這后加小的延時 LCD_E=0;//延時 LCD_E=1;}/***********寫指令**********************************************/ voidWriteCommandLCD(unsignedcharWCLCD,BuysC)//BuysC為0時忽略忙檢測{ if(BuysC)ReadStatusLCD();//根據(jù)需要檢測忙 LCD_Data=WCLCD; LCD_RS=0; LCD_RW=0; LCD_E=0; LCD_E=0; LCD_E=1;}/**********讀數(shù)據(jù)**************************************************/ unsignedcharReadDataLCD(void){ LCD_RS=1; LCD_RW=1; LCD_E=0; LCD_E=0; LCD_E=1; return(LCD_Data);}/**************初始化**************************************************/ voidLCDInit(void){ LCD_Data=0; WriteCommandLCD(0x38,0); //三次模式設(shè)置,不檢測忙信號 DelayNms(5); WriteCommandLCD(0x38,0); DelayNms(5); WriteCommandLCD(0x38,0); DelayNms(5); WriteCommandLCD(0x38,1); //顯示模式設(shè)置,開始要求每次檢測忙信號 WriteCommandLCD(0x08,1);//關(guān)閉顯示 WriteCommandLCD(0x01,1); //顯示清屏 WriteCommandLCD(0x06,1); //顯示光標(biāo)移動設(shè)置 WriteCommandLCD(0x0C,1); //顯示開及光標(biāo)設(shè)置}/*****按指定位置顯示一個字符***************************/ voidDisplayOneChar(unsignedcharX,unsignedcharY,unsignedcharDData){ Y&=0x1; X&=0xF; //限制X不能大于15,Y不能大于1 if(Y)X|=0x40; //當(dāng)要顯示第二行時地址碼+0x40; X|=0x80; //算出指令碼 WriteCommandLCD(X,0);//這里不檢測忙信號,發(fā)送地址碼 WriteDataLCD(DData);}/********按指定位置顯示一串字符***************************/ voidDisplayListChar(unsignedcharX,unsignedcharY,unsignedcharcode*DData){ unsignedcharListLength; ListLength=0; Y&=0x1; X&=0xF; //限制X不能大于15,Y不能大于1 while(DData[ListLength]>=0x20)//若到達(dá)字串尾則退出 { if(X<=0xF)//X坐標(biāo)應(yīng)小于0xF { DisplayOneChar(X,Y,DData[ListLength]);//顯示單個字符 ListLength++; X++; } }}voidDisplaynumnumer(unsignedcharX,unsignedcharY,unsignedlongnum){unsignedcharD1,D2,D3,D4,D5,D6,D7,D8,D9;//分別儲存采集的個位、十位、百位、千位和萬位數(shù)字D1=num%10;//計(jì)算個位數(shù)字D2=(num%100)/10;//計(jì)算十位數(shù)字D3=(num%1000)/100;//計(jì)算百位數(shù)字 D4=(num%10000)/1000;//計(jì)算千位數(shù)字 D5=(num%100000)/10000;//計(jì)算萬位數(shù)字 D6=(num%1000000)/100000; D7=(num%10000000)/1000000; D8=(num%100000000)/10000000; D9=num/10000000; Y&=0x1; X&=0xF; //限制X不能大于15,Y不能大于1if(X<=0xF)//X坐標(biāo)應(yīng)小于0xF { DisplayOneChar(X,Y,digit[D9]);//顯示單個字符 X++; DisplayOneChar(X,Y,digit[D8]);//顯示單個字符 X++; DisplayOneChar(X,Y,digit[D7]);//顯示單個字符 X++; DisplayOneChar(X,Y,digit[D6]);//顯示單個字符 X++; DisplayOneChar(X,Y,digit[D5]);//顯示單個字符 X++; DisplayOneChar(X,Y,digit[D4]);//顯示單個字符 X++; DisplayOneChar(X,Y,digit[D3]);//顯示單個字符 X++; DisplayOneChar(X,Y,digit[D2]);//顯示單個字符 X++; DisplayOneChar(X,Y,digit[D1]);//顯示單個字符 X++; }}#include"reg51.h"/**************延時Nms*************************/ voidDelayNms(unsignedintz){unsignedinti,j; for(i=0;i<z;i++){for(j=0;j<110;j++);}}系統(tǒng)調(diào)試當(dāng)電路板焊接完成之后,自己迫不及待地按下了電源開關(guān)。但是卻發(fā)現(xiàn)電源指示燈,數(shù)碼管,計(jì)數(shù)開始指示燈沒有一個亮的。一開始慌神了,但是稍微想想問題肯定是出在電源有斷路。因?yàn)槿龢O管自己在安置的時候是特別注意了的不會存在引腳插反的現(xiàn)象。于是借來了萬用表打開萬用表調(diào)到蜂鳴檔按照PCB圖從VCC往里查斷路的斷點(diǎn)。當(dāng)有斷路的時候萬用表會發(fā)出蜂鳴。按照PCB圖從VCC開始查,結(jié)果發(fā)現(xiàn)了許多斷點(diǎn)。因?yàn)槲沂怯玫挠∷?,由于這個印刷板本身的質(zhì)量問題,有三個細(xì)微的斷點(diǎn)用肉眼根本不易發(fā)現(xiàn)。而且在焊接的過程中也遇到了幾個問題:①P2口到電源指示燈這條線的拐角出有一個斷點(diǎn):在用萬用表的蜂鳴檔正負(fù)極筆放在P2和電源指示燈引腳時萬用表發(fā)出蜂鳴聲提醒有斷路的存在。②在數(shù)碼管一個引腳到三極管之間有虛焊:萬用表測出三極管到數(shù)碼管之間不存在壓降,打開蜂鳴檔有蜂鳴報(bào)警。③單向?qū)щ姷碾娫窗l(fā)光二極管竟然插反了。結(jié)果一邊找斷點(diǎn)一邊用錫絲重新焊接,將虛焊的地方重新焊實(shí),二極管重新插好。實(shí)驗(yàn)原理圖致謝本實(shí)驗(yàn)過程中得到常建華老師的悉心指導(dǎo),幫助我解決有關(guān)問題。在本次課程實(shí)驗(yàn)中,我擔(dān)任光電計(jì)數(shù)器的部分電路的設(shè)計(jì)與焊接任務(wù),同時感謝徐澤榮同學(xué)對我在焊接方面的幫助,幫助我在焊接部分完成難焊接電路部分的焊接任務(wù),感謝徐正中和楊宏昌同學(xué)在我和徐澤榮同學(xué)焊接完后,完成光電計(jì)數(shù)器的調(diào)試任務(wù),最終使該光電計(jì)數(shù)器成功按照設(shè)計(jì)要求運(yùn)行。附錄實(shí)物圖基于C8051F單片機(jī)直流電動機(jī)反饋控制系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的嵌入式Web服務(wù)器的研究MOTOROLA單片機(jī)MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機(jī)溫度控制系統(tǒng)的研制基于MCS-51系列單片機(jī)的通用控制模塊的研究基于單片機(jī)實(shí)現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機(jī)控制的二級倒立擺系統(tǒng)的研究基于增強(qiáng)型51系列單片機(jī)的TCP/IP協(xié)議棧的實(shí)現(xiàn)基于單片機(jī)的蓄電池自動監(jiān)測系統(tǒng)基于32位嵌入式單片機(jī)系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機(jī)的作物營養(yǎng)診斷專家系統(tǒng)的研究基于單片機(jī)的交流伺服電機(jī)運(yùn)動控制系統(tǒng)研究與開發(fā)基于單片機(jī)的泵管內(nèi)壁硬度測試儀的研制基于單片機(jī)的自動找平控制系統(tǒng)研究基于C8051F040單片機(jī)的嵌入式系統(tǒng)開發(fā)基于單片機(jī)的液壓動力系統(tǒng)狀態(tài)監(jiān)測儀開發(fā)模糊Smith智能控制方法的研究及其單片機(jī)實(shí)現(xiàn)一種基于單片機(jī)的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機(jī)的在線間歇式濁度儀的研制基于單片機(jī)的噴油泵試驗(yàn)臺控制器的研制基于單片機(jī)的軟起動器的研究和設(shè)計(jì)基于單片機(jī)控制的高速快走絲電火花線切割機(jī)床短循環(huán)走絲方式研究基于單片機(jī)的機(jī)電產(chǎn)品控制系統(tǒng)開發(fā)基于PIC單片機(jī)的智能手機(jī)充電器基于單片機(jī)的實(shí)時內(nèi)核設(shè)計(jì)及其應(yīng)用研究基于單片機(jī)的遠(yuǎn)程抄表系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的煙氣二氧化硫濃度檢測儀的研制基于微型光譜儀的單片機(jī)系統(tǒng)單片機(jī)系統(tǒng)軟件構(gòu)件開發(fā)的技術(shù)研究基于單片機(jī)的液體點(diǎn)滴速度自動檢測儀的研制基于單片機(jī)系統(tǒng)的多功能溫度測量儀的研制基于PIC單片機(jī)的電能采集終端的設(shè)計(jì)和應(yīng)用基于單片機(jī)的光纖光柵解調(diào)儀的研制氣壓式線性摩擦焊機(jī)單片機(jī)控制系統(tǒng)的研制基于單片機(jī)的數(shù)字磁通門傳感器基于單片機(jī)的旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器的研究基于單片機(jī)的光纖Bragg光柵解調(diào)系統(tǒng)的研究單片機(jī)控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機(jī)的多生理信號檢測儀基于單片機(jī)的電機(jī)運(yùn)動控制系統(tǒng)設(shè)計(jì)Pico專用單片機(jī)核的可測性設(shè)計(jì)研究基于MCS-51單片機(jī)的熱量計(jì)基于雙單片機(jī)的智能遙測微型氣象站MCS-51單片機(jī)構(gòu)建機(jī)器人的實(shí)踐研究基于單片機(jī)的輪軌力檢測基于單片機(jī)的GPS定位儀的研究與實(shí)現(xiàn)基于單片機(jī)的電液伺服控制系統(tǒng)用于單片機(jī)系統(tǒng)的MMC卡文件系統(tǒng)研制基于單片機(jī)的時控和計(jì)數(shù)系統(tǒng)性能優(yōu)化的研究基于單片機(jī)和CPLD的粗光柵位移測量系統(tǒng)研究單片機(jī)控制的后備式方波UPS提升高職學(xué)生單片機(jī)應(yīng)用能力的探究基于單片機(jī)控制的自動低頻減載裝置研究基于單片機(jī)控制的水下焊接電源的研究基于單片機(jī)的多通道數(shù)據(jù)采集系統(tǒng)基于uPSD3234單片機(jī)的氚表面污染測量儀的研制基于單片機(jī)的紅外測油儀的研究96系列單片機(jī)仿真器研究與設(shè)計(jì)基于單片機(jī)的單晶金剛石刀具刃磨設(shè)備的數(shù)控改造基于單片機(jī)的溫度智能控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)基于MSP430單片機(jī)的電梯門機(jī)控制器的研制基于單片機(jī)的氣體測漏儀的研究基于三菱M16C/6N系列單片機(jī)的CAN/USB協(xié)議轉(zhuǎn)換器基于單片機(jī)和DSP的變壓器油色譜在線監(jiān)測技術(shù)研究基于單片機(jī)的膛壁溫度報(bào)警系統(tǒng)設(shè)計(jì)基于AVR單片機(jī)的低壓無功補(bǔ)償控制器的設(shè)計(jì)基于單片機(jī)船舶電力推進(jìn)電機(jī)監(jiān)測系統(tǒng)基于單片機(jī)網(wǎng)絡(luò)的振動信號的采集系統(tǒng)基于單片機(jī)的大容量數(shù)據(jù)存儲技術(shù)的應(yīng)用研究基于單片機(jī)的疊圖機(jī)研究與教學(xué)方法實(shí)踐基于單片機(jī)嵌入式Web服務(wù)器技術(shù)的研究及實(shí)現(xiàn)基于AT89S52單片機(jī)的通用數(shù)據(jù)采集系統(tǒng)基于單片機(jī)的多道脈沖幅度分析儀研究機(jī)器人旋轉(zhuǎn)電弧傳感角焊縫跟蹤單片機(jī)控制系統(tǒng)基于單片機(jī)的控制系統(tǒng)在PLC虛擬教學(xué)實(shí)驗(yàn)中的應(yīng)用研究基于單片機(jī)系統(tǒng)的網(wǎng)絡(luò)通信研究與應(yīng)用基于PIC16F877單片機(jī)的莫爾斯碼自動譯碼系統(tǒng)設(shè)計(jì)與研究基于單片機(jī)的模糊控制器在工業(yè)電阻爐上的應(yīng)用研究基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究與開發(fā)基于Cygnal單片機(jī)的μC/OS-Ⅱ的研究基于單片機(jī)的一體化智

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論