




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Good is good, but better carries it.精益求精,善益求善。萬年歷的C實現設計課設萬年歷的C實現設計課設 萬年歷的C實現設計 120812班 呂相相摘 要古人依靠日冕、漏刻記錄時間,而隨著現代科技的發展,電子萬年歷已經成為日漸流行的日常計時工具。本文研究的萬年歷系統擬用STC89C51單片機控制,以DS1302時鐘芯片計時、1602液晶屏顯示。系統主要由單片機控制電路,顯示電路以及校正電路三個模塊組成。本文闡述了系統的硬件工作原理,所應用的各個接口模塊的功能以及其工作過程,論證了設計方案理論的可行性。系統程序采用C語言編寫,經Keil軟件進行調試后在Proteu
2、s軟件中進行仿真測試,可以顯示年、月、日、星期、時、分、秒,并具有校準功能和與即時時間同步的功能。實驗結果表明此萬年歷實現后具有讀取方便、顯示直觀、功能多樣、電路簡潔等諸多優點,符合電子儀器儀表的發展趨勢,具有廣闊的市場前景。關鍵詞:萬年歷 單片機 DS1302 lcd1602 目 錄第一章 前言01.1引言(課題研究的意義)01.2本課題主要的研究工作01.2.1研究內容01.3本章小結1第二章 單片機的概述22.1單片機的定義和特點22.1.1單片機的定義2單片機是以一個大規模集成電路為主組成的微型計算機,在一個芯片內含有計算機的基本功能部件:中央處理器CPU、存儲器和I/O接口,CPU通
3、過內部的總線和存儲器、I/O接口相連。22.1.2單片機的特點22.2單片機的發展現狀和發展趨勢22.3編程語言的選擇32.4本章小結3第三章 設計要求和方案論證43.1 設計要求43.2 單片機芯片的選擇方案和論證43.3 顯示模塊選擇方案和論證43.4時鐘芯片的選擇方案和論證53.5 電路設計最終方案決定53.6本章小結5第四章 系統的硬件設計與實現64.1 電路設計框圖64.2 系統硬件概述64.3 主要單元電路的設計64.3.1 STC89C52單片機簡介6P3.0P3.7:P3口是一個具有內部上拉電阻的8位雙向I/O口。作為輸出口,每位能驅動4個TTL邏輯電平。P3口亦作為STC89
4、C52特殊功能(第二功能)使用。在flash編程和校驗時,P3口也接收一些控制信號。84.3.2 單片機主控制模塊的設計84.3.3 時鐘電路模塊的設計104.3.4獨立式鍵盤設計12 顯示模塊的設計124.4本章小結14第五章 系統的軟件設計155.1程序流程圖155.1.1 系統總流程圖155.1.2 DS1302時鐘程序流程圖155.1.3 LCD顯示程序流程圖16圖5.3 LCD顯示程序流程圖175.2程序的設計175.2.1 DS1302讀寫程序175.2.2液晶顯示程序185.3本章小結18第六章 結束語19參考文獻20附錄一:系統原理圖21附錄二:系統程序223636第一章 前言
5、1.1引言(課題研究的意義)萬年歷是我國古代傳說中最古老的一部太陽歷。為紀念歷法編撰者萬年的功績,便將這部歷法命名為“萬年歷”。而現在所使用的萬年歷,實際上就是記錄一定時間范圍內(比如100年或更多)的具體陽歷或陰歷的日期的年歷,方便有需要的人查詢使用,與原始歷法并無直接聯系。而隨著微電子技術的高速發展,人類用于計時的工具也在不斷發展更新,單片機技術的出現使得萬年歷有了新的發展方向。單片機以其體積小、功能全、性價比高等諸多優點,在工業控制、家用電器、通信設備、信息處理、尖端武器等各種測控領域的應用中獨占鰲頭,單片機開發技術已成為電子信息、電氣、通信、自動化、機電一體化等專業技術人員必須掌握的技
6、術。目前世界上單片機年產量已達十多億片,通常是當年微處理器產量的4-5倍以上。用最少的芯片就能實現最強大的功能,這是將來電子產品的主流方向,它將無可置疑地一步步取代其它同類產品,其數量之大和應用面之廣,是其它任何類型的計算機所無法比擬的。以基于單片機的萬年歷作為設計的課題,因為它有很好的開放性和可發揮性,對作者的要求比較高,不僅考察了對單片機的掌握能力而且強調了對單片機擴展的應用。另外液晶顯示的萬年歷已經越來越流行,特別適合在家庭居室、辦公室、大廳、會議室、車站和廣場等地方使用,它具有顯示清晰直觀、走時準確、可以進行夜視等功能,并且還可以擴展出其它多種功能。所以,電子萬年歷作為設計課題很有價值
7、。1.2本課題主要的研究工作本論文主要研究基于單片機的萬年歷設計。當程序執行后,LCD顯示即時時間、年月日、星期。設置3個操作鍵:KEY1,設置鍵;KEY2,上調鍵;KEY3,下調鍵。本設計的主要內容:1、了解單片機技術的發展現狀,熟悉萬年歷各模塊的工作原理;2、選擇適當的芯片和元器件,確定系統電路,繪制電路原理圖,尤其是各接口電路;3、熟悉單片機使用方法和C語言的編程規則,編寫出相應模塊的應用程序。1.2.1研究內容設計目標:使基于STC89C52單片機的萬年歷實現以下三個功能:1、具有年、月、日、星期、時、分、秒等功能;2、具備年、月、日、星期、時、分、秒校準功能;3、具有與即時時間同步的
8、功能。1.2.2論文章節安排:第一章:前言是介紹了基于STC89C52單片機的萬年歷研究意義,重點闡述了本課題的研究內容和研究工作。第二章:單片機的概述主要闡述了單片機系統的定義以及單片機系統的發展現狀和發展趨勢。因為只有對單片機有了更深入的了解,才能設計出更好的單片機控制系統。本章的結尾是對單片機C語言編程的介紹。第三章:主要介紹了設計要求和課題器件選擇的論證方案。第四章:硬件基礎中主要描述了萬年歷的各個模塊的硬件設計方案,并結合各個元器件和相應的硬件原理圖進行分析,最后展示為了實現研究目標所需要的全部硬件基礎。第五章:軟件基礎主要羅列了實現萬年歷各個功能的C語言程序的流程圖,并分別對其進行
9、了解釋和分析,最后把各個C語言子程序在巧妙結合在一起,共同控制整個系統,也就形成了實現研究目標所需要的所有軟件基礎。第六章:結束語主要是對本次實驗研究的總結,提出本次實驗的不足之處以及相應的改進方法,以便后人繼續深入研究。1.3本章小結本章是論文的前言部分,著重介紹了萬年歷的研究意義。然后介紹了本文所要解決的實際問題及意義,以及要電子萬年歷系統要實現的功能和方法。最后簡單地描述了本論文的整體框架和論文章節的安排。第二章 單片機的概述目前單片機滲透到了我們生活的各個領域,幾乎很難找到哪個領域沒有單片機的蹤跡。我們常用的數碼產品,如MP3、MP4、手機、數碼相機、錄像機、攝像機,導彈的導航裝置,飛
10、機上各種儀表的控制,計算機的網絡通訊與數據傳輸,工業自動化過程的實時控制和數據處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統,空調、冰箱、全自動洗衣機的控制,以及遠程控制玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領域中的機器人、智能儀表、醫療器械了。單片機具有結構簡單、控制功能強、可靠性高、體積小、價格低等優點,因而在許多行業都得到了廣泛應用,并且在諸多領域中都發揮了無可比擬的巨大作用。2.1單片機的定義和特點2.1.1單片機的定義 單片機是以一個大規模集成電路為主組成的微型計算機,在一個芯片內含有計算機的基本功能部件:中央處理器CPU、存儲器和I/O接口,CPU通過
11、內部的總線和存儲器、I/O接口相連。2.1.2單片機的特點單片機以其卓越的性能,得到了廣泛的應用,已深入到各個領域。單片機應用在控制領域中,具有如下特點:單片機具有集成度高,通用性好,功能強,特別是體積小,重量輕,耗能低,成本低,可靠性高,種類多,型號全,抗干擾能力強和使用方便等獨特優點,在數字、智能化方面有廣泛的用途。最重要的是可以采用C語言開發環境,具有友好的人機互交環境。大多數單片機都提供基于C語言開發平臺,并提供大量的函數供使用,這使產品的開發周期、代碼可讀性、可移植性都大為提高。2.2單片機的發展現狀和發展趨勢單片機的發展趨勢:低功耗CMOS化;微型單片化;主流與多品種共存;單片機從
12、8位、16位到32位,數不勝數,應有盡有,有與主流C51系列兼容的,也有不兼容的,但它們各具特色,互成互補,為單片機的應用提供廣闊的天地。 縱觀單片機的發展過程,可以預示單片機的發展趨勢,大致有:1)低功耗CMOS化 MCS-51系列的8051推出時的功耗達630mW,而現在的單片機普遍都在100mW左右,隨著對單片機功耗要求越來越低,現在的各個單片機制造商基本都采用了CMOS(互補金屬氧化物半導體工藝)。像80C51就采用了HMOS(即高密度金屬氧化物半導體工藝)和CHMOS(互補高密度金屬氧化物半導體工藝)。2)微型單片化 現在的產品普遍要求體積小、重量輕,這就要求單片機除了功能強和功耗低
13、外,還要求其體積要小。現在的許多單片機都具有多種封裝形式,其中SMD(表面封裝)越來越受歡迎,使得由單片機構成的系統正朝微型化方向發展。3)主流與多品種共存 現在雖然單片機的品種繁多,各具特色,但仍以80C51為核心的單片機占主流,兼容其結構和指令系統的有PHILIPS公司的產品,ATMEL公司的產品和中國的STC單片機。所以C8051為核心的單片機占據了半壁江山。而Microchip公司的PIC精簡指令集(RISC)也有著強勁的發展勢頭,中國臺灣的HOLTEK公司近年的單片機產量與日俱增,與其低價質優的優勢,占據一定的市場分額。此外還有MOTOROLA公司的產品,日本幾大公司的專用單片機。在
14、一定的時期內,這種情形將得以延續,將不存在某個單片機一統天下的壟斷局面,走的是依存互補,相輔相成、共同發展的道路。2.3編程語言的選擇在1972年,美國貝爾實驗室的D.M.Ritchie在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。在眾多的程序設計語言中,C語言簡潔緊湊,語言表達能力強,其結構化的流程控制有助于編制結構良好的程序,。C語言程序經編譯后生成的目標程序代碼效率高,幾乎可以與匯編語言媲美。C語言既具備高級語言使用方便、接近自然語言和數學語言的特性,同時也具備對計算機硬件系統的良好操縱和控制能力,用C語言開發產品可以大大縮短開發周
15、期。C語言可移植性好,一個C語言源程序可以不做改動,或者稍加改動,就可以從一種型號的計算機移轉到另外一種型號的計算機上編譯運行。因此,C語言被廣泛應用于各類系統軟件和應用軟件的開發。所以本系統以C語言進行軟件設計,增加了程序的可讀性和可移植性,便于擴展和更改,軟件的設計采用模塊化結構,使程序設計的邏輯關系更加簡潔了。2.4本章小結本章主要介紹了單片機的定義和特點,重點描述了單片機發展現狀和未來的發展趨勢,最后簡單地介紹了選擇的編程語言。第三章 設計要求和方案論證3.1 設計要求1、 具備在液晶上顯示年、月、日、星期、時、分、秒的功能;2、 具備年、月、日、星期、時、分、秒校準功能;3、 具有與
16、即時時間同步的功能;3.2 單片機芯片的選擇方案和論證方案一:采用AT89S51芯片作為硬件核心,內部具有4KB ROM 存儲空間,能于3V的超低壓工作,而且與MCS-51系列單片機完全兼容,但是運用于電路設計中時由于不具備ISP在線編程技術,所以在對電路進行調試時,由于程序的錯誤修改或對程序的新增功能需要燒入程序時,對芯片的多次拔插會對芯片造成一定的損壞。方案二:采用STC89C52芯片,STC89C52是一種低功耗、高性能的8位CMOS微控制器,具有8K的可編程Flash存儲器。同樣具有AT89S51的功能,且具有在線編程可擦除技術,當對電路進行調試時,由于程序的錯誤修改或對程序的新增功能
17、需要燒入程序時,不需要對芯片多次拔插,所以不會對芯片造成損壞,因此選擇采用STC89C52作為主控制系統核心。3.3 顯示模塊選擇方案和論證方案一:采用LED數碼管動態掃描,LED數碼管價格適中,對于顯示數字合適,采用動態掃描法與單片機連接時,雖然占用的單片機口線少,但連線還需要花費一點時間,所以也不用此種作為顯示。方案二:采用點陣式數碼管顯示,點陣式數碼管是由八行八列的發光二極管組成,對于顯示文字比較適合,若采用在顯示數字顯得太浪費,且價格也相對較高,所以在此也不用此種作為顯示。方案三:采用1602液晶顯示屏,該液晶顯示屏的顯示功能強大,內置192種字符,可顯示大量符號、數字,清晰可見,而且
18、功率消耗小壽命長抗干擾能力強。所以在此設計中采用1602液晶顯示屏。3.4時鐘芯片的選擇方案和論證方案一:直接采用單片機定時計數器提供秒信號,使用程序實現年、月、日、星期、時、分、秒計數。采用此種方案雖然減少芯片的使用,節約成本,但是,實現的時間誤差較大,所以不采用此方案。方案二:采用DS1302時鐘芯片實現時鐘,DS1302芯片是一種高性能的時鐘芯片,可自動對秒、分、時、日、周、月、年進行計數,而且精度高,位的RAM做為數據暫存區,工作電壓2.5V5.5V范圍內,2.5V時耗電小于300nA。所以本設計采用DS1302時鐘芯片。3.5 電路設計最終方案決定綜上各方案所述,對此次作品的方案選定
19、: 采用STC89C52作為主控制芯片,DS1302時鐘芯片計時,LCD1602作為顯示模塊。3.6本章小結 本章主要介紹了系統要實現的功能和萬年歷系統硬件平臺的選擇,比較了主控模塊,時鐘模塊,顯示模塊中不同器件的優劣,最后確定了電路設計的整體方案。這也是完成設計的先決條件。第四章 系統的硬件設計與實現4.1 電路設計框圖根據上章確定的方案給出了系統整體的設計框圖:圖4.1系統結構框圖為使時鐘走時與標準時間一致,校時電路是必不可少的,鍵盤模塊用來校正液晶上顯示的時間;STC89C52單片機通過輸出各種電脈沖信號來驅動控制各部分正常工作;而系統的時間數據則最終通過液晶模塊顯示出來。4.2 系統硬
20、件概述本電路是以STC89C52單片機為控制核心,該芯片具有在線編程功能,功耗低,能在3.3V的超低壓下工作;時鐘芯片采用DS1302,它是一款高性能、低功耗、自帶RAM的實時時鐘芯片,具有使用壽命長,精度高和功耗低等特點,同時具有掉電自動保存功能,可以對年、月、日、星期、時、分、秒進行計時,具有閏年補償功能,其工作電壓為2.5V5.5V;顯示部份使用1602液晶顯示屏來實現,該顯示屏具有低功耗、壽命長、可靠性高的特點,其工作電壓為5v。4.3 主要單元電路的設計4.3.1 STC89C52單片機簡介STC89C52是一種低功耗、高性能的8位CMOS微控制器,具有8K的可編程Flash 存儲器
21、。使用高密度非易失性存儲器技術制造,與工業80C51產品指令和引腳完全兼容。片上Flash允許程序存儲器在系統可編程,亦適于常規編程器。在單芯片上,擁有靈巧的8位CPU和在線系統可編程Flash,使得STC89C52為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案。STC89C52具有以下標準功能:8K字節Flash,256字節RAM,32位I/O 口線,看門狗定時器,2個數據指針,三個16位定時器/計數器,一個6向量2級中斷結構,全雙工串行口,片內晶振及時鐘電路。另外,STC89C52可降至0Hz靜態邏輯操作,支持2種軟件可選擇節電模式。空閑模式下,CPU 停止工作,允許RAM、定時器/
22、計數器、串口、中斷繼續工作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。引腳排列如圖4.2所示。圖4.2 STC89C52引腳圖從引腳功能來看,可將引腳分為三部分:1、電源及時鐘引腳VCC:接+5V電源;VSS:接地;XTAL1和XTAL2:時鐘引腳,外接晶體引線端。當使用芯片內部時鐘時,此兩引腳端用于外接石英晶體和微調電容;當使用外部時鐘時,用于接外部時鐘脈沖信號。2、控制引腳RST/VPT:RST是復位信號輸入端,VPT是備用電源輸入端。當RST輸入端保持2個機器周期以上高電平時,單片機完成復位初始化操作。當主電源VCC發生故障而突然下
23、降到一定低電壓或斷電時,第2功能VPT將為片內RAM提供電源以保護片內RAM中的信息不丟失。ALE/PROG:地址鎖存允許信號輸出端。在存取外存儲器時,用于鎖存低8位地址信號。當單片機正常工作后,ALE端就會周期性地以時鐘振蕩頻率的1/6固定頻率向外輸出正脈沖信號。此引腳的第2功能PROG是對片內帶有4K字節EPROM的8751固化程序時,作為編程脈沖輸入端。PSEN:程序存儲允許輸出端。是片外程序存儲器的讀選通信號,低電平有效。CPU從外部程序存儲器取指令時,PSEN信號會自動產生負脈沖,作為外部程序存儲器的選通信號。EA/VPP:程序存儲器地址允許輸入端。當EA為高電平時,CPU執行片內程
24、序存儲器指令,但當PC中的值超過0FFFFH時,將自動轉向執行片外程序存儲器指令;當EA為低電平時,CPU只執行片外程序存儲器指令。對8031單片機,EA必須接低電平。在8751中,當對片內EPROM編程時,該端接21V的編程電壓。3、I/O口引腳P0.0P0.7:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當訪問外部程序和數據存儲器時,P0口也被作為低8位地址/數據復用。P1.0P1.7:P1口是一個具有內部上拉電阻的8位雙向I/O口。作為輸出口,每位能驅動4個TTL邏輯電平。此外,P1.0和P1.2分別作定時器
25、/計數器2的外部計數輸入(P1.0/T2)和時器/計數器2的觸發輸入(P1.1/T2EX)。在flash編程和校驗時,P1口接收低8位地址字節。P2.0P2.7:P2口是一個具有內部上拉電阻的8位雙向I/O口。作為輸出口,每位能驅動4個TTL邏輯電平。在訪問外部程序存儲器或用16位地址讀取外部數據存儲器時,P2口送出高八位地址。在使用8位地址訪問外部數據存儲器時,P2口輸出P2鎖存器的內容。在flash編程和校驗時,P2口也接收高8位地址字節和一些控制信號。P3.0P3.7:P3口是一個具有內部上拉電阻的8位雙向I/O口。作為輸出口,每位能驅動4個TTL邏輯電平。P3口亦作為STC89C52特
26、殊功能(第二功能)使用。在flash編程和校驗時,P3口也接收一些控制信號。4.3.2 單片機主控制模塊的設計本設計中單片機主要負責對外設的控制和各個功能模塊間的協調,沒有復雜的數據計算,因此,8位的51系列單片機足以勝任。51單片機以其低廉的價格以及較出色的性能成了很多控制系統的首選。它具有豐富的內部資源,較大的數據、程序存儲區。一個典型的單片機最小系統一般由時鐘電路、復位電路、電源指示燈和外部擴展接口等部分組成,本系統也不例外,當單片機具備了這些最基本的條件后,就可以正常工作了。單片機最小系統復位、晶振電路簡介1、復位電路的設計復位電路是使單片機的CPU或系統中的其他部件處于某一確定的初始
27、狀態,并從這上狀態開始工作。(1)單片機常見的復位電路通常單片機復位電路有兩種:上電復位電路,按鍵復位電路。上電復位電路:上電復位是單片機上電時復位操作,保證單片機上電后立即進入規定的復位狀態。它利用的是電容充電的原理來實現的。按鍵復位電路:它不僅具有上電復位電路的功能,同時它的操作比上電復位電路的操作要簡單的多。如果要實現復位的話,只要按下RESET鍵即可。它主要是利用電阻的分壓來實現的在此設計中,采用的按鍵復位電路。按鍵復位電路如圖4.3所示。圖4.3 復位電路 (2)復位電路工作原理上電復位要求接通電源后,單片機自動實現復位操作。上電瞬間RESET引腳獲得高電平,隨著電容的充電,RERS
28、T引腳的高電平將逐漸下降。RERST引腳的高電平只要能保持足夠的時間(2個機器周期),單片機就可以進行復位操作。上電與按鍵均有效的復位電路不僅在上電時可以自動復位,而且在單片機運行期間,利用按鍵也可以完成復位操作2、晶振電路的設計晶振電路用于產生單片機工作所需要的時鐘信號,而時序所研究的是指令執行中各信號之間的相互關系。單片機本身就如一個復雜的同步時序電路,為了保證同步工作方式的實現,電路應在唯一的時鐘信號控制下嚴格地工作。通常在引腳Xl和X2跨接石英晶體和兩個補償電容構成自激振蕩器,如圖4.4中X2、C3、C4。可以根據情況選擇6MHz、12MHz或24MHz等頻率的石英晶體,補償電容通常選
29、擇30pF左右的瓷片電容。 圖4.4 時鐘振蕩電路4.3.3 時鐘電路模塊的設計DS1302是DALLAS公司推出的涓流充電時鐘芯片,內含有一個實時時鐘/日歷和31字節靜態RAM,通過簡單的串行接口與單片機進行通信。圖4.5所示為DS1302的引腳排列,其中VCC1為后備電源,VCC2為主電源。所以在主電源關閉的情況下,也能保持時鐘的連續運行。DSX1和DSX2是振蕩源,外接32.768KHz晶振用來為芯片提供計時脈沖。RST是復位/片選線,通過把RST輸入驅動置高電平來啟動所有的數據傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單
30、字節或多字節數據的傳送手段。當RST為高電平時,所有的數據傳送被初始化,允許對DS1302進行操作。如果在傳送過程中RST置為低電平,則會終止此次數據傳送,I/O引腳變為高阻態。上電行動時,在VCC大于等于2.5V之前,RST必須保持低電平。在SCLK為低電平時,才能將RST置為高電平,I/O為串行數據輸入端(雙向)。SCLK始終是輸入端。圖4.5 DS1302的硬件接線圖時鐘芯片DS1302的工作原理:(1) DS1302的控制字節DS1302控制字節的高有效位(位7)必須是邏輯1,如果它為0,則不能把數據寫入DS1302中,位6如果0,則表示存取日歷時鐘數據,為1表示存取RAM數據;位5至
31、位1指示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作,控制字節總是從最低位開始輸出(2) 數據輸入輸出(I/O)在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數據被寫入DS1302,數據輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數據,讀出數據時從低位0位到高位7。(3) DS1302的寄存器DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關,存放的數據位為BCD碼形式。“CH”是時鐘暫停標志位,當該位為1時,時鐘振蕩器停止,DS1302處于低功耗狀態;當該位為0時,時鐘開始運行。“WP”是寫保
32、護位,在任何的對時鐘和RAM的寫操作之前,“WP”必須為0。當“WP”為1時,寫保護位防止對任一寄存器的寫操作。此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時鐘突發寄存器及與RAM相關的寄存器等。時鐘突發寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內容。DS1302與RAM相關的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態為一個8位的字節,其命令控制字為C0HFDH,其中奇數為讀操作,偶數為寫操作;另一類為突發方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節,命令控制字為FEH(寫)、FFH(讀)。4.3.4獨立式鍵盤設計實現鍵盤控制的方法
33、有多種,在本系統中,我們采用了STC89C52單片機來進行控制,因為單片機可以很好的解決鍵抖動。由若干個按鍵組成一個鍵盤,其電路結構可分為獨立式鍵盤和矩陣式鍵盤兩種。本設計采用的是獨立式鍵盤。鍵盤的工作方式可分為編程控制方式和中斷控制方式。CPU在一個工作周期內,利用完成其他任務的空余時間,調用鍵盤掃描子程序,經程序查詢,若無鍵操作,則返回;若有鍵操作,則進而判斷是哪個鍵,并執行相應的鍵處理程序。這種方式為編程掃描方式。由于單片機在正常應用過程中,可能會經常進行鍵操作,因而編程控制方式使CPU經常處于工作狀態, 在進行本次設計中,只涉及到了設置、上調、下調三個功能。因此采用獨立式鍵盤。如下圖所
34、示:圖4.6按鍵的設計 顯示模塊的設計本設計中由于要對時間、溫度進行顯示,所以選擇液晶顯示屏1602模塊作為輸出。1602字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線。它可以顯示兩行,每行16個字符,采用單+5V電源供電,外圍電路配置簡單,價格便宜,具有很高的性價比。1602液晶模塊內部的字符發生存儲器(CGROM)已經存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯數字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,
35、我們就能看到字母“A”。 管腳功能如表4-1所示:表4-1 LCD1602引腳功能引腳符號功能說明1VSS一般接地2VDD接電源(+5V)3VL液晶顯示器對比度調整端。4RSRS為寄存器選擇。5R/WR/W為讀寫信號線。6ENE(或EN)端為使能(enable)端,下降沿使能。7DB0低4位三態、 雙向數據總線 0位(最低位)8DB1低4位三態、 雙向數據總線 1位9DB2低4位三態、 雙向數據總線 2位10DB3低4位三態、 雙向數據總線 3位11DB4高4位三態、 雙向數據總線 4位12DB5高4位三態、 雙向數據總線 5位13DB6高4位三態、 雙向數據總線 6位14DB7高4位三態、
36、雙向數據總線 7位(最高位)15BL+背光電源正極16BL-背光電源負極LCD1602主要管腳介紹:V0為液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產生鬼影使用時可以通過一個10K的電位器調整對比度。RS為寄存器選擇端,高電平時選擇數據寄存器,低電平時選擇指令寄存器。RW為讀寫信號線端,高電平時進行讀操作,低電平時進行寫操作。當RS和RW共同為低電平時可以寫入指令或者顯示地址;當RS為高電平RW 為低電平時可以寫入數據。E為使能端,當E端由高電平跳變成低電平時,液晶模塊執行命令。將L1602的RS端和P2.0,R/W端和P2.1, E 端和P2.2相連,
37、當RS=0時,對LCD1602寫入指令;當RS=1時,對LCD1602寫入數據。當R/W端接高電平時芯片處于讀數據狀態,反之處于寫數據狀態,E端為使能信號端。當R/W為高電平,E端也為高電平,RS為低電平時,液晶顯示屏顯示需要顯示的示數。圖4.7為1602液晶顯示屏與單片機的硬件連接圖。圖4.7 LCD液晶與單片機硬件連線圖 4.4本章小結本章主要介紹了系統硬件設計,其中對時鐘芯片DS1302、1602液晶顯示屏和STC89C52最小系統的晶振及復位電路設計做了詳細闡述。此外還介紹了各模塊和單片機的連接方法、其特性及電路原理,最后確定系統的整體硬件設計方案。第五章 系統的軟件設計5.1程序流程
38、圖5.1.1 系統總流程圖系統總流程圖如圖5.1所示。流程圖分析:首先系統初始化,系統開始運行,當有設置鍵按下時進入修改時間模式,無按鍵按下時讀取時間、溫度等數據送入液晶屏顯示;在修改時間模式下設置時間完成后再送數據到液晶屏顯示。圖5.1系統總流程圖5.1.2 DS1302時鐘程序流程圖時鐘流程圖如圖5.2所示。流程圖分析:DS1302開始計時時,首先進行初始化,當有中斷信號時,讀取時鐘芯片的數據送入液晶屏顯示。這時若有設置鍵按下時,進行時間修改,完成后將數據送入時鐘芯片;若沒有按鍵按下,則直接存入EPROM,送入液晶屏顯示。圖5.2 時鐘流程圖5.1.3 LCD顯示程序流程圖顯示程序流程圖如
39、圖5.3。流程圖分析:首先對1602顯示屏進行初始化(初始化大約持續10ms左右),然后檢查忙信號,若BF=0,則獲得顯示RAM的地址,寫入相應的數據顯示;若BF=1,則代表模塊正在進行內部操作,不接受任何外部指令和數據,直到BF=0為止。圖5.3 LCD顯示程序流程圖5.2程序的設計5.2.1 DS1302讀寫程序DS1302是SPI總線驅動方式。它不僅要向寄存器寫入控制字,還需要讀取相應寄存器的數據。要想與DS1302通信,首先要先了解DS1302的控制字。DS1302的控制字如圖5.4所示。圖5.4 DS1302的控制字控制字總是從最低位開始輸出。在控制字指令輸入后的下一個SCLK時鐘的
40、上升沿時,數據被寫入DS1302,數據輸入從最低位(0位)開始。同樣,在緊跟8位的控制字指令后的下一個SCLK脈沖的下降沿,讀出DS1302的數據,讀出的數據也是從最低位到最高位。數據讀寫時序如圖5.5、5.6所示。圖5.5 單字節讀圖5.6 單字節寫在進行任何數據傳輸時,RST必須被置高電平,每個SCLK為上升沿時數據被輸入,下降沿時數據被輸出。先把RST置低,禁止數據傳輸,SCLK置低,清零時鐘總線,RST再置高,允許數據傳輸。傳送完成后,RST置低,禁止字節的傳送。程序見附錄二。5.2.2液晶顯示程序1602通過D0D7的8位數據端傳輸數據和指令,其模塊內的控制器有11條控制指令。當液晶
41、顯示屏的接口電路與單片機系統I/O按照并行數據傳輸方式連接完成以后,即可以對STC89C52單片機進行編程。在液晶屏完成顯示之前首先要對液晶進行初始化。程序見附錄二。5.3本章小結本章對基于單片機的萬年歷系統軟件模塊進行設計,先對該系統進行了整體流程的設計,給出了設計的流程圖,隨后介紹了各模塊的子程序。對一些模塊常用的函數進行了解釋,這一切都構成了這個系統的軟件基礎。第六章 結束語至此,畢業設計的所有內容就介紹完了,通過本次課程設計較系統地掌握有關單片機控制的設計思想和設計方法,主要對STC89C52的結構、功能、內部資源等了解并對其進行測試和加以應用的知識得到學習。進行這次畢業設計,從最簡單
42、的查資料、了解各個元件的功能起步,再確定設計方案、畫流程圖、編寫程序到最后進行仿真測試,這次課題設計可以說成功完成。系統的硬件、軟件設計合理,功能完備,運行穩定、可靠。實驗結果表明此萬年歷實現后具有讀取方便、顯示直觀、功能多樣、電路簡潔、等諸多優點,符合電子儀器儀表的發展趨勢,具有廣闊的市場前景。在整個設計過程中,充分發揮了人的主觀能動性,提高了自學能力,學到了許多沒學到的知識。程序編寫中,由于思路不清晰,開始時遇到了很多的問題,經過靜下心來思考查資料,和同學討論,向老師請教,理清了思路,完成對程序的編寫。通過設計提高了對單片機的認識,進一步熟悉和掌握單片機的結構及工作原理。通過實際程序設計和
43、調試,逐步掌握模塊化程序設計方法和調試技術,提高軟件設計、調試能力;通過這次設計熟悉以單片機核心的應用系統開發的全過程,掌握硬件電路設計的基本方法和技術,掌握相關電路參數的計算方法。最終較好的完成了設計,達到了預期的目的,完了最初的設想。但是由于時間和個人能力的原因,整個系統看起來還是顯得非常的簡單,只實現了一些最基本的功能,還有許多不足和可以擴展的地方。例如實現公歷和農歷的轉換、鬧鐘報時等,這些有待以后來彌補,還望各位老師予以指正和修改。參考文獻1 張友德,趙志英,涂時亮,單片微型機原理、應用與實驗 ,復旦大學出版社,2008.5,第5版,第4次印刷2 趙亮,侯國銳,單片機C語言編程與實例
44、,人民郵電出版社 ,2003.9,第1版,第1次印刷3 高鵬,安濤,寇懷成,電路設計與制版protel99入門與提高 ,人民郵電出版社 ,2006.7第1版,第34次印刷4 譚浩強,C程序設計 M.(第三版) ,清華大學出版社,2005,第3版5 李朝青,單片機原理及接口技術 ,北京航空航天大學出版社,2004.7,第1版,第13次印刷6 康光華,電子技術基礎模擬部分 M.(第五版) ,高等教育出版社.2005,第5版附錄一:系統原理圖附錄二:系統程序主程序:#include#includelcd1602.h#includeds1302.h#includeds18b20.huchar code
45、 str=Tempe:;uint flag=1,s1num=0;sbit key=P20;/溫度顯示建sbit k1=P21;sbit k2=P22;sbit k3=P23;void LcdDisplay1()write_com(0x80+0X44);write_date(0+TIME2/16);/時write_date(0+(TIME2&0x0f); write_date(-);write_date(0+TIME1/16);write_date(0+(TIME1&0x0f); /分write_date(-);write_date(0+(TIME0&0x7f)/16);write_date(0
46、+(TIME0&0x0f);/秒write_com(0x80);write_date(2);write_date(0);write_date(0+TIME6/16);write_date(0+(TIME6&0x0f);write_date(-);write_date(0+TIME4/16);write_date(0+(TIME4&0x0f);write_date(-);write_date(0+TIME3/16);write_date(0+(TIME3&0x0f);write_com(0x8D);write_week(TIME5&0x07); void keyscan()if(key=0)de
47、lay(5);if(key=0)while(!key);flag=!flag; if(k1=0)delay(5);if(k1=0)while(!k1);Ds1302Write(0x8E,0X00);Ds1302Write(0x80,TIME0|0X80);LcdDisplay1();s1num+;switch(s1num)case 1:write_com(0x80+0x40+9); write_com(0x0f); break;case 2:write_com(0x80+0x40+6); break;case 3:write_com(0x80+15); break;case 4:write_com(0x80+10); break;case 5:write_com(0x80+7); break;case 6:write_com(0x80+4); break;case 7:s1num=0; Ds1302Write(0x80,TIME0&0X7F); write_com(0x0c); break;if(s1num!=0)if(k2=0)while(!k2);switch(s1num) case 1:TIME1+;if(TIME1&0X0f)=0X0A) TIME1=(TIME1+0x10)&0xf0;i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 舊房拆墻改造方案范本
- 浙江長征職業技術學院《生命應急救護》2023-2024學年第一學期期末試卷
- 沈陽工程學院《溫病學研究進展》2023-2024學年第二學期期末試卷
- 咖啡行業指數分析報告
- 天津傳媒學院《數值計算與》2023-2024學年第一學期期末試卷
- 塔里木職業技術學院《中醫藥文化與養生》2023-2024學年第二學期期末試卷
- 遼寧中醫藥大學杏林學院《工程光學(1)》2023-2024學年第一學期期末試卷
- 2025旅游度假區建設項目合同范本
- 中國礦業大學(北京)《禪宗與文學》2023-2024學年第一學期期末試卷
- 遼寧醫藥職業學院《合唱與指揮A》2023-2024學年第二學期期末試卷
- 全國統一卷試題及答案
- 銀行防搶防暴課件
- 水電工程驗收單
- 婦科護理標準化管理
- 蘭州2025年中國農業科學院蘭州畜牧與獸藥研究所招聘16人筆試歷年參考題庫附帶答案詳解
- 2025年第三屆天揚杯建筑業財稅知識競賽題庫附答案(701-800題)
- 2022浪潮英政服務器CS5260H2用戶手冊
- 小學科學湘科版六年級下冊全冊同步練習含答案
- (2024年)傳染病培訓課件
- 探析村級會計委托代理存在的問題與對策
- 省人參產業發展情況的調研報告
評論
0/150
提交評論