![基于單片機的萬年歷畢業(yè)設(shè)計開題報告_第1頁](http://file4.renrendoc.com/view10/M01/05/20/wKhkGWemBT2AZN0vAACeHNka-pA681.jpg)
![基于單片機的萬年歷畢業(yè)設(shè)計開題報告_第2頁](http://file4.renrendoc.com/view10/M01/05/20/wKhkGWemBT2AZN0vAACeHNka-pA6812.jpg)
![基于單片機的萬年歷畢業(yè)設(shè)計開題報告_第3頁](http://file4.renrendoc.com/view10/M01/05/20/wKhkGWemBT2AZN0vAACeHNka-pA6813.jpg)
![基于單片機的萬年歷畢業(yè)設(shè)計開題報告_第4頁](http://file4.renrendoc.com/view10/M01/05/20/wKhkGWemBT2AZN0vAACeHNka-pA6814.jpg)
![基于單片機的萬年歷畢業(yè)設(shè)計開題報告_第5頁](http://file4.renrendoc.com/view10/M01/05/20/wKhkGWemBT2AZN0vAACeHNka-pA6815.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
基于單片機的萬年歷畢業(yè)設(shè)計開題報告
畢業(yè)設(shè)計(論文)開題報告
題目基于單片機控制的電子萬年歷的設(shè)計
學(xué)生姓名葉慶
學(xué)號088202140
系別信息工程系專業(yè)自動化
屆別2012屆
指導(dǎo)教師李軍華
填表日期20xx年5月20日
第二篇:電子萬年歷畢業(yè)設(shè)計(基于AT89C51單片機和DS1302時鐘芯片)18000字
鶴壁職業(yè)技術(shù)學(xué)院
畢業(yè)設(shè)計論文
論文題目:電子時鐘
學(xué)院:機電工程學(xué)院專業(yè):電氣自動化
班級:學(xué)生姓名:賈貫可學(xué)號:0902511005指導(dǎo)教師:
20xx年10月18日
摘要….…………………….……………3緒論…….….……………….……………5
第1章設(shè)計要求與方案論證…….………….………………7
1.1引言…….……………….……………7
1.2功能要求.…………..……………….………………7
1.3方案論證…….………..………………7目錄
第2章系統(tǒng)硬件電路設(shè)計…….…………….………………11
2.1電路設(shè)計…….………….…………11
2.2系統(tǒng)硬件概述…….……………15
2.3主要單元電路的設(shè)計…….………15
第3章系統(tǒng)的軟件設(shè)計…….………………….……………22
3.1程序設(shè)計…….……………………22
3.2程序設(shè)計流程圖…….……………22
第4章結(jié)束語…….….………….……………24
附錄一(電路原理圖)…………..……………附錄二(程序清單)…….…………27
摘要
隨著社會、科技的發(fā)展,人類得知時間,從觀太陽、擺鐘到現(xiàn)在電子鐘,不斷研究、創(chuàng)新。為了在觀測時間,能夠了解與人類密切相關(guān)的信息,比如星期、日期等,電子時鐘誕生了,它集時間、日期、星期等功能于一身,具有讀取方便、顯示直觀、功能多樣、電路簡潔等諸多優(yōu)點,符合電子儀器儀表的發(fā)展趨勢,具有廣闊的市場前景。
該電子時鐘主要采用STC89C52RC單片機作為主控核心,由DS1302時鐘芯片提供時鐘、LED動態(tài)掃描顯示屏顯示。STC89C52RC單片機是由Atmel公司推出的,功耗小,電壓可選用4~6V電壓供電;DS1302時鐘芯片是美國DALLAS公司推出的具有涓細電流充電功能的低功耗實時時鐘芯片,它可以對年、月、日、星期、時、分、秒進行計時,還具有閏年補償?shù)榷喾N功能,而且DS1302的使用壽命長,誤差??;數(shù)字顯示是采用的LED顯示屏來顯示,可以同時顯示年、月、日、星期、時、分、秒和溫度等信息。此外,該電子時鐘還具有時間校準等功能。
關(guān)鍵詞:時鐘電路;時鐘芯片DS1302;LED動態(tài)掃描;單片機
STC89C52RC;
緒論
隨著人們生活水平的提高和生活節(jié)奏的加快,對時間的要求越來越高,精準數(shù)字計時的消費需求也是越來越多。
二十一世紀的今天,最具代表性的計時產(chǎn)品就是電子時鐘,它是近代世界鐘表業(yè)界的第三次革命。第一次是擺和擺輪游絲的發(fā)明,相對穩(wěn)定的機械振蕩頻率源使鐘表的走時差從分級縮小到秒級,代表性的產(chǎn)品就是帶有擺或擺輪游絲的機械鐘或表。第二次革命是石英晶體振蕩器的應(yīng)用,發(fā)明了走時精度更高的石英電子鐘表,使鐘表的走時月差從分級縮小到秒級。第三次革命就是單片機數(shù)碼計時技術(shù)的應(yīng)用,使計時產(chǎn)品的走時日差從分級縮小到1/600萬秒,從原有傳統(tǒng)指針計時的方式發(fā)展為人們?nèi)粘8鼮槭煜さ囊构鈹?shù)字顯示方式,直觀明了,并增加了全自動日期、星期的顯示功能,它更符合消費者的生活需求!因此,電子時鐘的出現(xiàn)帶來了鐘表計時業(yè)界跨躍性的進步……
我國生產(chǎn)的電子時鐘有很多種,總體上來說以研究多功能電子時鐘為主,使萬年歷除了原有的顯示時間,日期等基本功能外,還具有鬧鈴,報警等功能。商家生產(chǎn)的電子萬年歷更從質(zhì)量,價格,實用上考慮,不斷的改進電子時鐘的設(shè)計,使其更加的具有市場。
本設(shè)計為軟件,硬件相結(jié)合的一組設(shè)計。在軟件設(shè)計過程中,應(yīng)對硬件部分有相關(guān)了解,這樣有助于對設(shè)計題目的更深了解,有助于軟件設(shè)計?;镜囊私庖恍┲饕骷幕竟δ芎妥饔?。
除了采用集成化的時鐘芯片外,還有采用MCU的方案,利用STC89系列單片微機制成電子電路,采用軟件和硬件結(jié)合的方法,控制LED數(shù)碼管輸出,分別用來顯示年、月、日、時、分、秒,其最大特點是:硬件電路簡單,安裝方便易于實現(xiàn),軟件設(shè)計獨特,可靠。STC89C52RC是由ATMEL公司推出的一種小型單片機。95年出現(xiàn)在中國市場。其主要特點為采用Flash存貯器技術(shù),降低了制造成本,其軟件、硬件與MCS-51完全兼容,可以很快被中國廣大用戶接受。
本文介紹了基于STC89C52RC單片機設(shè)計的電子時鐘。
首先我們在緒論中簡單介紹了單片機的發(fā)展與其在中低端領(lǐng)域中的優(yōu)勢以及課題的開發(fā)意義;接著介紹了STC89C52RC單片機的硬件結(jié)構(gòu)和本畢業(yè)設(shè)計所要外擴的LED顯示及其驅(qū)動方法,并在此基礎(chǔ)上實現(xiàn)了時鐘基本電路的設(shè)計;然后使用單片機C語言進行時鐘程序的設(shè)計,程序采用模塊化結(jié)構(gòu),使得邏輯關(guān)系簡單明了,維護方便。
第1章設(shè)計要求與方案論證
1.1引言
本文提出了一種基于STC89C52RC單片機的時鐘設(shè)計方案,本方案以STC89C52RC單片機作為主控核心,與時鐘芯片DS1302、按鍵、LED顯示等模塊組成硬件系統(tǒng)。在硬件系統(tǒng)中設(shè)有獨立按鍵和LED顯示器,能顯示豐富的信息,根據(jù)使用者的需要可以隨時對時間進行校準、選擇時間等,綜上所述此電子時鐘具有讀取方便、顯示直觀、功能多樣、電路簡潔、成本低廉等諸多優(yōu)點,符合電子儀器儀表的發(fā)展趨勢,具有廣闊的市場前景。
1.2功能要求
本電子時鐘能動態(tài)顯示年、月、日、星期、小時、分鐘、秒
1.3方案論證
1.3.1技術(shù)可行性
隨著國內(nèi)超大規(guī)模集成電路的出現(xiàn),微處理器及其外圍芯片有了迅速的發(fā)展。集成技術(shù)的最新發(fā)展之一是將CPU和外圍芯片,如程序存儲器、數(shù)據(jù)存儲器、并行I/O口、串行I/O口、定時/計數(shù)器、中斷控制器及其他控制部件集成在一個芯片之中,制成單片計算機(Single-ChipMicrocomputer)。而近年來推出的一些高檔單片機還包括有許多特殊功能單元,如A/D、D/A轉(zhuǎn)換器、調(diào)制解調(diào)器、通信控制器、鎖相環(huán)、DMA、浮點運算單元、PWM控制輸出單元、PWM輸出時的死區(qū)可編程控制功能等。因此,只要外加一些擴展電路及必要的通道接口就可以構(gòu)成各種計算機應(yīng)用系統(tǒng),如工業(yè)流水線控制系統(tǒng)、作為家用電器的主控制器、分布式控制系統(tǒng)的終端節(jié)點或作為其主控制節(jié)點起中繼的作用、數(shù)據(jù)采集系統(tǒng)、自動測試系統(tǒng)等。
單片機的出現(xiàn),并在各技術(shù)領(lǐng)域中得到如此迅猛的發(fā)展,與單片機構(gòu)成計算機應(yīng)用系統(tǒng)所形成的下述特點有關(guān):
1、單片機構(gòu)成的應(yīng)用系統(tǒng)有較大的可靠性。這些可靠性的獲得除了依靠單片機芯片本身的高可靠性以及應(yīng)用有最少的聯(lián)接外,還可以方便地采用軟、硬件技術(shù)。
2、系統(tǒng)擴展、系統(tǒng)配置較典型、規(guī)范,容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng),應(yīng)用系統(tǒng)有較高的軟、硬件利用系數(shù)。
3、由于構(gòu)成的應(yīng)用系統(tǒng)是一個計算機系統(tǒng),相當多的測、控功能由軟件實現(xiàn),故具有柔性特征,不須改變硬件系統(tǒng)就能適當?shù)馗淖兿到y(tǒng)功能。
4、有優(yōu)異的性能、價格比。
1.3.2單片機的選擇
方案一:采用傳統(tǒng)的STC89C52RC作為電機的控制核心。單片機算術(shù)運算功能強,軟件編程靈活、自由度大,可用軟件編程實現(xiàn)各種算法和邏輯控制,并且由于其功耗低、體積小、技術(shù)成熟和成本低等優(yōu)點,使其在各個領(lǐng)域應(yīng)用廣泛。
方案二:采用FTC10F04單片機,還帶有非易失性Flash程序存儲器。它是一種高性能、低功耗的8位CMOS微處理芯片,市場應(yīng)用最多。其主要特點如下:8KBFlashROM,可以擦除1000次以上,數(shù)據(jù)保存10年。
由于本系統(tǒng)對CPU運算速度要求很高,需要執(zhí)行很復(fù)雜的運算,方案一成本比較低,適合做設(shè)計,方案二運算速度高,性能好,所以兩種方案都有可取之處。選用方案一作為主方案,方案二作為備用方案。
1.3.3顯示模塊的選擇
方案一:使用液晶顯示屏顯示時間數(shù)字。液晶顯示屏(LCD)具有輕薄短小、低耗電量、無輻射危險,平面直角顯示以及影象穩(wěn)定不閃爍等優(yōu)勢,可視面積大,畫面效果好,分辨率高,抗干擾能力強等特點。但由于液晶是以點陣的模式顯示各種符號,需要利用控制芯片創(chuàng)建字符庫,編程工作量大,控制器的資源占用較多,其成本也偏高。在使用時,不能有
靜電干擾,否則易燒壞液晶的顯示芯片,不易維護。
方案二:使用傳統(tǒng)的LED數(shù)碼管顯示。數(shù)碼管具有:低能耗、低損耗、低壓、壽命長、耐老化、防曬、防潮、防火、防高(低)溫,對外界環(huán)境要求低,易于維護,同時其精度比較高,稱重輕,精確可靠,操作簡單。數(shù)碼管采用BCD編碼顯示數(shù)字,程序編譯容易,資源占用較少。根據(jù)以上的論述,采用方案二。在本系統(tǒng)中,我們采用了八段四位一體數(shù)碼管串口的動態(tài)顯示。
1.3.4鍵盤模塊的選擇
在對日期和時間進行切換,對日期和時間進行調(diào)節(jié)校準過程中,系統(tǒng)需要產(chǎn)生激勵電流,因此需要用按鍵。
方案一:使用獨立式鍵盤。獨立式鍵盤是指直接用I/O口線構(gòu)成的單方案二:使用矩陣式鍵盤。矩陣式鍵盤是由行線和列線組成,按鍵個按鍵電路。獨立式按鍵電路配置靈活,軟件結(jié)構(gòu)簡單。位于行、列的交叉點上,行線、列線分別連接到按鍵開關(guān)的兩端。其特點是簡單且不增加成本,這種鍵盤適合按鍵數(shù)量較多的場合。
根據(jù)以上的論述,因本系統(tǒng)需要的按鍵不多,日期加1鍵,月數(shù)加1鍵,年數(shù)加1鍵,分數(shù)加1鍵,時數(shù)加1鍵,時間/日期切換鍵,要求簡單。所以采用方案一獨立式鍵盤。
1.3.5總體方案論證與選擇
按照系統(tǒng)設(shè)計功能的要求,初步確定系統(tǒng)由主控模塊、時控模塊、及顯示模塊和鍵盤接口模塊共4個模塊組成。主控芯片使用51系列STC89C52RC單片機,時鐘芯片使用美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘DS1302。采用DS1302作為計時芯片,可以做到計時準確。更重要的是,DS1302可以在很小電流的后備電源(2.5~5.5V電源,再2.5V時耗電小于300nA),而且可以編程選擇多種充電電流來為后備電源進行慢速充電,可以保證后備電源基本不耗電。顯示模塊采用普通的共陽極四位一體八段LED數(shù)碼管。
第二章系統(tǒng)硬件電路設(shè)計
2.2系統(tǒng)硬件概述
2.2.1主控制器STC89C52RC
STC89C52RC單片機是宏晶科技推出的新一代高速、低功耗、超強抗干擾的單片機,指令代碼完全兼容傳統(tǒng)8051單片機,12時鐘、機器周期和6時鐘、機器周期可以任意選擇。
主要特性如下:
●增強型8051單片機,6時鐘、機器周期和12時鐘、機器周期可
以任意選擇,指令代碼完全兼容傳統(tǒng)8051單片機。
●工作電壓:5.5V~3.3V
●工作頻率范圍:0~44MHz。
●用戶應(yīng)用程序空間為8K字節(jié)
●片上集成512字節(jié)RAM
●通用I/O口32個,復(fù)位后為:P1/P2/P3/P4是準雙向口/弱上位,
P0口是漏極開路輸出,作為總線擴展用時,不用加上拉電阻,作為I/O口用時,需加上拉電阻。
●ISP(在系統(tǒng)可編程)/IAP(再應(yīng)用可編程),無需專用編程器,無需
專用仿真器,可通過串口(RXD/P3.0,TXD/P3.1)直接下載用戶程序,數(shù)秒即可完成一片。
●具有EEPROM功能
●具有看門狗功能
●共3個16位定時器/計數(shù)器。及定時器T0、T1、T2
●外部中斷4路,下降沿中斷或低電平觸發(fā)電路,PowerDown模式
可由外部中斷低電平觸發(fā)中斷方式喚醒
●通用異步串行口(UART),還可用定時器實現(xiàn)多個UART
●工作溫度范圍:-40~+85度(工業(yè)級)/0~75度(商業(yè)級)
●PDIP封裝
2.2.2時鐘電路DS1302
DS1302的性能特性:
●實時時鐘,可對秒、分、時、日、周、月以及帶閏年補償?shù)哪赀M
行比較;
●用于高速數(shù)據(jù)暫存的31*8位RAM;
●最少引腳的串行I/O;
●2.5~5.5V電壓工作范圍;
●2.5V時耗小于300nA;
●用于時鐘或RAM數(shù)據(jù)讀/寫的單字節(jié)或多字節(jié)(脈沖方式)數(shù)據(jù)
傳送方式;
●簡單的三線接口;
●可選的慢速充電(至Vcc1)的能力。
DS1302在任何數(shù)據(jù)傳送時必須先初始化,把RST腳置為高電平,然后把8位地址和命令字裝入移位寄存器,數(shù)據(jù)在SCLK的上升沿被訪問到。在開始8個時鐘周期,把命令字節(jié)裝入移位寄存器后,另外的時鐘周期在讀操作時輸出數(shù)據(jù),在寫操作時寫入數(shù)據(jù)。時鐘脈沖的個數(shù)在單字節(jié)方式下為8+8,在多字節(jié)方式下為8+字節(jié)數(shù),最大可達248字節(jié)數(shù)。如果在傳送過程中置RST腳為低電平,則會終止本次數(shù)據(jù)傳送,并且I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc≥2.5V之前,RST腳必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。
DS1302的控制字如表所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到DS1302中。位6如果為0,則表示存取日歷時鐘數(shù)據(jù);為1則表示存取RAM數(shù)據(jù)。位5~1(A4~A0)指示操作單元的地址。最低有效位(位0)如果為0,則表示藥進行寫操作;為1表示進行讀操作。控制字節(jié)總是從最低位開始輸入/輸出。
為了提高對32個地址尋址能力(地址/命令位1~5=邏輯1),可以把時鐘/日歷或RAM寄存器規(guī)定為多字節(jié)(burst)方式。位6規(guī)定時鐘或RAM,而位0規(guī)定讀或?qū)?。在時鐘/日歷寄存器中的地址9~31或RAM寄存器中
的地址31不能存儲數(shù)據(jù)。在多字節(jié)方式下,讀或?qū)憦牡刂?的位0開始。必須按數(shù)據(jù)傳送的次序?qū)懽钕鹊?個寄存器。但是,當以多字節(jié)方式寫RAM時,為了傳送數(shù)據(jù)不必寫所有的31字節(jié),不管是否謝了全部31字節(jié),所寫的每一字節(jié)都將傳送至RAM。
表2.1DS1302控制字
DS1302共有12個寄存器,其中有7個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式。其日歷、時間寄存器及其控制字如上表所示,其中奇數(shù)為讀操作,偶數(shù)為寫操作。
時鐘暫停:秒寄存器的位7定義位時鐘暫停位。當它為1時,DS1302停止振蕩,進入低功耗的備份方式,通常在對DS1302進行寫操作時(如進入時鐘調(diào)整程序),停止振蕩。當它為0時,時鐘將開始啟動。
AM-PM/12-24小時方式:小時寄存器的位7定義為12或24小時方式選擇位。它為高電平時,選擇12小時方式。在此方式下,位5為第二個10小時位(20~23h)。
DS1302的晶振選用32768Hz,電容推薦值為6pF。因為振蕩頻率較低,也可以不接電容,對計時精度影響不大。
2.3主要單元電路的設(shè)計
2.3.1顯示電路
顯示部分采用普通的共陽數(shù)碼管顯示,采用動態(tài)掃描,以減少硬件電路。年月日、時分秒、報警共需要24位數(shù)碼顯示,用8
位數(shù)碼管以按鍵切
換的方式來顯示??紤]到一次掃描24位數(shù)碼管顯示時會出現(xiàn)閃爍情況,故采用動態(tài)掃描,可將數(shù)碼管數(shù)量減少至8位,顯示時采用串行口輸出段碼。
2.3.2鍵盤接口
鍵盤在單片機系統(tǒng)中是一個很重要的部件。為了輸入數(shù)據(jù)、查詢和控制系統(tǒng)的工作狀態(tài),都要用到鍵盤,鍵盤是人工干預(yù)計算機的主要手段。
鍵盤可分為編碼和非編碼鍵盤兩種。編碼鍵盤采用硬件線線路來實現(xiàn)鍵盤編碼,每按下一個鍵,鍵盤能自動生成按鍵代碼,鍵數(shù)較多,而且還具有去抖動功能。這種鍵盤使用方便,但硬件較復(fù)雜,PC機所用的鍵盤就屬于這種。非編碼鍵盤僅提供按鍵開關(guān)工作狀態(tài),其他工作由軟件完成,這種鍵盤鍵數(shù)較少,硬件簡單,一般在單片機應(yīng)用系統(tǒng)中廣泛使用。此處主要介紹該類非編碼鍵盤及其與MCS—51型單片機的接口。
2.3.2.1按鍵開關(guān)去抖動問題
按鍵開關(guān)在電路中的連接如圖所示。按鍵未按下時,A點電位為高電平5V;按鍵按下時,A點電位為低電平。A點電位就用于向CPU傳遞按鍵的開關(guān)狀態(tài)。但是由于按鍵的結(jié)構(gòu)為機械彈性開關(guān),在按鍵按下和斷開時,觸點在閉合和斷開瞬間還會接觸不穩(wěn)定,引起A點電平不穩(wěn)定,如圖2-11b所示,鍵盤的抖動時間一般為5~10ms,抖動現(xiàn)象會引起CPU對一次鍵操作進行多次處理,從而可能產(chǎn)生錯誤。因此必須設(shè)法消除抖動的不良后果。
圖2.3鍵操
作和鍵抖動
消除抖動的不良后果的方法有硬、軟件兩種。
為了節(jié)省硬件,通常在單片機系統(tǒng)中,一般不采用硬件方法消除鍵的抖動,而是用軟件消除抖動的方法。根據(jù)抖動特性,在第一次檢測到按鍵按下后,執(zhí)行一段延時5~10ms讓前延抖動消失后再一次檢測鍵的狀態(tài),如果仍保持閉合狀態(tài)電平,則確認真正有鍵按下。當檢測到按鍵釋放后,也要給5~10ms的延時,待后延抖動消失后才轉(zhuǎn)入該鍵處理程序。
2.3.2.2查詢式按鍵及其接口
按照鍵盤與CPU的連接方式可以分為查詢按鍵和矩陣式鍵盤。查詢式按鍵是各按鍵相互獨立,每個按鍵占用一根I/O口線,每根I/O口線上的按鍵工作狀態(tài)不會影響其他I/O口線上按鍵的工作狀態(tài)。查詢式按鍵電路配置靈活,軟件結(jié)構(gòu)簡單,但每個按鍵必須占用一根I/O口線,在按鍵數(shù)量較多時,I/O口線浪費較大,且電路結(jié)構(gòu)顯得繁雜。故這種形式適用于按鍵數(shù)量較少的場合。
2.3.2.3矩陣式鍵盤及其接口
矩陣式鍵盤又稱行列式鍵盤,有n個行線和m個列線,經(jīng)限流電阻接+5V電源上,按鍵跨接在行線和列線上,n×m行列結(jié)構(gòu)可構(gòu)成mn個按鍵,組成一個鍵盤。與獨立式按鍵相比,mn個按鍵只占用m+n根I/O口線,因此適用于按鍵較多的場合。
當無鍵閉合時,相應(yīng)的I/O之間開路。當有鍵閉合時,與閉合鍵相連接的兩條I/O口線之間短路。判斷有無鍵按下的方法是:第一步,置列線相關(guān)I/O口為輸入態(tài),從行線相對應(yīng)的I/O口輸出低電平,讀入列線數(shù)據(jù),若某一列線為低電平,則該列線上有鍵閉合。第二步,置行線相關(guān)I/O口輸出低電平,讀入列線數(shù)據(jù),若某一列線為低電平,則該列線上有鍵閉合。綜合一二兩步的結(jié)果,可確定按鍵編號。但是鍵閉合一次只能進行一次鍵功能操作,因此須等待近按鍵釋放后,再進行鍵功能操作,否則按一次鍵,有可能會連續(xù)多次進行同樣的鍵操作。
2.3.2.4鍵盤掃描控制方式
在單片機應(yīng)用系統(tǒng)中,對鍵盤的處理工作僅是CPU工作內(nèi)容的一部分,CPU還要進行數(shù)據(jù)處理、顯示和其他輸入輸出操作,因此鍵盤處理工作既不能占用CPU太多時間,又需要CPU對鍵盤操作及時作出響應(yīng)。CPU對鍵盤處理控制的工作方式有以下幾種:
1.程序控制掃描方式
程序控制掃描方式是在CPU工作空余,調(diào)用鍵盤掃描子程序,響應(yīng)鍵輸入信號要求。
2.定時控制掃描方式
定時控制掃描方式是利用定時/計數(shù)器每隔一段時間產(chǎn)生定時中斷,CPU響應(yīng)中斷后對鍵盤進行掃描,并在有鍵閉合時轉(zhuǎn)入該鍵的功能子程序。
3.中斷控制掃描方式
中斷控制掃描方式是利用外部中斷源,響應(yīng)輸入信號。當無按鍵按下時,CPU執(zhí)行正常工作程序。當有按鍵按下時,CPU立即產(chǎn)生中斷。在中斷服務(wù)子程序中掃描鍵盤,判斷是哪一個鍵被按下,然后執(zhí)行該鍵的功能子程序。這種控制方式克服了前兩種控制方式可能產(chǎn)生的空掃描和不能及時響應(yīng)鍵輸入的缺點,既能及時處理鍵輸入,又能提高CPU運行效率,但要占用一個寶貴的中斷資源。圖即工作于中斷方式的矩陣式鍵盤接口電路。在初始化時P1.4~P1.7置輸出0,P1.0~P1.3置為輸入態(tài),P1.0~P1.3分別接至與門各輸入端。當有鍵閉合時INTO=0,CPU中斷后,在中斷服務(wù)子程序中,再完成鍵識別和鍵功能處理。
圖2.4工作于中斷方式的矩陣式鍵盤接口電路
2.3.3時鐘電路
2.3.3.1DS1302工作方式簡介及數(shù)據(jù)操作原理
DS1302可以對年、月、日、星期、時、分、秒進行計時,且具有閏年補償功能,工作電壓寬達2.5~5.5V。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個33x8的用于臨時性存放數(shù)據(jù)的RAM寄存器。DS1302是的DS1202升級產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時提供了對后背電源進行涓細電流充電的能力。
DS1302時鐘芯片包括實時時鐘/日歷和31字節(jié)的靜態(tài)RAM。它經(jīng)過一個簡單的串行接口與微處理器通信。實時時鐘/日歷提供秒、分、時、日、周、月和年等信息。對于小于31天的月和月末的日期自動進行調(diào)整,還包括閏年校正的功能。時鐘的運行可以采用24<小>時或帶AM/PM的12小時格式。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多字節(jié)的時鐘信號或RAM數(shù)據(jù)。
DS1302有主電源/后備電源雙電源引腳:Vcc1在單電源與電池供電的系統(tǒng)中提供低電源,并提供低功率的電磁備份;Vcc1在雙電池系統(tǒng)中提供主電源。在這種運行方式中,Vcc1里連接到后備電源,以便在沒有主電源的情況下能保存時間信息以及數(shù)據(jù)。DS1302由Vcc1或Vcc2中較打大者供電。當Vcc2>(Vcc1+0.2V)時,Vcc2給DS1302供電;當Vcc2<Vcc1時,DS1302由Vcc1供電。
圖2.5DS1302
DS1302在任何數(shù)據(jù)傳送時必須先初始化,把RST腳置為高電平,然后把8位地址和命令字裝入移位寄存器,數(shù)據(jù)在SCLK的上升沿被訪問到。在開始8個時鐘周期,把命令字節(jié)裝入移位寄存器后,另外的時鐘周期在讀操作時輸出數(shù)據(jù),在寫操作時寫入數(shù)據(jù)。時鐘脈沖的個數(shù)在單字節(jié)方式下為8+8,在多字節(jié)方式下為8+字節(jié)數(shù),最大可達248字節(jié)數(shù)。如果在傳送過程中置RST腳為低電平,則會終止本次數(shù)據(jù)傳送,并且I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc≥2.5V之前,RST腳必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。
DS1302的控制字如圖所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到DS1302中。位6如果為0,則表示存取日歷時鐘數(shù)據(jù);為1則表示存取RAM數(shù)據(jù)。位5~1(A4~A0)指示操作單元的地址。最低有效位(位0)如果為0,則表示藥進行寫操作;為1表示進行讀操作。控制字節(jié)總是從最低位開始輸入/輸出。
為了提高對32個地址尋址能力(地址/命令位1~5=邏輯1),可以把時鐘/日歷或RAM寄存器規(guī)定為多字節(jié)(burst)方式。位6規(guī)定時鐘或RAM,而位0規(guī)定讀或?qū)?。在時鐘/日歷寄存器中的地址9~31或RAM寄存器中的地址31不能存儲數(shù)據(jù)。在多字節(jié)方式下,讀或?qū)憦牡刂?的位0開始。必須按數(shù)據(jù)傳送的次序?qū)懽钕鹊?個寄存器。但是,當以多字節(jié)方式寫RAM時,為了傳送數(shù)據(jù)不必寫所有的31字節(jié),不管是否謝了全部31字節(jié),所寫的每一字節(jié)都將傳送至RAM。
DS1302共有12個寄存器,其中有7個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式。其日歷、時間寄存器及其控制字如下表所示,其中奇數(shù)為讀操作,偶數(shù)為寫操作。
表2.3DS1302控制字
時鐘暫停:秒寄存器的位7定義位時鐘暫停位。當它為1時,DS1302停止振蕩,進入低功耗的備份方式,通常在對DS1302進行寫操作時(如進入時鐘調(diào)整程序),停止振蕩。當它為0時,時鐘將開始啟動。
AM-PM/12-24小時方式:小時寄存器的位7定義為12或24小時方式選擇位。它為高電平時,選擇12小時方式。在此方式下,位5為第二個10小時位(20~23h)。
DS1302的晶振選用32768Hz,電容推薦值為6pF。因為振蕩頻率較低,也可以不接電容,對計時精度影響不大。
第3章系統(tǒng)的軟件設(shè)計(3.1程序設(shè)計)
電子時鐘的程序主要包括3個方面的內(nèi)容:一是DS1302從單片機中讀取數(shù)據(jù)進行計數(shù),二是利用按鍵進行時間的調(diào)整,三是單片機中讀取DS1302中的數(shù)據(jù)驅(qū)動LED數(shù)碼管顯示時間。STC89C52RC單片機主要I/O口的分配:P10、P11、P12分別接時鐘芯片的SCLK、I/O、RST引腳,P13、P14、P15、P16接四個獨立按鍵。
開始
等于K等于1顯示日期報警程序按鍵程序返回
主程序流程圖
時間調(diào)整程序流程圖
第4章結(jié)束語
20xx年3月,我開始了我的畢業(yè)論文工作,時至今日,論文基本完成。從最初的茫然,到慢慢的進入狀態(tài),再到對思路逐漸的清晰,整個寫作過程難以用語言來表達。歷經(jīng)了一個多月的奮戰(zhàn),緊張而又充實的畢業(yè)設(shè)計終于落下了帷幕?;叵脒@段日子的經(jīng)歷和感受,我感慨萬千,在這次畢業(yè)設(shè)計的過程中,我擁有了無數(shù)難忘的回憶和收獲。當我終于完成了所有打字、繪圖、排版、校對的任務(wù)后整個人都很累,但同時看著電腦熒屏上的畢業(yè)設(shè)計稿件我的心里是甜的,我覺得這一切都值了。這次畢業(yè)論文的制作過程是我的一次再學(xué)習,再提高的過程。在論文中我充分地運用了大學(xué)期間所學(xué)到的知識。
我不會忘記這難忘的幾個月的時間。畢業(yè)論文的制作給了我難忘的回憶。在我徜徉書海查找資料的日子里,面對無數(shù)書本的羅列,最難忘的是每次找到資料時的激動和興奮;親手用protel99設(shè)計電路圖的時間里,記憶最深的是每一步小小思路實現(xiàn)時那幸福的心情;為了論文我曾趕稿到深夜,但看著親手打出的一字一句,心里滿滿的只有喜悅毫無疲憊。這段旅程看似荊棘密布,實則蘊藏著無盡的寶藏。我從資料的收集中,掌握了很多單片機及其接口應(yīng)用的知識,讓我對我所學(xué)過的知識有所鞏固和提高,并且讓我對當今單片機的最新發(fā)展技術(shù)有所了解。在整個過程中,我學(xué)到了新知識,增長了見識。在今后的日子里,我仍然要不斷地充實自己,爭取在所學(xué)領(lǐng)域有所作為。
腳踏實地,認真嚴謹,實事求是的學(xué)習態(tài)度,不怕困難、堅持不懈、吃苦耐勞的精神是我在這次設(shè)計中最大的收益。我想這是一次意志的磨練,是對我實際能力的一次提升,也會對我未來的學(xué)習和工作有很大的幫助。在這次畢業(yè)設(shè)計中也使我們的同學(xué)關(guān)系更進一步了,同學(xué)之間互相幫助,有什么不懂的大家在一起商量,聽聽不同的看法對我們更好的理解知識,所以在這里非常感謝幫助我的同學(xué)。
在此更要感謝我的指導(dǎo)老師和專業(yè)老師,是你們的細心指導(dǎo)和關(guān)懷,使我能夠順利的完成畢業(yè)論文。在此我要向司老師致以最衷心的感謝和敬意。
程序
//main.c//
#include<reg51.h>
#defineuintunsignedint
#include"ds1302.h"
#include"key.h"
#include"bell.h"
sbitk4=P1^3;
chark=0;
charshi,fen,miao,nian,yue,ri;
char
baojingshi=0x00,baojingfen=0x06,baojingmiao=0x00;
voidsjdisplay();
voidrqdisplay();
voidbaojingdisplay();
voiddelay(uintms);
voiddisplay(charshu,charwei);
chartable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};voidmain()
{
ds1302_write(0x80,0x55);
ds1302_write(0x82,0x45);
ds1302_write(0x84,0x00);
ds1302_write(0x8c,0x11);ds1302_write(0x88,0x10);
ds1302_write(0x86,0x07);
while(1)
{
if(k4==0)
{
delay(5);if(k4==0)
{
while(k4==0);k++;
if(k==3)
{
k=0;
}
}
}
if(k==0)
sjdisplay();
if(k==1)
rqdisplay();
if(k==2)
baojingdisplay();
if((shi==baojingshi)&&(fen==baojingfen)&(miao==baojingmiao))
{
didi(10);
}
key();
}
}
voidsjdisplay()
{
shi=ds1302_read(0x85);//hour
fen=ds1302_read(0x83);//minites
miao=ds1302_read(0x81);//second
display((shi>>4)&0x07,0);
display(shi&0x0f,1);
display((fen>>4)&0x07,3);
display(fen&0x0f,4);
display((miao>>4)&0x07,6);
display(miao&0x0f,7);
}
voidrqdisplay()
{
nian=ds1302_read(0x8d);//nian
yue=ds1302_read(0x89);//yue
ri=ds1302_read(0x87);//ri
display((nian>>4)&0x07,0);
display(nian&0x0f,1);
display((yue>>4)&0x07,3);
display(yue&0x0f,4);
display((ri>>4)&0x07,6);//00000111
display(ri&0x0f,7);
}
voidbaojingdisplay()
{
display((baojingshi>>4)&0x07,0);display(baojingshi&0x0f,1);
display((baojingfen>>4)&0x07,3);display(baojingfen&0x0f,4);
display((baojingmiao>>4)&0x07,6);display(baojingmiao&0x0f,7);}
voiddelay(uintms)
{
uinti,j;
for(i=ms;i>0;i--)
for(j=124;j>0;j--);
}
voiddisplay(charshu,charwei){
P0=table[shu];
P2=~(1<<wei);
delay(3);
P2=0xff;
}
//main.c//
//Ds1302.c//
#include<reg51.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitrst=P1^2;
sbitdat=P1^1;
sbitclk=P1^0;
voidds1302_write(charcomm,chardat1){
chartemp,t;
rst=0;
clk=0;
rst=1;
temp=comm;
for(t=0;t<8;t++)
{
if(temp&0x01)
dat=1;
elsedat=0;
clk=1;
temp=(temp>>1);
clk=0;
}
temp=dat1;
for(t=0;t<8;t++)
{
if((temp&0x01)==1)//00000001dat=1;
elsedat=0;
clk=1;
temp=temp>>1;
clk=0;
}
rst=0;
}
uchards1302_read(charcomm){
chartemp,t;
rst=0;
clk=0;
rst=1;
temp=comm;
for(t=0;t<8;t++)
{
if(temp&0x01)
dat=1;
elsedat=0;
clk=1;temp=temp>>1;clk=0;}
temp=0;//00000000
for(t=0;t<8;t++)
{
temp=temp>>1;
if(dat==1)
temp=temp|0x80;
elsetemp=temp&0x7f;clk=1;
clk=0;
}
rst=0;
returntemp;
}
//Ds1302.c//
//Key.c//
#include<reg51.h>
#definecharsignedchar
#defineuintunsignedint
sbitmode=P1^4;
sbitadd=P1^5;
sbitsub=P1^6;
charmod=0;
externvoiddelay(uintms);
externcharshi,fen,nian,yue,ri;externcharbaojingshi,baojingfen;externchards1302_read(char);
externvoidds1302_write(char,char);
voidkey()
{
shi=ds1302_read(0x85);
fen=ds1302_read(0x83);if(mode==0){}if(add==0){delay(5);if(add==0)delay(5);if(mode==0){}while(mode==0);mod++;if(mod==8){}mod=0;
{while(add==0);if(mod==1){shi=(((shi>>4)&0x03)*10+(shi&0x0f))+1;if(shi==24){}shi=0;ds1302_write(0x84,((shi/10)<<4)+((shi%10)&0x0f));//hour
}elseif(mod==2){
fen=(((fen>>4)&0x07)*10+(fen&0x0f))+1;if(fen==60){}fen=0;ds1302_write(0x82,((fen/10)<<4)+((fen%10)&0x0f));
}
elseif(mod==3)
{
nian=(((nian>>4)&0x0f)*10+(nian&0x0f))+1;
if(nian==99){}nian=1;
ds1302_write(0x8c,((nian/10)<<4)+((nian%10)&0x0f));
}
elseif(mod==4)
{
yue=(((yue>>4)&0x01)*10+(yue&0x0f))+1;
if(yue==13){}yue=1;ds1302_write(0x88,((yue/10)<<4)+((yue%10)&0x0f));
}
elseif(mod==5)
{
if((yue==1)||(yue==3)||(yue==5)||(yue==7)||(yue==8)||(yue==10)||(yue==12))
{
ri=(((ri>>4)&0x03)*10+(ri&0x0f))+1;
if(ri>=32){ri=1;}
}
if((yue==4)||(yue==6)||(yue==9)||(yue==11)){
ri=(((ri>>4)&0x03)*10+(ri&0x0f))+1;
if(ri>=31)
{ri=1;}
}
if(yue==2)
{
ri=(((ri>>4)&0x03)*10+(ri&0x0f))+1;
if(ri>=29)
{ri=1;}
}
ds1302_write(0x86,((ri/10)<<4)+((ri%10)&0x0f));
}
elseif(mod==6)
{
baojingshi=(((baojingshi>>4)&0x01)*10+(baojingshi&0x0f))+1;
if(baojingshi==24){}baojingshi=0;ds1302_write(0x88,((baojingshi/10)<<4)+((baojingshi%10)&0x0f));
}
elseif(mod==7)
{
baojingfen=(((baojingfen>>4)&0x01)*10+(baojingfen&0x0f))+1;
if(baojingfen==60){
}baojingfen=0;ds1302_write(0x88,((baojingfen/10)<<4)+((baojingfen%10)&0x0f));
}
}}if(sub==0){delay(5);{if(sub==0){while(sub==0);if(mod==1)
{shi=(((shi>>4)&0x03)*10+(shi&0x0f))-1;if(shi==-1){}shi=23;
ds1302_write(0x84,((shi/10)<<4)+((shi%10)&0x0f));
}elseif(mod==2){fen=(((fen>>4)&0x
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024中國生活用燃料零售市場前景及投資研究報告
- 中國葦漿行業(yè)市場深度分析及未來發(fā)展趨勢預(yù)測報告
- 成都青白江區(qū)2024年七年級《地理》下冊期末試卷與參考答案
- 沈陽工業(yè)大學(xué)《中學(xué)語文課本劇編演》2023-2024學(xué)年第二學(xué)期期末試卷
- 中國科學(xué)技術(shù)大學(xué)《數(shù)字調(diào)色與影視特效》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧中醫(yī)藥大學(xué)杏林學(xué)院《數(shù)據(jù)庫設(shè)計實訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年鋁電解電容器行業(yè)市場規(guī)模分析
- 2020-2025年中國豐胸儀行業(yè)市場前景預(yù)測及投資戰(zhàn)略研究報告
- 中國家電連鎖行業(yè)市場調(diào)研分析及投資戰(zhàn)略咨詢報告
- 退學(xué)生會申請書怎么
- 北師大版五年級數(shù)學(xué)下冊教材分析解讀課件完整版
- 學(xué)校開學(xué)教師安全培訓(xùn)
- 出口潛力分析報告
- 晉升的述職報告
- 檔案盒(文件盒)標簽?zāi)0?正面、側(cè)面)
- 消防工程施工進度計劃橫道圖+進度網(wǎng)絡(luò)圖
- 微信視頻號運營技巧攻略詳解全套
- 2023CSCO非小細胞肺癌診療指南解讀
- 人教版九年級英語全冊期末復(fù)習完成句子專項練習
- 干部選拔任用程序
- 圍手術(shù)期疼痛護理課件
評論
0/150
提交評論