電子時(shí)鐘的設(shè)計(jì)畢業(yè)論文_第1頁
電子時(shí)鐘的設(shè)計(jì)畢業(yè)論文_第2頁
電子時(shí)鐘的設(shè)計(jì)畢業(yè)論文_第3頁
電子時(shí)鐘的設(shè)計(jì)畢業(yè)論文_第4頁
電子時(shí)鐘的設(shè)計(jì)畢業(yè)論文_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、電子鐘的設(shè)計(jì)1.序言1.1 系統(tǒng)開發(fā)背景隨著電子科技的不斷發(fā)展,傳統(tǒng)的時(shí)鐘已被一些高檔的電子時(shí)鐘所取代,與傳統(tǒng)的時(shí)鐘相比,電子時(shí)鐘融合了掛歷和時(shí)鐘的優(yōu)點(diǎn),能晝夜清晰顯示,集年、月、日、時(shí)、分、秒、日期、農(nóng)歷、氣溫于一體,外觀新穎,造型別具一格。除此之外由于掛歷以及一些傳統(tǒng)電子表的制作成本相對(duì)較高,其銷售價(jià)格也大多在530元之間,而一個(gè)電子時(shí)鐘的價(jià)格也在這之間,但是掛歷只能用一年,傳統(tǒng)電子表又不能顯示年、月、日,而電子時(shí)鐘則不一樣,由于它可以自動(dòng)識(shí)別閏年、公歷、農(nóng)歷、大小月份、農(nóng)歷,星期能自動(dòng)對(duì)應(yīng)公歷無須調(diào)整。對(duì)若干年前后的日期都可以查詢,但考慮到其壽命原因,至少也可用58年。在價(jià)格相差不大的情

2、況下,電子時(shí)鐘的性價(jià)比顯然要高的多,就其閱讀功能而言,電子時(shí)鐘閱讀起來更加方便,同時(shí)他還有鬧鈴和顯示溫度的功能,這比傳統(tǒng)的掛歷以及電子表要強(qiáng)大的多。其實(shí)現(xiàn)的方法也很簡(jiǎn)單,用一個(gè)單片機(jī)和數(shù)個(gè)數(shù)碼管就可以實(shí)現(xiàn),由此可見,電子時(shí)鐘的市場(chǎng)經(jīng)濟(jì)開發(fā)價(jià)值要比掛歷以及電子表要高的多,電子時(shí)鐘取代傳統(tǒng)的掛歷以及傳統(tǒng)電子表已成為不可抵擋的趨勢(shì)。因此開發(fā)一個(gè)電子時(shí)鐘就必須要了解單片機(jī)和數(shù)碼管的原理和功能等,下面一節(jié)我們將簡(jiǎn)單介紹一下單片機(jī)和數(shù)碼管。1.2 系統(tǒng)開發(fā)工具介紹與安裝1.2.1 pic系列單片機(jī)開發(fā)工具mplab的組成 mplab是一個(gè)集成了多種單片機(jī)應(yīng)用開發(fā)工具軟件于一體的、功能完備的軟件包,是pic

3、單片機(jī)編程開發(fā)的重要工具。在此僅對(duì)其中的5種工具軟件簡(jiǎn)要介紹如下: project manager(工程項(xiàng)目管理器)工程項(xiàng)目管理器是mplab的核心部分,用于創(chuàng)建和管理工程項(xiàng)目,為開發(fā)人員提供自動(dòng)化程度高、操作簡(jiǎn)便的符號(hào)化(屏幕上的指令、指令地址、常數(shù)、變量、寄存器等均用表義性和可讀性很強(qiáng)的符號(hào)代表和標(biāo)識(shí))調(diào)試工作平臺(tái)。 mplab editor(源程序編輯器)源程序編輯器是一個(gè)全屏幕文本編輯器,用于創(chuàng)建和修改匯編語言源程序文件。源程序文件以純文本格式保存,其文件擴(kuò)展名為“.asm”。 mpasm assembler(匯編器)用于將匯編語言源程序文件(.asm)匯編成機(jī)器語言目標(biāo)程序文件(.h

4、ex),并負(fù)責(zé)查找語法錯(cuò)誤和格式錯(cuò)誤等一些淺層次簡(jiǎn)單錯(cuò)誤。 mplab-sim software simulator(軟件模擬器)軟件模擬器是一種代替價(jià)格較貴的hardware emulstor(硬件仿真器)的調(diào)試工具,也是一種非實(shí)時(shí)、非在線的純軟件的調(diào)試工具。借助這個(gè)在微機(jī)系統(tǒng)上運(yùn)行的工具軟件,我們可以不需要任何額外的附加硬件,僅用軟件的手段,來模仿pic系列單片機(jī)的指令的執(zhí)行和信號(hào)的輸入/輸出,從而實(shí)現(xiàn)對(duì)用戶自編單片機(jī)源程序的模擬運(yùn)行、功能調(diào)試和深層次邏輯錯(cuò)誤查找。因此可以說,這為學(xué)習(xí)和應(yīng)用pic系列單片機(jī)的人們提供一種虛擬的實(shí)戰(zhàn)環(huán)境。對(duì)于單片機(jī)初學(xué)者來說,不用花錢也可以實(shí)現(xiàn)邊學(xué)邊練的夢(mèng)想

5、;對(duì)單片機(jī)開發(fā)者來說,可以縮短開發(fā)周期和降低成本 ??傊?,它是一種許多其他型號(hào)系列單片機(jī)很少配備的、性能價(jià)格比較高的程序調(diào)試工具。不過,它也存在一定的局限性:一是它還不能模擬pic16f87x片內(nèi)少數(shù)功能特殊的外圍模塊;二是它不能幫我們查找目標(biāo)板上的電路錯(cuò)誤;三是它執(zhí)行速度慢而只能適合調(diào)試那些實(shí)時(shí)性要求不高的程序。 mplab-icd debugger(在線調(diào)試工具icd的支持程序)這是一種專門與icd配合使用的支持程序。icd是microchip公司專為pic16f87x設(shè)計(jì)的一種廉價(jià)的在線調(diào)試工具套件。另外,還包含一些其他工具軟件。例如:程序模塊連接器、庫程序管理器、c語言編譯器、硬件在線

6、仿真器的支持程序、目標(biāo)程序燒錄器的支持程序、在dos操作系統(tǒng)下運(yùn)行的匯編器等等。1.2.2 mplab的安裝為了使mplab能夠順利安裝和可靠地運(yùn)行,對(duì)于所用的微機(jī)系統(tǒng)有一個(gè)起碼地要求。既安裝和運(yùn)行mplab所需的最小計(jì)算機(jī)配置為: cpu為intel486或型號(hào)更先進(jìn)的處理器; 操作系統(tǒng)為microsoft windows98/2000或windowsxp;顯示器為vga(建議使用svga);內(nèi)存容量應(yīng)不小于8mb(建議32mb);可利用的硬盤空間不小于20mb; 配有鼠標(biāo)。下面我們介紹在windowsxp操作系統(tǒng)之下,安裝mplab的過程。首先將microchip公司提供的光盤放入光驅(qū)內(nèi),

7、點(diǎn)擊“我的電腦”會(huì)出現(xiàn)光盤的標(biāo)志符 ,右擊此標(biāo)志符一次,再點(diǎn)擊“打開”,找到了文件夾“tools”,右擊此文件夾,點(diǎn)擊打開,找到“download”的文件夾,右擊打開此文件夾,找到mplab-ide的文件夾,同樣右擊打開此文件夾,會(huì)出現(xiàn)mplv5xx的文件夾,再打開這個(gè)mplv5xx的文件夾,就出現(xiàn)了mp57full的安裝文件,打開文件就進(jìn)入了如圖1.2.1的安裝對(duì)話框。圖1.1 進(jìn)入mplab安裝的對(duì)話框 點(diǎn)擊next兩次,進(jìn)入了如圖1.2.2所示的對(duì)話框,用鼠標(biāo)點(diǎn)擊去掉一些暫時(shí)用不到的程序左邊的鉤號(hào)。點(diǎn)擊兩次“next”,就出現(xiàn)了圖1.2.3的對(duì)話框,在這里點(diǎn)擊“browse”鍵即可選擇你

8、想安裝mplab的地方,選擇好后就點(diǎn)擊“next”,直到出現(xiàn)圖1.2.4的準(zhǔn)備好安裝mplab的對(duì)話框,點(diǎn)擊“next”就開始安裝了。 圖1.2 mplab組件選擇對(duì)話框 圖1.3 選擇安裝mplab的路徑 圖1.4 準(zhǔn)備好安裝mplab的對(duì)話框安裝完成后,mplab會(huì)自動(dòng)在windowsxp“開始”按鈕的“程序”組中,建立一個(gè)“microchip mplab”程序組。至此mplab的系統(tǒng)文件已經(jīng)安裝完畢。用戶可在硬盤驅(qū)動(dòng)器c:program filesmplab目錄下,建立一個(gè)新的子目錄work作為我們的工作目錄,存放我們?cè)趯W(xué)習(xí)和操作過程中產(chǎn)生的各種文件。如果日后不打算使用mplab,想清除

9、其占用的硬盤空間,mplab自帶了卸載程序c:program filesmplabunwise32.exe,運(yùn)行它即可將mplab全部徹底地自動(dòng)刪除干凈。1.2.3 mplab-icd在線調(diào)試工具套件及其應(yīng)用mplab-icd是microchip公司針對(duì)其pic系列單片機(jī)中,近期推出的具有片內(nèi)flash程序存儲(chǔ)器的pic16f87x系列單片機(jī),所研制的一套廉價(jià)的學(xué)習(xí)和開發(fā)工具套件。mplab-icd可以用于實(shí)驗(yàn)階段的評(píng)估和輔助調(diào)試。它既是一個(gè)編程器(即程序燒寫器),又是一個(gè)實(shí)時(shí)在線調(diào)試器。用它可以代替在單片機(jī)應(yīng)用項(xiàng)目的開發(fā)過程中常用的兩種工具硬件在線實(shí)時(shí)仿真器和程序燒寫器。它利用了pic16f

10、87x片內(nèi)集成的在線調(diào)試器(in-circuit debugger)能力和microchip公司的在線串行編程技術(shù)(in-circuit serial programming)。mplab-icd工作于mplab集成開發(fā)環(huán)境軟件包之下,其仿真頭直接連接到目標(biāo)電路板上,如同將一片pic16f87x插入到目標(biāo)板內(nèi)一樣去運(yùn)行用戶編制的程序。mplab-icd套件中包括的部件有:mplab-icd仿真頭;mplab-icd模塊;及mplab-icd演示板;rs-232串行通信電纜;連接插針:2條14腳插針和2條20腳插針;20cm長的6芯電纜;包含所有mplab軟件包和文檔資料的光盤;mplab-ic

11、d用戶指南的中文翻譯版本;還有直流電源適配器。那么它的功能特點(diǎn)則有: 能以實(shí)時(shí)或單步方式運(yùn)行用戶程序; 斷點(diǎn)設(shè)置功能; 在線調(diào)試功能; 在線編程功能; 工作電壓范圍為3.05.5 v; 可從目標(biāo)板上獲取工作電源; 工作頻率范圍為32khz20khz; 可對(duì)源程序直接進(jìn)行代碼級(jí)的調(diào)試; 可以工作于mplab集成開發(fā)環(huán)境下; 以rs-232串行接口方式與微機(jī)系統(tǒng)相連。借助于mplab-icd工具套件,用戶可以實(shí)現(xiàn):在自己設(shè)計(jì)的pic16f87x的應(yīng)用電路中實(shí)時(shí)運(yùn)行和調(diào)試自己的源程序軟件調(diào)試。用自己編制的程序來調(diào)試和檢驗(yàn)自制目標(biāo)板上的電路硬件調(diào)試;利用在線串行編程技術(shù)將自己設(shè)計(jì)的目標(biāo)程序燒寫到插在目

12、標(biāo)板上的pic16f87x單片機(jī)(又稱目標(biāo)單片機(jī))中程序固化。對(duì)于這套小巧廉價(jià)的、電路簡(jiǎn)潔的mplab-icd的開發(fā)工具套件,由于在實(shí)現(xiàn)在線調(diào)試和在線編程的過程中,采用了pic16f87x集成在片內(nèi)的在線調(diào)試功能和microchip公司的在線串行編程協(xié)議,因此在用mplab-icd仿真目標(biāo)單片機(jī)時(shí)一定會(huì)存在一定的局限性。具體地說,mplab-icd工作過程中將會(huì)占用目標(biāo)單片機(jī)的片內(nèi)和引腳中的部分資源。這部分資源用戶就不能再使用了。不過,對(duì)于一般的項(xiàng)目開發(fā)沒有太大的影響,并且與價(jià)格昂貴的專業(yè)級(jí)全功能在線實(shí)時(shí)仿真器相比,用它來調(diào)試和燒寫pic16f87x系列單片機(jī),仍然是一套具有極高性能價(jià)格比的開

13、發(fā)工具套件,所以它非常適合初級(jí)開發(fā)者的學(xué)習(xí)和實(shí)踐。我們通過使用此套工具就可以很好的進(jìn)行單片機(jī)的應(yīng)用。 1.2.4 其他所用外圍模塊、電路及器件的簡(jiǎn)要介紹:這個(gè)系統(tǒng)中使用了在32768hz的自備晶振支持下的pic單片機(jī)內(nèi)部tmr1定時(shí)計(jì)數(shù)器。由于本系統(tǒng)意在實(shí)現(xiàn)外部的電池提供電源,為了節(jié)省能源,需要單片機(jī)進(jìn)入睡眠模式,但同時(shí)又不能影響計(jì)數(shù)器的計(jì)時(shí)工作,由于tmr1能夠在睡眠模式下工作,所以我們用tmr1作為計(jì)時(shí)器,32768 晶振則是給tmr1提供振蕩信號(hào)的 ,由于tmr1是一個(gè)雙字節(jié)計(jì)數(shù)器,總的計(jì)數(shù)次數(shù)是2的16次方計(jì)即327682次。所以它可以方便地由tmr1產(chǎn)生精確的秒信號(hào),在此基礎(chǔ)上,再進(jìn)

14、一步由軟件計(jì)數(shù)器形成分、小時(shí)、日以至月、年的數(shù)值。在此次設(shè)計(jì)中,我們也加上了+9v的電壓,當(dāng)然還需要一個(gè)穩(wěn)壓模塊,我們采用7805來實(shí)現(xiàn)穩(wěn)壓的功能。除此之外還有各種值的電阻和電容。2系統(tǒng)總體分析與設(shè)計(jì)2.1 系統(tǒng)的開發(fā)目標(biāo)本系統(tǒng)的基本任務(wù)和目標(biāo)就是利用pic16f877單片機(jī)中的計(jì)時(shí)器tmr1所自帶的低頻時(shí)基振蕩器(32768晶振),用來實(shí)現(xiàn)記錄和計(jì)算真實(shí)的年、月、日、時(shí)、分、秒、的時(shí)鐘功能。然后將所記錄的數(shù)據(jù)轉(zhuǎn)換成數(shù)碼管顯示,同時(shí)通過單片機(jī)的相應(yīng)引腳輸出的控制信號(hào)來控制時(shí)間信號(hào)所顯示的位置及光標(biāo)的形態(tài)等。從而達(dá)到將所計(jì)時(shí)間顯示在數(shù)碼管上面。(注:由于實(shí)驗(yàn)設(shè)備和環(huán)境的原因,不能實(shí)現(xiàn)顯示節(jié)假日、

15、農(nóng)歷、節(jié)氣以及鬧鈴等功能)實(shí)現(xiàn)以上的任務(wù)需要幾大模塊: 實(shí)現(xiàn)自動(dòng)識(shí)別閏年,大小月份天數(shù)的算法。 如何實(shí)現(xiàn)將所計(jì)的數(shù)字轉(zhuǎn)換成數(shù)碼管顯示。 怎樣實(shí)現(xiàn)對(duì)電子時(shí)鐘的時(shí)間調(diào)節(jié)。2.2 關(guān)于此系統(tǒng)的背景知識(shí)2.2.1 相關(guān)的單片機(jī)知識(shí)簡(jiǎn)介tmr1和tmr0一樣,既可作為時(shí)間定時(shí)器又可當(dāng)作事件計(jì)數(shù)器。但它是一個(gè)16位寬的上升沿觸發(fā)的累加計(jì)數(shù)“寄存器對(duì)”即tmr1hh和tmr1l。與它相關(guān)的寄存器有6個(gè)如表2.1所示 寄存器名稱寄存器符號(hào)寄存器地址 寄存器內(nèi)容bit7bit6bit5bit4bit3bit2bit1bit0 中斷控制寄存器intcon0b/8b/10b/18bgiepie1t0 i 1inte

16、rbiet0ifintfrbif第一外設(shè)中斷控制寄存器pir10chpspifadifrciftxifsspifccp1iftmr2iftmr1if第一外設(shè)中斷屏蔽寄存器 pie1 8chpspieadiercietxiesspieccp1ietmr2ietmr1ietmr1低字節(jié)tmr1l 0eh 16位tmr1計(jì)數(shù)寄存器低字節(jié)寄存器tmr1高字節(jié)tmr1h 0fh 16位tmr1計(jì)數(shù)寄存器高字節(jié)寄存器tmr1控制寄存器t1con 10ht1ck ps1t1ck ps0t1os cent1synctmr1 cstmr1on 表2.1:與tmr1模塊相關(guān)的寄存器(陰影部分表示沒有用到的寄存器)

17、 bit7bit6bit5bit4bit3bit2bit1bit0t1ckps1t1ckps0t1oscent1synctmr1cstmr1on表2.2:trmr1控制寄存器t1con其中tmr1控制寄存器t1con是一個(gè)只用到低6位的可讀/寫寄存器。最高2外位未用,讀出是返回0,其余各位的含義如下: tickps1t1ckps0:分頻器分頻比選擇位,如表2.3 表2. 3:分頻器分頻比 t1ckps1t1ckps2分 頻 比 0 0 1 :1 0 1 1 :2 1 0 1 :4 1 1 1 :8 t1oscen:tmr1自帶振蕩器使能位 1允許tmr1振蕩器起振; 0禁止tmr1振蕩器起振,

18、令非門的輸出端成高阻態(tài)。 t1sync:tmr1外部輸入時(shí)鐘與系統(tǒng)時(shí)鐘同步控制位。 tmr1工作于計(jì)數(shù)器方式(tmr1cs=1時(shí)): 1=tmr1外部輸入時(shí)鐘于系統(tǒng)時(shí)鐘不保持同步; 0= tmr1外部輸入時(shí)鐘于系統(tǒng)時(shí)鐘保持同步; tmr1工作于定時(shí)器方式(tmr1cs=0時(shí)): 該位不起作用。 tmr1cs:時(shí)鐘源選擇位。 1=選擇外部時(shí)鐘源,即時(shí)鐘信號(hào)來源于外部引腳或自帶振蕩器; 0=選擇內(nèi)部時(shí)鐘源(fosc/4=tcyc指令周期). tmr1on: tmr1使能控制位 1=開啟tmr1,使tmr1進(jìn)入活動(dòng)狀態(tài); 0=關(guān)閉tmr1,使tmr1退出活動(dòng)狀態(tài),以節(jié)省能耗.2.2.2相關(guān)的數(shù)碼管知

19、識(shí)(a)數(shù)碼管的外部結(jié)構(gòu)數(shù)碼管是一種半導(dǎo)體發(fā)光器件,其基本單元是發(fā)光二極管。(實(shí)物參照?qǐng)D片)。 圖2.1:數(shù)碼管的實(shí)物圖(b)數(shù)碼管的分類 數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個(gè)發(fā)光二極管單元(多一個(gè)小數(shù)點(diǎn)顯示);按能顯示多少個(gè)“8”可分為1位、2位、4位等等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(com)的數(shù)碼管。共陽數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極com接到+5v,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二

20、極管的陰極接到一起形成公共陰極(com)的數(shù)碼管。共陰數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極com接到地線gnd上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陽極為低電平時(shí),相應(yīng)字段就不亮。(c)數(shù)碼管的驅(qū)動(dòng)數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動(dòng)方式的不同,可以分為靜態(tài)式和動(dòng)態(tài)式兩類。 靜態(tài)顯示驅(qū)動(dòng):靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的i/o端口進(jìn)行驅(qū)動(dòng),或者使用如bcd碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡(jiǎn)單,顯示亮度高,缺點(diǎn)是占用i/o端口多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示

21、則需要5840根i/o端口來驅(qū)動(dòng),要知道一個(gè)89s51單片機(jī)可用的i/o端口才32個(gè)呢:),實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬件電路的復(fù)雜性。 動(dòng)態(tài)顯示驅(qū)動(dòng):數(shù)碼管動(dòng)態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃a,b,c,d,e,f,g,dp的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極com增加位選通控制電路,位選通由各自獨(dú)立的i/o線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對(duì)位選通com端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)

22、碼管就不會(huì)亮。通過分時(shí)輪流控制各個(gè)數(shù)碼管的的com端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的i/o端口,而且功耗更低。(d)數(shù)碼管參數(shù)8字高度:8字上沿與下沿的距離。比外型高度小。通常用英寸來表示。范圍一般為0.25-20英寸。長*寬*高:長數(shù)碼管正放時(shí),水平方向的長度;寬數(shù)碼管正放時(shí),垂直方向上的長度;高數(shù)碼管的厚度。時(shí)鐘點(diǎn):四位數(shù)碼管中,第

23、二位8與第三位8字中間的二個(gè)點(diǎn)。一般用于顯示時(shí)鐘中的秒。(e)數(shù)碼管應(yīng)用數(shù)碼管使用的電流與電壓電流:靜態(tài)時(shí),推薦使用10-15ma;動(dòng)態(tài)時(shí),16/1動(dòng)態(tài)掃描時(shí),平均電流為4-5ma,峰值電流50-60ma。電壓:查引腳排布圖,看一下每段的芯片數(shù)量是多少?當(dāng)紅色時(shí),使用1.9v乘以每段的芯片串聯(lián)的個(gè)數(shù);當(dāng)綠色時(shí),使用2.1v乘以每段的芯片串聯(lián)的個(gè)數(shù)。恒流驅(qū)動(dòng)與非恒流驅(qū)動(dòng)對(duì)數(shù)碼管的影響 顯示效果由于發(fā)光二極管基本上屬于電流敏感器件,其正向壓降的分散性很大, 并且還與溫度有關(guān),為了保證數(shù)碼管具有良好的亮度均勻度,就需要使其具有恒定的工作電流,且不能受溫度及其它因素的影響。另外,當(dāng)溫度變化時(shí)驅(qū)動(dòng)芯片還

24、要能夠自動(dòng)調(diào)節(jié)輸出電流 的大小以實(shí)現(xiàn)色差平衡溫度補(bǔ)償。 安全性:即使是短時(shí)間的電流過載也可能對(duì)發(fā)光管造成永久性的損壞,采用恒流驅(qū)動(dòng)電路后可防止由于電流故障所引起的數(shù)碼管的大面積損壞。另外,我們所采用的超大規(guī)模集成電路還具有級(jí)聯(lián)延時(shí)開關(guān)特性,可防止反向尖峰電壓對(duì)發(fā)光二極管的損害。超大規(guī)模集成電路還具有熱保護(hù)功能,當(dāng)任何一片的溫度超過一定值時(shí)可自動(dòng)關(guān)斷,并且可在控制室內(nèi)看到故障顯示。3.系統(tǒng)結(jié)構(gòu)及功能的實(shí)現(xiàn)3.1系統(tǒng)的基本結(jié)構(gòu)電子時(shí)鐘是用于計(jì)算時(shí)間并顯示時(shí)間的一種計(jì)時(shí)器,時(shí)間的值是不斷變化的。所以它最起碼的結(jié)構(gòu)應(yīng)有時(shí)間計(jì)數(shù)器、顯示器、以及一些外部電路所需元件。這里的時(shí)間計(jì)數(shù)器我們用pic16f87

25、7單片機(jī)代替,同時(shí)兼作信號(hào)輸入輸出控制器,顯示器用數(shù)碼管顯示。其電路圖如下:圖3.1:系統(tǒng)結(jié)構(gòu)電路圖3.2系統(tǒng)功能的實(shí)現(xiàn)電子時(shí)鐘是一種自動(dòng)計(jì)時(shí)器,但它必須的按照相應(yīng)的歷法規(guī)則來計(jì)時(shí)。規(guī)則如下:i. 一年12個(gè)月閏年366天,平年365天;ii. 一月31天,平年二月28天(閏年二月29天),三月31天,四月30天,五月31天,六月30天,七月31天,八月31天,九月30天,十月31天,十一月30天,十二月31天;iii. 當(dāng)年數(shù)為四的倍數(shù),且不是一百的倍數(shù)時(shí),當(dāng)年為閏年,全年366天,二月為29天,其余各月不變。否則為平年。iv. 當(dāng)年數(shù)為一百的倍數(shù),且不是四百的倍數(shù)時(shí),當(dāng)年為平年,否則為閏年

26、。v. 一天24個(gè)小時(shí),每小時(shí)60分鐘,每分60秒。以上是最基本的歷法,由于條件和時(shí)間有限,至于節(jié)氣、禮拜天等我們不考慮在內(nèi),系統(tǒng)完全是自動(dòng)計(jì)算時(shí)、分、秒、日期、月份及年份。中間不需要人工去完成,因此,我們就必須做出相應(yīng)的算法來控制數(shù)碼管顯示對(duì)應(yīng)的碼段。設(shè)計(jì)步驟如下:步驟一:選擇芯片根據(jù)實(shí)際情況和設(shè)計(jì)要求選取合適的單片機(jī),這里選用microchip公司的p16f877芯片(pic單片機(jī)可以在mplab-icd演示板上實(shí)現(xiàn)),因?yàn)樗亩〞r(shí)器1可以用作實(shí)時(shí)時(shí)鐘rtc。步驟二:確定時(shí)間的調(diào)整方法按鍵分別用rb0和rb7口,采用中斷方式rb0:用來選擇調(diào)整對(duì)象,并用指示燈作出相應(yīng)指示rb7:對(duì)選擇的對(duì)

27、象進(jìn)行調(diào)整使用方法:在初始狀態(tài),rd7指示燈點(diǎn)亮,此時(shí)沒有選擇調(diào)整對(duì)象。當(dāng)按一次rb0后,rd6指示燈點(diǎn)亮,此時(shí)可以用rb7對(duì)年份進(jìn)行調(diào)整;同理,可以用rb0依次選中月,日,星期,時(shí),分和秒,指示燈也會(huì)依次指示步驟三:定義寄存器 秒寄存器: second 六十進(jìn)制 有0狀態(tài) 分寄存器 : minute 六十進(jìn)制 有0狀態(tài) 時(shí)寄存器 : hour 二十四進(jìn)制 有0狀態(tài) 星期寄存器 :week 八進(jìn)制 無0狀態(tài) 日寄存器 : day 根據(jù)年月確定進(jìn)制(進(jìn)制寄存器count_d) 無0狀態(tài)月寄存器 : month 十三進(jìn)制 無0狀態(tài)年寄存器 : year 一百進(jìn)制(設(shè)計(jì)時(shí)間100年) 有0狀態(tài)初始默

28、認(rèn)時(shí)間為2004/01/02 fri 00:00:00及second=0,minute=0,hour=0,week=5,day=2,month=1,year=4,count_d=32進(jìn)位寄存器 :carrybit7bit6bit5bit4bit3bit2bit1bit0bit4:月進(jìn)位標(biāo)志位 bit3:日進(jìn)位標(biāo)志位bit2:時(shí)進(jìn)位標(biāo)志位 bit1:分進(jìn)位標(biāo)志位bit0:秒進(jìn)位標(biāo)志位當(dāng)有進(jìn)位時(shí)在相應(yīng)位上置1確定一個(gè)月的天數(shù)的寄存器:carry_daybit7bit6bit5bit4bit3bit2bit1bit0 bit3:當(dāng)月份(month)為1,3,5,7,8,10或12時(shí)該位置1,1,2位

29、置0 bit2:當(dāng)月份(month)為4,6,9或11時(shí)該位置1,1,3位置0 bit1:當(dāng)月份(month)為2時(shí)該位置1,2,3位置0 bit0:當(dāng)為閏年(能被四整除)時(shí)該位置1,(只要year的0,1位為0,便能整除) 閏年2月為29天,平年2月為28天 1,3,5,7,8,10,12月為31天; 4,6,9,11月為30天對(duì)象標(biāo)志寄存器:con_obj 它是用來標(biāo)記所要調(diào)整的對(duì)象的bit7bit6bit5bit4bit3bit2bit1bit0bit7:表示沒有選擇任何對(duì)象 bit3:把星期作為當(dāng)前調(diào)整對(duì)象bit6:把年作為當(dāng)前調(diào)整對(duì)象 bit2:把時(shí)作為當(dāng)前調(diào)整對(duì)象bit5:把月作為

30、當(dāng)前調(diào)整對(duì)象 bit1:把分作為當(dāng)前調(diào)整對(duì)象 bit4:把日作為當(dāng)前調(diào)整對(duì)象 bit0:把秒作為當(dāng)前調(diào)整對(duì)象步驟四:設(shè)置tmr1,產(chǎn)生1s脈沖 利用定時(shí)器1自帶的振蕩器,在外加上32768hz的晶振,設(shè)預(yù)分頻比為1:1,tmr1h初始值設(shè)為80h,tmr1l初始值設(shè)為0h,此時(shí)便能產(chǎn)生1s鐘的實(shí)時(shí)時(shí)鐘脈沖初始化tmr1循環(huán)等待中斷開中斷,開定時(shí)器11主程序步驟五:畫框圖設(shè)置各口的i/o狀態(tài)設(shè)置默認(rèn)時(shí)間和默認(rèn)寄存器調(diào)用液晶初始化子程序2時(shí)間中斷服務(wù)子程序(count_time)關(guān)定時(shí)器1清中斷標(biāo)志,重裝初始值開定時(shí)器1second+1second=60 否 秒 n y置秒進(jìn)位標(biāo)志位,清secon

31、d秒進(jìn)位標(biāo)志位置位否 n y minute+1置分進(jìn)位標(biāo)志位,清minuteminute=60 否 分 n y置時(shí)進(jìn)位標(biāo)志位,清hourhour=24 否 hour+1分進(jìn)位標(biāo)志位置位否 n y時(shí) n yday+1時(shí)進(jìn)位標(biāo)志位置位否 n yweek+1week=8否 n 星期 y1weeksecond+6,進(jìn)行時(shí)間修正day=count_d 否 n 日 y置日進(jìn)位標(biāo)志位,1day置月進(jìn)位標(biāo)志位,1hourmonth=12否 month+1日進(jìn)位標(biāo)志位置位否 n y n 月 y調(diào)查月份置carry_day標(biāo)志寄存器子程序調(diào)對(duì)couont_d賦值子程序月進(jìn)位標(biāo)志位置位否 n yyear+1year

32、=100 否 年 n y置月進(jìn)位標(biāo)志位,清year調(diào)查閏年子程序調(diào)翻譯子程序調(diào)lcd時(shí)間顯示子程序返回查閏年子程序(leap_year) 3year的0位為0否 n yyear的1位為0否 n y確定為平年,將carry_day0位置0確定為閏年,將carry_day0位置1返回4查月份置carry_day標(biāo)志寄存器子程序(exam_month) month=2否 y nmonth=2否 y 把carry_day的1位置1,2,3位置0 nmonth=2否 y nmonth=2否 y nmonth=2否 y n把carry_day的3位置1,1,2位置0把carry_day的2位置1,1,3位

33、置0返回556年翻譯子程序(tran_y)翻譯子程序(translate)調(diào)bcd轉(zhuǎn)換子程序調(diào)年翻譯子程序調(diào)數(shù)字ascii翻譯子程序序調(diào)月翻譯子程序返回調(diào)日翻譯子程序 入口:year 出口:year_h,year_l雕星期翻譯子程序 7 調(diào)時(shí)翻譯子程序返回調(diào)數(shù)字ascii翻譯子程序序調(diào)bcd轉(zhuǎn)換子程序月翻譯子程序(tran_mo)調(diào)分翻譯子程序調(diào)秒翻譯子程序返回 入口:month 出口:month_h,month_l返回調(diào)數(shù)字ascii翻譯子程序序調(diào)bcd轉(zhuǎn)換子程序時(shí)翻譯子程(tran_hour)89返回返回調(diào)數(shù)字ascii翻譯子程序序調(diào)bcd轉(zhuǎn)換子程序日翻譯子程序(tran_day)入口:d

34、ay 出口:day_h,day_l 入口:hour 出口:hour_h,hour_l11返回調(diào)數(shù)字ascii翻譯子程序序調(diào)bcd轉(zhuǎn)換子程序秒翻譯子程序(tran_s)返回10返回返回調(diào)數(shù)字ascii翻譯子程序序調(diào)bcd轉(zhuǎn)換子程序分翻譯子程序(tran_m) 入口:minute 出口:minute_h,minute_l 入口:second 出口:second_h,second_l1312星期翻譯子程序(tran_w)數(shù)字ascii翻譯子程序(ascii_f)調(diào)數(shù)字ascii查表子程序(查bcd_h)調(diào)week1字母表子程序序調(diào)數(shù)字ascii查表子程序(查bcd_l)調(diào)week2字母表子程序序返回調(diào)week3字母表子程序序返回 入口:bcd_h , bcd_l 出口:ascii_h , ascii_l15入口:week 出口:week1,week2,week3 1412week1字母表子程序(tran_w1)查表返回以w內(nèi)容為偏移量修改pc當(dāng)前值數(shù)字ascii查表子程序(tab_f)以w內(nèi)容為偏移量修改pc當(dāng)前值查表返回 入口:w 出口:w 入口:w 出口:w1716查表返回以w內(nèi)容為偏移量修改pc當(dāng)前值week2字母表子程序(tran_w2)查表返回以w內(nèi)容為

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論