已閱讀5頁,還剩69頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
基于at89c51單片機數碼時鐘電路的設計2012屆 分類號:tm711 單位代碼:10452本科專業(yè)職業(yè)生涯設計基于at89c51數碼時鐘電路的設計姓 名 學 號 年 級 2008級 專 業(yè) 電氣工程及其自動化 系(院) 指導教師 2011年 12 月 20 日誠 信 聲 明本人呈交給臨沂師范學院的這篇畢業(yè)論文,除了所注參考文獻和世所公認的文獻外,全部是本人在指導老師指導下的設計成果。 學生簽名:日 期:經檢查該畢業(yè)設計(論文)為獨立完成,不存在抄襲現象。 指導老師簽名:日 期:摘 要本文通過對一個基于單片機的能實現定時,秒表,鬧鐘等功能的多功能電子時鐘的設計學習,詳細介紹了單片機應用中的數據轉換顯示,液晶顯示原理,鍵盤掃描原理。從而達到學習、了解單片機相關指令在各方面的應用。系統由at89c51、溫度檢測芯片、時鐘芯片ds1302、液晶顯示器lcd1602等部分構成,能實現時鐘日歷顯示的功能,能進行時、分、秒的顯示和實時溫度顯示。也具有時鐘、日歷的校準,定時時間的設定和鬧鈴等功能。文章后附有電路原理圖、pcb板圖和程序清單,以供讀者參考。因水平有限,難免有疏落不足之處,敬請老師和同學能給與批評指正。關鍵字:at89c51;ds1302;lcd1602;時鐘abstractbased on a microcontroller based on the will to achieve timing, stopwatch, alarm clocks, and other functions of a multi-functional electronic clock design study, in detail, the computer application of data conversion, principle lcd, keyboard scanning principle. thereby achieve studying and understanding the relevant directives scm in all aspects of the application. by at89c51 system, temperature detection chip, the clock chipsds1302, liquid crystal displays of componentslcd1602, to achieve clock calendar display function can be carried out, hours seconds of the show and real-time temperature display. also calculated with the calendar and clock, calendar calibration, regular hours and set the alarm function. the article attached circuit diagram, the pcb plans and procedures checklist for the reference of our readers. due to limited, and it will inevitably be lighter inadequate, locations will give teachers and students correction and criticism. key words: at89c51;ds1302; lcd1602; alarm clocks 目 錄前 言1第1章 總體方案介紹21.1系統設計思想21.2系統框架圖2第2章 硬件仿真電路設計32.1 proteus32.1.1 proteus簡介32.2 at89c51的電路設計32.2.1 at89c51簡介32.2.2 at89c51的時鐘電路設計62.2.3 at89c51的復位電路設計62.3 at89c51液晶顯示模塊的連接82.3.1液晶顯示器lcd1602簡介82.3.2 at89c51與lcd1602的連接122.4 at89c51與時鐘芯片的連接122.4.1時鐘芯片ds1302簡介122.4.2 at89c51與時鐘芯片ds1302的連接142.5 at89c51與溫度芯片的連接152.5.1溫度芯片ds18b20簡介152.5.2at89c51與溫度芯片ds18b20的連接162.6 at89c51與鍵盤的連接16第3章 系統軟件設計183.1程序設計183.1.1主程序模塊設計183.1.2液晶顯示器lcd1602模塊193.1.3時鐘芯片ds1302操作模塊203.1.4溫度芯片ds18b20操作模塊223.1.5鍵盤操作模塊23第4章 硬件實現254.1 protel的硬件電路設計254.1.1 原理圖設計254.1.2 報表生成254.1.3 創(chuàng)建pcb文件26第5章 結 論28附 錄29參考文獻66謝 辭67基于at89c51單片機數碼時鐘電路的設計前 言單片機因將其主要組成部分集成在一個芯片上而得名,就是把中央處理器、隨機存儲器、只讀存儲器、中斷系統、定時器/計數器以及i/o接口電路等部件集成在一個芯片上。 單片機自20世紀70年代問世以來,以其極高的性能價格比,受到人們的重視和關注,應用很廣、發(fā)展很快。單片機具有體積小、功能多、價格低廉、使用方便、系統設計靈活等優(yōu)點。因此,它應用廣泛前景美好,它的實用性大大地提高了我對畢業(yè)設計的興趣。本次設計的多功能數字時鐘,以at89c51芯片為核心,輔以必要的電路,通過液晶顯示器能夠準確顯示數字時鐘。它也是現代社會應用廣泛的計時工具,在航天、電子等科研單位,工廠、醫(yī)院、學校等企事業(yè)單位,各種體育賽事及至我們每個人的日常生活中都發(fā)揮著重要的作用。該系統同時具有硬件設計簡單、工作穩(wěn)定性高、價格低廉等優(yōu)點。第1章 總體方案介紹整個電子時鐘系統電路可分為五大部分:中央處理單元(cpu)、電源電路部分、顯示部分、鍵盤輸入部分、溫度采集部分。1.1系統設計思想本系統由控制時鐘芯片ds1302、溫度芯片ds18b20、at89c51單片機和字符點陣型lcd1602液晶顯示器等器件構成。用ds1302產生時鐘信號,用溫度芯片ds18b20產生溫度信號,再由單片機負責接收并且對其進行控制,然后通過編寫程序實現具體的功能,如年、月、日、星期、時、分、秒及溫度的顯示,以及時間的校準、鬧鐘的設置等。再通過編寫液晶器件的驅動程序,使其信息顯示在lcd1602液晶顯示器上。最后,將設計的硬件電路在proteus 仿真軟件中進行仿真。1.2系統框架圖ds1302時鐘芯片ds18b20溫度芯片at89c51單片機lcd1602液晶顯示器根據上述的系統設計總思想設計出如下總體框架圖(圖2-1):圖1-1系統總體框架圖第2章 硬件仿真電路設計在前面的章節(jié)給出了系統設計的粗略輪廓,在本章節(jié)中,將畫出詳細的電路仿真原理圖,并按照要求仔細地在proteus中完成硬件的仿真電路??傮w上來說,本系統主要由顯示電路, 功能控制電路、傳感器電路三部分組成。吸收了硬件軟件化的思想,大部分功能通過軟件來實現,使電路簡單明了,系統穩(wěn)定性大大提高。本系統不僅成功的實現了電子時鐘的基本功能,而且還可以通過對程序的改變來實現其它方面的開發(fā)及學習。2.1 proteus2.1.1 proteus簡介proteus isis是英國labcenter公司開發(fā)的電路分析與實物仿真軟件。它運行于windows操作系統上,可以仿真、分析(spice)各種模擬器件和集成電路,該軟件的特點是:(1)實現了單片機仿真和spice電路仿真相結合。具有模擬電路仿真、數字電路仿真、單片機及其外圍電路組成的系統的仿真、rs232動態(tài)仿真、i2c調試器、spi調試器、鍵盤和lcd系統仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。(2)支持主流單片機系統的仿真。目前支持的單片機類型有:68000系列、8051系列、avr系列、pic12系列、pic16系列、pic18系列、z80系列、hc11系列以及各種外圍芯片。(3)提供軟件調試功能。在硬件仿真系統中具有全速、單步、設置斷點等調試功能,同時可以觀察各個變量、寄存器等的當前狀態(tài),因此在該軟件仿真系統中,也必須具有這些功能;同時支持第三方的軟件編譯和調試環(huán)境,如keil c51 uvision3等軟件。(4)具有強大的原理圖繪制功能??傊?,該軟件是一款集單片機和spice分析于一身的仿真軟件,功能極其強大。2.2 at89c51的電路設計2.2.1 at89c51簡介at89c51是一種帶4k字節(jié)閃爍可編程可擦除只讀存儲器(fperomflash programmable and erasable read only memory)的低電壓,高性能cmos8位微處理器,俗稱單片機。at89c2051是一種帶2k字節(jié)閃爍可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用atmel高密度非易失存儲器制造技術制造,與工業(yè)標準的mcs51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲器組合在單個芯片中,atmel的at89c51是一種高效微控制器,at89c2051是它的一種精簡版本。at89c51單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。外形及引腳排列如圖2-4所示:圖2-4 at89c51 管腳說明:vcc供電電壓。gnd接地。p0口8位漏級開路雙向i/o口,每腳可吸收8ttl門電流。當p1口的管腳第一次寫1時,被定義為高阻輸入。p0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在fiash編程時,p0 口作為原碼輸入口,當fiash進行校驗時,p0輸出原碼,此時p0外部必須被拉高。p1口帶內部上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內部上拉為高,可用作輸入,p1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在flash編程和校驗時,p1口作為第八位地址接收。 p2口帶內部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個ttl門電流,當p2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,p2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。p2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,p2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優(yōu)勢,當對外部八位地址數據存儲器進行讀寫時,p2口輸出其特殊功能寄存器的內容。p2口在flash編程和校驗時接收高八位地址信號和控制信號。p3口帶內部上拉電阻的雙向i/o口,可接收輸出4個ttl門電流。當p3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。在編程/校驗時,p3口可接收某些控制信號。具體的p3口功能,如表2-1所示。表2-1 p3口的特殊功能引腳 替代功能 說明p3.0 rxd 串行數據接收p3.1 txd 串行數據發(fā)送p3.2 int0 外部中斷0申請p3.3 int1 外部中斷1申請 p3.4 t0 定時器0外部事件計數輸入 p3.5 t1 定時器1外部事件計數輸入 p3.6 wr 外部ram寫選通 p3.7 rd 外部ram讀選通rst復位輸入。當振蕩器復位器件時,要保持rst腳兩個機器周期的高電平時間。ale/prog當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時, ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。/psen外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/psen有效。但在訪問外部數據存儲器時,這兩次有效的/psen信號將不出現。/ea/vpp當/ea保持低電平時,則在此期間外部程序存儲器(0000hffffh),不管是否有內部程序存儲器。注意加密方式1時,/ea將內部鎖定為reset;當/ea端保持高電平時,此間內部程序存儲器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。xtal1反向振蕩放大器的輸入及內部時鐘工作電路的輸入。xtal2來自反向振蕩器的輸出。2.2.2 at89c51的時鐘電路設計時鐘電路是產生cpu校準時序,是單片機的控制核心。at89c51的時鐘信號可通過內部振蕩方式和外部振蕩方式兩種方式得到。本次設計使用的是片內振蕩方式,通過外接12mhz的晶振來實現時鐘電路的時序控制。在使用片內振蕩器時,xtal1和xtal2分別為反向放大器的輸入端和輸出端。外接晶體以及電容c1和c2構成并聯諧振電路,接在放大器的反饋回路中。當使用外部時鐘驅動時,xtal2引腳應懸空,而由xtal1引腳上的信號驅動,或者xtal1引腳應懸空,而由xtal2引腳上的信號驅動。外部振蕩器再通過一個2分頻的觸發(fā)器來形成內部時鐘所需要的信號。在電容器c1、c2選擇時方面,一般選擇其值為530pf。本系統中所用的電容值為22pf,具體的電路接法如圖2-5所示。圖2-5 晶振電路圖2.2.3 at89c51的復位電路設計根據應用的要求,復位操作通常由上電復位和開關復位2種基本形式。本系統使用的復位電路是在基本復位電路的基礎上所改進的一種混合方法,使其兩種形式巧妙地糅合在一起,即做到了上電復位,又可以在發(fā)生預料之外的問題時,隨時進行開關復位單片機。具體的電路連接接法如圖2-6所示。圖2-6復位電路單片機復位后的狀態(tài):單片機的復位操作使單片機進入初始化過程,其中包括使程序計數器pc0000h,p0p3ffh,sp07h,其他寄存器處于零。這表明程序從0000h地址單元開始執(zhí)行。單片機復位后不改變片內ram區(qū)中的內容,21個特殊功能寄存器復位后的狀態(tài)如表2-2所示。表2-2 8051單片機復位后特殊功能寄存器的初始狀態(tài)1特殊功能寄存器初始狀態(tài)特殊功能寄存器初始狀態(tài)a 00h tmod 00h b 00h tcon 00h 表2-2續(xù) 8051單片機復位后特殊功能寄存器的初始狀態(tài)1特殊功能寄存器初始狀態(tài)特殊功能寄存器初始狀態(tài)psw 00h th0 00h sp 07h tl0 00h dpl 00h th1 00h dph 00h tl1 00h p0p3 ffh sbuf 不定 ip *00000b scon 00h ie 0*00000b pcon 0*b 注:表中的符號*為隨機狀態(tài)需要指出的是,記住一些特殊功能寄存器復位后的狀態(tài),對于熟悉單片機操作,減短應用程序中的初始化部分是十分必要的。2.3 at89c51液晶顯示模塊的連接2.3.1液晶顯示器lcd1602簡介液晶顯示器以其微功耗、體積小、顯示內容豐富、超薄輕巧的諸多優(yōu)點,在袖珍式儀表和低功耗應用系統中得到越來越廣泛的應用。本系統使用是是lcd1602液晶顯示器,它可以顯示兩行,每行16個字符,采用單+5v電源電,外圍電路配置簡單,價格便宜,具有很高的性價比。lcd1602外觀如圖2-7所示。圖2-7 lcd1602外觀lcd1602采用標準的14腳接口,其中vss為地電源,vdd接5v正電源,vee為液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產生“鬼影”,使用時可以通過一個10k的電位器調整對比度。rs為寄存器選擇,高電平時選擇數據寄存器、低電平時選擇指令寄存器。rw為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當rs和rw共同為低電平時可以寫入指令或者顯示地址,當rs為低電平rw為高電平時可以讀忙信號,當rs為高電平rw為低電平時可以寫入數據。e端為使能端,當e端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。d0d7為8位雙向數據線。lcd1602液晶模塊內部的控制器共有11條控制指令,具體的命令見表2-3所示。表2-3 lcd1602控制指令指 令rsr/wd7d6d5d4d3d2d1d01清屏00000000012光標復位000000001*3光標和顯示模式設置00000001i/ds4顯示開關控制0000001dcb5光標或字符移位000001s/cr/l*6置功能00001dlnf*7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址(agg)8置數據存貯器地址001顯示數據存貯器地址(add)9讀忙標志或地址01bf計數器地址(ac)10寫入cgram/ddram10要寫的數11讀cgram/ ddram數11讀出的數據1602液晶模塊的讀寫操作、屏幕和光標的操作都是通過指令編程來實現的。(1)清屏指令功能:1) 清除液晶顯示器,即將ddram的內容全部填入“空白”的ascii碼20h;2)光標歸位,即將光標撤回液晶顯示屏的左上方;3) 將地址計數器(ac)的值設為0;2. 光標復位指令 功能:1) 把光標撤回到顯示器的左上方;2)把地址計數器(ac)的值設置為0;3)保持ddram的內容不變;(3) 光標和顯示模式設置指令 功能:設定每次定入1位數據后光標的移位方向,并且設定每次寫入的一個字符是否移動。參數設定的情況表2-4所示。表2-4 顯示模式設置指令參數設定位名設置i/d0=寫入新數據后光標左移1=寫入新數據后光標右移s0=寫入新數據后顯示屏不移動1=寫入新數據后屏整體右移1個字符(4)顯示開關控制指令功能:控制顯示器開/關、光標顯示/關閉以及光標是否閃爍。參數設定的情況如表2-5。表2-5 顯示開關控制指令參數設定位名設置d0=顯示功能關1=顯示功能開c0=無光標1=有光標b0=光標閃爍1=光標不閃爍(5)設定顯示屏或光標移動方向指令功能:使光標移位或使整個顯示屏幕移位。參數設定的情況如表2-6。表2-6 設定顯示屏或光標移動方向指令參數設定s/cr/l設定情況00光標左移1格,且ac值減101光標右移1格,且ac值加110顯示器上字符全部左移一格,但光標不動11顯示器上字符全部右移一格,但光標不動(6)功能設定指令功能:設定數據總線位數、顯示的行數及字型。參數設定的情況如表2-7。表2-7 功能設定指令參數設定位名設置dl0=數據總線為4位1=數據總線為8位n0=顯示1行1=顯示2行f0=57點陣/每字符1=510點陣/每字符(7)設定cgram地址指令功能:設定下一個要存入數據的cgram的地址。(8)設定ddram地址指令功能:設定下一個要存入數據的cgram的地址。(9)讀取忙信號或ac地址指令功能:1) 讀取忙碌信號bf的內容,bf=1表示液晶顯示器忙,暫時無法接收單片機送來的數據或指令;當bf=0時,液晶顯示器可以接收單片機送來的數據或指令;2)讀取地址計數器(ac)的內容。(10)數據寫入ddram或cgram指令一覽功能:1) 將字符碼寫入ddram,以使液晶顯示屏顯示出相對應的字符;2)將使用者自己設計的圖形存入cgram;(11)從cgram或ddram讀出數據的指令一覽功能:讀取ddram或cgram中的內容。表2-8 基本操作時序命令名輸入輸出讀狀態(tài)rs=l,rw=h,e=hdb0db7=狀態(tài)字寫指令rs=l,rw=l,e=下降沿脈沖, db0db7=指令碼無讀數據rs=h,rw=h,e=hdb0db7=數據寫數據rs=h,rw=l,e=下降沿脈沖,db0db7=數據無液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認模塊的忙標志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,圖2-8是1602的內部顯示地址。圖2-8 1602lcd內部顯示地址2.3.2 at89c51與lcd1602的連接在lcd1602液晶顯示模塊和單片機at89c51相連接時需要在液晶顯示的數據口加上10k左右的上拉電阻,具體的接法為:將vss接地,vdd接高電平,vee接入一個電位器來調整lcd1602的對比度。將rs接到p2.0口,r/w接到p2.1口,e接到p2.2口。d0d7接到p0口來控制命令輸入及數據的輸入/輸出。具體的連接仿真電路可見圖2-9所示。圖2-9 lcd1602液晶顯示模塊和單片機at89c51接口電路2.4 at89c51與時鐘芯片的連接2.4.1時鐘芯片ds1302簡介ds1302是dallas公司推出的涓流充電時鐘芯片,內含有一個實時時鐘/日歷和31字節(jié)靜態(tài)ram,通過簡單的串行接口與單片機進行通信。實時時鐘/日歷電路提供秒、分、時、日、日期、月、年的信息,每月的天數和閏年的天數可自動調整,時鐘操作可通過am/pm指示決定采用24或12小時格式。ds1302與單片機之間能簡單地采用同步串行的方式進行通信,僅需用到三個口線: res復位線、 i/o數據線、sclk串行時鐘。時鐘/ram的讀/寫數據以一個字節(jié)或多達31個字節(jié)的字符組方式通信。ds1302工作時功耗很低保持數據和時鐘信息時功率小于1mw。ds1302器件外觀如圖3-10所示,ds1302管腳的功能描述可見表3-9所示。圖2-10 ds1302器件表2-9 ds1302管腳的功能描述管腳名功能說明x1,x232.768khz 晶振管腳gnd地rst復位腳i/o數據輸入/輸出引腳sclk串行時鐘vcc1,vcc2電源供電管腳ds1302 的控制字如圖3-11所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數據寫入ds1302中,位6如果為0,則表示存取日歷時鐘數據,為1表示存取ram數據;位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作,控制字節(jié)總是從最低位開始輸出。 1 ram/ck a4 a3 a2 a1 a0 ram/k圖2-11 ds1302的控制字在控制指令字輸入后的下一個sclk時鐘的上升沿時,數據被寫入ds1302,數據輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個sclk脈沖的下降沿讀出ds1302的數據,讀出數據時從低位0位到高位7。 ds1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關,存放的數據位為bcd碼形式,其日歷、時間寄存器及其控制字見表2-10所示。表2-10 日歷、時間寄存器及其控制字寄存器名稱寫操作讀操作取值范圍76 5 43 2 1秒寄存器80h81h0059ch10secsec分寄存器82h83h0059010minmin時寄存器84h85h002312/2410hrhr日寄存器86h87h0131010datedate月寄存器88h89h011200 10mmonth周寄存器8ah8bh010700 0 0day年寄存器8ch8dh009910yearyeards1302的主要特性:(1)實時時鐘具有能計算2100年之前的秒、分、時、日、日期、星期、月、年的能力,還有閏年調整的能力(2)31* 8 位暫存數據存儲ram(3)串行i/o口方式使得管腳數量最少(4)寬范圍工作電壓:2.0 5.5v(5) 工作電流2.0v時,小于300na(6) 讀/寫時鐘或ram數據時,有兩種傳送方式:單字節(jié)傳送和多字節(jié)傳送(字符組方式)(7) 8 腳dip封裝或可選的8腳soic封裝(根據表面裝配)(8) 簡單3線接口(9) 與ttl兼容(vcc=5v)(10)可選工業(yè)級溫度范圍-40 +852.4.2 at89c51與時鐘芯片ds1302的連接在使用ds1302時需加一個供其工作的晶振,一般選值為32768hz。最好再加一個后備電源使其在斷電后斷續(xù)工作。其與at89c51的連接如圖2-12所示。實際上,在調試程序時可以不加電容器,只加一個32768hz 的晶振即可。只是選擇晶振時,不同的晶振,誤差也較大。要特別說明的是備用電源bat1,可以用電池或者超級電容器(0.1f以上)。雖然ds1302在主電源掉電后的耗電很小,但是,如果要長時間保證時鐘正常,最好選用小型充電電池??梢杂美鲜诫娔X主板上的3.6v充電電池。如果斷電時間較短(幾小時或幾天)時,就可以用漏電較小的普通電解電容器代替。100 f就可以保證1小時的正常走時。ds1302在第一次加電后,必須進行初始化操作。初始化后就可以按正常方法調整時間。圖2-12 at89c51與ds1302的連接2.5 at89c51與溫度芯片的連接2.5.1溫度芯片ds18b20簡介ds18b20數字溫度計是dallas公司生產的1wire,即單總線器件,具有線路簡單,體積小的特點。因此用它來組成一個測溫系統,具有線路簡單,在一根通信線,可以掛很多這樣的數字溫度計,十分方便。其實物圖如圖2-13所示,其引腳的功能描述可見表2-11所示。圖2-13 ds18b20表2-11 ds18b20的引腳功能描述引腳功能說明gnd地dq數字輸入輸出引腳vdd可選的vdd引腳ds18b20的特點: (1)只要求一個端口即可實現通信。 (2)在ds18b20中的每個器件上都有獨一無二的序列號。 (3)實際應用中不需要外部任何元器件即可實現測溫。 (4)測量溫度范圍在55c到125c之間。 (5)數字溫度計的分辨率用戶可以從9位到12位選擇。 (6)內部有溫度上、下限告警設置。 2.5.2at89c51與溫度芯片ds18b20的連接在仿真軟件中,可以用ds18b20仿真器上的上、下鍵來調節(jié)溫度的高低,以此來檢測讀、寫溫度程序是否成功。具體的ds18b20與at89c51連接如圖2-14所示圖2-14 at89c51與ds18b20的連接2.6 at89c51與鍵盤的連接鍵盤在單片機應用系統中,實現輸入數據、傳送命令的功能,是人工干預的主要手段。鍵盤分兩大類:編碼鍵盤和非編碼鍵盤。(1)編碼鍵盤:由硬件邏輯電路完成必要的鍵識別工作與可靠性措施。每按一次鍵,鍵盤自動提供被按鍵的讀數,同時產生一選通脈沖通知微處理器,一般還具有反彈跳和同時按鍵保護功能。這種鍵盤易于使用,但硬件比較復雜,對于主機任務比較繁重。(2)非編碼鍵盤:只簡單地提供鍵盤的行列與矩陣,其他操作如鍵的識別,決定按鍵的讀數等僅靠軟件完成,故硬件較為簡單,但占用cpu較多時間。鍵盤電路結構分為兩類:獨立式按鍵和矩陣式鍵盤。(1)獨立式按鍵獨立式按鍵就是各按鍵相互獨立,每個按鍵單獨占用一根i/o口線,每根i/o口線的按鍵工作狀態(tài)不會影響其他i/o口線上的工作狀態(tài)。因此,通過檢測輸入線的電平狀態(tài)可以很容易判斷哪個按鍵被按下了。(2)矩陣式鍵盤矩陣式鍵盤適用于按鍵數量較多的場合,由行線和列線組成,按鍵位于行列的交叉點上,節(jié)省i/o口。為了使設計簡潔、易于操作,本系統鍵盤部分設計使用了非編碼、獨立式按鍵了。系統中共有四個獨立按鍵,分別接在p2.3、p2.4、p2.5、p2.6。其中1號鍵為時間調整時間鍵,按下此鍵則進入時間調整狀態(tài),然后用2號鍵(增量鍵)或3號鍵(減量鍵)來完成時間的校準和鬧鐘的定時。用4號鍵可以顯示鬧鐘的具體時間。其具體的連接電路如圖2-15所示。圖2-15 at89c51與鍵盤連接第3章 系統軟件設計3.1程序設計3.1.1主程序模塊設計本系統程序設計采用匯編語言進行編寫。開始系統初始化定時是否到?歡迎界面顯示主界面鬧鐘響調整時間是否調時間?查看定時?顯示定時是是 主程序設計思路為:先對系統進行初始化,如:lcd1602初始化,ds1302初始化等,然后才能進入主顯示模塊,即可在lcd1602上看到相應的信息。對于lcd1602的初始化,主要是對開啟顯示屏,清屏,設置顯示初始行等操作。ds1302的初始化主要是先開啟寫功能,然后寫入一個初始值。具體的主程序流程如圖3-1所示圖3-1 主程序流程圖主程序源代碼:main:lcall init_lcd1602 ;調用顯示器lcd1602的初始化lcall init_ds1302 ;調用時鐘芯片ds1302的初始化lcall init_timer ;調用鬧鐘初始化lcall welcome ;調用歡迎界面start:lcall display_time ;調用時鐘顯示程序lcall display_temp ;調用溫度顯示程序lcall timer ;調用鬧鐘判斷程序jb setup,start_next ;判斷是否設置時間lcall key_select start_next:jb timerdisplay,start ;判斷是否查看定點鬧鐘的具體時間lcall timer_displayjmp start3.1.2液晶顯示器lcd1602模塊at89c51lcd1602先將命令寫入lcd1602中,告訴它將做什么如果需要顯示數據的話,再將數據送入lcd1602中本系統采用的是lcd1602液晶顯示器,由于其是本身帶有驅動模塊的液晶屏,所以對于lcd1602操作程序可分為開顯示、設置顯示初始行、寫數據和清屏等部分。lcd1602的寫命令程序和寫數據程序分別以子程序的形式寫在程序里,以便主程序中的調用。對lcd1602的具體操作過程如圖3-2所示。圖3-2對lcd1602的具體操作過程1602lcd的總體操作流程圖見圖3-3所示。開始lcd初始化延時設第一行顯示位置顯示第一行內容設第二行顯示位置顯示第二行內容圖3-3 軟件流程圖lcd初始化程序:init_lcd1602:mov lcd,#01h ;清屏call enable_ordermov lcd,#38h ;8位點陣,兩行顯示call enable_ordermov lcd,#0ch ;顯示開關為開,光標開關為關,閃爍開關為關call enable_ordermov lcd,#80h ;顯示的起始位置為第一行的第一位call enable_orderret3.1.3時鐘芯片ds1302操作模塊ds1302 與微處理器進行數據交換過程如圖4-4所示,首先由微處理器向電路發(fā)送命令字節(jié),命令字節(jié)最高位msb(d7)必須為邏輯1,如果d7=0,則禁止寫ds1302,即寫保護;d6=0,指定時鐘數據,d6=1,指定ram數據;d5d1指定輸入或輸出的特定寄存器;最低位lsb(d0)為邏輯0,指定寫操作(輸入), d0=1,指定讀操作(輸出)。 在ds1302的時鐘日歷或ram進行數據傳送時,ds1302必須首先發(fā)送命令字節(jié)。若進行單字節(jié)傳送,8位命令字節(jié)傳送結束之后,在下2個sclk周期的上升沿輸入數據字節(jié),或在下8個sclk周期的下降沿輸出數據字節(jié)。at89c51lcd1602先將命令寫入ds1302,告訴它將做什么操作如果是寫數據的話,再將數據送入ds1302中如果是讀數據的話,直接從ds1302數據口讀出讀、寫ds1302的流程圖分別為圖3-5,圖3-6所示,其源程序見附錄代碼。開始復位端產生1個高電平將命令字寫到變量中向ds1302發(fā)送1位數據延時命令字是否傳輸完準備傳輸命令字中的下一位將數據寫到變量中向ds1302發(fā)送1位數據延時數據是否傳輸完準備傳輸數據中的下一位結束否否圖3-4 ds1302 與微處理器進行數據交換過程圖3-5 寫ds1302數據流程圖開始復位端產生1個高電平將命令字寫到變量中向ds1302發(fā)送1位數據延時命令字是否傳輸完準備傳輸命令字中的下一位將數據寫到變量中從ds1302接收 1位數據延時數據是否接收完準備接收數據中的下一位結束否否圖3-6 讀ds1302數據流程圖3.1.4溫度芯片ds18b20操作模塊ds1302為單線接口且每一個ds18b20都有唯一的系列號,因此多個ds18b20可以存在于同一條單線上工作,但本系統就用了一個ds1302所以對ds18b20的搜索可以用skip rom命令跳過搜索,然后再對其進行操作。具體的ds18b20的操作過程如圖3-7所示。at89c51lcd1602跳過搜索先將命令寫入ds1302,告訴它將做什么操作向ds18b20發(fā)讀命令如果是寫數據的話,再將數據送入ds1302中讀ds18b20的數據如果是讀數據的話,直接從ds1302數據口讀出圖3-7 ds18b20的操作過程開始初始化寫命令:跳過讀序列號操作(0xcc)寫命令:啟動溫度轉換溫度轉換結束?初始化寫命令:讀溫度寄存器寫命令:跳過讀序列號操作(0xcc)讀出溫度,并存儲結果結束否讀ds18b20的流程圖見圖3-8所示。其源程序可查閱附錄中的源代碼部分。圖3-8 讀ds18b20的流程圖3.1.5鍵盤操作模塊鍵盤操作是本系統軟件設計中的難點,也是重點。本次設計我只用了四個鍵,它人分別是1號鍵(時間調整時間鍵),2號鍵(增量鍵),3號鍵(減量鍵),4號鍵(顯示定時時間鍵)。當按下1號鍵后會進入,時間調整程序,在不同的設置時段你可以通過2號鍵或者3號鍵來對年、月、日、周、時、分、鬧鐘的時、鬧鐘分進行設置。當退出時間調整程序后,按4號鍵可以查看設置鬧鐘的時間。鍵盤操作可以有兩個方式分別為中斷法和按鍵掃描法。我選擇的后者,因為用四個鍵如果用中斷的話,不容易控制,易出錯。而且如果用這種最傳統的掃描法,使程序看起來setup按下?調整年setup按下?調整月setup按下?調整日setup按下?調整周setup按下?調整時setup按下?調整分setup按下?調整鬧鐘時setup按下?調整鬧鐘分年否否否否否否否否思路更清晰、更明了、更容易理解。具體軟件設計流程圖如圖3-9所示。圖3-9 時間設置過程第4章 硬件實現4.1 protel的硬件電路設計本系統硬件由控制時鐘芯片ds1302、溫度芯片ds18b20、at89c51單片機和字符點陣型lcd1602液晶顯示器等器件構成。用ds1302產生時鐘信號,用溫度芯片ds18b20產生溫度信號,由單片機負責接收并且對其進行控制,最后在lcd1602液晶顯示器然顯時間及溫度等信息。首先執(zhí)行菜單命令“文件” “創(chuàng)建” “項目” “pcb項目”,創(chuàng)建一個新的pcb項目,并命名為“clock.prjpcb”,保存該項目到“在d:”下。然后在該項目中添加一個原理圖文件,命名為“clock.schdoc”并保存在同一目錄下。4.1.1 原理圖設計單擊工作區(qū)面板上的“project”選項卡,從選項卡中選擇新建的原理圖文件“clock.schdoc”,切換到原理圖編輯狀態(tài)界面,按照電路中用到的元件逐個放置,并對元件進行布局。再按照各個元件之間的電氣連接屬性,對電路進行連接。在連接的過程中,可以根據連接的需要適當調整元件的布局。在連線較復雜的地方可以通過放置網絡標簽來連接。連接好的電路如圖4-3所示。圖4-3 系統電路圖其中由于dxp中無lcd1602、ds18b20等芯片,而最終設計出的電路板并不會產生電子原器件,只是為芯片留其引腳相應的銅空而矣,所以這些芯片可用與其引腳相同的器件來代替。因此本系統的電路圖最終設計成了圖4-3所示的樣子。4.1.2 報表生成在原理圖繪制完成后,就可以編譯原理圖找出錯誤的地方進行修改,同時生成所需要的各種報表文檔。執(zhí)行菜單命令“項目管理” “compile pcb project clock.prjpcb”,對項目進行編譯。編譯結束后,會彈出“message”對話框,在該對話框中列出了編譯中的錯誤或者警告等信息。根據編譯的信息,仔細檢查原理圖并修正提示的錯誤信息。4.1.3 創(chuàng)建pcb文件單擊工作區(qū)面板的“project”選項卡,移動光標到項目“clock.prjpcb”上,單擊鼠標右鍵,在彈出的快捷菜單中,執(zhí)行菜單命名“追加新文件到項目中” “pcb”,創(chuàng)建一個新的pcb文件,重新命名為“clock.pcbdoc”并保存到項目目錄下,如圖4-4所示。圖4-4 追加pcb文件到項目在pcb編輯狀態(tài)下,執(zhí)行菜單命令“設計” “import changes from clock.prjpcb”,系統會彈出“工程變化訂單(eco)”對話框,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年胰島素相關試題及答案
- 八年級上冊音樂《八音和鳴(一)》教學設計
- 八下語文柳宗元《小石潭記》:尋幽探勝心境隨遷
- 操作使用培訓內容
- 某家具公司噴漆設備采購方案(規(guī)則)
- 某紡織公司技術改造實施方案
- 2026年房屋裝修合同
- 珠寶公司成本核算優(yōu)化辦法
- 播音主持培訓禮儀
- 大學荷蘭語聽力材料中文化負載詞識別策略與歐洲文化認知課題報告教學研究課題報告
- 2025年新版安全生產法知識考試試卷(含答案)
- 2025動物防疫專員試題及答案
- 2026年齊齊哈爾高等師范??茖W校單招職業(yè)技能測試題庫必考題
- 輸變電工程安全教育課件
- 第9章 施工中的難點與要點分析
- 安全生產目標管理制度
- 2024年度初會職稱《初級會計實務》真題庫匯編(含答案)
- 廠精益道場設計方案
- 綠植租賃合同
- 比亞迪Forklift軟件使用方法
- GB/T 2899-2008工業(yè)沉淀硫酸鋇
評論
0/150
提交評論