版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、畢業(yè)設計題 目 電子萬年歷及溫度計設計 學 院 自動化與電氣工程學院 專 業(yè) 自動化 班 級 自動化0802班 學 生 張華虎 學 號 20080301147 指導教師 王中華 二一二年六月八日摘 要電子萬年歷及電子溫度計具有精度高、顯示美觀的優(yōu)點,在商場、家庭、賓館、銀行、車站等場合都有應用。電子萬年歷具有顯示直觀、讀取方便、功能多樣、電路簡潔、成本低廉等很多優(yōu)點,符合電子儀器儀表的發(fā)展趨勢,具有廣闊的市場前景。它可以對年、月、周、日、時、分、秒等進行計時,而且具有閏年補償功能;溫度作為人們日常生活中不可或缺的信息,關系千家萬戶。隨著人們生活水平的不斷提高,電子萬年歷或將逐步取代傳統(tǒng)的日歷,
2、并將越來越受到人們的歡迎。本設計以stc89c52單片機為主控芯片,系統(tǒng)采用溫度傳感器ds18b20進行溫度測量,利用時鐘芯片ds1302實現(xiàn)實時時鐘功能,并在lcd12864液晶屏上顯示實時時鐘、當前溫度等信息。能夠開發(fā)學生的專用芯片、總線技術、電子線路、單片機等基礎知識的應用能力,特別是對于單片機的學習,具有重要的實踐意義。關鍵詞:單片機;電子萬年歷;溫度傳感器;lcd12864;鍵盤abstractelectronic calendar and electronic thermometer with high accuracy, and show the advantages of ap
3、pearance, are applied in shopping malls, family, hotels, banks, railway stations and other occasions. electronic calendar with intuitive, easy to read display, versatile, simple circuit, low cost, and many other advantages, in line with the trend of development of electronic instrumentation, and has
4、 broad market prospects. it can on the year, month, week, day, hour, minute, second timing, but also the leap year compensation function; temperature as the information indispensable in daily life, relationships, millions of households. with the continuous improvement of peoples living standard, ele
5、ctronic calendar, or to gradually replace the traditional calendar, and more and more people are welcome.this design microcontroller to stc89c52 as the main chip temperature sensor ds18b20 temperature measurement, the clock chip ds1302 real-time clock function, and lcd12864 lcd screen displays real-
6、time clock, the current temperature and other information. can develop students basic knowledge of the dedicated chip bus technology, electronic circuits, microcontroller applications, especially in single-chip learning, has important practical significance.keywords: single chip computer; electronic
7、 calendar; temperature sensor; liquid crystal display; keyboard目 錄摘 要iabstractii1 前言12 總體設計23 系統(tǒng)硬件設計33.1 控制模塊33.1.1 stc89c52單片機的特性33.1.2單片機的引腳說明43.1.3內部資源簡介43.1.4 單片機的最小系統(tǒng)53.2 按鍵模塊63.2.1鍵盤設計需要解決的問題63.2.2鍵盤的結構形式73.2.3 鍵盤工作方式83.3測溫模塊93.4顯示模塊93.5實時時鐘模塊114 系統(tǒng)軟件設計134.1軟件總體設計134.2溫度模塊軟件設計144.3 ds1302流程圖15
8、4.4 鍵盤流程圖174.4 12864液晶顯示流程圖185 系統(tǒng)硬件與軟件的調試205.1硬件調試205.2軟件調試205.3軟、硬件綜合調試21結 論22參 考 文 獻23致 謝24附 錄 一25附 錄 二261 前言電子萬年歷的出現(xiàn)給人們的生活帶來的極大的方便,電子萬年歷的核心是單片機。近年來,電子技術的發(fā)展迅速,特別是大規(guī)模集成電路的出現(xiàn),hmos和chmos技術的越來越成熟化,單片機技術也越來越成熟,單片機技術的應用產品也已經走進了千家萬戶,人類生活發(fā)生了根本性的變革1。而隨著單片機的發(fā)展,電子萬年歷的制造也越來越小型化、更加智能化,電子萬年歷采用數(shù)字電路實現(xiàn)對時、分、秒以及數(shù)字的顯
9、示,成為了人們日常生活的必需品甚至已經遠遠超過老式的鐘表,給人們的生活、學習、工作帶來了極大方便。隨著人們生活水平的提高,智能產品將會越來越受到人們的歡迎,前景非常廣闊。而今天單片機已經滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有單片機的蹤跡。導彈的制造,計算機的網(wǎng)絡通訊,飛機上的各種各樣儀表,工業(yè)自動化的控制以及數(shù)據(jù)處理,使用頻繁的各式各樣智能ic卡,豪華轎車的安全系統(tǒng),攝像機、錄像機、全自動洗衣機的控制,以及程序控制玩具、電子寵物等,這些都是離不開單片機的1。伴隨著迅猛發(fā)展的科技,時間的飛逝,人類的觀測從太陽和鐘擺到現(xiàn)在電子鐘,人類從事的研究從未間斷過,紀錄也在不斷創(chuàng)新。dallas
10、公司推出的具有低功耗性能的實時時鐘電路ds1302,它可以對秒、分鐘、小時、星期、日、月份、年份進行準確計時,同時還具有補償閏年等好多種不同功能,ds1302使用很長時間也不會壞,誤差相對小。電子萬年歷采用了很直觀的數(shù)字化液晶顯示,可以同時顯示秒、分鐘、小時、星期、日、月份、年份和溫度等信息,還可以準確校準時間。本次設計采用stc89s52單片機作為mcu,只有很小的功耗,甚至能在3v這么低的低壓下工作,從而可選用35v的電壓作為供電電壓。從以上所述來看,電子萬年歷具有方便讀取、液晶顯示非常直觀、功能也很多樣化、價格低等許多優(yōu)點,順應了電子儀表未來的發(fā)展趨勢,市場前景非常廣闊 2。電子萬年歷及
11、電子溫度計具有精度高、顯示美觀的優(yōu)點,在商場、家庭、賓館、銀行、車站等場合都有應用。本課題擬以單片機為核心,采用專用萬年歷芯片和溫度檢測芯片,應用one-wire 總線技術,不僅能夠開發(fā)學生的各種專用芯片、總線技術、電子線路、單片機等基礎知識的應用能力,特別是對于單片機的學習,具有重要廣闊的實踐意義3。因此,單片機的學習、開發(fā)與應用可以對以后的工作、就業(yè)都會有很大的幫助,也可以造就一批熟悉計算機應用與智能化控制的工程師、甚至科學家以及相關的技術人員。2 總體設計本設計以stc89c52單片機為主控芯片,根據(jù)獨立按鍵設定日期、時間,系統(tǒng)采用溫度傳感器ds18b20進行溫度測量,利用時鐘芯片ds1
12、302實現(xiàn)實時時鐘功能,并在lcd12864液晶屏上顯示實時時鐘、當前溫度等信息。整個系統(tǒng)共由6部分組成:(1)stc89c52單片機作為主控芯片;(2)ds18b20溫度測量模塊;(3)lcd12864液晶屏顯示模塊;(4)ds1302實時時鐘模塊;(5)鍵盤模塊;(6)usb電源模塊;系統(tǒng)框圖如圖2.1所示。圖2.1 系統(tǒng)框圖3 系統(tǒng)硬件設計3.1 控制模塊本次設計采用的主控芯片為stc89c52單片機,stc89c52單片機是由stmicroelectronics公司生產的一種高性能、低電壓comos 8位單片機。片內含有8k的可反復擦寫的flash程序存儲器和512 bytes的隨機存
13、取數(shù)據(jù)存儲器。該型號的單片機采用atmel高密度非易失存儲器制造技術制造,與工業(yè)標準的mcs-51指令集和輸出管腳相兼容4。因為8位cpu和flash存儲器組合在單個芯片中,因此stc89c52是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性好、價格低廉的方案。圖3.1是stc89c52單片機的外形。圖3.1 stc89c52單片機的外形3.1.1 stc89c52單片機的特性:stc89c52單片機的時鐘頻率為11.0592mhz,有32個雙向i/o口,以及3個16位定時器/計數(shù)器,加上6個中斷源(2個串行中斷、2個外部中斷源、2個讀寫中斷口線)和3個加密位,有可編程uart串行通道
14、和低功耗的閑置和掉電模式,還有軟件設置睡眠和喚醒功能。3.1.2單片機的引腳說明:stc89c52單片機的外形結構為40條引腳雙列直插式封裝。其引腳排列如圖3.2所示。圖3.2 單片機的引腳(1)主電源引腳vcc(40腳):接+5 v電源正端。gnd(20腳):接+5 v電源地端。(2)外接晶體引腳xtal1(18腳、19腳):外部一端接到石英晶體。它作為一個反相放大器的輸入端存在于單片機的內部,這個片內振蕩器就是由這個放大器構成的。當外部時鐘被采用時,對于hmos單片機,該引腳是要接地的;對于chmos單片機,該引腳要作為外部振蕩信號的輸入端來使用。(3)輸入/輸出引腳p0口(3932腳):
15、p0.0p0.7統(tǒng)稱為p0口。在不接片外存儲器與不擴展i/o口時,可作為準雙向輸入/輸出口使用。在接擴展i/o口或接片外存儲器時,p0口作為地址總線和數(shù)據(jù)總線復用。p1口(18腳):p1.0p1.7統(tǒng)稱為p1口,可用作準雙向i/o口。對于52子系列單片機,p1.0與p1.1還具有第二功能:p1.0可用作定時器/計數(shù)器2的計數(shù)脈沖輸入端使用,p1.1可用作它的外部控制端使用。p2口(2128腳):p2.0p2.7統(tǒng)稱為p2口,一般用作準雙向i/o口;但在作為擴展i/o口或片外存儲器使用時,p2口用作為高8位地址總線使用。p3口(1017腳):p3.0p3.7統(tǒng)稱為p3口。除作為準雙向i/o口外,
16、還可以將每一位用于第二功能,而且p3口的每一條引腳均可獨立定義為第一功能的輸入輸出或第二功能。p3口的第二功能具體如下所示:p3.0(10腳)rxd:串行數(shù)據(jù)接收端。p3.1(11腳)txd:串行數(shù)據(jù)發(fā)送端。p3.2(12腳):外部中斷0請求端,低電平有效。p3.3(13腳): 外部中斷1請求端,低電平有效。p3.4(14腳)t0:定時器/計數(shù)器0外部事件計數(shù)輸入端。p3.5(15腳)t1:定時器/計數(shù)器1外部事件計數(shù)輸入端。p3.6(16腳):外部數(shù)據(jù)存儲器寫選通,低電平有效。p3.7(17腳): 外部數(shù)據(jù)存儲器讀選通,低電平有效5。3.1.3 內部資源簡介:單片機內部由cpu、ram、ro
17、m、t/c等組成,并帶有32個i/o口。cpu:由運算和控制邏輯組成,同時還包括中斷系統(tǒng)和部分外部特殊功能寄存器;ram:用以存放可以讀寫的數(shù)據(jù),如欲顯示的數(shù)據(jù)、最終結果以及運算的中間結果;rom:用以存放程序、表格和原始數(shù)據(jù);i/o口:四個8位并行i/o口,既可用作輸入,也可用作輸出;t/c:兩個定時/記數(shù)器,既可以工作在定時模式,也可以工作在記數(shù)模式。3.1.4 單片機的最小系統(tǒng)單片機的最小系統(tǒng)是智能化儀器的基礎,也是測控、監(jiān)控的重要組成部分。用最少的元件組成的單片機系統(tǒng)就是單片機的最小系統(tǒng)。對stc89c52單片機來說,最小系統(tǒng)包括:單片機本身、晶振電路、復位電路。當單片機開始工作時,首
18、先需要復位,使cpu處在確定的初始工作狀態(tài),并從這個初始狀態(tài)進行工作。因此,復位是對單片機的工作來說非常重要。但是單片機本身并不能完成復位功能,必須要配合相應的外部電路才能實現(xiàn)。圖3.4是stc89c52單片機的復位電路。本設計采用按鍵復位電路,在復位電容上并聯(lián)一個開關,當開關被按下時,電容會放電,與此同時復位引腳rst的電平也被拉高。由于電容的充電效應,高電平會被保持一段時間以使單片機有足夠的時間來復位。晶振電路也稱時鐘電路,單片機片內振蕩器電路就為反相放大器,xtal1和xtal2分別為反相放大器的輸入端和輸出端。石晶振蕩和陶瓷振蕩都能夠被采用,本設計采用晶振,c1和c2的值為30pf。如
19、果時鐘電路要采用外部時鐘驅動,xtal2應懸空,外部時鐘信號應該加在xtal1引腳上。此外晶振還有一個非常重要的參數(shù)負載電容值,如果選擇與負載電容值相等的并聯(lián)電容時,就會得到晶振標稱的諧振頻率7。圖3.3為stc89c52單片機的最小系統(tǒng)電路。圖3.3 單片機的最小系統(tǒng)3.2 按鍵模塊3.2.1鍵盤設計需要解決的問題 鍵盤是操作人員向系統(tǒng)提供操作命令及數(shù)據(jù)的外部設備,可分為編碼鍵盤和非編碼鍵盤兩種類型。編碼鍵盤能夠自動識別操作人員按下的鍵并產生相應的ascii碼或其他代碼,并傳送給cpu。編碼鍵盤的優(yōu)點是接口簡單、使用方便、響應速度快,但是其所用到的硬件電路非常復雜。非編碼鍵盤并不直接提供按鍵
20、的編碼信息,而是用較簡單的硬件電路和通過軟件編寫程序的方式來識別按鍵的位置信息。雖然非編碼鍵盤不如編碼鍵盤操作方便,但是非編碼鍵盤有一個顯而易見的優(yōu)點,就是它并不需要有復雜的硬件支持,從而簡化了外圍電路,進而在實踐中得到了廣泛的應用9。雖然鍵盤設計硬件較為簡單,但在設計時必須解決下述一些問題:(1)重鍵與連擊的處理在實際的按鍵操作中,若有意或無意中同時或先后按下兩個及兩個以上的按鍵,系統(tǒng)確定哪個鍵操作是有效的,完全取決設計者的意圖。如最先按下的鍵為系統(tǒng)的有效按鍵,或者把按下時間最長的按鍵作為有效按鍵,除此之外也可以將最后按下或釋放的按鍵作為系統(tǒng)的有效按鍵。由于單片機的局限性,通常認為單鍵按下為
21、有效按鍵,而多鍵同時按下時是無效按鍵。有時候操作人員按鍵動作不夠熟練,可能會出現(xiàn)按鍵一次但產生多次擊鍵以及重鍵的情況。為了消除重鍵與連擊的影響,編寫程序時可將按鍵的釋放作為按鍵的結束。等按鍵釋放后再轉去執(zhí)行相應的程序,以防止連擊的發(fā)生。(2)按鍵去抖鍵盤按下去后一般都會有抖動,即實際波形在按下和釋放的瞬間都會有抖動,按鍵的機械特性控制著抖動時間的長短,一般為510ms13。圖3.4為按鍵被按下時電壓的變化。圖3.4 按鍵被按下時電壓的變化我們在操作時對按鍵的動作決定了按鍵穩(wěn)定閉合時間的長短。如果按鍵時抖動則會引起一次按鍵被認為是輸入了多次即cpu多次響應指令。為了確保cpu對一次按鍵的動作僅處
22、理一次,必須要去除按鍵抖動。按鍵消抖,分為硬件去抖和軟件去抖兩種方法。硬件去抖是通過硬件電路消除按鍵過程中抖動的影響,是一種廣為采用的措施。當按鍵的數(shù)目比較少的時候可以用硬件的方法消除抖動。由于本設計按鍵較多,因此采用軟件消抖,即當檢測出按鍵閉合后會執(zhí)行一個延時程序,產生5ms10ms的延時,延時程序結束后再次檢測按鍵的狀態(tài),如果仍保持閉合狀態(tài),則確認為真正有鍵按下,反之認為產生抖動。當檢測到按鍵釋放后,也要給5ms10ms的延時,待后沿抖動消失后才能轉入該鍵的處理程序。3.2.2鍵盤的結構形式鍵盤的結構形式一般有兩種:獨立式鍵盤與矩陣式鍵盤。獨立式鍵盤的按鍵是相互獨立的,每個按鍵有一根線接到
23、對應的i/o口,每根與i/o口相連的線上的按鍵相互之間都不影響。獨立鍵盤與單片機相連接時,每個按鍵都需要單片機的一個i/o口。獨立鍵盤操作簡便,但需要較多的i/o口。如果一個系統(tǒng)使用較多的按鍵,則獨立鍵盤會占用過多的i/o口,為了節(jié)省i/o口線通常會使用矩陣鍵盤。矩陣式鍵盤又叫行列式鍵盤。用i/o口線組成行、列結構,鍵位設置在行列的交點上。在檢測時需要認為的通過i/o口送出低電平,檢測時先送一列低電平,其余的全為高電平,然后輪流檢測一次各行是否有低電平。若檢測到某一行為低電平,則便可以確認當前被按下的鍵是哪一行哪一列的,用同樣的方法可以檢測剩余的按鍵。雖然矩陣鍵盤操作較為復雜,但會節(jié)省大量的i
24、/o口資源??紤]到本設計要簡單實用并盡量降低成本,因此本設計采用三個獨立按鍵8。如圖3.5所示。圖3.5 獨立按鍵電路3.2.3 鍵盤工作方式鍵盤的工作方式應根據(jù)實際應用系統(tǒng)中cpu的工作狀態(tài)來選擇,其選取的原則是既要保證 cpu 能及時響應按鍵操作,又不過多地占用 cpu 的工作時間。通常,鍵盤的工作方式有兩種,即循環(huán)掃描和中斷掃描。(1)循環(huán)掃描方式循環(huán)掃描方式是在主程序中插入鍵盤掃描子程序,鍵盤掃描子程序會在主程序執(zhí)行完一次時就對鍵盤進行檢測。若沒有鍵按下,則跳過按鍵識別,接著順序執(zhí)行其它程序;若檢測到有按鍵被按下,則系統(tǒng)會執(zhí)行鍵盤檢測子程序來識別按鍵,獲得按鍵的編碼值。然后系統(tǒng)根據(jù)按鍵
25、編碼值來進行相應的處理,處理完畢后再去執(zhí)行主程序,依次循環(huán)。(2)中斷工作方式采用掃描工作方式時,雖然能夠響應按鍵輸入的數(shù)據(jù)或命令,但是該方式不管是否有鍵盤按下,cpu 總要不斷的掃描鍵盤;而當計算機在工作時,并不需要經常有按鍵輸入,因此cpu 常??諕呙?。為提高cpu 的工作效率,可以采用中斷工作方式,只有鍵盤中有按鍵被按下時發(fā)中斷請求,cpu 響應中斷請求,隨后轉中斷服務程序,進行鍵盤掃描并識別鍵碼。鍵盤中沒有鍵被按下時,cpu可以去做其他的事情。3.3測溫模塊測量溫度是本設計的重要組成部分,只有采集到符合設計要求的準確的溫度,才能完成溫度的測量,實現(xiàn)設計基本要求。本設計通過熱敏電阻與ds
26、18b20進行對比,發(fā)現(xiàn)ds18b20具有很多熱敏電阻所不具有的特性與優(yōu)點,更符合設計要求且操作相對簡單,最終采用ds18b20溫度傳感器。ds18b20是新一代的“一線總線”數(shù)字化溫度傳感器,具有以下特性:(1)獨特的單線接口僅需一個端口引腳進行通訊;(2)測溫范圍-55+125,誤差為0.5以內;(3)溫度轉換時間為200ms,以9位數(shù)字量輸出;(4)不需要外部器件,驅動電路極其簡單;(5)零待機功耗,可通過數(shù)據(jù)線供電。ds18b20具有三個引腳,1腳為gnd,接電源負極;2腳為dq,與i/o口相連,與單片機通信,用于數(shù)據(jù)輸入輸出;3腳為vdd,接電源正極。驅動電路如圖3.6所示。圖3.6
27、 ds18b20驅動電路3.4顯示模塊本設計通過lcd1602與lcd12864的對比發(fā)現(xiàn)lcd12864具有很多l(xiāng)cd1602不具有的優(yōu)點,比如可以顯示漢字等等。所以最后確定顯示模塊采用lcd12864顯示用于顯示當前溫度、當前時鐘等信息。lcd12864的驅動電路較為簡單,如下圖3.7所示。本設計采用并行模式,2、3引腳之間與電位器相連用于調整顯示屏背光,使顯示效果更好。圖3.7 lcd12864的引腳lcd12864各引腳說明如下表3.1所示:引腳號引腳名稱方向功能說明1vss-lcd12864的電源地2vdd-lcd12864的電源正極3v0-lcd12864調整背光的電壓輸入端4rs
28、(cs)h/l串行模式為片選端;并行模式為數(shù)據(jù)/指令選擇端 5r/w(sid)h/l串行模式為數(shù)據(jù)口;并行讀/寫選擇信號端6e(clk)h/l串行模式為同步時鐘;并行模式為使能信號7db0h/l數(shù)據(jù)08db1h/l數(shù)據(jù)19db2h/l數(shù)據(jù)210db3h/l數(shù)據(jù)311db4h/l數(shù)據(jù)412db5h/l數(shù)據(jù)513db6h/l數(shù)據(jù)614db7h/l數(shù)據(jù)715psbh/l串/并行接口選擇端口16nc空腳17/reth/l復位 18nc空腳19led_a-背光源的正極(led+5v)20led_k-背光源的負極(led-ov)表3.1 12864各管腳說明3.5實時時鐘模塊本設計采用ds1302慢速充電
29、時鐘芯片,它通過一個串行接口與單片機進行通信,與時鐘/ram通信只需要三根線:(1) sclk(串行時鐘),(2)i/o(數(shù)據(jù)線),(3)rst (復位)。每次可以只發(fā)一個字節(jié)的數(shù)據(jù),也可一次發(fā)送多達31字節(jié)的數(shù)據(jù)給時鐘/ram或從其中送出。實時時鐘/日歷提供年、月、周、日、時、分、秒等信息。還可自動進行月末日期調整、閏年校正。時鐘可以采用帶am/pm的 12小時格式或24小時格式運行。ds1302設計可在非常低的功耗下工作,這也是它的一大特點。它的主要特性為:(1)實時時鐘,提供年、月、周、日、時、分、秒等信息,還可進行自動整定;(2)具有31 8 ram,可用來暫存數(shù)據(jù);(3)僅需三條線與
30、單片機相連;(4)工作電壓范圍為2.5-5.5v;(5)功耗極低,工作電壓低于2.5v時,電流小于300na;(6)與ttl電平兼容 (vcc=5v );(7)可選的工業(yè)溫度范圍-40至+85。實際應用電路如圖3.8所示。圖3.8 ds1302工作電路ds1302外接32.768k晶振,為芯片提供計時脈沖。vcc外接3v直流電源,vcc2外接5v直流電源。當vcc vcc2+0.2v時,由vcc向ds1302供電,當vcc vcc2時,由vcc2向ds1302供電。ds1302與單片機的連接僅需要 3條線:ce引腳、sclk 串行時鐘引腳、i/o串行數(shù)據(jù)引腳,并外接上拉電阻。ds1302讀/寫
31、時序圖如下圖3.9和3.10所示:3.9 單字節(jié)讀3.10 單字節(jié)寫4 系統(tǒng)軟件設計4.1軟件總體設計在進行軟件的詳細設計之前應該首先站在全局高度上進行總體設計,選擇合理恰當?shù)能浖Y構,從而開發(fā)出高質量的軟件系統(tǒng)。一個高質量的軟件系統(tǒng)應具有以下特點:(1)軟件結構清晰、流程合理。根據(jù)軟件功能要求,將系統(tǒng)軟件分成多個模塊,每個模塊完成一個其中的某一個功能,最后把這些模塊連接起來。(2)為了提高系統(tǒng)軟件設計的效率,應該首先對方案進行簡明直觀的描述,在編寫程序之前,應當繪制出程序流程圖。(3)程序設計結構化,各功能程序模塊化,編為子程序的形式。這樣既便于調試、鏈接,又便于移植、修改。(4)要合理分配
32、系統(tǒng)資源,包括i/o口、rom、ram、定時數(shù)器以及中斷等資源。(5)在程序的合適的位置寫上功能注釋,以增強程序的可讀性。(6)增強軟件的抗干擾能力,提高軟件的可靠性9。通過各模塊的確定從而來進一步的設計軟件。運用計算機對各模塊進行仿真測試逐步實現(xiàn)lcd電子萬年歷的各項性能指標。lcd電子萬年歷的軟件設計包括時鐘顯示程序、獨立鍵盤程序、溫度采集程序、lcd12864顯示程序。在程序設計中采用模塊化設計思想,能使程序可讀性加強,而且編寫時很方便,將要實現(xiàn)的功能分成幾部分,由于某些功能使用不僅僅只有一次,將它編成一個子程序,既可隨時隨意的多次調用已經編寫好的子程序,而且修改時也不會影響其他程序的編
33、寫與運行10。系統(tǒng)主程序框圖如圖4.1所示。圖4.1 系統(tǒng)的主程序流程圖編寫程序時要以此框圖為依據(jù),首先初始化程序,然后檢測是否有按鍵按下,如果有鍵按下,就進入日期、時間調整模式,然后根據(jù)需要調整日期、時間,如果沒有鍵按下,則跳過該環(huán)節(jié),直接讀取ds1302中的日期、時間、溫度等數(shù)據(jù)并顯示在lcd12864的液晶屏幕上。4.2溫度模塊軟件設計溫度模塊程序框圖如下4.2圖所示:圖4.2 ds18b20流程圖4.3 ds1302流程圖時鐘模塊程序的編寫主要分為兩部分,陽歷子程序的編寫和修改日期、時間子程序的編寫,這樣可以分出層次,條理清晰,也便于編寫程序,減少錯誤的出現(xiàn)。陽歷程序框圖如下4.3圖所
34、示。圖4.3 陽歷程序流程圖 首先開始子程序并初始化,然后設置陽歷天數(shù)為30天,看看當前天數(shù)是否大于30,不到30天則顯示為號數(shù),如果超過30天,則月加一,總天數(shù)減30,剩下的天數(shù)極為號數(shù)。修改日期、時間程序框圖如下圖4.4所示。圖4.4 修改日期、時間流程圖4.4 鍵盤流程圖鍵盤模塊程序框圖如下4.5圖所示。yyynn開始有鍵閉合?延時去抖有鍵閉合?掃描按鍵按鍵釋放?返回保存鍵值n圖4.5鍵盤程序流程圖4.4 12864液晶顯示流程圖液晶顯示模塊程序框圖如下4.6圖所示。圖4.6 12864液晶顯示流程圖5 系統(tǒng)硬件與軟件的調試5.1硬件調試排除故障是硬件調試工作的主要任務,其中主要包括焊接
35、工藝上的工藝性故障和解決設計方案上的缺陷。畢業(yè)設計使用的硬件設備為學習單片機是使用的cp51學習板,再在板子上焊接一個ds1302時鐘芯片,其它器件板子上已有。電子萬年歷的電路系統(tǒng)相對來說較大,其間涉及到的部件也比較多,所以連接時檢查硬件器件及導線是必不可少的,以免出現(xiàn)錯誤,帶來不必要的麻煩。我在調試電子萬年歷的過程中遇到了這些問題?;叵胍幌逻@些問題在設計的時候只要多加思考是完全可以避免的,主要問題如下:1一開始調試的時候出現(xiàn)lcd液晶顯示屏幕不亮的問題,原因在于jt2b跳線器短路帽沒有置位到上端。解決的辦法:將jt2b跳線器短路帽置位到上端去。lcd不亮的現(xiàn)象便得到了解決。2在修改電子萬年歷
36、的日期、時間時,有時會出現(xiàn)lcd亂碼的現(xiàn)象。后來檢查發(fā)現(xiàn)是沒有復位。解決:后來通過儀器測試發(fā)現(xiàn),在修改日期、時間時按下復位按鍵,就可以重新調整時間了。5.2軟件調試液晶顯示電路、獨立按鍵電路、ds18b20和ds1302傳感器電路是本次硬件電路設計的主要部分。要檢查各器件的性能是否符合要求在搭接實物之前就要進行好。如芯片的否性能是否完好,導線能否導通等。這樣硬件調試中不必要的麻煩就大大減少了。對每一電路進行搭接時要按照一定的順序逐步進行。這樣可以避免由于要連接很多導線,某一部分電路出現(xiàn)多連接或少連接的現(xiàn)象。電子萬年歷是功能多樣化的數(shù)字化設備,能夠觀察當前日期(陽歷)、時間、星期以及溫度等信息。
37、電子萬年歷功能的多樣化,決定了它的程序相對也較為復雜,所以在調試和編寫程序時出現(xiàn)了不少問題。最后通過對各模塊子程序的多次修改,最終解決了軟件的問題。調試軟件的過程中遇到的問題主要有一下幾個:1在程序下載已后,lcd顯示屏出現(xiàn)不亮的問題。解決的辦法:對調用的延時子程序逐步進行修改,可以解決這個問題。(2)調用子程序時出現(xiàn)不能調用的現(xiàn)象。解決的辦法:檢查未對子程序進行聲明,在主程序中先對子程序聲明一下再調用。5.3軟、硬件綜合調試一個完整的電子萬年歷系統(tǒng)的設計是一個比較復雜的過程。在調試當中要靜下心來,一步一步來,不要急于求成,特別是剛開始還不熟練一定要按照一定的步驟分步執(zhí)行。本次課程設計分以下三
38、步來完成:(1)硬件電路調試。用某種信號來激勵電路,通過檢查電路能否得到預期的響應來觀察電路是否正常運行。通常采用的方法是通過編制一些簡單的調試程序對相應各硬件單元電路的功能分別進行獨立的檢查。(2)軟件調試。首先要驗證子程序正確與否,再將這些子程序連接起來整體調試。一步步的發(fā)現(xiàn)錯誤并及時改正。(3)軟硬件綜合調試。檢查硬件電路與軟件編程是匹配與否。經綜合調試,最后顯示結果如下圖5.1所示:圖5.1 電子萬年歷12864最終顯示結果結 論這次畢業(yè)設計我按照基本要求完成了電子萬年歷的設計。但從結果來看本次設計還存在著一定的缺陷。將所顯示的結果與電壓表測得的結果相比較可以發(fā)現(xiàn)本次設計存在一些誤差。
39、為了提高測量的精度,在溫度采集方面,就要減少隨機誤差。由于測量過程中一系列隨機因素的影響會導致隨機誤差的存在。就一次測量而言,隨機誤差沒有統(tǒng)一的規(guī)律,但在多次測量中隨機誤差服從統(tǒng)計規(guī)律。為了得到精確的結果,我們可以通過多次測量取平均值的方法。在軟件編程中讓采樣的每個通道采集五次,在五次采樣取平均值后再將算得的結果顯示出來。這樣,就會使溫度的顯示值更精確。單片機應用技術發(fā)展迅速,縱觀我們現(xiàn)在生活的各個領域,導彈的制造,計算機的網(wǎng)絡通訊,飛機上的各種各樣儀表,工業(yè)自動化的控制以及數(shù)據(jù)處理,使用頻繁的各式各樣智能ic卡,豪華轎車的安全系統(tǒng),攝像機、錄像機、全自動洗衣機的控制,以及程序控制玩具、電子寵
40、物等,這些都是離不開單片機的。單片機是集cpu 、ram 、rom 、定時、計數(shù)和多種接口于一體的微型控制器。它體積小,成本低,功能強大,廣泛應用于智能產業(yè)和工業(yè)中的自動化生產上。這次畢業(yè)設計通過自己親身對單片機的學習與應用,從而達到學習、設計、開發(fā)軟、硬的能力。電子萬年歷作為電子類小設計不僅是市場上的寵兒,也是單片機的典型應用之一。因為它有很好的開放性和開發(fā)性,因此對作者的要求比較高,不僅考察了對單片機的掌握能力,更加強調了對單片機擴展的應用。而且在操作的設計上要力求簡潔,功能上盡量齊全,顯示界面也要出色。萬年歷還可以增加防御報警功能,這樣就更加完善了萬年歷的功能。經過多次的反復測試與分析,
41、可以對電路的原理及功能更加熟悉,同時提高了設計能力與及對電路的分析能力。同時在軟件的編程方面得到提高,編程能力得到加強,并且鞏固了所學的知識。參 考 文 獻1 孫育才.mcs51系列單片微型計算機及其應用第四版南m .南京:東南大學出版社,2004.2 應錕.基于單片機的電子萬年歷設計j.中國科技博覽,2011,(15):1-33 李友善. 自動控制原理m. 北京:國防工業(yè)出版社, 2009:222-2264 楊子文. 單片機原理及應用.m西安電子科技大學出版社,2006.5 胡健. 單片機原理機接口技術實踐教程m.機械工業(yè)出版社,2004.6 張專成,趙懷勛. 單片機測控系統(tǒng)中的監(jiān)視定時器.
42、武警技術學院學報,1997.7 何克忠,李偉.計算機控制系統(tǒng)m.北京:清華大學出版社,1998.8 劉希民,張勇.控制儀表及系統(tǒng)m .北京:國防工業(yè)出版社,2009.9 譚浩強.c程序設計第三版m .北京:清華大學出版社,2007.10 華成英,童詩白.模擬電子技術基礎第四版m.北京:高等教育出版社,2006.11 閻石.數(shù)字電子技術基礎m .高等教育出版社,1998.12 李伍元.淺談單片機非編碼鍵盤工作原理及設計方法j. 科技情報開發(fā)與經濟, 2009, 19(2): 110-11113 王威.hcs12微控制器原理及應用m.北京:北京航空航天大學出版社,2007.14 maxim.new
43、releases data book,1996.15 atmel. microcontroller data book,2002.致 謝衷心感謝我的導師王中華老師,本次設計是在導師的精心指導和悉心關懷下完成的,論文的每一部分工作和成果都是導師的智慧結晶與辛勤的汗水。從論文的選題論證、研究工作到論文的撰寫,都是在他精心指導下完成的。他在學術上的指點及對我的關懷不僅為研究工作及論文的撰寫提供了很大幫助,同時也時刻激勵著我,使我能順利完成論文工作。在此謹向王老師表示最誠摯的謝意!同時,也要感謝設計完成期間幫助過我的各位同學特別是實驗室的各位同學給予我的極大幫助,我通過他們學習到了理論知識以及具體的實
44、踐經驗,受益匪淺,可以說本次設計的完成和他們的幫助息息相關。另外,也對無私的傳授我專業(yè)知識的每一個濟南大學老師表示衷心的感謝,對四年來在學習生活中幫助我的每位同學、朋友表示感謝。對評閱本論文以及參加答辯的每一個老師和同學都表示感謝。最后,我要感謝我的父母及家人,感謝他們多年對我的關心,對我的理解,是他們的支持讓我順利完成了我的學業(yè)??傊?,這學期的畢業(yè)設計真的讓我成長很多,我也要盡可能的在今后的工作中多學知識,努力使自己不斷完善。謹以文獻給所有給予我關心和幫助的人們,并向他們表示衷心的感謝!附 錄 一電子萬年歷電路圖:附 錄 二電子萬年歷程序:#include#include#define uc
45、har unsigned char #define uint unsigned int#define lcd_data p0sbit rst=p20;sbit io=p35;sbit sck=p34;sbit lcd_rs=p32; /數(shù)據(jù)/命令選擇輸入 sbit lcd_rw=p36; /液晶讀/寫控制sbit lcd_en=p33; /液晶使能控制sbit lcd_psb=p37; /并/串方式控制sbit s1=p22;sbit s2=p23;sbit s3=p24;sbit dq=p21;uchar t,exist,flash,wshi,wge,shif,baif;uint temp;
46、/溫度變量float ftemp;uchar year,month,day,week,hour,minute,second,nian,yue,ri,zhou,shi,fen,miao,flag,s1num;uchar code dis=0,1,2,3,4,5,6,7,8,9,:,-,.;uchar code dis1=張華虎$*$萬年歷;uchar code dis2=溫度:;void delayms(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void delay(uint t)while(t-);void write_cmd(uchar c
47、md) lcd_rs = 0; lcd_rw = 0; lcd_en = 0; p0=cmd; delayms(5); lcd_en = 1; delayms(5); lcd_en = 0; void write_data(dat) lcd_rs = 1; lcd_rw = 0; lcd_en = 0; p0=dat; delayms(5); lcd_en = 1; delayms(5); lcd_en = 0; void lcd_pos(uchar x,uchar y)uchar pos;if(x=0)x=0x80;else if(x=1)x=0x90;else if(x=2)x=0x88;
48、else if(x=3)x=0x98;pos=x+y;write_cmd(pos);void init_12864()delayms(10);/12864上電后,需要等一會,才能進行操作lcd_psb=1;/并口方式write_cmd(0x30);/基本指令操作delayms(5);write_cmd(0x0c);/顯示開,關光標delayms(5);write_cmd(0x01);/清除lcd的顯示內容delayms(5);/*wendu*/uchar init_18b20()dq=1;delay(8);dq=0;delay(80); /大約700usdq=1;delay(8);exist=
49、dq;delay(10);return(exist);void write_18b20byte(uchar dat)uchar i;for(i=0;i=1;delay(4);uchar read_18b20byte()uchar i,value;for(i=0;i=1;dq=1;/釋放總線,為18b20輸出電平做準備if(dq)value|=0x80;delay(4);return value;void read_temperature()uchar tl,th;init_18b20();if(exist=1)flash=1;elseflash=0;write_18b20byte(0xcc);
50、 /跳過romwrite_18b20byte(0x44); /啟動測溫delay(300); init_18b20();write_18b20byte(0xcc); /跳過romwrite_18b20byte(0xbe);/讀暫存存儲器tl=read_18b20byte();th=read_18b20byte();temp=th;temp=8; /兩個字節(jié)組合為1個字 temp=temp|tl; ftemp=temp*0.0625; /溫度在寄存器中為12位 分辨率位0.0625void wdisplay()lcd_pos(1,3);write_data(diswshi);write_data
51、(diswge);write_data(dis12);write_data(disshif);write_data(disbaif);write_data(0xa1);write_data(0xe6);/*1302*/void write_ds1302_byte(uchar dat)uchar i;for(i=0;i1;sck=1;uchar read_ds1302_byte()uchar i,value;for(i=0;i1;sck=0;if(io)value=value|0x80;sck=1;return value;void write_ds1302(uchar add,uchar dat)rst=0;_nop_();sck=0;_nop_();rst=1;_nop_();write_ds1302_byte(add);write_ds1302_byte(dat);rst=0;_nop_();io=1;sck=1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 航空航天采購合同協(xié)議書
- 沈陽理工大學《C++程序設計》2022-2023學年期末試卷
- 2024居間合同樣本
- 2024試用期內是否要簽合同
- 2024中外合資經營企業(yè)合同制造廠
- 2024家裝裝修的合同范本
- 糖尿病蛋白質的攝入
- 4人合伙人協(xié)議書(2篇)
- 租賃協(xié)議書(2篇)
- 關于銀行實習日記模板匯編六篇
- “三高”講座-課件
- 《杞人憂天》創(chuàng)優(yōu)公開課一等獎課件
- 國家農業(yè)綜合開發(fā)高標準農田檢驗批表格
- 公司項目安全管理責任矩陣
- 漳州發(fā)展:擬實施股權轉讓涉及漳州晟輝房地產有限公司股東全部權益價值評估報告
- 數(shù)據(jù)中心基礎設施管理系統(tǒng)DCIM整體方案
- 《夸父逐日》-完整版PPT
- 高一英語外研版(2019)選擇性必修第一冊課文翻譯
- 小學三年級上冊數(shù)學期中復習課件精品ppt
- 新版新四年級數(shù)學上冊期中知識點詳解含典型題ppt
- 招聘求職簡歷制作表格模板可編輯下載 精品簡歷模板 簡歷封面 38
評論
0/150
提交評論