![基于單片機(jī)的多功能電子鐘[文檔知識(shí)]_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-4/23/49974868-6dac-4157-af40-e2bebaebe05f/49974868-6dac-4157-af40-e2bebaebe05f1.gif)
![基于單片機(jī)的多功能電子鐘[文檔知識(shí)]_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-4/23/49974868-6dac-4157-af40-e2bebaebe05f/49974868-6dac-4157-af40-e2bebaebe05f2.gif)
![基于單片機(jī)的多功能電子鐘[文檔知識(shí)]_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-4/23/49974868-6dac-4157-af40-e2bebaebe05f/49974868-6dac-4157-af40-e2bebaebe05f3.gif)
![基于單片機(jī)的多功能電子鐘[文檔知識(shí)]_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-4/23/49974868-6dac-4157-af40-e2bebaebe05f/49974868-6dac-4157-af40-e2bebaebe05f4.gif)
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、山東建筑大學(xué)課 程 設(shè) 計(jì) 說(shuō) 明 書(shū)題 目: 基于單片機(jī)的多功能電子鐘課 程: 單片機(jī)原理及應(yīng)用B課程設(shè)計(jì)院 (部): 信息與電氣工程學(xué)院專(zhuān) 業(yè): 電子信息工程班 級(jí): 電信111學(xué)生姓名: 姜慶飛學(xué) 號(hào): 2011081197指導(dǎo)教師: 高煥兵完成日期: 2015年1月青草綠2目 錄摘 要II1 設(shè)計(jì)目的12 設(shè)計(jì)要求23 設(shè)計(jì)內(nèi)容33.1電子時(shí)鐘的工作原理33.2 系統(tǒng)硬件電路設(shè)計(jì)及元件43.2.1 AT89C51芯片43.2.2 DS1302芯片83.2.3 LCD1602液晶顯示123.3系統(tǒng)軟件電路設(shè)計(jì)153.3.1 系統(tǒng)流程圖及源代碼設(shè)計(jì)15總結(jié)與致謝18參考文獻(xiàn)19附錄一20摘
2、 要單片機(jī), 是集 CPU ,RAM ,ROM , 定時(shí)器,計(jì)數(shù)器和多種接口于一體的微控制器。自20 世紀(jì) 70 年代問(wèn)世以來(lái),以其極高的性能價(jià)格比,受到人們的重視和關(guān)注。它體積小、重量輕、抗干擾能力強(qiáng)、環(huán)境要求不高、價(jià)格低廉、可靠性高、靈活性好、開(kāi)發(fā)較為容易,廣泛應(yīng)用于智能生產(chǎn)和工業(yè)自動(dòng)化上。本系統(tǒng)為基于DS1302的多功能電子鐘 ,以AT89C51單片機(jī) 作為主控芯, 采用實(shí)時(shí)時(shí)鐘芯片DS1302,使用1602液晶作為顯示輸出。該系統(tǒng)走時(shí)精確,具有鬧鐘設(shè)置,時(shí)間模式切換,秒表以及可同時(shí)顯示時(shí)間、日期等多種功能。本文將詳細(xì)介紹AT89C51單片機(jī)和DS1302 時(shí)鐘芯片的基本原理,從軟件和硬
3、件電路的實(shí)現(xiàn)兩大方面進(jìn)行分析。關(guān)鍵詞:AT89C51;單片機(jī);液晶屏;時(shí)鐘芯片;蜂鳴器青草綠21 設(shè)計(jì)目的基于51單片機(jī)設(shè)計(jì)一個(gè)能夠支持年、月、日、星期、時(shí)、分、秒的電子時(shí)鐘。并且支持鬧鐘功能,及整點(diǎn)報(bào)時(shí)功能。在設(shè)計(jì)過(guò)程中,學(xué)習(xí)利用DXP軟件進(jìn)行硬件電路設(shè)計(jì)或者利用仿真軟件進(jìn)行仿真,進(jìn)行單片機(jī)的軟件編程。學(xué)習(xí)芯片的選擇及方案選擇,熟悉單片機(jī)的I/O口原理;掌握LCD顯示的原理;掌握定時(shí)計(jì)數(shù)器的使用;要求設(shè)計(jì)出程序流程圖和程序。2 設(shè)計(jì)要求1設(shè)計(jì)能支持年、月、日、星期、時(shí)、分、秒的時(shí)鐘,時(shí)鐘有時(shí)間調(diào)整功能及鬧鐘功能;2時(shí)鐘具有裝卸電池時(shí)掉電保護(hù)功能,保護(hù)時(shí)間大于5分鐘;3時(shí)鐘功耗小于0.5MA/
4、5V。4能夠提供生日提醒指示;能夠每天提供3個(gè)時(shí)間點(diǎn)的鬧鐘報(bào)時(shí)功能;5非易失定時(shí)鬧鈴6整點(diǎn)報(bào)時(shí)3 設(shè)計(jì)內(nèi)容3.1電子時(shí)鐘的工作原理本次設(shè)計(jì)時(shí)鐘電路,使用了AT89C51單片機(jī)芯片控制電路,單片機(jī)控制電路簡(jiǎn)單且省去了很多復(fù)雜的線(xiàn)路,使得電路簡(jiǎn)明易懂,用C語(yǔ)言程序來(lái)控制整個(gè)時(shí)鐘的顯示,使得編程變得更容易,這樣通過(guò)五個(gè)模塊:芯片、顯示屏、看門(mén)狗、電源、時(shí)鐘即可滿(mǎn)足設(shè)計(jì)要求。此設(shè)計(jì)原理圖框圖如圖3.1所示,此電路包括以下五個(gè)部分:?jiǎn)纹瑱C(jī)、時(shí)鐘電路、看門(mén)狗、液晶屏、電源模塊、時(shí)鐘振蕩電路。圖3.1 主電路設(shè)計(jì)框圖本設(shè)計(jì)采用C語(yǔ)言程序設(shè)計(jì),使單片機(jī)控制液晶顯示年、月、日、時(shí)、分、秒,當(dāng)秒計(jì)數(shù)滿(mǎn)60時(shí)就向分
5、進(jìn)位,分計(jì)數(shù)器計(jì)滿(mǎn)60后向時(shí)計(jì)數(shù)器進(jìn)位,小時(shí)計(jì)數(shù)器按“23翻0”規(guī)律計(jì)數(shù)。時(shí)、分、秒的計(jì)數(shù)結(jié)果經(jīng)過(guò)數(shù)據(jù)處理可直接送顯示器顯示。當(dāng)計(jì)時(shí)發(fā)生誤差的時(shí)候可以用校時(shí)電路進(jìn)行校正。設(shè)計(jì)采用的是時(shí)、分、秒顯示,單片機(jī)對(duì)數(shù)據(jù)進(jìn)行處理同時(shí)在LCD上顯示。3.2 系統(tǒng)硬件電路設(shè)計(jì)及元件3.2.1 AT89C51芯片AT89C51 是美國(guó)ATMEL 公司生產(chǎn)的8 位Flash ROM 單片機(jī)。其最突出的優(yōu)點(diǎn)是片內(nèi)ROM 為Flash ROM,可擦寫(xiě)1000 次以上,應(yīng)用并不復(fù)雜的通用ROM 寫(xiě)入器就能方便的擦寫(xiě),讀取也很方便,價(jià)格低廉,具有片程序ROM 二級(jí)保密系統(tǒng)。因此可靈活應(yīng)用于各種控制領(lǐng)域。AT89C51
6、包含以下一些功能部件:(1)一個(gè)8 位CPU ;(2)一個(gè)片內(nèi)振蕩器和時(shí)鐘電路;(3)4KB Flash ROM ;(4)128B 內(nèi)RAM;(5)可尋址64KB 的外ROM 和外RAM 控制電路;(6)兩個(gè)16 位定時(shí)/計(jì)數(shù)器;(7)21 個(gè)特殊功能寄存器;(8)4 個(gè)8 位并行I/O 口;(9)一個(gè)可編程全雙工串行口;(10)5 個(gè)中斷源,可設(shè)置成2 個(gè)優(yōu)先級(jí)。AT89C51 單片機(jī)一般采用雙列直插DIP 封裝,共40 個(gè)引腳,圖3.2 為其引腳排列圖。40 個(gè)引腳大致可分為4 類(lèi):電源、時(shí)鐘、控制各I/O 引腳。圖3.2 AT89C51引腳圖(1)控制線(xiàn)控制線(xiàn)共有4 根,其中3 根是復(fù)用
7、線(xiàn)。所謂復(fù)用線(xiàn)是指具有兩種功能,正常使用時(shí)是一種功能,在某種條件下是另一種功能。1、ALE/ PROG 地址鎖存允許/片內(nèi)EPROM 編程脈沖。(1)ALE 功能:用來(lái)鎖存P0 口送出的低八位地址。AT89C51 在并行擴(kuò)展外存儲(chǔ)器時(shí),P0 口用于分時(shí)傳送低8 位地址和數(shù)據(jù)信號(hào),且均為二進(jìn)制數(shù)。當(dāng)ALE 信號(hào)有效時(shí),P0 口傳送的是低8 位地址信號(hào);ALE 信號(hào)無(wú)效時(shí),P0 口傳送的是低8 位地址信號(hào)。在ALE 信號(hào)的下降沿,鎖定P0 口傳送的內(nèi)容,即低8 位地址信號(hào)。需要指出的是,當(dāng)CPU 不執(zhí)行訪(fǎng)問(wèn)外RAM 指令,ALE 以時(shí)鐘振蕩頻率1/6 的固定頻率輸出,因此ALE 信號(hào)也可作為外部芯
8、片CLK 時(shí)鐘或其他需要。但是,當(dāng)CPU 執(zhí)行MOVX 指令時(shí),ALE 將跳過(guò)一個(gè)ALE 脈沖。(2) PROG 功能:片內(nèi)EPROM 的芯片,在EPROM 編程期間,此引腳輸入編程脈沖。2、 PSEN 外ROM 讀選通信號(hào)。89C51 讀外ROM 時(shí),每個(gè)機(jī)器周期內(nèi)PSEN 兩次有效輸出。PSEN 可作為外ROM芯片輸出允許OE 的選通信號(hào)。在讀內(nèi)ROM 或讀外RAM 時(shí), PSEN 無(wú)效。3、RST/VPD復(fù)位/備用電源。(1)正常工作時(shí),RST 端為復(fù)位信號(hào)輸入端,只要在該引腳上連續(xù)保持兩個(gè)機(jī)器周期以上高電平,AT89C51 芯片即實(shí)現(xiàn)復(fù)位操作,復(fù)位后一切從頭開(kāi)始,CPU 從0000H
9、開(kāi)始執(zhí)行指令。(2)VPD 功能:在VCC 掉電情況下,該引腳可接上備用電源,由VPD 向片內(nèi)RAM供電,以保持片內(nèi)RAM 中的數(shù)據(jù)不丟失。4、EA /VPP內(nèi)外ROM 選擇/片內(nèi)EPROM 編程電源。(1) EA 功能:正常工作時(shí), EA 為內(nèi)外ROM 選擇端。AT89C51 單片機(jī)ROM 尋址范圍為64KB,其中4KB 在片內(nèi),60KB 在片外。當(dāng)EA 保持高電平時(shí),先訪(fǎng)問(wèn)內(nèi)ROM,但當(dāng)PC 值超過(guò)4KB 時(shí),將自動(dòng)轉(zhuǎn)向執(zhí)行外ROM 中的程序。當(dāng)EA 保持低電平時(shí),則只訪(fǎng)問(wèn)外ROM,不管芯片內(nèi)有否內(nèi)ROM。(2)VPP 功能:片內(nèi)有EPROM 的芯片,在EPROM 編程期間,此引腳用于施加
10、編程電源。(2) I/O引腳AT89C51 有P0、P1、P2、P3 4 個(gè)8 位并行I/O 端口,共32 個(gè)引腳。P0 口是一組8 位漏級(jí)開(kāi)路型雙向I/O 口,也即地址/數(shù)據(jù)總線(xiàn)復(fù)用口。作為輸出口用時(shí),每位能以吸收電流的方式驅(qū)動(dòng)8 個(gè)TTL 邏輯門(mén)電路,對(duì)端口寫(xiě)1 時(shí),又可作高阻抗輸入端用。在訪(fǎng)問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),它是分時(shí)多路轉(zhuǎn)換的地址(低8 位)/數(shù)據(jù)總線(xiàn),在訪(fǎng)問(wèn)期間激活了內(nèi)部的上拉電阻。在Flash 編程時(shí),P0 端口接收指令字節(jié);而在驗(yàn)證程序時(shí),則輸出指令字節(jié)。驗(yàn)證時(shí),要求外接上拉電阻。P1口是帶內(nèi)部上拉電阻的雙向I/O口,向P1口寫(xiě)入1時(shí)P1口被內(nèi)部上拉為高電平,可用作輸入口。
11、當(dāng)作為輸入腳時(shí)被外部信號(hào)拉低的P1口會(huì)因?yàn)閮?nèi)部上拉而輸出一個(gè)電流。Flash編程和程序校驗(yàn)期間,P1接收低8位地址。P2口是帶內(nèi)部上拉電阻的雙向I/O口,向P2口寫(xiě)入1時(shí)P2口被內(nèi)部上拉為高電平可用作輸入口,當(dāng)作為輸入腳時(shí)被外部拉低的P2口會(huì)因?yàn)閮?nèi)部上拉而輸出電流。在訪(fǎng)問(wèn)外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX DPTR指令)時(shí),P2口送出高8位地址數(shù)據(jù),當(dāng)使用8位尋址方式(MOVXRI)訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口發(fā)送P2特殊功能寄存器的內(nèi)容,在整個(gè)訪(fǎng)問(wèn)期間不改變。Flash編程和程序校驗(yàn)時(shí),P2也接收高位地址和一些控制信號(hào)。P3口是帶內(nèi)部上拉電阻的雙向I/O口,向P3口
12、寫(xiě)入1時(shí)P3口被內(nèi)部上拉為高電平可用作輸入口,當(dāng)作為輸入腳時(shí)被外部拉低的P3口會(huì)因?yàn)閮?nèi)部上拉而輸出電流。P3口除了作為一般的I/O口線(xiàn)外,更重要的是它的第二功能,如表3-1所示:表3-1 P3端口的特殊功能 端口引腳兼 用 功 能 P3.0RXD 串行輸入口 P3.1TXD 串行輸出口 P3.2/INT0 外部中斷0 P3.3/INT1 外部中斷1 P3.4T0 定時(shí)器0的外部輸入 P3.5T1 定時(shí)器1的外部輸入 P3.6/WR 外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通 P3.7/RD 外部數(shù)據(jù)存儲(chǔ)器讀選通 3.2.2 DS1302芯片DS1302是美國(guó)DALLAS公司推出的一種高性能、低功耗的實(shí)時(shí)時(shí)鐘日歷芯片
13、,附加31字節(jié)靜態(tài)RAM,采用SPI三線(xiàn)接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)和RAM數(shù)據(jù)。實(shí)時(shí)時(shí)鐘可提供秒、分、時(shí)、日、星期、月和年,一個(gè)月小于31天時(shí)可以自動(dòng)調(diào)整,且具有閏年補(bǔ)償功能。工作電壓寬達(dá)2.55.5V。采用雙電源供電(主電源和備用電源),可設(shè)置備用電源充電方式,提供了對(duì)后備電源進(jìn)行涓細(xì)電流充電的能力。有主電源和備份電源雙引腳,而且備份電源可由大容量電容(1F)來(lái)替代。需要強(qiáng)調(diào)的是,DS1302需要使用32.768KHz的晶振。DS1302 包含以下一些功能部件:(1)實(shí)時(shí)時(shí)鐘,可對(duì)秒、分、時(shí)、日、周、月以及帶閏年補(bǔ)償?shù)哪赀M(jìn)行計(jì)數(shù);(2)用于高速數(shù)據(jù)暫
14、存的318位RAM;(3)最少引腳的串行I/O;(4)2.55.5V 電壓工作范圍;(5)2.5V時(shí)耗電小于300nA;(6)用于時(shí)鐘或RAM數(shù)據(jù)讀/寫(xiě)的單字節(jié)或多字節(jié)(脈沖方式)數(shù)據(jù)傳送方式;(7)簡(jiǎn)單的3線(xiàn)接口;(8)可選的慢速充電(至VCC1)的能力。(1) DS1302數(shù)據(jù)操作原理DS1302在任何數(shù)據(jù)傳送時(shí)必須先初始化,把RST腳置為高電平,然后把8位地址和命令字裝入移位寄存器,數(shù)據(jù)在SCLK的上升沿被輸入。無(wú)論是讀周期還是寫(xiě)周期,開(kāi)始8位指定40個(gè)寄存器中哪個(gè)被訪(fǎng)問(wèn)到。在開(kāi)始8個(gè)時(shí)鐘周期,把命令字節(jié)裝入移位寄存器之后,另外的時(shí)鐘周期在讀操作時(shí)輸出數(shù)據(jù),在寫(xiě)操作時(shí)寫(xiě)入數(shù)據(jù)。時(shí)鐘脈沖的
15、個(gè)數(shù)在單字節(jié)方式下為8加8,在多字節(jié)方式下為8加字節(jié)數(shù),最大可達(dá)248字節(jié)數(shù)。DS1302的內(nèi)部結(jié)構(gòu)圖如圖3.3所示。圖3.3 DS1302內(nèi)部結(jié)構(gòu)圖(2) DS1302 的引腳圖及功能DS1302 的引腳圖如圖3.4所示。圖3.4 DS1302引腳圖DS1302 各引腳功能:Vcc1:主電源;Vcc2:備份電源。當(dāng)Vcc2Vcc1+0.2V時(shí),由Vcc2向DS1302供電,當(dāng)Vcc2 Vcc1時(shí),由Vcc1向DS1302供電。 SCLK:串行時(shí)鐘,輸入,控制數(shù)據(jù)的輸入與輸出; I/O:三線(xiàn)接口時(shí)的雙向數(shù)據(jù)線(xiàn); CE:輸入信號(hào),在讀、寫(xiě)數(shù)據(jù)期間,必須為高。該引腳有兩個(gè)功能:第一,CE開(kāi)始控制字
16、訪(fǎng)問(wèn)移位寄存器的控制邏輯;其次CE提供結(jié)束單字節(jié)或多字節(jié)數(shù)據(jù)傳輸?shù)姆椒āR_功能如表3-2所示:表3-2 DS1302引腳功能說(shuō)明引腳號(hào)名稱(chēng)功能1VCC1備份電源輸入2X132.768KHz晶振輸入3X232.768KHz晶振輸出4GND地5RST控制移位寄存器/復(fù)位6I/O數(shù)據(jù)輸入/輸出7SCLK串行時(shí)鐘8VCC2主電源輸入(3) DS1302的控制字DS1302的控制字如表3-3所示:表3-3控制字(即地址及命令字節(jié)) 765432101RAMA4A3A2A1A0RD控制字的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫(xiě)入到DS1302中。位6:如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù)
17、,為1表示存取RAM數(shù)據(jù);位5至位1(A4A0):指示操作單元的地址;位0(最低有效位):如為0,表示要進(jìn)行寫(xiě)操作,為1表示進(jìn)行讀操作??刂谱挚偸菑淖畹臀婚_(kāi)始輸出。在控制字指令輸入后的下一個(gè) SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫(xiě)入 DS1302,數(shù)據(jù)輸入從最低位(0位)開(kāi)始。同樣,在緊跟8位的控制字指令后的下一個(gè) SCLK脈沖的下降沿,讀出 DS1302的數(shù)據(jù),讀出的數(shù)據(jù)也是從最低位到最高位。(4) DS1302時(shí)序CE 輸入驅(qū)動(dòng)高啟動(dòng)所有的數(shù)據(jù)傳輸。CE 輸入有兩個(gè)功能。首先,CE打開(kāi)控制邏輯,允許訪(fǎng)問(wèn)的移位寄存器的地址/命令序列。其次,CE 提供了一個(gè)終止單字節(jié)或多字節(jié)數(shù)據(jù)傳輸方法。一個(gè)時(shí)鐘周
18、期是由一個(gè)下降沿之后的上升沿序列。對(duì)于數(shù)據(jù)傳輸而言,數(shù)據(jù)必須在有效的時(shí)鐘的上升沿輸入,在時(shí)鐘的下降沿輸出。如果CE 為低,所有的I/O 引腳變?yōu)楦咦杩範(fàn)顟B(tài),數(shù)據(jù)傳輸終止。對(duì)于數(shù)據(jù)輸入:開(kāi)始的8個(gè)SCLK 周期,輸入寫(xiě)命令字節(jié),數(shù)據(jù)字節(jié)在后8個(gè)SCLK 周期的上升沿輸入。數(shù)據(jù)輸入位0 開(kāi)始。對(duì)于數(shù)據(jù)輸出:開(kāi)始的8個(gè)SCLK 周期,輸入一個(gè)讀命令字節(jié),數(shù)據(jù)字節(jié)在后8個(gè)SCLK 周期的下降沿輸出。注意,第一個(gè)數(shù)據(jù)字節(jié)的第一個(gè)下降沿發(fā)生后,命令字的最后一位被寫(xiě)入,命令字節(jié)的最后一位被寫(xiě)入。當(dāng)CE 仍為高時(shí)。如果還有額外的SCLK 周期,DS1302 將重新發(fā)送數(shù)據(jù)字節(jié),這使DS1302 具有連續(xù)突發(fā)讀
19、取的能力。DS1302數(shù)據(jù)讀寫(xiě)時(shí)序如圖3.5所示:圖3.5 數(shù)據(jù)讀寫(xiě)時(shí)序3.2.3 LCD1602液晶顯示LCD1602是一種用5x7點(diǎn)陣圖形來(lái)顯示字符的液晶顯示器模塊,它顯示的容量為2行16個(gè)字共32個(gè)字符。它由若干個(gè)57或者511點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符。模塊采用數(shù)字式接口,能夠方便地與單片機(jī)等控制類(lèi)芯片進(jìn)行通信。由于其具有體積小、重量輕、顯示質(zhì)量高、功耗低等諸多優(yōu)點(diǎn)而被廣泛用于智能化儀器儀表的顯示器件。(1)LCD1602引腳及功能LCD1602的引腳如圖3.6所示:VSS:電源地。VDD:接電源正極。VL:液晶顯示偏壓信號(hào)。RS:數(shù)據(jù)/命令選擇端(H/L)。:讀
20、/寫(xiě)選擇端(H/L)。E:使能端。當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。D1D8:8位雙向數(shù)據(jù)線(xiàn)。 BLA:背光源正極;BLK:背光源負(fù)極。圖3.6 LCD1602引腳圖LCD1602引腳功能表如下表3-4所示:表3-4 LCD1602引腳功能表編號(hào)符號(hào)引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫(xiě)選擇13D6數(shù)據(jù)6E使能信號(hào)14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志位是不是為
21、低電平,是低電平則表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符。表3-5為 LCD1602的內(nèi)部顯示地址。表3-5 LCD1602的內(nèi)部顯示地址123141516第一行80H81H82H8DH8EH8FH第二行0C0H0C1H0C2H0CDH0CEH0CFH3.3系統(tǒng)軟件電路設(shè)計(jì)3.3.1 系統(tǒng)流程圖及源代碼設(shè)計(jì)(1) 主程序流程圖設(shè)計(jì)3.7 主程序流程圖(2)子程序流程圖設(shè)計(jì)1、 DS1302 定時(shí)器中斷子程序流程圖圖3.8 DS1302中斷流程圖程序主要實(shí)現(xiàn)對(duì)DS1302寫(xiě)保護(hù)、充電,對(duì)年、月、日、時(shí)、分、秒等寄存器的讀寫(xiě)操作。在讀寫(xiě)操作子程序中
22、都執(zhí)行了關(guān)中斷指令,因?yàn)樵诖型ㄐ艜r(shí)對(duì)時(shí)序要求比較高,而且在此是用I/O口軟件模擬串行時(shí)鐘脈沖,所以在通信過(guò)程中最好保證傳輸?shù)倪B續(xù)性,不要允許中斷,如圖3.8所示。2、 LCD1602 流程圖程序主要實(shí)現(xiàn)對(duì)信息的顯示,包括年、月、日、時(shí)、分、秒等信息,在這里要注意它的讀寫(xiě)控制指令。其流程圖如圖3.9所示。 圖3.9 LCD1602初始化流程圖總結(jié)與致謝通過(guò)這次對(duì)基于單片機(jī)的電子時(shí)鐘設(shè)計(jì)的設(shè)計(jì)與制作過(guò)程,加強(qiáng)了我們動(dòng)手、思考和解決問(wèn)題的能力。在設(shè)計(jì)過(guò)程中我們利用Altium軟件進(jìn)行原理圖及PCB圖的繪制,最后再利仿真軟件進(jìn)行檢查,看程序是否能顯示其功能。在設(shè)計(jì)過(guò)程中讓我進(jìn)一步深刻的學(xué)習(xí)各種軟件的
23、利用以及各種軟件給我們帶來(lái)的便利。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)得是困難重重,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固。這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多專(zhuān)業(yè)知識(shí)問(wèn)題,最后在老師的辛勤指導(dǎo)下,終于游逆而解。同時(shí),在老師的身上我們學(xué)也到很多實(shí)用的知識(shí),在次我們表示感謝!同時(shí),對(duì)給過(guò)我?guī)椭乃型瑢W(xué)和各位指導(dǎo)老師再
24、次表示忠心的感謝!參考文獻(xiàn)1 馬潮. AVR單片機(jī)嵌入式系統(tǒng)原理與應(yīng)用實(shí)踐 M.北京: 北京航空航天大學(xué)出版社,2007.2 楊欣,王玉鳳,劉湘黔. 51單片機(jī)應(yīng)用從零開(kāi)始 M.北京: 清華大學(xué)出版社,2008.3 陳在平. 現(xiàn)場(chǎng)總線(xiàn)及工業(yè)控制網(wǎng)絡(luò)技術(shù)M.北京: 電子工業(yè)出版社,2008.4 沈建華,楊艷琴. MSP430系列16位超低功耗單片機(jī)原理與實(shí)踐M. 北北京航空航天大學(xué)出版社,2008.5 張成偉. 基于嵌入式Linix的GSM/GPRS無(wú)線(xiàn)通信模塊的設(shè)計(jì)與實(shí)現(xiàn)D. 華中科技大學(xué)6 趙亮GPRS無(wú)線(xiàn)網(wǎng)絡(luò)在遠(yuǎn)程數(shù)據(jù)采集中的應(yīng)用計(jì)算機(jī)工程與設(shè)計(jì).2005. 26(9).7 馬忠梅.單片機(jī)
25、的C語(yǔ)言應(yīng)用程序設(shè)計(jì)M.北京:北京航空航天大學(xué)出版社,2003. 8 胡漢才.單片機(jī)原理及其接口技術(shù)M.北京:清華大學(xué)出版社,2004.9 雷霖. 現(xiàn)場(chǎng)總線(xiàn)及工業(yè)控制網(wǎng)絡(luò)技術(shù)M.北京: 電子工業(yè)出版社,2004. 10 許洪華. 現(xiàn)場(chǎng)總線(xiàn)與工業(yè)以太網(wǎng)技術(shù)M. 北京: 電子工業(yè)出版社,2007. 附錄一#include #include/*/#define uchar unsigned char #define uint unsigned int#define TIME (0X10000-50000)#define FLAG 0XEF /鬧鐘標(biāo)志/*/引腳連接圖sbit CLK=P12;sbit
26、 DAT=P13;sbit RST=P14;sbit RS=P15;sbit RW=P16;sbit E=P17;sbit P33=P33;sbit KEY1 = P20;sbit KEY2 = P21;sbit KEY3 = P22;sbit KEY4 = P23;/*/全局變量及常量定義uchar i=20,j;uchar DataBuf16 = ;/日期uchar TimeBuf16 = ;/時(shí)間 uchar alarm2,time3;uchar code Day=31,28,31,30,31,30,31,31,30,31,30,31;/12個(gè)月的最大日期(非閏年) /閏年月星期表 co
27、nst unsigned char WeekTab = (3 5) + 31,/1月 (6 5) + 29,/2月 (0 5) + 31,/3月 (3 5) + 30,/4月 (5 5) + 31,/5月 (1 5) + 30,/6月 (3 5) + 31,/7月 (6 5) + 31,/8月 (1 5) + 30,/9月 (4 5) + 31,/10月 (0 5) + 30,/11月 (2 5) + 31 /12月 ; /音律表uint code table1=64260,64400,64524,64580,64684,64777,64820,64898,64968,65030,65058,
28、65110,65157,65178,65217;/發(fā)聲部分的延時(shí)時(shí)間uchar code table2=0x82,1,0x81,0xf4,0xd4,0xb4,0xa4,0x94,0xe2,1,0xe1,0xd4,0xb4,0xc4,0xb4,4,0;/鬧鐘中用的全局變量uchar th1,tl1;/*/延時(shí)1ms函數(shù)delay1ms(uchar time) uchar i,j; for(i=0;itime;i+) for(j=0;j250;j+); /*/LCD控制函數(shù)Enable() RS=0; RW=0; E=0; delay1ms(3); E=1;/*/LCD1602寫(xiě)入字符函數(shù)LCD1
29、602_WriteSChr(uchar i) P0=i; RS=1; RW=0; E=0; delay1ms(2); E=1;/*/LCD1602寫(xiě)入字符串函數(shù)/入口函數(shù)/uchar data *address : 寫(xiě)入數(shù)據(jù)首地址/ucharm:寫(xiě)入字節(jié)數(shù)LCD1602_WriteStr(uchar *address,uchar m) uchar i,j; for(i=0;im;i+,address+) j=*address; LCD1602_WriteSChr(j); /*/LCD顯示void LCDShow(void) P0=0XC; /顯示器開(kāi)、光標(biāo)關(guān) Enable(); /P0=0x8
30、0; /寫(xiě)入顯示起始地址 /Enable(); /LCD1602_WriteStr(DataBuf,16); /寫(xiě)入日期顯示緩存 P0=0xc1; /寫(xiě)入顯示起始地址 Enable(); LCD1602_WriteStr(TimeBuf,16); /寫(xiě)入時(shí)間顯示緩存/*/DS1302寫(xiě)入子程序void DS1302_Write(uchar temp) uchar i; CLK=0; /將DS1320時(shí)鐘脈沖拉低 _nop_();/延時(shí)一指令周期 RST=1; /RST置高電平 _nop_();/延時(shí)一指令周期 for(i=0;i=1; /右移一位 CLK=0; /拉低時(shí)鐘脈沖 /*/DS130
31、2讀取子程序uchar DS1302_Read() uchar i,j=0; for(i=0;i=1; /右移一位 _nop_(); /延時(shí)一指令周期 CLK=0; /拉低時(shí)鐘脈沖 _nop_(); /延時(shí)一指令周期 if(DAT) /判斷接收該位數(shù)據(jù)是否為1 j|=0x80;/該位置1 _nop_(); /延時(shí)一指令周期 CLK=1; /拉高時(shí)鐘脈沖 return(j); /返回?cái)?shù)值/*/部分顯示數(shù)據(jù)初始化TimeStart() TimeBuf0=TimeBuf8=TimeBuf9=TimeBuf10=0x20; /不顯示字符 TimeBuf2=TimeBuf5=:; /時(shí)間分隔顯示 DS1
32、302_Write(0xc1); alarm0=DS1302_Read(); RST=0; DS1302_Write(0xc3); alarm1=DS1302_Read(); RST=0; DS1302_Write(0xc5); DataBuf0=DS1302_Read(); RST=0;/*/讀取時(shí)間ReadTime() uchar i,m,n; for(m=0,i=0,n=0x85;i7;i+=3,n-=2,m+) /連續(xù)讀取時(shí),分,秒 DS1302_Write(n); /寫(xiě)入讀取寄存器指令 timem=DS1302_Read(); /讀取數(shù)據(jù) RST=0; /將RST電平拉低,停止傳輸
33、TimeBufi=timem/16+0x30; /將兩位數(shù)據(jù)的十位轉(zhuǎn)為字符格式 TimeBufi+1=timem%16+0x30;/將兩位數(shù)據(jù)的個(gè)位轉(zhuǎn)為字符格式 /*/功能選擇超時(shí)定時(shí)器time0() interrupt 1 using 1 i-; if(i=0) if(j!=0) j-; i=20; TH0=TIME/256,TL0=TIME%256; /*/產(chǎn)生鬧鈴音調(diào)intime1() interrupt 3 TH1=th1,TL1=tl1; P32=!P32;/*/鬧鐘顯示void AlarmShow(void) uchar i,j,a,b,n; ET1=1; for(j=0;j=4;
34、 if(a=0) TR1=0; goto D1; a=(-a)1)/2; TH1=th1=table1a/256,TL1=tl1=table1a%256; TR1=1;D1: do b-; for(n=0;n0xc5) i=0xc2; else if(KEY2 = 1) year=(DataBuf4&0xf)*10+(DataBuf5&0xf); /將字符格式的年份轉(zhuǎn)換為數(shù)值格式 month=(DataBuf7&0xf)*10+(DataBuf8&0xf); /將字符格式的月份轉(zhuǎn)換為數(shù)值格式 day=(DataBuf10&0xf)*10+(DataBuf11&0xf); /將字符格式的日數(shù)轉(zhuǎn)換
35、為數(shù)值格式 if(i=0x85) /設(shè)置年份 year+; if(year99) year=0; if(year%4)!=0) if(month=2&day=29) day=28; else if(i=0x88) /設(shè)置月份 month+; if(month12) month=1; if(dayDaymonth-1) day=Daymonth-1; if(month=2&(year%4)=0) /計(jì)算是否閏年 day=29; else if(i=0x8b) /設(shè)置日期 day+; if(dayDaymonth-1) if(month=2&(year%4)=0) /計(jì)算是否閏年 if(day29
36、) day=1; if(month!=2) day=1; else if(i=0xc2) /設(shè)置小時(shí) n=(TimeBuf0&0xf)*10+(TimeBuf1&0xf); n+; if(n23) n=0; TimeBuf0=n/10+0x30; TimeBuf1=n%10+0x30; else /設(shè)置分鐘 n=(TimeBuf3&0xf)*10+(TimeBuf4&0xf); n+; if(n59) n=0; TimeBuf3=n/10+0x30; TimeBuf4=n%10+0x30; DataBuf4=year/10+0x30; /將數(shù)值格式的日期轉(zhuǎn)換為字符形式 DataBuf5=yea
37、r%10+0x30; DataBuf7=month/10+0x30; DataBuf8=month%10+0x30; DataBuf10=day/10+0x30; DataBuf11=day%10+0x30; LCDShow(); else if(KEY3 = 1) /按保存退出鍵后,向DS1302寫(xiě)入設(shè)置后的日期時(shí)間 DS1302_Write(0x8c); DS1302_Write(DataBuf4&0xf)*16+(DataBuf5&0xf); RST=0; DS1302_Write(0x8a); DS1302_Write(SetWeek(); RST=0; for(i=7,n=0x88;
38、i11;i+=3,n-=2) DS1302_Write(n); DS1302_Write(DataBufi&0xf)*16+(DataBufi+1&0xf); RST=0; for(i=0;i7;i+=3,n-=2) DS1302_Write(n); DS1302_Write(TimeBufi&0xf)*16+(TimeBufi+1&0xf); RST=0; TR0=0; return; else TR0=0; return; if(j=0) TR0=0; return; /*/設(shè)置鬧鐘void SetAlarm(void) uchar i,n; for(i=1;i0xc5) i=0xc2; else if(KEY2 = 1) if(i=0xc2) n=(TimeBuf0&0xf)*10+(TimeBuf1&0xf); n+; if(n23) n=0; TimeBuf0=n/10+0x30; TimeBuf1=n%10+0x30; else n=(TimeBuf3&0xf)*10+(TimeBuf4&0xf); n+; if(n59) n=0; TimeBuf3=n/10+0x30; TimeBuf4=n%10+0x30; LCDShow(); else if(KEY3 = 1) DS1302_Write(0xc0); DS1302_Write(TimeBuf0&0xf
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國(guó)自動(dòng)碼坯系統(tǒng)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)手指燈數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)不銹鋼活接口數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025-2030年地質(zhì)勘察成本控制軟件企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 2025-2030年啤酒主題餐廳企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 2025-2030年抗結(jié)劑行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025-2030年戶(hù)外多功能鏟子企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 2025-2030年排毒養(yǎng)顏飲料行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025-2030年堅(jiān)果餅干行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢(xún)報(bào)告
- 激光選區(qū)熔化技術(shù)制備18Ni300透氣模具鋼的工藝與性能研究
- 2025年初級(jí)社會(huì)工作者綜合能力全國(guó)考試題庫(kù)(含答案)
- 兩淮礦區(qū)地面定向多分支水平井鉆進(jìn)作業(yè)技術(shù)規(guī)程
- vc約起來(lái)史上最全180個(gè)知名投資人聯(lián)系方式
- 中國(guó)酒文化英文介紹
- 社會(huì)穩(wěn)定風(fēng)險(xiǎn)評(píng)估報(bào)告風(fēng)險(xiǎn)評(píng)估參考
- GB/T 14343-2008化學(xué)纖維長(zhǎng)絲線(xiàn)密度試驗(yàn)方法
- 制冷操作證培訓(xùn)教材-制冷與空調(diào)設(shè)備運(yùn)行操作作業(yè)培課件
- 市級(jí)臨床重點(diǎn)專(zhuān)科申報(bào)書(shū)
- 中交與機(jī)械竣工區(qū)別
- 《醫(yī)院重點(diǎn)專(zhuān)科建設(shè)專(zhuān)項(xiàng)資金管理辦法》
- 第三章:王實(shí)甫與《西廂記》PPT課件(完整版)
評(píng)論
0/150
提交評(píng)論