

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 基于DS1302的電子萬年歷設(shè)計</p><p> 專業(yè)班級: 學(xué)生姓名:</p><p> 指導(dǎo)教師: 職 稱:講師</p><p> 摘 要: 現(xiàn)在是一個知識爆炸的新時代,新產(chǎn)品、新技術(shù)層出不窮,電子技術(shù)的發(fā)展更是日新月異??梢院敛豢鋸埖恼f,電子技術(shù)的應(yīng)用無處不在
2、,電子技術(shù)正在不斷地改變我們的生活,改變著我們的世界。在這快速發(fā)展的年代,時間對人們來說是越來越寶貴,在快節(jié)奏的生活時,人們往往忘記了時間,一旦遇到重要的事情而忘記了時間,這將會帶來很大的損失。因此我們需要一個定時系統(tǒng)來提醒這些忙碌的人,而數(shù)字化的鐘表給人們帶來了極大的方便。由于單片機具有靈活性強、成本低、功耗低、保密性好等特點,所以電子日歷時鐘一般都以DS1302為核心,外加一些外圍設(shè)備來實現(xiàn)。
3、近些年,隨著科技的發(fā)展和社會的進(jìn)步,人們對數(shù)字鐘的要求也越來越高,傳統(tǒng)的時鐘已不能滿足人們的需求。多功能數(shù)字鐘不管在性能還是在樣式上都發(fā)生了質(zhì)的變化,有電子鬧鐘、數(shù)字鬧鐘等等。單片機在多功能數(shù)字鐘中的應(yīng)用已是非常普遍的,人們對數(shù)字鐘的功能及工作順序都非常熟悉。但是卻很少知道它的內(nèi)部結(jié)構(gòu)以及工作原理。由單片機作為數(shù)字鐘的核心控制器,可以通過它的時鐘信號進(jìn)行計時實現(xiàn)計時功能,將其時間數(shù)據(jù)經(jīng)單片機輸出,利用顯示器顯示出來,通過按鍵可以進(jìn)行定時
4、、校時功能。輸出設(shè)</p><p> 關(guān)鍵詞:DS1302 實時鐘 萬年歷</p><p> The Design of The Simple Logic Controller Based on SCM</p><p> Abstract:Now a new era of knowledge explosion, new products, new techn
5、ologies emerge in endlessly, the development of electronic technology is changing. It is no exaggeration to say, electroni c technology applications everywhere, electronic technology is changing our life, and our world.
6、In this fast development, the time is more precious to people in the fast pace of life, people often forgotten when time, once encounter something important and forget time, this will bring great loss. So we ne</p>
7、<p> In recent years, with the development of science and technology and the progress of the society, the people of a digital clock higher requirements, the traditional clock already cannot satisfy the demands of
8、 the people. Multi-functional digital clock in performance or in style have undergone a qualitative change, electronic alarm clock, number, etc. Microcomputer in the multi-function digital clock application is very commo
9、n, and has the function of digital clock and work order is very familiar </p><p> Keywords: DS1302 calendar clock.</p><p><b> 目 錄</b></p><p> 引言…………………………………………………
10、…………………………………………1</p><p> 第一章 系統(tǒng)概述……………………………………………………………………………2</p><p> 1.1 設(shè)計要求………………………………………………………………………………2</p><p> 1.2 設(shè)計方案………………………………………………………………………………2</p><p&
11、gt; 1.3 器件選擇………………………………………………………………………………2</p><p> 1.4 系統(tǒng)概述………………………………………………………………………………3第二章 系統(tǒng)的硬件設(shè)計…………………………………………………………………4</p><p> 2.1時鐘接口電路設(shè)計…………………………………………………………………4</p><p
12、> 2.1.1簡介…………………………………………………………………………………4</p><p> 2.1.2內(nèi)部實時時鐘RTC 和RAM地址分配………………………………………………6</p><p> 2.1.3 時鐘和日歷 ………………………………………………………………………6</p><p> 2.1.4 控制寄存器 ………………………………
13、………………………………………7</p><p> 2.2 鍵盤接口電路設(shè)計 …………………………………………………………………7</p><p> 2.2.1 鍵盤的分類 ………………………………………………………………………8</p><p> 2.2.2 鍵盤開關(guān)的抖動 …………………………………………………………………8</p><
14、p> 2.2.3 鍵盤電路 …………………………………………………………………………9</p><p> 2.3 八段數(shù)碼管顯示電路設(shè)計 …………………………………………………………10</p><p> 2.3.1 數(shù)碼管的結(jié)構(gòu) ……………………………………………………………………10</p><p> 2.3.2 數(shù)碼管的分類 …………………………
15、…………………………………………11</p><p> 2.3.3 數(shù)碼管的顯示方式 ………………………………………………………………12</p><p> 2.3.4 數(shù)碼管顯示圖 ……………………………………………………………………13</p><p> 2.4 AT89C51簡單電路設(shè)計………………………………………………………………13</p&g
16、t;<p> 2.4.1 AT89C51簡介………………………………………………………………………13</p><p> 2.4.2單片機接口電路圖………………………………………………………………17</p><p> 第三章 系統(tǒng)軟件設(shè)計 …………………………………………………………………18</p><p> 3.1 系統(tǒng)軟件程序圖………
17、……………………………………………………………18</p><p> 3.2 接口軟件 …………………………………………………………………………18</p><p> 3.3 按鍵 …………………………………………………………………………………21</p><p> 第四章 仿真軟件介紹及其仿真 ………………………………………………………23</p&
18、gt;<p> 4.1 仿真軟件概述 ………………………………………………………………………23</p><p> 4.2 程序運行效果圖 ……………………………………………………………………24</p><p> 結(jié)論………………………………………………………………………………25</p><p> 致謝…………………………………………………
19、……………………………26</p><p> 參考文獻(xiàn)…………………………………………………………………………27</p><p><b> 引 言</b></p><p> 本論文是基于DS1302的電子萬年歷設(shè)計。</p><p> 由于數(shù)字集成電路技術(shù)的發(fā)展和采用了先進(jìn)的石英技術(shù),使電子鐘具有走時準(zhǔn)確、
20、性能穩(wěn)定、攜帶方便等優(yōu)點,它還用于計時、自動報時及自動控制等各個領(lǐng)域。雖然現(xiàn)在市場上已有現(xiàn)成的電子鐘集成電路芯片出售,價格便宜,使用也靈活,如可以隨意設(shè)置時、分、秒的輸出,改變顯示數(shù)字的大小等,并且由于集成電路技術(shù)的發(fā)展,特別是MOS集成電路技術(shù)的發(fā)展,使電子鐘具有體積小、攜帶方便,但是這里介紹的實用電子鐘可以滿足使用者的一些特殊要求,輸出方式靈活、功耗低、計時準(zhǔn)確、性能穩(wěn)定、維護(hù)方便等優(yōu)點。 </p>&
21、lt;p> 實用電子時鐘是一個時間控制系統(tǒng),既能作為一般的時間顯示器,同時可以根據(jù)需要擴展其功能,擴展為可顯示時間和日歷的電子萬年歷。</p><p> 論文中的控制單元是以ATMEL公司的AT89C51微控制器為核心,顯示單元采用LED數(shù)碼管,實現(xiàn)時間的顯示。在軟件上,采用keil c51軟件系統(tǒng),控制單元采用匯編語言編程;另外,從硬件和軟件上采取了多種措施提高系統(tǒng)的可靠性。</p>&
22、lt;p><b> 第一章 系統(tǒng)概述</b></p><p><b> 1.1 設(shè)計要求 </b></p><p> 1.自動計時,顯示年、月、日、時、分、秒。</p><p> 2.時間顯示可調(diào)整。</p><p> 3.具備閏年閏月自動補償功能。</p><p
23、><b> 1.2 設(shè)計方案</b></p><p> 按照設(shè)計要求,整個系統(tǒng)可劃分為以下幾個模塊:</p><p><b> 1.主控模塊</b></p><p> 采用單片機,對系統(tǒng)進(jìn)行初始化,主要完成對鍵盤的響應(yīng)、數(shù)碼管顯示等功能的控制,起到總控和協(xié)調(diào)各模塊之間工作的作用。</p><
24、;p><b> 2.鍵盤輸入模塊</b></p><p> 主要完成時間相關(guān)的設(shè)置調(diào)制。</p><p><b> 3.數(shù)碼管顯示模塊</b></p><p> 完成對單片機送來的時間和日期進(jìn)行顯示。</p><p><b> 1.3 器件選擇</b></
25、p><p> 主控模塊采用AT89C51單片機作為系統(tǒng)的控制核心。鍵盤輸入模塊采用獨立式按鍵電路:每個鍵單獨占有一根I/O接口線,每個I/O口的工作狀態(tài)互不影響,此類鍵盤采用端口直接掃描方式,但是當(dāng)按鍵較多時占用單片機的I/O數(shù)目較多。兩個六位8段數(shù)碼管。</p><p><b> 1.4 系統(tǒng)概述</b></p><p> 系統(tǒng)由單片機AT
26、89C51為主控制器,單片機不斷讀取實時鐘DS1302提供的時間,送數(shù)碼管顯示。通過按鍵可以對年,月,日及時間時,分,秒進(jìn)行設(shè)置。整個系統(tǒng)的電源由5V電池提供,以便于攜帶。所設(shè)計的電子萬年歷目標(biāo)為實現(xiàn)以下功能:1.年,月,日及時間時,分,秒的顯示;2通過按鍵可隨時進(jìn)行年,月,日及時間時,分,秒的校對。系統(tǒng)結(jié)構(gòu)如圖1.1所示: </p><p><b> 圖1.1系統(tǒng)框圖</b></p
27、><p> 第二章 系統(tǒng)的硬件設(shè)計</p><p> 2.1 時鐘接口電路設(shè)計</p><p> 本電子萬年歷系統(tǒng)的重要部分在于時鐘模塊,這里選用串行日歷時鐘芯片DS1302。與采用并行總線與單片機進(jìn)行數(shù)據(jù)通信的時鐘芯片相比,DS1302與單片機的連線大為減少,極大的節(jié)省了單片機的系統(tǒng)資源。時鐘芯片的接口電路如圖2.1所示。</p><p&g
28、t; 圖2.1 DS1302 時鐘電路</p><p> 2.1.1結(jié)構(gòu)及工作原理</p><p> DS1302 是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、星期、時、分、秒進(jìn)行計時,具有閏年補償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)
29、部有一個31×8的用于臨時性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時提供了對后背電源進(jìn)行涓細(xì)電流充電的能力。</p><p> DS1302的引腳排列,其中Vcc1為后備電源,Vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc1+0.2
30、V時,Vcc2 給DS1302供電。當(dāng)Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.76kHz晶振。RST是復(fù)位/片選線,通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進(jìn)行操作。如果在傳送過程中RST置為低
31、電平,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc≥2.5V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細(xì)說明。SCLK始終是輸入端。下圖為DS1302的引腳功能圖。 </p><p> 圖2.2 DS1302 引腳示意圖</p><p> 圖中,Vcc,
32、GND---直流電源通過這兩個引腳提供給該器件,Vcc為+5V 輸入,當(dāng)提供的5V 電源在正常范圍內(nèi)器件能充分地被訪問,能對器件讀寫數(shù)據(jù)。當(dāng)3V 的電池被連至該器件且Vcc 低于1.25×VBAT 時,對器件的讀寫被禁止,而計時功能照常進(jìn)行,不受低輸入電壓的影響。當(dāng)Vcc 降到低于VBAT,則RAM 區(qū)和計時器將被切換到外部電源VBAT 來供電(名義上VBAT 為3.0V 直流電源)。VBAT---電池輸入引腳??梢允侨我鈽?biāo)
33、準(zhǔn)的3V 鋰電池或其它電源。為了器件能夠正常工作,電池電壓必須限制在2.0~3.5V 之間。事實上,寫保護(hù)帶電壓被內(nèi)部電路設(shè)置為1.25×VBAT。</p><p> X1,X2 ----32.76KHZ晶振管腳</p><p> GND ----地</p><p> RST ----復(fù)位鍵</p
34、><p> I/O ----數(shù)據(jù)輸入/輸出引腳</p><p> SCLK ----串行時鐘</p><p> Vcc1,Vcc2 ----電源供電管腳</p><p> 2.1.2 內(nèi)部實時時鐘RTC 和RAM 地址分配</p><p> DS1302 的RTC 與RAM 寄存器的地址分配如
35、圖2.3 所示。RTC 寄存器地址位于00H 到07h 處。RAM 寄存器地址位于08h~3Fh。在多字節(jié)存取中,當(dāng)?shù)刂分羔樀竭_(dá)3Fh,即RAM 空間的最后一個單元,則下一個操作地址將翻卷到00h,即時鐘空間的開頭。</p><p> 圖2.3 DS1302地址分配圖</p><p> 2.1.3 時鐘和日歷</p><p> 通過讀取正確的寄存器字節(jié)能獲得正
36、確的時鐘和日歷信息,實時時鐘寄存器如表2.1 所示。通過寫入正確的寄存器字節(jié)能夠設(shè)置或者初始化時鐘和日歷。時鐘和日歷寄存器中的內(nèi)容均采用BCD 碼格式,時鐘寄存器00h的位7 是時鐘停止位,當(dāng)該位被設(shè)置為1 時,晶振失效,當(dāng)該位被清零時,晶振使能。所以,在初始化程序中,使能晶振(CH 位=0)是很重要的。DS1302 可以運行在12 小時或24 小時模式,小時寄存器的位7 被定義為作為12 小時或24 小時模式選擇位。當(dāng)該位為高時選擇1
37、2 小時模式,采用12 小時模式時,位5 是AM/PM 標(biāo)志位,該位為1 表示PM。當(dāng)采用24小時模式時,位5 是第二個10 小時位(20~23 小時)。當(dāng)總線開始工作時,當(dāng)前的時間信息被傳送給一串二級寄存器,時間信息然后從這些二級寄存器中讀取,而時鐘照常運行。當(dāng)在讀過程中,主寄存器內(nèi)容發(fā)生變化時,這樣可以避免再次讀寄存器的必要性。</p><p> 表2.1 DS1302 實時時鐘寄存器</p>
38、<p> 2.1.4 控制寄存器</p><p> DS1302 控制寄存器用來控制SQW/OUT 引腳的操作。</p><p> OUT:輸出控制。當(dāng)方波輸出失效時,該位控制SQW/OUT 引腳的輸出。如果SQWE=0,若OUT=1 則SQW/OUT 引腳的邏輯電平為1,而OUT=0 則SQW/OUT 引腳的邏輯電平為0。</p><p> S
39、QWE:方波使能。當(dāng)該位被設(shè)置為邏輯1 時,使能晶振輸出,方波輸出的頻率由RS1 和RS0 位的值來確定。當(dāng)方波輸出的頻率設(shè)為1Hz,則時鐘寄存器內(nèi)容將在方波的下降沿更新。 </p><p> 表2.2 方波輸出頻率 </p><p> RS:速率選擇。當(dāng)方波輸出使能時,這些位控制方波輸出的頻率。表2.2 列出了方波頻率與RS 位的值的對應(yīng)關(guān)系。</p>&
40、lt;p> 2.2 鍵盤接口電路設(shè)計</p><p> 2.2.1 按鍵的分類</p><p> 鍵盤在單片機應(yīng)用系統(tǒng)中,實現(xiàn)輸入數(shù)據(jù)、傳送命令的功能,是人工干預(yù)的主要手段。鍵盤分兩大類:編碼鍵盤和非編碼鍵盤。</p><p> 編碼鍵盤:由硬件邏輯電路完成必要的鍵識別工作與可靠性措施。每按一次鍵,鍵盤自動提供被按鍵的讀數(shù),同時產(chǎn)生一選通脈沖通知微處理
41、器,一般還具有反彈跳和同時按鍵保護(hù)功能。這種鍵盤易于使用,但硬件比較復(fù)雜,對于主機任務(wù)繁重之情況,采用8279可編程鍵盤管理接口芯片構(gòu)成編碼式鍵盤系統(tǒng)是很實用的方案。</p><p> 非編碼鍵盤:只簡單地提供鍵盤的行列與矩陣,其他操作如鍵的識別,決定按鍵的讀數(shù)等僅靠軟件完成,故硬件較為簡單,但占用CPU較多時間。有:獨立式按鍵結(jié)構(gòu)、矩陣式按鍵結(jié)構(gòu)</p><p> 2.2.2 按鍵開
42、關(guān)的抖動</p><p> 組成鍵盤的按鍵有觸點式和非觸點式兩種,單片機中應(yīng)用的一般是由機械觸點構(gòu)成</p><p> 的。在下圖2.4中,當(dāng)開關(guān)S未被按下時,P0。0輸入為高電平,S閉合后,P0。0輸入為低電平。由于按鍵是機械觸點,當(dāng)機械觸點斷開、閉合時,會有抖動動,P1。0輸入端的波形如圖2.5所示。這種抖動對于人來說是感覺不到的,但對計算機來說,則是完全可以感應(yīng)到的,因為計算機處
43、理的速度是在微秒級,而機械抖動的時間至少是毫秒級,對計算機而言,這已是一個“漫長”的時間了。前面我們講到中斷時曾有個問題,就是說按鍵有時靈,有時不靈,其實就是這個原因,你只按了一次按鍵,可是計算機卻已執(zhí)行了多次中斷的過程,如果執(zhí)行的次數(shù)正好是奇數(shù)次,那么結(jié)果正如你所料,如果執(zhí)行的次數(shù)是偶數(shù)次,那就不對了。</p><p> 圖2.4 開關(guān)S 圖2.5 P1.0輸
44、入端的波形</p><p> 為使CPU能正確地讀出P0口的狀態(tài),對每一次按鍵只作一次響應(yīng),就必須考慮如何去除抖動,常用的去抖動的方法有兩種:硬件方法和軟件方法。單片機中常用軟件法,因此,對于硬件方法我們不介紹。軟件法其實很簡單,就是在單片機獲得P0。0口為低的信息后,不是立即認(rèn)定S1已被按下,而是延時10毫秒或更長一些時間后再次檢測P0。0口,如果仍為低,說明S1的確按下了,這實際上是避開了按鍵按下時的抖動時
45、間。而在檢測到按鍵釋放后(P0。0為高)再延時5-10個毫秒,消除后沿的抖動,然后再對鍵值處理。不過一般情況下,我們通常不對按鍵釋放的后沿進(jìn)行處理,實踐證明,也能滿足一定的要求。當(dāng)然,實際應(yīng)用中,對按鍵的要求也是千差萬別,要根據(jù)不同的需要來編制處理程序,但以上是消除鍵抖動的原則。</p><p> 2.2.3 鍵盤電路</p><p> 在設(shè)計鍵盤電路時我們采用3×1 的四鍵
46、鍵盤。單片通過查詢方式對鍵盤掃描。用軟件算法消除按鍵瞬時的抖動。按鍵電路如圖2.6所示。其中,各鍵值代表的含義如下: S1:進(jìn)入時.分.秒設(shè)置選擇;S2:數(shù)值加; S3:進(jìn)入年.月.日設(shè)置選擇。 </p><p><b> 圖2.6 按鍵電路</b></p><p> 2.3八段數(shù)碼管顯示電路設(shè)計</p><p> .數(shù)碼管是非常常見的東
47、西,他能顯示數(shù)字,以及字母,應(yīng)用非常的廣泛,本文我來和大家談?wù)勅绾斡脝纹瑱C來驅(qū)動數(shù)碼管。</p><p> 2.3.1數(shù)碼管的結(jié)構(gòu)</p><p> 數(shù)碼管由7個發(fā)光二極管組成,行成一個日字形,它門可以共陰極,也可以共陽極.通過解碼電路得到的數(shù)碼接通相應(yīng)的發(fā)光二極而形成相應(yīng)的字,這就是它的工作原理。 基本的半導(dǎo)體數(shù)碼管是由7個條狀的發(fā)光二極管(LED)按圖2.7所示排列而成的,
48、可實現(xiàn)數(shù)字0~9及少量字符的顯示。另外為了顯示小數(shù)點,增加了1個點狀的發(fā)光二極管,因此數(shù)碼管就由8個LED組成,我們分別把這些發(fā)光二極管命名為 a,b,c,d,e,f,g,dp,排列順序如下圖2.7</p><p> 圖2.7 數(shù)碼管引腳圖及外形圖</p><p> 2.3.2數(shù)碼管的分類</p><p> 數(shù)碼管按各發(fā)光二極管電極的連接方式分為共陽數(shù)碼管和共
49、陰數(shù)碼管兩種。</p><p> 共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管。共陰數(shù)碼管在應(yīng)用時應(yīng)將公共極COM接到地線GND上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時,相應(yīng)字段就點亮。當(dāng)某一字段的陽極為低電平時,相應(yīng)字段就不亮。共陰數(shù)碼管內(nèi)部連接如圖2.8所示。</p><p> 圖2.8共陰數(shù)碼管內(nèi)部連接圖</p><p>
50、共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管。共陽數(shù)碼管在應(yīng)用時應(yīng)將公共極COM接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時,相應(yīng)字段就點亮。當(dāng)某一字段的陰極為高電平時,相應(yīng)字段就不亮。共陽數(shù)碼管內(nèi)連接如圖2.9所示。</p><p> 圖2.9 共陽數(shù)碼管內(nèi)部連接圖</p><p> 2.3.3數(shù)碼管的顯示方式</p><p>
51、; 數(shù)碼管要正常顯示,就要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類。</p><p> 動態(tài)顯示驅(qū)動:數(shù)碼管動態(tài)顯示接口是單片機中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃a,b,c,d,e,f,g,dp的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當(dāng)單片
52、機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示過程中,每位數(shù)碼管的點亮?xí)r間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度
53、足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。</p><p> 靜態(tài)顯示驅(qū)動:靜態(tài)驅(qū)動也稱直流驅(qū)動。靜態(tài)驅(qū)動是指每個數(shù)碼管的每一個段碼都由一個單片機的I/O端口進(jìn)行驅(qū)動,或者使用如BCD碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用I/O端口多,如驅(qū)動5個數(shù)碼管靜態(tài)顯示則需要5×8=
54、40根I/O端口來驅(qū)動,要知道一個89C51單片機可用的I/O端口才32個呢:),實際應(yīng)用時必須增加譯碼驅(qū)動器進(jìn)行驅(qū)動,增加了硬件電路的復(fù)雜性。我們設(shè)計的萬年歷采用6位八段共陽數(shù)碼管動態(tài)顯示驅(qū)動。</p><p> 2.3.4數(shù)碼管顯示圖</p><p> 模塊在接收指令前,向處理器必須先確認(rèn)模塊內(nèi)部處于非忙狀態(tài),即讀取BF標(biāo)志時BF需為“0”,方可接受新的命令。如果在送出一個指令前不
55、檢查BF標(biāo)志,則在前一個指令和這個指令中間必須延遲一段較長的時間,即等待前一個指令確定執(zhí)行完成。系統(tǒng)開機后,自動進(jìn)入時鐘狀態(tài)顯示,畫面如圖2.10所示。</p><p> 圖2.10 時鐘狀態(tài)顯示畫面</p><p> 2.4 AT89C51 單片機電路設(shè)計</p><p> 2.4.1 AT89C51簡介</p><p> AT89
56、C51是一個低功耗,高性能CMOS 8位單片機,片內(nèi)含4k Bytes ISP(In-system programmable)的可反復(fù)擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S52可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比的解決方案。AT89C51
57、具有如下特點:40個引腳,4k Bytes Flash片內(nèi)程序存儲器,256 bytes的隨機存取數(shù)據(jù)存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時鐘振蕩器。此外,AT89C51 設(shè)計和配置了振蕩頻率可為0Hz 并可通過軟件設(shè)置省電模式??臻e模式下,CPU 暫停工作,而RAM 定時計數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,
58、掉電模式凍結(jié)振蕩器而保存RAM 的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時該芯片還具有PDIP、TQ</p><p> AT89C51的主要性能參數(shù): </p><p> 1. 兼容MCS-51 指令系統(tǒng) </p><p> 2. 8k 可反復(fù)擦寫(>1000 次)ISP Flash ROM</p><p> 3.
59、32 個雙向I/O 口 </p><p> 4. 4.5-5.5V 工作電壓 </p><p> 5. 3個16 位可編程定時/計數(shù)器 </p><p> 6. 時鐘頻率0-33MHz </p><p> 7. 全雙工UART 串行中斷口線 </p><p> 8. 256x8bit 內(nèi)部RAM</p
60、><p> 9. 2個外部中斷源 </p><p> 10. 低功耗空閑和省電模式</p><p> 11. 中斷喚醒省電模式 </p><p> 12. 看門狗(WDT)電路 </p><p> 13. 軟件設(shè)置空閑和省電功能 </p><p> 14. 靈活的ISP 字節(jié)和分頁
61、編程 </p><p> 15. 雙數(shù)據(jù)寄存器指針 </p><p> AT89C51引腳如圖2.11所示:</p><p> 圖2.11 AT89C51引腳示意圖</p><p><b> 管腳說明:</b></p><p> VCC:供電電壓。
62、; GND:接地。 P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗時,P0輸出原碼,此時P0外部必須被拉高。 P1口:P1口是一個內(nèi)部提供上拉
63、電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時
64、,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對</p><p> P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這
65、是由于上拉的緣。P3口也可作為AT89C51的一些特殊功能口,如下所示:</p><p> 口管腳 備選功能P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2
66、 /INT0(外部中斷0)P3.3 /INT1(外部中斷1)P3.4 T0(記時器0外部輸入)P3.5 T1(記時器1外部輸入)P3.6 /WR(外部數(shù)據(jù)存儲器寫選通)</p><p
67、> P3.7 /RD(外部數(shù)據(jù)存儲器讀選通)</p><p> RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。</p><p> ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE
68、端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。 /PSEN:外部程序存儲器的選通信
69、號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。/EA/VPP:當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p>
70、 XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。</p><p> XTAL2:來自反向振蕩器的輸出。</p><p> 2.4.2單片機接口電路圖</p><p> 單片機的端口連接如下圖2.12所示。</p><p> 圖2.12 單片機的端口連接</p><p> 設(shè)計中的單片機端口分配表
71、2.3如下所示。</p><p> 表2.3 端口分配表</p><p> 第三章 系統(tǒng)軟件設(shè)計</p><p> 3.1 系統(tǒng)軟件流程圖</p><p> 系統(tǒng)軟件流程圖如圖3.1所示。</p><p> 圖3.1 系統(tǒng)流程圖</p><p><b> 3.2 接口軟件&
72、lt;/b></p><p> 下面為DS1302時鐘芯片和AT89C51單片機的接口軟件,假定采用每天24小時制的非夏令時,時間數(shù)據(jù)格式為BCD碼,初始化時間為2008年1月1 日9時00分00秒,1k方波輸出。時鐘芯片每一秒種向單片機申請中斷一次,一方面讓單片機修改一次時鐘顯示,另一方面也給單片微機系統(tǒng)提供時間基準(zhǔn)。 (1)DS1302時鐘芯片的初始化</p
73、><p> DS1302的初始化主要是打開晶振,對控制器A、B寫入控制字以及對日歷、時鐘各寄存器寫入初始值。首先應(yīng)禁止芯片內(nèi)部的更新周期操作,先將DS1302狀態(tài)寄存器B中的SET位置1,然后初始化00H~09H時標(biāo)參數(shù)寄存器A;其次通過讀狀態(tài)寄存器C,清除寄存器C中的周期中斷標(biāo)志位PF,報警中斷標(biāo)志AF,更新周期結(jié)束中斷標(biāo)志位UF;再次通過讀寄存器D中的VRT位,讀狀態(tài)寄存器口后VRT位,讀狀態(tài)寄存器口VRT位將
74、自動置1;最后將狀態(tài)寄存器B中的SET位置0,芯片開始計時工作。DS1302初始化子程序清單如下:
75、 </p><p> DS1302查詢法讀取時間和日歷子程序如下: MOV DPTR,#7F0AH;寄存器A地址 MOVX A,@DPTR
76、; WAIT:JB ACC,7,WAIT:UIP=1則等待更新完畢 MOV DPL,@00H;秒地址 MOV R0,#30H;取目標(biāo)首地址 MOVX A,@DPTR;取秒數(shù)據(jù) MOV @R0,A:送入80
77、C31的內(nèi)部RAM緩沖區(qū) IC DPTR:移指針 IC R0 查詢法讀取DS1302首先進(jìn)行寄存器初始化,然后定時讀取芯片的時鐘信息刷新內(nèi)部相應(yīng)的存儲器寄存單元。</p><p><b> 3.3 按鍵</b></p><p> 一次完整的擊鍵過程,如圖3.
78、2所示,包含以下5個階段: </p><p> 1.等待階段:此時按鍵尚未按下,處于空閑階段。</p><p> 2.前沿(閉合)抖動階段:此時按鍵剛剛按下,但按鍵信號還處于抖動狀態(tài),這個時間一般為5~20ms。為了確保按鍵操作不會誤動作,此時必須有個前沿消抖動延時。</p><p> 3.鍵穩(wěn)定階段:此時抖動已經(jīng)結(jié)束,一個有效的按鍵動作已經(jīng)產(chǎn)生。系統(tǒng)應(yīng)該在此
79、時執(zhí)行按鍵功能;或?qū)存I所對應(yīng)的鍵值記錄下來,待按鍵釋放時再執(zhí)行。</p><p> 4.后沿(釋放)抖動階段:一般來說,考究一點的程序應(yīng)該在這里再做一次消抖延時,以防誤動作。但是,如果前面“前沿抖動階段”的消抖延時時間取值合適的話,可以忽略此階段。</p><p> 5.按鍵釋放階段:此時后沿抖動已經(jīng)結(jié)束,按鍵已經(jīng)處于完全釋放狀態(tài),如果按鍵是采用釋放后再執(zhí)行功能,則可以在這個階段進(jìn)行
80、按鍵操作的相關(guān)處理。</p><p><b> 按鍵程序設(shè)計: </b></p><p> 1.發(fā)現(xiàn)有鍵按下,低電平,否則推出。</p><p> 2.調(diào)用延時,去抖動。</p><p> 3.再去判斷是是否還是低電平,否則推出。</p><p> 4.判斷那一個鍵是出現(xiàn)高電平的,有正
81、確的則進(jìn)入鍵盤處理程序。</p><p><b> N</b></p><p><b> Y</b></p><p><b> N</b></p><p><b> Y</b></p><p> 圖3.2 按鍵掃描流程圖&
82、lt;/p><p> 第四章 仿真軟件介紹及其運行使用</p><p> 4.1 仿真軟件概述</p><p> Proteus ISIS是英國Labcenter公司開發(fā)的電路分析與實物仿真軟件。它運行于Windows操作系統(tǒng)上,可以仿真,分析(SPICE)各種模擬器件和集成電路,該軟件的特點是: </p><p> 實現(xiàn)了
83、單片機仿真和SPICE電路仿真相結(jié)合.具有模擬電路仿真,數(shù)字電路仿真,單片機及其外圍電路組成的系統(tǒng)的仿真,RS232動態(tài)仿真,I2C調(diào)試器,SPI調(diào)試器,鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器,邏輯分析儀,信號發(fā)生器等。</p><p> 支持主流單片機系統(tǒng)的仿真.目前支持的單片機類型有:68000系列,8051系列,AVR系列,PIC12系列,PIC16系列,PIC18系列,Z80系列,HC11
84、系列以及各種外圍芯片。</p><p> 提供軟件調(diào)試功能.在硬件仿真系統(tǒng)中具有全速,單步,設(shè)置斷點等調(diào)試功能,同時可以觀察各個變量,寄存器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時支持第三方的軟件編譯和調(diào)試環(huán)境,如Keil C51 uVision2等軟件。</p><p> 具有強大的原理圖繪制功能.總之,該軟件是一款集單片機和SPICE分析于一身的仿真軟件,功能
85、極其強大。</p><p> 4.2 程序和電路運行效果</p><p> 圖4.1萬年歷仿真效果圖</p><p><b> 結(jié) 論 </b></p><p> 畢業(yè)設(shè)計是一次非常難得的理論和實踐相結(jié)合的學(xué)習(xí)機會,通過這次比較完整的電子萬年歷設(shè)計,使我擺脫了單純理論知識學(xué)習(xí)狀態(tài),鍛煉了我運用所學(xué)知識解
86、決問提的能力,同時提高了我查閱文獻(xiàn)資料,設(shè)計手冊,設(shè)計規(guī)范以及電腦制圖等方面的能力水平,而且通過對整體的掌控,對局部的取舍,以及對細(xì)節(jié)的斟酌處理,都使我的能力得到了鍛煉,經(jīng)驗得到了豐富,并且意志品質(zhì)力,抗壓能力及耐力也都得到了不同程度的提升。這是我們都希望看到的也正是我們進(jìn)行畢業(yè)設(shè)計的目的所在。雖然畢業(yè)設(shè)計內(nèi)容繁多,過程繁瑣但我的收獲卻更加豐富。各種系統(tǒng)的適用條件,各種設(shè)備的選用標(biāo)準(zhǔn),我都是隨著設(shè)計的不斷深入而不斷熟悉并學(xué)會應(yīng)用的。&l
87、t;/p><p><b> 致 謝</b></p><p> 自從接受課題到現(xiàn)在完成畢業(yè)設(shè)計論文,衷心的感謝我的指導(dǎo)張?zhí)禊i老師給予了精心的指導(dǎo)和熱情的幫助,尤其在課題設(shè)計的前期準(zhǔn)備階段和本人的數(shù)據(jù)庫的設(shè)計階段,導(dǎo)師提出許多寶貴的設(shè)計意見,在最后的測試修改階段老師在百忙之中抽出時間為我們提供了必要的幫助,這樣使得我們得以順利的完成畢業(yè)設(shè)計開發(fā)工作,在短暫的一個月的相
88、處時間里,老師淵博的知識,敏銳的思路和實事求是的工作作風(fēng)給我留下了深刻的印象,這將使得我終身受益,謹(jǐn)此向老師表示衷心的感謝和崇高的敬意.。</p><p> 然后還要感謝大學(xué)幾年來所有的老師,為我們打下電子專業(yè)知識的基礎(chǔ),同時還要感謝所有的同學(xué)們,正是因為有了你們的支持和鼓勵。此次畢業(yè)設(shè)計才會順利完成。 </p><p> 最后感謝母?!碴柟W(xué)院對我的大力栽培。</p>
89、<p><b> 參考文獻(xiàn)</b></p><p> [1] 張勇.基于AT89C2051 單片機的時鐘日歷系統(tǒng)[J].鄭鐵科技通訊,2005,3.</p><p> [2] 魏立峰,王寶興.單片機原理與應(yīng)用技術(shù)[M].北京:北京大學(xué)出版社,2006.</p><p> [3] 王守中編著,51單片機開發(fā)入門與經(jīng)典實例 北京
90、:人民郵電出版社,2007</p><p> [4] 張毅剛主編,MCS-51單片機原理及應(yīng)用 高等教育出版社,2003</p><p> [5] 李海濤編著,單片機應(yīng)用開發(fā)典型模塊 人民郵電出版社, 2007</p><p> [6] Pual Horowitz and Winfiled Hill. The Art of Elecfronics,2nd
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于at89s52單片機和ds1302的電子萬年歷畢業(yè)設(shè)計
- 基于51單片機ds1302萬年歷課程設(shè)計報告
- 基于51單片機ds1302萬年歷課程設(shè)計報告
- 基于at89s52單片機和ds1302的電子萬年歷畢業(yè)設(shè)計開題報告
- 電子萬年歷畢業(yè)設(shè)計
- 電子萬年歷畢業(yè)設(shè)計
- 基于89c52單片機和ds1302的萬年歷設(shè)計
- 電子萬年歷畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---電子萬年歷設(shè)計
- 用ds1302與lcd1602可調(diào)數(shù)字萬年歷課程設(shè)計
- 畢業(yè)設(shè)計---電子萬年歷的設(shè)計
- 畢業(yè)設(shè)計---電子萬年歷的設(shè)計
- 電子萬年歷畢業(yè)設(shè)計稿
- 畢業(yè)設(shè)計----電子萬年歷論文設(shè)計
- 電子萬年歷畢業(yè)設(shè)計2
- 電子萬年歷設(shè)計
- 電子萬年歷設(shè)計基于at89c51單片機和ds1302時鐘芯
- 萬年歷畢業(yè)設(shè)計---基于stc89c52萬年歷的設(shè)計
- 電子鐘萬年歷畢業(yè)設(shè)計
- 數(shù)字萬年歷畢業(yè)設(shè)計
評論
0/150
提交評論