單片機(jī)原理與應(yīng)用電子時(shí)鐘_第1頁
單片機(jī)原理與應(yīng)用電子時(shí)鐘_第2頁
單片機(jī)原理與應(yīng)用電子時(shí)鐘_第3頁
單片機(jī)原理與應(yīng)用電子時(shí)鐘_第4頁
單片機(jī)原理與應(yīng)用電子時(shí)鐘_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、. . . . 單片機(jī)原理與應(yīng)用電子時(shí)鐘 課程設(shè)計(jì)報(bào)告 學(xué)院:信息工程學(xué)院 專業(yè)班級(jí):通信工程10-1班 :牛愛 歡 焦航指導(dǎo)教師:振 目 錄1. 設(shè)計(jì)題目.1 1.1課題研究背景.1 1.2課題主要容.12. 設(shè)計(jì)任務(wù).13. 設(shè)計(jì)思路.2 3.1系統(tǒng)框圖設(shè)計(jì).2 3.2系統(tǒng)電路原理設(shè)計(jì).34. 硬件原理圖和連接圖.4 4.1總原理圖.4 4.2AT89C51.4 4.3復(fù)位電路.7 4.4按鍵電路.7 4.5LED顯示電路.85. 程序流程圖.9 5.1主程序.9 5.2數(shù)碼管顯示.9 5.3定時(shí)器/計(jì)數(shù)器T0中斷服務(wù)程序.9 5.4按鍵處理程序.116. 程序清單.127. 實(shí)驗(yàn)總結(jié).1

2、78. 設(shè)計(jì)心得.189. 參考資料.1919 / 241.設(shè)計(jì)題目 1.1課題研究背景 電子時(shí)鐘有著很長的歷史,在1957年,Ventura發(fā)明了世界上的第一塊電子表后,他就奠定了電子時(shí)鐘的基礎(chǔ),電子時(shí)鐘開始迅速地發(fā)展起來?,F(xiàn)代的電子時(shí)鐘是基于單片機(jī)的一種計(jì)時(shí)工具,采用延時(shí)程序產(chǎn)生一定的時(shí)間中斷,用于一秒的定義,通過計(jì)數(shù)方式進(jìn)行滿六十秒為一分鐘進(jìn)一,滿六十分為一小時(shí)進(jìn)一,滿二十四小時(shí)清零,從而達(dá)到計(jì)時(shí)的功能?;?1單片的電子時(shí)鐘,外圍電路簡(jiǎn)單易于實(shí)現(xiàn),性價(jià)比高,是實(shí)現(xiàn)電子時(shí)鐘的不錯(cuò)選擇。 1.2課題主要容本次課程設(shè)計(jì)基于單片機(jī)部資源設(shè)計(jì)出的一款性價(jià)比高的電子時(shí)鐘系統(tǒng),主要涉與到以下幾個(gè)研究

3、方向: (1) 熟悉MCS-51單片機(jī)部定時(shí)器的工作方式; (2) 掌握單片機(jī)部中斷系統(tǒng)的工作模式; (3) 了解MCS-51單片機(jī)外部電路的一般設(shè)計(jì)方法; (4) 熟悉匯編語言的編寫規(guī)則;(5) 掌握單片機(jī)部ram地址分配方法; (6) 掌握特殊功能寄存器的用法; (7) 熟悉Proteus ISIS與Keil uVision2軟件的使用。2.設(shè)計(jì)任務(wù)我們采用應(yīng)用廣泛的AT89C51作為時(shí)鐘控制芯片,利用單片機(jī)部的定時(shí)/計(jì)數(shù)器T0 實(shí)現(xiàn)軟時(shí)鐘的目的。在六位數(shù)碼顯示器上顯示時(shí),分,秒。選用定時(shí)器每隔0.125秒產(chǎn)生一次中斷,在存中設(shè)定四個(gè)單元,存放0.125秒,秒,分,時(shí),每隔0.125秒對(duì)這

4、些單元中的容進(jìn)行必要的修改。存放時(shí)分秒與0.125秒的數(shù)值的四個(gè)單元選用片RAM:(50H) 0.125秒的個(gè)數(shù)(51H) 秒(BCD碼)(52H) 分(BCD碼)(53H) 時(shí)(BCD碼)晶振頻率為6MHz,使用方式1定時(shí)0.125秒,則定時(shí)器的初始值為0BDCH。可每中斷8次更新一次時(shí)間顯示,每隔兩次中斷(0.25秒)進(jìn)行一次鍵盤檢查。此外還要實(shí)現(xiàn)對(duì)時(shí)間的調(diào)整功能,89C51的P1.0、P1.1、P1.2外接三個(gè)獨(dú)立按鍵,當(dāng)有鍵按下時(shí),分別使秒單元清零,時(shí),分容加一。3.設(shè)計(jì)思路 3.1系統(tǒng)框圖設(shè)計(jì) 根據(jù)電子時(shí)鐘能夠?qū)崿F(xiàn)的功能,采用單片機(jī)部資源,設(shè)計(jì)出了系統(tǒng)原理框圖,如圖3-1所示: 圖3

5、-1 在單片機(jī)部構(gòu)建三個(gè)模塊:控制模塊、譯碼模塊、定時(shí)模塊,用以實(shí)現(xiàn)自動(dòng)計(jì)數(shù)、譯碼顯示功能。單片機(jī)外部構(gòu)建三個(gè)電路:復(fù)位電路、外部按鈕電路、顯示電路,用以實(shí)現(xiàn)對(duì)單片機(jī)部計(jì)數(shù)控制以與譯碼輸出的正確顯示。該電子時(shí)鐘是將秒、分、時(shí)顯示在人的視覺器官面前的一種計(jì)時(shí)裝置。故將計(jì)時(shí)周期設(shè)置為24小時(shí),當(dāng)顯示滿刻度是23時(shí)59分59秒時(shí),數(shù)碼管顯示為0。為了確保時(shí)間正常校對(duì),在系統(tǒng)中設(shè)有校對(duì)按鈕,用以實(shí)現(xiàn)對(duì)數(shù)碼管顯示的正確調(diào)整。 3.2系統(tǒng)電路原理設(shè)計(jì)在本次的設(shè)計(jì)中對(duì)6MHZ的系統(tǒng)時(shí)鐘進(jìn)行定時(shí)計(jì)數(shù),初值設(shè)為0BDCH。形成定時(shí)時(shí)間為0.125s。用片RAM的50H單元對(duì)0.125s計(jì)數(shù),計(jì)8次1秒鐘到,然后

6、對(duì)秒計(jì)數(shù)器51H單元加1,秒計(jì)數(shù)器加到60后就向分進(jìn)位,則分計(jì)數(shù)器52H單元加1而秒計(jì)數(shù)器51H單元清零;分計(jì)數(shù)器加到60后又向時(shí)進(jìn)位,則時(shí)計(jì)數(shù)器53H單元加1而分計(jì)數(shù)器52H單元清零;時(shí)計(jì)數(shù)器加到24則時(shí)計(jì)數(shù)器清零。然后把秒、分、時(shí)計(jì)數(shù)器分成十位和個(gè)位放到6個(gè)數(shù)碼管的顯示緩沖區(qū),通過數(shù)碼管顯示出來。顯示格式為小時(shí)十位、小時(shí)個(gè)位、分十位、分個(gè)位、秒十位、秒個(gè)位。4. 硬件原理圖和連接圖 4.1總原理圖根據(jù)電路原理框圖設(shè)計(jì)出電路原理圖如圖4-1所示,由6MHz的晶振給單片機(jī)提供固定的時(shí)鐘頻率,通過k0、k1、k2可以對(duì)顯示電路時(shí)間進(jìn)行位設(shè)定。 圖4-1 4.2AT89C51 AT89C51是一種

7、帶4K字節(jié)FLASH存儲(chǔ)器的低電壓、高性能CMOS的8位微處理器,俗稱單片機(jī)。AT89C51是一種帶2K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器。如圖4-2所示: 圖4-2 由于電路原理中只用到單片機(jī)的p0、p1、p2口,所示下面對(duì)這三個(gè)端口進(jìn)行詳細(xì)介紹。 1)、P0口:P00P07統(tǒng)稱為P0口,在不接片外存儲(chǔ)器與不擴(kuò)展I/O接口時(shí),作為準(zhǔn)雙向輸入/輸出

8、接口。在接有片外存儲(chǔ)器或擴(kuò)展I/O接口時(shí),P0口分時(shí)復(fù)用為低8位地址總線和雙向數(shù)據(jù)總線。P0口是一個(gè)三態(tài)雙向口,由一個(gè)輸出鎖存器、兩個(gè)三態(tài)緩沖器、輸出驅(qū)動(dòng)電路和輸出控制電路組成。在輸入數(shù)據(jù)時(shí),應(yīng)人為地先向P0口寫“1”,定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的低八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。 2)、P1口:P10P17統(tǒng)稱為P1口,可作為準(zhǔn)雙向I/O接口使用。P1口是一個(gè)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4LSTTL門電流。P1口管腳寫入“1”后,被部上拉為

9、高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于部上拉的緣故。 3)、P2口:P20 P27口統(tǒng)稱為P2口,一般可以作為準(zhǔn)雙向I/O接口使用,在接有片外存儲(chǔ)器或擴(kuò)展I/O接口且尋址圍超過256字節(jié)時(shí),P2口用作高8位地址總線。P2口為一個(gè)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地

10、址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 4.3復(fù)位電路計(jì)算機(jī)在啟動(dòng)運(yùn)行時(shí)都需要復(fù)位,復(fù)位時(shí)使中央處理器CPU和部其他部件處于一個(gè)確定的初始狀態(tài),從這個(gè)狀態(tài)開始工作。 AT89C51單片機(jī)有一個(gè)復(fù)位引腳RST,高電平有效。在時(shí)鐘電路工作以后,當(dāng)外部電路使得RST端出現(xiàn)兩個(gè)機(jī)器周期(24個(gè)時(shí)鐘周期)以上的高電平,系統(tǒng)部復(fù)位。復(fù)位有兩種方式:上電復(fù)位和按鈕復(fù)位。在此次的設(shè)計(jì)中,我采用按鍵復(fù)位,如圖4-3所示: 圖4-3只要RST保持高電平,AT89C51單片機(jī)將循環(huán)復(fù)位。復(fù)位期間,ALE、PSEN輸出高電平。RST從高電平

11、變?yōu)榈碗娖胶?,PC指針變?yōu)?000H,使單片機(jī)從程序存儲(chǔ)器地址為0000H的單元開始執(zhí)行程序。當(dāng)單片機(jī)執(zhí)行程序出錯(cuò)或進(jìn)入死循環(huán)時(shí),可按復(fù)位按鈕重新啟動(dòng)。 4.4按鍵電路獨(dú)立式鍵盤是各按鍵相互獨(dú)立,每個(gè)按鍵各接一根I/O接口線,每根I/O接口線的按鍵是不會(huì)影響其他的I/O接口線。在本次設(shè)計(jì)中,按鍵為K0、K1、K2,他們分別與單片機(jī)P1.0、P1.1、P1.2接口線相接。通過按鍵控制顯示器的顯示。圖4-4所示: 圖4-4 4.5 LED顯示電路在本次的設(shè)計(jì)中,采用的8位的數(shù)碼管顯示器。數(shù)碼管如果按照段數(shù)分可為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個(gè)發(fā)光二極管單元,也就是多了一個(gè)小數(shù)點(diǎn)

12、的顯示;如果按能夠顯示多少個(gè)“8”分類的話,也可以可分為1位、2位、4位等數(shù)碼管。 如果按照發(fā)光二極管單元的連接方式又可以分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽極的數(shù)碼管是將所有發(fā)光二極管的陽極接到一起后就形成公共陽極(COM)的數(shù)碼管,共陽極數(shù)碼管在應(yīng)用時(shí)要將公共極(COM)接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮,當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮。共陰極數(shù)碼管是將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管,共陰極數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極(COM)接到地線GND上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時(shí),相應(yīng)字段就點(diǎn)亮,當(dāng)某一字段的陽極為低電平時(shí)

13、,相應(yīng)字段就不亮。如圖4-5所示: 圖4-55.程序流程圖 5.1主程序 先對(duì)顯示單元和定時(shí)器/計(jì)數(shù)器初始化,然后重復(fù)調(diào)用數(shù)碼管顯示模塊和按鍵處理模塊,當(dāng)有按鍵按下時(shí),則轉(zhuǎn)入相應(yīng)的功能程序。 5.2數(shù)碼管顯示 本設(shè)計(jì)有8個(gè)數(shù)碼管,從右到左為妙、分、時(shí)。在本系統(tǒng)中數(shù)碼管顯示采用軟件譯碼動(dòng)態(tài)顯示。在存儲(chǔ)器中首先建立一顯示信息的字段碼表,顯示時(shí),先從顯示緩沖區(qū)中取出顯示的信息,然后通過查表程序在字段表中查出所顯示的信息的斷碼,從P0端口輸出,同時(shí)在P2端口進(jìn)行數(shù)碼管顯示。 5.3定時(shí)器/計(jì)數(shù)器T0中斷服務(wù)程序 T0用于計(jì)時(shí),選中方式一,重復(fù)定時(shí),定時(shí)時(shí)間設(shè)為0.125s,定時(shí)時(shí)間到則中斷,在中斷服務(wù)

14、程序中用一個(gè)計(jì)數(shù)器對(duì)0.125s計(jì)數(shù),計(jì)8次則對(duì)秒單元加一。秒單元加到60則對(duì)分單元加一,同時(shí)秒單元清0;分單元加到60則對(duì)時(shí)單元加一,同時(shí)分單元清0;時(shí)單元加到24則對(duì)時(shí)單元清0,標(biāo)志一天時(shí)間計(jì)滿。在對(duì)各單元計(jì)數(shù)的同時(shí),把他們的值放到存儲(chǔ)器單元的指定位置。流程圖如下: 設(shè)置初始值,啟動(dòng)下一個(gè)0.125s是開始T0為方式1設(shè)中斷次數(shù)為8,清計(jì)時(shí)單元允許T0中斷調(diào)用顯示子程序進(jìn)入功能程序按下鍵否開始中斷返回0.125s計(jì)數(shù)器加一秒單元加1,125ms計(jì)數(shù)器清0分單元加1,秒單元清0時(shí)單元加1,分單元清0時(shí)單元清0125ms計(jì)數(shù)器=8?秒單元=60?分單元=60?時(shí)單元=24?主程序流程圖T0中斷

15、服務(wù)程序NONONONO 5.4按鍵處理程序按鍵設(shè)置為:如果沒有按鍵,則時(shí)鐘正常走時(shí)。當(dāng)按下K0鍵時(shí),時(shí)鐘復(fù)位,從零開始計(jì)數(shù);按K1鍵時(shí),秒清零;按K1鍵時(shí),分清零,再按時(shí)實(shí)現(xiàn)加一功能;按K2鍵時(shí),時(shí)清零,再按時(shí)實(shí)現(xiàn)加一功能。6. 程序清單 ORG 0000H LJMP TIM ORG 000BH ;中斷服務(wù)程序入口 T0 LJMP LOOP2 ORG 0030H ;主程序入口TIM: MOV SP, #2FH MOV TMOD, #01H ;設(shè)置T0定時(shí)為方1 MOV IE, #0 SETB ET0 SETB EA ;打開T0中斷 MOV TH0, #0BH ;定時(shí)0.125s MOV TL

16、0, #0DCH SETB TR0 ;啟動(dòng)T0 MOV 50H, #0 ;各時(shí)間存儲(chǔ)單元清零 MOV 51H, #0 MOV 52H, #0 MOV 53H, #0 CLR PSW.5 ;清除鍵盤調(diào)整標(biāo)志位LOOP1: CALL DISP2 ;調(diào)用顯示子程序 C TF0, LOOP2 JMP LOOP1 ;主程序循環(huán);-LOOP2: MOV TL0, #0DCH MOV TH0, #0BH INC 50H MOV A, 50H CJNE A, #02H, EQ04 SJMP JIANEQ04: CJNE A, #04H, EQ06 SJMP JIANEQ06: CJNE A, #06H, EQ

17、08 SJMP JIANEQ08: CJNE A, #08H, _END_T0 MOV 50H, #0 MOV A, 51H ;秒計(jì)數(shù) ADD A, #1 DA A MOV 51H, A CJNE A, #60H, JIAN MOV 51H, #0ADDF: ;分計(jì)數(shù) MOV A, 52H ADD A, #1 DA A MOV 52H, A CJNE A, #60H, JIAN MOV 52H, #0 PSW.5, _END_T0 ;PSW.5為1,是按鍵調(diào)整,時(shí)不變ADDH: ;時(shí)計(jì)數(shù) MOV A, 53H ADD A, #1 DA A MOV 53H, A CJNE A, #24H, JI

18、AN MOV 53H, #0 PSW.5, _END_T0JIAN: PSW.5, _END_T0 MOV P1, #0FFH MOV A, P1 ;讀取鍵盤狀態(tài) CPL A ANL A, #00000111B JZ _END_T0 ;為0則無鍵按下 SETB PSW.5 ACC.0, CLRS ;為1則是P3.0有鍵按下 ACC.1, ADDF ACC.2, ADDHCLRS: MOV 50H, #0 MOV 51H, #0_END_T0: CLR PSW.5 ;清除按鍵調(diào)整標(biāo)志位 RETI;-DISP2: ;顯示子程序,把51H 52H 53H的容送到LED顯示器 CALL FEN_JIE

19、2 CALL DISPLAY RET;-FEN_JIE2: MOV A, 51H ANL A, #0FH MOV 7DH, A MOV A, 51H SWAP A ANL A, #0FH MOV 7CH, A MOV A, 52H ANL A, #0FH MOV 7BH, A MOV A, 52H SWAP A ANL A, #0FH MOV 7AH, A MOV A, 53H ANL A, #0FH MOV 79H, A MOV A, 53H SWAP A ANL A, #0FH MOV 78H, A RET;-DISPLAY: MOV R0, #7DH MOV 7EH, #0FEH MOV

20、 7FH, #6_DP_L: MOV A, R0 MOV DPTR, #_MA_BIAO MOVC A, A+DPTR MOV P0, A ;P0段選 P2位選 MOV P2, 7EH XRL P2, #255 ;取反否則加三極管 MOV A, 7EH RL A MOV 7EH, A DEC R0 LCALL DL1MS MOV P2, #0 ;關(guān)閉顯示 DJNZ 7FH, _DP_L ;循環(huán)顯示六個(gè)位 RET_MA_BIAO: DB 0C0H, 0F9H, 0A4H, 0B0H, 99H DB 92H, 82H, 0F8H, 80H, 90H DB 88H, 83H, 0C6H, 0A1H, 86H DB 8EHDL1MS:DEL1: MOV R7, #0 DJNZ R7, $ RETEND7. 實(shí)驗(yàn)總結(jié)在本課題中,采用AT89C51單片機(jī)作為主控制器,6MHZ晶振作為振蕩源,P0口作為輸出字

溫馨提示

  • 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)論