版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
PAGEI目錄4934第一部分設(shè)計任務(wù)與調(diào)研 1190191、設(shè)計任務(wù) 1111041.1設(shè)計內(nèi)容與結(jié)構(gòu) 1168091.2方案比較與選擇 1118741.2.1系統(tǒng)方案選擇 11260第二部分設(shè)計說明 3268491系統(tǒng)硬件電路 333782單片機電路 3232602.1單片機最小系統(tǒng)電路 3120圖2-1最小單片機系統(tǒng)電路 4267623.1時鐘電路 4224233.1.1DS1307簡介 4160823.2時鐘電路設(shè)計 6287763.3按鍵電路 6184293.4顯示電路 7145593.5打鈴電路 8132504系統(tǒng)軟件設(shè)計 9320474.1軟件設(shè)計流程圖 9190964.2讀取DS1307時間程序設(shè)計 975494.3顯示程序設(shè)計 1127844.4按鍵設(shè)定程序設(shè)計 132607第三部分設(shè)計成果 1422511、主電路圖 1424206見附錄一 14212312、源程序 145507見附錄二 14114093、實物 1420789第四部分總結(jié) 1621330第五部分致謝 1713452第六部分參考文獻 1829467附錄 191514附錄一:電路圖 1917013附錄二:源程序 20PAGE26第一部分設(shè)計任務(wù)與調(diào)研設(shè)計任務(wù)設(shè)計一個能夠?qū)崿F(xiàn)上下班的自動打鈴模擬系統(tǒng),熟悉單片機的控制功用和系統(tǒng)原理應(yīng)用。對系統(tǒng)設(shè)計與實用編程有進一步強化。了解設(shè)計產(chǎn)品的要求和產(chǎn)品工作要求、分析電路流程、分析電路設(shè)計程序流程、分析轉(zhuǎn)換開關(guān)的工作原理、繪制電路圖編譯測試電路程序、測試電路程序工作是否正常、完善測試電路程序。1.1設(shè)計內(nèi)容與結(jié)構(gòu)本設(shè)計是以AT89S51單片機為核心的一款自動打鈴系統(tǒng),以時鐘芯片來實現(xiàn)計時功能,然后單片機負(fù)責(zé)將時間送入顯示電路顯示,整個系統(tǒng)不是很復(fù)雜,其設(shè)計主要包括單片機控制模塊、時鐘電路和顯示電路三個模塊的設(shè)計,在設(shè)計前本人在學(xué)校圖書館看了很多關(guān)于單片機方面的書,也在網(wǎng)上查了不少資料,也查閱過跟此設(shè)計相似的論文或者期刊,得到了不少啟發(fā)和經(jīng)驗,對本人的設(shè)計工作有很大的幫助,能很好的把握設(shè)計的整體方向和細(xì)節(jié),設(shè)計的結(jié)構(gòu)如下:一、系統(tǒng)的設(shè)計方案,根據(jù)系統(tǒng)所要實現(xiàn)的功能,確定設(shè)計的基本方案。二、系統(tǒng)的硬件設(shè)計,主要介紹了硬件的電路圖,各模塊電路的設(shè)計,硬件元器件的結(jié)構(gòu),特點,引腳功能等。三、系統(tǒng)軟件部分的設(shè)計,主要是對系統(tǒng)的主程序的結(jié)構(gòu)圖和流程圖的解說。四、系統(tǒng)的調(diào)試,主要是介紹下系統(tǒng)硬件和軟件調(diào)試過程中的問題和解決方案,還有調(diào)試步驟的細(xì)節(jié)問題的說明。1.2方案比較與選擇1.2.1系統(tǒng)方案選擇方案一:采用數(shù)字電路來搭建,利用555時基電路構(gòu)成振蕩器產(chǎn)生100Hz頻率的振蕩電路,再通過分頻器得到1Hz頻率,即產(chǎn)生1秒計時時間,顯示部分通過鎖存器和驅(qū)動芯片將計時時間送入數(shù)碼管顯示。設(shè)計框圖如圖2-1所示。這種方案電路結(jié)構(gòu)比較復(fù)雜,芯片使用比較多,靈活性不高,而且準(zhǔn)確度不夠精確,不利于系統(tǒng)的擴展。而且這種電路中需要使用獨立式的數(shù)碼管,每一個數(shù)碼管都需要連接一個數(shù)據(jù)鎖存器和數(shù)碼管驅(qū)動芯片,連接線比較多,制作的過程中很容易出錯。NE555NE555時基電路分頻器100Hz信號數(shù)據(jù)鎖存器1Hz信號數(shù)碼管驅(qū)動數(shù)碼管顯示圖2-1方案一設(shè)計框圖方案二:采用AT89S51單片機作為系統(tǒng)控制單元,通過時鐘芯片來實現(xiàn)計時功能,單片機負(fù)責(zé)將時間送入顯示電路顯示。設(shè)計框圖如圖2-2所示。這種方案電路設(shè)計簡單,時間精確,使用方便。而且單片機的強大功能使得系統(tǒng)方便擴展,有利于提高智能性。時鐘芯片時鐘芯片秒計時單片機液晶顯示器顯示計時時間圖2-2方案二設(shè)計框圖本設(shè)計系統(tǒng)框圖如圖2-3所示。系統(tǒng)以AT89S51單片機為控制器,通過DS1307來為系統(tǒng)提供標(biāo)準(zhǔn)時間,單片機讀取DS1307時間后送液晶顯示器顯示,通過按鍵來設(shè)置打鈴時間。當(dāng)打鈴時間到時,系統(tǒng)實現(xiàn)蜂鳴器和LED燈聲光提示。系統(tǒng)設(shè)計框圖如下:時鐘電路時鐘電路按鍵設(shè)定打鈴時間單片機控制顯示電路打鈴電路
第二部分設(shè)計說明1系統(tǒng)硬件電路根據(jù)系統(tǒng)設(shè)計框圖,本設(shè)計硬件電路主要由時鐘電路、按鍵設(shè)定電路、單片機電路、顯示電路和打鈴電路組成,電路原理圖見附錄一所示。系統(tǒng)工作原理:系統(tǒng)時間由時鐘芯片DS1307來提供,單片機通過P3口讀取了DS1307的時間數(shù)據(jù)后,經(jīng)過處理得到時間顯示模式的時鐘數(shù)據(jù),并通過P2口送液晶顯示器顯示出來。再通過掃描P1口是否有按鍵按下,有按鍵按下時,通過液晶顯示器顯示來設(shè)置定時時間、打鈴時間間隔,通過設(shè)定、移位、加數(shù)來實現(xiàn)。當(dāng)?shù)竭_打鈴時間時,單片機引腳啟動蜂鳴器和LED燈電路工作以聲光形式實現(xiàn)打鈴功能。2單片機電路2.1單片機最小系統(tǒng)電路單片機最小系統(tǒng)由晶振電路和復(fù)位電路組成。電路如圖2-12-2所示。晶振電路用于產(chǎn)生單片機工作時所需要的時鐘信號,單片機的指令必須在時鐘信號下按照時序執(zhí)行。晶振電路通常用兩種設(shè)計方式:內(nèi)部振蕩方式和外部振蕩方式。內(nèi)部振蕩方式是在單片機的XTAL1和XTAL2引腳外接一個晶體振蕩器,與單片機內(nèi)部的振蕩器組成時鐘信號;外部振蕩方式是在外部將已有的脈沖信號引入單片機內(nèi),一般用于使單片機的時鐘與外部信號保持同步。本設(shè)計選用內(nèi)部振蕩方式,在XTAL1和XTAL2引腳之間連接一個12MHz的晶振,再分別外接30p的對地電容。單片機在啟動時需要復(fù)位,使系統(tǒng)各器件處于初始狀態(tài)。復(fù)位引腳為RST,當(dāng)系統(tǒng)上電后晶振電路穩(wěn)定后,RST引腳有一個高電平且持續(xù)2個機器周期以上,單片機系統(tǒng)就可以實現(xiàn)復(fù)位功能。復(fù)位一般有手動復(fù)位和上電復(fù)位功能。手動復(fù)位是在RST引腳設(shè)置按鍵,當(dāng)按鍵按下時,RST引腳會有高電平,即可實現(xiàn)復(fù)位功能;上電復(fù)位是在RST引腳連接一個電解電容接至電源,再接一個電阻接地,系統(tǒng)上電時,電容充電,只要電源的上升時間不超過1ms,就可以實現(xiàn)復(fù)位功能。本設(shè)計選用按鍵復(fù)位。圖2-1最小單片機系統(tǒng)電路圖2-2單片機最小系統(tǒng)電路3.1時鐘電路3.1.1DS1307簡介DS1307是I2C總線接口的日歷時鐘芯片,片內(nèi)有8個特殊寄存器和56字節(jié)的非易失性RAM,是一種低功耗、BCD碼的8引腳實時時鐘芯片。它的主要特點:可對秒、時、分、每月的天數(shù)、月份、每周的天數(shù)進行計數(shù),并具有閏年補償功能,記年上線為2100年;56字節(jié)非易失性RAM;兩線串行接口;可編程方波輸出;自動掉電檢測和切換電路;在電池備份模式下,功耗小于50nA;工業(yè)級工作溫度:-40℃-80℃;8引腳DIP和SOIC封裝。DS1307的引腳排列如圖3-1所示,引腳說明如下:X1、X2:接入32.768kHz的石英晶振;VBAT:+3V電源輸入;GND:地;SDA:數(shù)據(jù)線,輸入輸出數(shù)據(jù),需要外接上拉電阻;SCL:時鐘線,用來同步數(shù)據(jù);SQW/OUT:方波信號輸出端,可輸出供選擇的頻率方波,1Hz、4KHz、8KHz、32KHz,需外接上拉電阻。VCC:+5V電源;圖3-1DS1307引腳圖3.2.2時鐘電路設(shè)計時鐘電路如圖3-2所示。時鐘芯片的SCL引腳和SDA引腳分別由單片機的P3.1和P3.2引腳控制,單片機只需按照DS1307的工作時序來控制DS1307即可實現(xiàn)時間的寫入和讀取,其中DS1307的時鐘端與數(shù)據(jù)端需外接上拉電阻,本設(shè)計選用5針排阻來充當(dāng)上拉電阻。圖3-2時鐘電路3.3按鍵電路鍵盤是單片機應(yīng)用中常用的一種輸入器件,鍵盤的按鍵有觸點式和非觸點式之分,按接口原理有編碼鍵盤和非編碼鍵盤之分。編碼鍵盤主要用硬件來實現(xiàn)對按鍵的識別,非編碼鍵盤是由軟件來實現(xiàn)鍵盤的定義與識別。常用的按鍵一般為觸點式按鍵,根據(jù)按鍵所連接的單片機引腳的電平高低來判斷其是否按下。按功能分,鍵盤有獨立按鍵和矩陣按鍵之分,獨立按鍵每一路按鍵就占用單片機的一個控制引腳,單片機直接獲取其信息;矩陣按鍵將按鍵排成由行和列組成的行列式,通過確認(rèn)按鍵的行號和列號來確定每一路按鍵,利用少的單片機引腳控制更多的按鍵。本設(shè)計中按鍵電路如圖3-3所示,由單片機的P1口控制按鍵電路。本設(shè)計中按鍵用于設(shè)定定時時間、打鈴時間間隔,所以只需4路按鍵即可實現(xiàn)所需功能,采用獨立式按鍵即可。由于按鍵是機械式觸點,所以在斷開或閉合時,一般都有抖動產(chǎn)生,雖然這個抖動時間在我們看來非常短,但是單片機執(zhí)行指令的速度為微秒級別,很容易會讀取這個時間而將其判斷為真正的工作狀態(tài),從而引起誤判。因此,在設(shè)計中必須考慮到按鍵抖動的影響。常用的去抖動的方法有兩種:硬件方法和軟件方法。硬件方法一般是加電容或者RS觸發(fā)器;軟件方法是在單片機在檢測引腳所連接的按鍵的工作狀態(tài)時加一個延時程序再次確認(rèn),通過2次的確認(rèn)就可以確保按鍵的工作狀態(tài)不受機械抖動的影響了。圖3-3按鍵電路3.4顯示電路LCD1602為字符型液晶顯示器,分為帶背光和不帶背光兩種,主要技術(shù)參數(shù):顯示容量,16×2個字符;芯片工作電壓,4.5V-5.5V;工作電流,2.0mA;模塊最佳工作電壓,5V;字符尺寸,2.95×4.35mm。LCD1602共有16個引腳,引腳說明如下:1腳,VSS,電源地;2腳,VDD,電源正極,接+5V;3腳,VL,液晶顯示偏壓,接正電源時對比度較弱,接地時對比度最高;4腳,RS,數(shù)據(jù)/命令選擇,高電平時選擇數(shù)據(jù)寄存器,低電平時選擇指令寄存器;5腳,R/W,讀/寫選擇,高電平時進行讀操作,低電平時進行寫操作,當(dāng)RS和R/W共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時可以讀忙信號,當(dāng)RS為高電平R/W為低電平時可以寫入數(shù)據(jù);6腳,E,使能信號,當(dāng)E端由高電平跳變?yōu)榈碗娖綍r,液晶塊執(zhí)行命令;7-14腳,D0-D7,8位雙向數(shù)據(jù)線;15腳,BLA,背光源正極;16腳,BLK,背光源負(fù)極。本設(shè)計中顯示電路如圖3-4所示。單片機的P2口作為LCD1602的數(shù)據(jù)線端口,P3口控制LCD1602的使能端。單片機讀取數(shù)據(jù)后,通過控制LCD1602的讀寫端、復(fù)位端和使能端將其設(shè)置為寫入數(shù)據(jù)狀態(tài),再將數(shù)據(jù)通過P2口送入LCD1602實現(xiàn)顯示功能。3-4顯示電路圖3.5打鈴電路打鈴電路一般用聲音或音樂作為提醒,本設(shè)計選用蜂鳴器和LED燈實現(xiàn)聲光雙重打鈴功能,電路如圖3-5所示。打鈴時間到時,單片機P3.3引腳置高,三極管9013導(dǎo)通,繼而蜂鳴器和LED燈導(dǎo)通,實現(xiàn)蜂鳴和燈亮打鈴功能。圖3-5打鈴電路圖3-5打鈴電路4系統(tǒng)軟件設(shè)計4.1軟件設(shè)計流程圖系統(tǒng)軟件設(shè)計流程圖如圖4-1所示。圖4-1軟件設(shè)計流程圖程序設(shè)計過程:首先要定義單片機的引腳,然后初始化器件,再利用DS1307的讀寫時序讀取時間數(shù)據(jù)。再利用按鍵進入時間設(shè)定狀態(tài),設(shè)定完時間后單片機通過比較時間是否到達設(shè)定的時間來確定是否到打鈴時間,如果達到打鈴時間,則控制蜂鳴器響LED燈亮。4.2讀取DS1307時間程序設(shè)計DS1307中的時間寄存器地址編碼為00H-07H,而具有掉電保護的RAM寄存器的地址編碼為08H-3FH。當(dāng)?shù)刂分羔樦赶騌AM的最后一個地址3FH時,若進行多字節(jié)操作,則地址指針將會復(fù)位而指向00H,這樣原來存在00H的數(shù)據(jù)將會丟失。DS1307的各類時間數(shù)據(jù)均以BCD碼的格式存儲在相應(yīng)的時間寄存器中,具體分配如表4-1所示:表4-1DS1307寄存器分配00H01H02H03H04H05H06H07H秒分小時星期日期月年控制字
單片機通過讀取DS1307相應(yīng)的寄存器字節(jié),可以獲取時鐘和日歷信息。時鐘和日歷信息以BCD碼的形式存放在寄存器中,寄存器0的第7位為時鐘停止位,振蕩器停止工作。由于在初次上電時,所有寄存器的狀態(tài)是不確定的,所以在初始化時必須將寄存器0中的第7位設(shè)為0。DS1307可運行在12/24小時模式下,并由時間控制器中的相應(yīng)位來進行控制。根據(jù)小時寄存器的第6位是0還是1,置為1時,是工作于12小時模式下,此時,小時寄存器的第5位為AM/PM標(biāo)志。在24小時模式中,小時寄存器的第5位和第4位共同組成小時的十位數(shù)。時鐘模塊設(shè)計流程:單片機按如下順序?qū)?shù)據(jù)寫入到DS1307寄存器或內(nèi)部RAM中:1、START信號2、寫SLA+W(0xd0)字節(jié),DS1307應(yīng)答(ACK);3、寫1字節(jié)內(nèi)存地址(在以下第四步寫入的第一字節(jié)將存入到DS1307內(nèi)該地址處,DS1307應(yīng)答);4、寫數(shù)據(jù)(可寫多個字節(jié),每一字節(jié)寫入后DS1307內(nèi)部地址計數(shù)器加一,DS1307應(yīng)答);5、STOP信號單片機讀取DS1307子程序流程圖如圖4-2所示:圖4-2單片機讀取DS1307子程序流程圖圖4-2單片機讀取DS1307子程序流程圖4.3顯示程序設(shè)計LCD1602的基本操作時序:讀狀態(tài):輸入:RS=L,RW=H,E=H;輸出:D0-D7=狀態(tài)字。寫指令:輸入:RS=L,RW=L,D0-D7=指令碼,E=高脈沖;輸出:無。讀數(shù)據(jù):輸入:RS=H,RW=H,E=H;輸出:D0-D7=數(shù)據(jù)。寫數(shù)據(jù):輸入:RS=H,RW=L,D0-D7=數(shù)據(jù),E=高脈沖;輸出:無。LCD1602初始化過程:延時15ms;寫指令38H(不檢測忙信號);延時5ms;寫指令38H(不檢測忙信號);延時5ms;寫指令38H(不檢測忙信號);以后每次寫指令、讀/寫數(shù)據(jù)操作均需要檢測忙信號;寫指令38H,顯示模式設(shè)置;寫指令08H,顯示關(guān)閉;寫指令01H,顯示清屏;寫指令06H,顯示光標(biāo)移動設(shè)置;寫指令0CH,顯示開及光標(biāo)設(shè)置。LCD有11條控制指令,如表4-2所示。表4-2LCD1602控制指令表序號指令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計數(shù)器地址10向CGRAM或DDRAM寫數(shù)10要寫的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容LCD1602內(nèi)部自帶有80×8位的RAM緩沖區(qū),RAM地址映射如表4-3所示。00010203040506070809404142434445464748490A0B0C0D0E0F10……274A4B4C4D4E4F50……67
表4-3LCD1602的RAM地址映射表LCD1602寫操作時序如圖4-3所示。圖4-3LCD1602寫操作時序向LCD1602寫數(shù)據(jù)程序子程序流程圖如圖4-4所示:圖4-4向LCD1602寫數(shù)據(jù)程序子程序流程圖圖4-4向LCD1602寫數(shù)據(jù)程序子程序流程圖4.4按鍵設(shè)定程序設(shè)計單片機讀取按鍵的方式有2種:查詢方式和中斷方式。查詢方式是利用單片機引腳不斷查詢是否有按鍵按下,如果有按鍵按下,利用延時程序去除抖動再次確認(rèn)后,進入該按鍵對應(yīng)的子程序執(zhí)行命令。中斷方式是利用單片機的外部中斷功能來檢測是否有按鍵按下。利用中斷功能可以不用在主程序中不斷的執(zhí)行查詢命令,有中斷產(chǎn)生即有按鍵按下時,再進入中斷子程序中進行處理。本設(shè)計選用查詢方式處理按鍵設(shè)定程序。每個獨立式按鍵直接接至單片機引腳,每個按鍵的鍵值與單片機端口的8個引腳的8位二進制碼相對應(yīng)。本設(shè)計為P1.0-P1.3引腳控制4路按鍵。單片機控制按鍵子程序流程圖如圖4-5所示:圖4-5單片機控制按鍵子程序流程圖
第三部分設(shè)計成果主電路圖見附錄一源程序見附錄二3、實物制作調(diào)試過程中所用儀器有:數(shù)字萬用表、電烙鐵,焊錫絲、焊錫膏、剝線鉗、尖嘴鉗、圓口鉗、鑷子,吸錫器等,另外準(zhǔn)備盡量多的導(dǎo)線。制作與調(diào)試過程如下:1、按照元器件清單準(zhǔn)備好所需要用到的元器件。2、按照電路原理圖焊接硬件電路板,先焊接芯片的底座,再焊接其外圍電路。實物電路圖如圖5-1所示:圖5-1實物電路圖3、編譯軟件程序,將生成的.hex文件燒寫入單片機內(nèi)。4、給系統(tǒng)上電,液晶顯示器顯示時間,利用按鍵,可設(shè)置定時時間和打鈴時間間隔。圖5-2時間顯示5、當(dāng)定時時間到時,蜂鳴器響,LED燈亮。6、每隔設(shè)置的打鈴時間間隔,蜂鳴器響,LED燈亮,實現(xiàn)打鈴功能。經(jīng)上述調(diào)試,系統(tǒng)工作正常,實現(xiàn)設(shè)計要求的功能。
第四部分總結(jié)經(jīng)過這段時間的努力,畢業(yè)設(shè)計也接近了尾聲。本文從選題目的及意義開始,介紹了系統(tǒng)的方案設(shè)計,其中提供了兩種設(shè)計方案,經(jīng)過互相之間的比較后選擇了簡單易行的一種方案,后面還列出了其他兩種模塊的設(shè)計方案,并經(jīng)比較后選擇了合適的方案,然后對系統(tǒng)的硬件設(shè)計進行了闡述,包括電路圖和元器件的介紹,對它們實現(xiàn)的功能和內(nèi)部結(jié)構(gòu)都進行了說明,接著是軟件部分的設(shè)計,這也是此設(shè)計的關(guān)鍵部分,有很詳細(xì)的說明。本設(shè)計是針對學(xué)校的作息時間而設(shè)計的一種自動打鈴系統(tǒng),但是它同樣可以用于其他的場所,如工廠,生廠車間等等,它能很好的起到時鐘提醒的作用,方便了人們的日常生活。在硬件設(shè)計部分,顯示器件選的是液晶顯示器,它具有功耗和工作電壓低的特點,而且它的顯示質(zhì)量高,可視面積大,能很好的達到設(shè)計要求,還降低了軟件的編程難度。本設(shè)計的自動打鈴系統(tǒng)還存在不足和缺點,主要表現(xiàn)在這些方面:雖然系統(tǒng)能夠很好的實現(xiàn)打鈴的要求,但是能夠設(shè)定的打鈴時間只有六個,這是因為想降低編程時的難度,在不影響其功能的前提下,降低了要求;還有就是其擴展性不強,后續(xù)的發(fā)展比較困難,制約了系統(tǒng)的升級,在商品競爭中沒什么優(yōu)勢,需要進一步的研究和開發(fā)。通過此次畢業(yè)設(shè)計,我對所學(xué)專業(yè)的知識有了很好的回顧和實踐,提高了自己的動手和思考能力,這對我自身的發(fā)展有很大的幫助,同時在此期間我查閱了很多的書籍和資料,從中學(xué)到了很多課本上沒有的知識,拓展了自己的知識面,如果沒有前期的準(zhǔn)備工作是沒法很好的完成此次設(shè)計的,所以多學(xué)、多看、多想、多動手才是學(xué)好知識的必要素質(zhì),這對我未來的發(fā)展和進步有著至關(guān)重要的作用。
第五部分致謝回顧這次畢業(yè)設(shè)計的過程,感慨良多,收獲頗豐,首先要感謝我的導(dǎo)師。在這段時間里老師經(jīng)常給提醒我們在做畢業(yè)設(shè)計過程中應(yīng)當(dāng)注意的事項,并在百忙之中特地抽出時間為我們講課,講解論文的排版及寫作技巧,使我們受益不淺,還不忘督促我們按步驟完成每一項內(nèi)容,可以說從畢業(yè)設(shè)計的開始到完成都能看見老師的身影,沒有老師的辛勤輔導(dǎo)和對學(xué)生的責(zé)任心就沒有我現(xiàn)在這樣一篇畢業(yè)論文。同時我還要感謝大學(xué)四年所有教導(dǎo)過我的老師,是他們的諄諄教誨給了我大學(xué)四年的專業(yè)知識,在學(xué)習(xí)的道路上,他們就是我的領(lǐng)路人,真的非常感謝,還要感謝陪伴了我四年的每一個同學(xué),因為他們,我的大學(xué)才不蒼白,因為他們,我的大學(xué)才精彩,也是因為他們,我的大學(xué)才有意義。畢業(yè)設(shè)計告一段落了,但是我的人生卻迎來了另一個出發(fā)點,畢業(yè)并不意味著結(jié)束,它同時是一個新的開始,我會帶著老師們的希冀,朋友們的祝福和友誼走得更遠、更高、更堅定,謝謝你們
第六部分參考文獻[1]曾屹,劉輝.單片機原理與應(yīng)用.—長沙:中南大學(xué)出版社,2009.5:244—263.[2]劉傳璽,畢訓(xùn)銀,袁照平.傳感器與檢測技術(shù).—北京:機械工業(yè)出版社,2011.8:30—169.[3]劉文濤.單片機應(yīng)用開發(fā)實列.—北京:清華大學(xué)出版社,2005.9:276—303.[4]劉建輝,冀常鵬.單片機智能控制技術(shù).—北京:國防工業(yè)出版社,2007.4:199—265.[5]康華庚.電子技術(shù)基礎(chǔ).模擬部分:華中科技大學(xué)電子技術(shù)課程組編.—5版.—北京:高等教育出版社,2006.1(2011.11重印).[6]康華庚.電子技術(shù)基礎(chǔ).數(shù)字部分:華中科技大學(xué)電子技術(shù)課程組編.—5版.—北京:高等教育出版社,2006.1(2011.11重?。?[7]周立功等.51單片機新技術(shù)[M].北京:北京航空航天大學(xué)出版社,2003:11-16.[8]邱關(guān)源,羅先覺.電路.—5版.—北京:高等教育出版社,2006.5(2011.12重印).[9]楊立.微型計算機原理與接口技術(shù).—北京:中國水利水電出版社,2005(2008重?。?[10]趙文博,劉文濤.單片機語言C51程序設(shè)計[M].北京:人民郵電出版社,2005:1-10.附錄附錄一:電路圖附錄二:源程序#include<reg51.h>#include<stdio.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitLCD_EN=P3^5;sbitLCD_RS=P3^7;sbitLCD_RW=P3^6;sbitsda=P1^2; sbitsclk=P1^1;sbitFMQ=P3^4;#defineLCD_DATA1#defineLCD_COMMAND0#defineLCD_PORTP2ucharDISP_up[16];ucharDISP_dw[16]; ucharLCD_NO;ucharTBA[]={"0123456789"};uchartemp5,count_1,temp6;ucharD1307[3];ucharflag;uchartime_tab[24];uchart_count;ucharkey_board_t;ucharkey_count;ucharsave_data[8];ucharopt_time;voiddelay(uinttt)uchari;for(;tt>0;tt--)for(i=0;i<10;i++);bitLCD_BUSY() bitresult; LCD_RS=0; LCD_RW=1; LCD_EN=1; _nop_(); result=(bit)(LCD_PORT&0x80); LCD_EN=0; returnresult;voidLCD_Write(uchardat,uchartype) uchari; while((LCD_BUSY()&&i<100)){i++;} if(i>99)LCD_NO=1; LCD_RS=type; LCD_RW=0; LCD_EN=0;voidLCD_INITIALIZE() LCD_Write(0x06,LCD_COMMAND); LCD_Write(0x38,LCD_COMMAND); LCD_Write(0x0c,LCD_COMMAND);voidLCD_Prints(uchar*dat,ucharadd,ucharlens) uchari; LCD_Write(add|0x80,LCD_COMMAND); for(i=0;i<lens;i++)LCD_Write(dat[i],LCD_DATA);voidINIT_DISP_up(void)DISP_dw[11]=TBA[save_data[5]];DISP_dw[12]=':';DISP_dw[13]=TBA[save_data[6]];DISP_dw[14]=TBA[save_data[7]];DISP_dw[15]='';voidwrite_temp(ucharadd,uchardat)//向LCD寫溫度數(shù)據(jù),并指定顯示位置uchargw,sw;gw=dat%10;//取得個位數(shù)字sw=dat/10;//取得十位數(shù)字write_1602com(er+add);//er是頭文件規(guī)定的值0x80+0x40write_1602dat(0x30+sw);//數(shù)字+30得到該數(shù)字的LCD1602顯示碼write_1602dat(0x30+gw);//數(shù)字+30得到該數(shù)字的LCD1602顯示碼write_1602dat(0xdf);//顯示溫度的小圓圈符號,0xdf是液晶屏字符庫的該符號地址碼write_1602dat(0x43);//顯示"C"符號,0x43是液晶屏字符庫里大寫C的地址碼}時分秒顯示子函數(shù)voidwrite_sfm(ucharadd,uchardat)//向LCD寫時分秒,有顯示位置加、現(xiàn)示數(shù)據(jù),兩個參數(shù)uchargw,sw;gw=dat%10;//取得個位數(shù)字sw=dat/10;//取得十位數(shù)字write_1602com(er+add);//er是頭文件規(guī)定的值0x80+0x40write_1602dat(0x30+sw);//數(shù)字+30得到該數(shù)字的LCD1602顯示碼write_1602dat(0x30+gw);//數(shù)字+30得到該數(shù)字的LCD1602顯示碼年月日顯示子函數(shù)voidwrite_nyr(ucharadd,uchardat)//向LCD寫年月日,有顯示位置加數(shù)、顯示數(shù)據(jù),兩個參數(shù){uchargw,sw;gw=dat%10;//取得個位數(shù)字sw=dat/10;//取得十位數(shù)字write_1602com(yh+add);//設(shè)定顯示位置為第一個位置+addwrite_1602dat(0x30+sw);//數(shù)字+30得到該數(shù)字的LCD1602顯示碼write_1602dat(0x30+gw);//數(shù)字+30得到該數(shù)字的LCD1602顯示碼voidwrite_week(ucharweek)//寫星期函數(shù)write_1602com(yh+0x0c);//星期字符的顯示位置switch(week)case1:write_1602dat('M');//星期數(shù)為1時顯示write_1602dat('O');write_1602dat('N');case2:write_1602dat('T');//星期數(shù)據(jù)為2時顯示write_1602dat('U');write_1602dat('E');case3:write_1602dat('W');//星期數(shù)據(jù)為3時顯示write_1602dat('E');write_1602dat('D');case4:write_1602dat('T');//星期數(shù)據(jù)為4是顯示write_1602dat('H');write_1602dat('U');case5:write_1602dat('F');//星期數(shù)據(jù)為5時顯示write_1602dat('R');write_1602dat('I');case6:write_1602dat('S');//星期數(shù)據(jù)為6時顯示write_1602dat('T');write_1602dat('A');case7:write_1602dat('S');//星期數(shù)據(jù)為7時顯示write_1602dat('U');write_1602dat('N');//****************鍵盤掃描有關(guān)函數(shù)**********************voidkeyscan()if(key1==0)//key1為功能鍵(設(shè)置鍵)delay(9);//延時,用于消抖動if(key1==0)//延時后再次確認(rèn)按鍵按下buzzer=0;//蜂鳴器短響一次delay(20);buzzer=1;while(!key1);key1n++;if(key1n==9)key1n=1;//設(shè)置按鍵共有秒、分、時、星期、日、月、年、返回,8個功能循環(huán)switch(key1n)case1:TR0=0;//關(guān)閉定時器//TR1=0;write_1602com(er+0x09);//設(shè)置按鍵按動一次,秒位置顯示光標(biāo)write_1602com(0x0f);//設(shè)置光標(biāo)為閃爍temp=(miao)/10*16+(miao)%10;//秒數(shù)據(jù)寫入DS1302write_1302(0x8e,0x00);write_1302(0x80,0x80|temp);//miaowrite_1302(0x8e,0x80);break;case2:write_1602com(er+6);//按2次fen位置顯示光標(biāo)//write_1602com(0x0f);case3:write_1602com(er+3);//按動3次,shi//write_1602com(0x0f);c
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- JJF 2367-2026冷濾點測定儀校準(zhǔn)規(guī)范
- 長期照護師操作技能能力考核試卷含答案
- 水解酵母分離工安全檢查模擬考核試卷含答案
- 巷修工QC管理水平考核試卷含答案
- 獸用化學(xué)藥品制劑工安全風(fēng)險能力考核試卷含答案
- 鋰鹽田工操作水平測試考核試卷含答案
- 橋梁架設(shè)培訓(xùn)課件
- 橋梁養(yǎng)護管理培訓(xùn)
- 酒店員工薪酬激勵與員工滿意度制度
- 酒店前廳接待與客戶關(guān)系管理制度
- 專家咨詢委員會建立方案
- 兼職剪輯外包合同范本
- 物業(yè)入戶維修標(biāo)準(zhǔn)及流程
- 生物濾池除臭裝置設(shè)計計算實例
- 選煤廠安全規(guī)程培訓(xùn)考核試題帶答案
- 八年級上冊道德與法治全冊知識點(2025年秋新版)
- 消防設(shè)備故障和維修的應(yīng)急響應(yīng)預(yù)案
- 護理安全隱患與防范措施課件
- 瀘州市龍馬潭區(qū)三叉河山洪溝治理項目環(huán)評報告
- 人教版小學(xué)數(shù)學(xué)五年級下冊《因數(shù)與倍數(shù)》單元測試卷3套含答案
- 單位升旗活動方案
評論
0/150
提交評論