單片機課程設(shè)計_第1頁
單片機課程設(shè)計_第2頁
單片機課程設(shè)計_第3頁
單片機課程設(shè)計_第4頁
單片機課程設(shè)計_第5頁
免費預(yù)覽已結(jié)束,剩余12頁可下載查看

下載本文檔

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

文檔簡介

1、單片機原理與應(yīng)用課程設(shè)計報告書課題數(shù)字電子表班級電 1101-5學(xué)號20115011姓名鄭俊觀同組董鵬飛趙玉猛指導(dǎo)教師楊勇完成日期2014 年 7 月 2 日目錄一、前言 ,2二、設(shè)計要求 ,2三、設(shè)計方案和論證,2(一)總設(shè)計原理圖 ,2(二)設(shè)計方案的選擇,2(三)硬件部分,4(四)軟件部分,8三、設(shè)計總結(jié) ,26一、前言時鐘,自從它發(fā)明的那天起,就成為人類的朋友,但隨著時間的推移,科學(xué)技術(shù)的不斷發(fā)展, 人們對時間計量的精度要求越來越高,應(yīng)用越來越廣。 怎樣讓時鐘更好的為人民服務(wù), 怎樣讓我們的老朋友煥發(fā)青春呢?這就要求人們不斷設(shè)計出新型時鐘?,F(xiàn)今,高精度的計時工具大多數(shù)都使用了石英晶體振

2、蕩器, 由于電子鐘, 石英表,石英鐘都采用了石英技術(shù),因此走時精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)校,數(shù)字式電子鐘用集成電路計時時,譯碼代替機械式傳動,用 LED 顯示器代替顯示器代替指針顯示進而顯示時間, 減小了計時誤差,這種表具有時,分,秒顯示時間的功能,還可以進行時和分的校對,片選的靈活性好。在一個單片機應(yīng)用系統(tǒng)中,時鐘有兩方面的含義:一是指為保障系統(tǒng)正常工作的基準振蕩定時信號, 主要由晶振和外圍電路組成, 晶振頻率的大小決定了單片機系統(tǒng)工作的快慢; 二是指系統(tǒng)的標準定時時鐘,即定時時間, 它通常有兩種實現(xiàn)方法:一是用軟件實現(xiàn),即用單片機內(nèi)部的可編程定時 /計數(shù)器來實現(xiàn),但誤差很大,

3、主要用在對時間精度要求不高的場合; 二是用專門的時鐘芯片實現(xiàn),在對時間精度要求很高的情況下,通常采用這種方法,典型的時鐘芯片有:DS1302,DS12887,X1203 等都可以滿足高精度的要求。本文主要介紹用單片機內(nèi)部的定時/計數(shù)器來實現(xiàn)電子時鐘的方法,本設(shè)計由單片機 AT89C51 芯片和 LED 數(shù)碼管為核心,輔以必要的電路,構(gòu)成了一個單片機電子時鐘。二、設(shè)計要求1、準確計時,以數(shù)字形式顯示時、分、秒的時間。2、小時以 24 小時計時形式,分秒計時為60 進位。3、校正時間功能 , 即能隨意設(shè)定走時時間。4、設(shè)計 5V 直流電源,系統(tǒng)時鐘電路、復(fù)位電路。5、能指示秒節(jié)奏,即秒提示。三、設(shè)

4、計方案和論證本次設(shè)計時鐘電路,使用了AT 89C51 單片機芯片控制電路,單片機控制時鐘電路單數(shù)據(jù)片顯示校正電路機電路簡單且省去了很多復(fù)雜的線路,使得電路簡明易懂,使用按鍵來調(diào)整時鐘的時、分、秒。同時使用匯編語言程序來控制整個時鐘顯示,使得編程變得更容易,這樣通過三個模塊:按鍵、芯片、 LED 顯示即可滿足設(shè)計要求。(一) 總設(shè)計原理框圖如上圖所示:(二)設(shè)計方案的選擇1. 計時方案方案 1:采用實時時鐘芯片現(xiàn)在市場上有很多實時時鐘集成電路,如 DS1287、DS12887、DS1302 等。這些實時時鐘芯片具備年、月、日、時、分、秒計時功能和多點定時功能,計時數(shù)據(jù)的更新每秒自動進行一次,不需

5、要程序干預(yù)。因此,在工業(yè)實時測控系統(tǒng)中多采用這一類專用芯片來實現(xiàn)實時時鐘功能。方案 2:使用單片機內(nèi)部的可編程定時器。利用單片機內(nèi)部的定時計數(shù)器進行中端定時,配合軟件延時實現(xiàn)時、 分、秒的計時。該方案節(jié)省硬件成本,但程序設(shè)計較為復(fù)雜。2. 顯示方案對于實時時鐘而言,顯示顯然是另一個重要的環(huán)節(jié)。通常LED 顯示有兩種方式:動態(tài)顯示和靜態(tài)顯示。靜態(tài)顯示的優(yōu)點是程序簡單、顯示亮度有保證、單片機CPU 的開銷小,節(jié)約 CPU 的工作時間。但占有 I/O 口線多,每一個 LED 都要占有一個 I/O 口,硬件開銷大,電路復(fù)雜。需要幾個LED 就必須占有幾個并行口,比較適用于LED 數(shù)量較少的場合。當然當

6、LED 數(shù)量較多的時候,可以使用單片機的串行口通過移位寄存器的方式加以解決,但程序編寫比較麻煩。LED 動態(tài)顯示硬件連接簡單,但動態(tài)掃描的顯示方式需要占有CPU 較多的時間,在單片機沒有太多實時測控任務(wù)的情況下可以采用。本系統(tǒng)使用單片機內(nèi)部的可編程定時器和采用8 位 LED 數(shù)碼管來分別顯示時、分、秒,因數(shù)碼管個數(shù)較多,故本系統(tǒng)選擇動態(tài)顯示方式。(三)硬件部分1、AT89C51 單片機介紹AT89C51 單片機是由 ATMEL 公司生產(chǎn)的一種低電壓、 高性能 CMOS8 位單片機,片內(nèi)含 8kbytes 的可反復(fù)寫的 FlashROM 和 128bytes 的 RAM, 2 個16 位定時計數(shù)

7、器5。AT89C51 單片機內(nèi)部主要包括累加器ACC(有時也簡稱為 A)、程序狀態(tài)字PSW、地址指示器 DPTR、只讀存儲器 ROM、隨機存取存儲器RAM、寄存器、并行 I/O 接口 P0P3、定時器 / 計數(shù)器、串行 I/O 接口以及定時控制邏輯電路等。這些部件通過內(nèi)部總線聯(lián)接起來,構(gòu)成一個完整的微型計算機。U119XTAL1P0.0/AD03938P0.1/AD1X137P0.2/AD218XTAL2P0.3/AD336CRYSTAL35P0.4/AD434P0.5/AD533P0.6/AD6932RSTP0.7/AD7P2.0/A82122P2.1/A923P2.2/A102924PSE

8、NP2.3/A113025ALEP2.4/A123126EAP2.5/A1327P2.6/A1428P2.7/A151P1.0P3.0/RXD10211P1.1P3.1/TXD312P1.2P3.2/INT0413P1.3P3.3/INT1514P1.4P3.4/T0615P1.5P3.5/T1716P1.6P3.6/WR817P1.7P3.7/RDAT89C51AT89C51 單片機管腳結(jié)構(gòu)圖P0 口:P0 口為一個 8 位漏級開路雙向 I/O 口,每腳可吸收 8TTL 門電流。當P1 口的管腳第一次寫 1 時,被定義為高阻輸入。 P0 能夠用于外部程 序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù) /

9、地址的第八位。 在 FIASH 編程時, P0 口作為原碼輸入口,當 FIASH 進行校驗時, P0 輸出原碼,此時 P0 外部必須被拉高。P1 口: P1 口是一個內(nèi)部提供上拉電阻的8 位雙向 I/O 口, P1 口緩沖器能接收輸出 4TTL 門電流。 P1 口管腳寫入 1 后,被內(nèi)部上拉為高,可用作 輸入, P1口被外部下拉為低電平時, 將輸出電流,這是由于內(nèi)部上拉的緣故。 在 FLASH 編程和校驗時, P1 口作為第八位地址接收。P2口: P2 口為一個內(nèi)部上拉電阻的8 位雙向 I/O 口,P2 口緩沖器可接收,輸出 4 個 TTL 門電流,當 P2 口被寫“ 1”時,其管腳被內(nèi)部上拉

10、電阻拉高,且作為輸入。并因此作為輸入時,P2 口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。 P2 口當用于外部程序存儲器或16 位地址外部數(shù)據(jù)存儲器進行存取時, P2 口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2 口輸出其特殊功能寄存器的內(nèi)容。 P2 口在 FLASH 編程和校驗時接收高八位地址信號和控制信號。P3 口: P3 口管腳是 8 個帶內(nèi)部上拉電阻的雙向I/O 口,可接收輸出4 個TTL 門電流。當 P3 口寫入“ 1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平, P3 口將輸出電流 (

11、ILL )這是由于上拉的緣故。P3 口也可作為 AT89C51 的一些特殊功能口,如下表所示:口管腳備選功能P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 /INT0 (外部中斷 0)P3.3 /INT1 (外部中斷 1)P3.4 T0 (記時器 0 外部輸入)P3.5 T1 (記時器 1 外部輸入)P3.6 /WR(外部數(shù)據(jù)存儲器寫選通)P3.7 /RD (外部數(shù)據(jù)存儲器讀選通)P3 口同時為閃爍編程和編程校驗接收一些控制信號。RST:復(fù)位輸入。當振蕩器復(fù)位器件時,要保持RST 腳兩個機器周期的高電平時間。ALE:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的

12、地位字節(jié)。在 FLASH 編程期間,此引腳用于輸入編程脈沖。在平時,ALE 端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6 。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個 ALE 脈沖。如想禁止 ALE 的輸出可在 SFR8EH 地址上置 0。此時, ALE只有在執(zhí)行 MOVX,MOVC 指令是 ALE 才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE 禁止,置位無效。PSEN:外部程序存儲器的選通信號。 在由外部程序存儲器取指期間,每個機器周期兩次 /PSEN 有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/P

13、SEN 信號將不出現(xiàn)。EA:當 EA 保持低電平時,則在此期間外部程序存儲(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1 時, EA 將內(nèi)部鎖定為 RESET;當 EA端保持高電平時, 此間內(nèi)部程序存儲器。 在 FLASH 編程期間,此引腳也用于施加12V 編程電源( VPP)。2、上電按鈕復(fù)位電路R1C322010uR210KU2本設(shè)計采用上電按鈕復(fù)位電路:首先經(jīng)過上電復(fù)位,當按下按鍵時, RST 直接與 VCC 相連,為高電平形成復(fù)位, 同時電解電容被電路放電; 按鍵松開時, VCC對電容充電, 充電電流在電阻上, RST 依然為高電平, 仍然是復(fù)位, 充電完成后,電

14、容相當于開路, RST 為低電平,單片機芯片正常工作。其中電阻 R2 決定了電容充電的時間, R2 越大則充電時間長,復(fù)位信號從 VCC 回落到 0V 的時間也長。3、晶振電路1C133pFX11C233pF本設(shè)計晶振電路采用12M 的晶振。晶振的作用是給單片機正常工作提供穩(wěn)定的時鐘信號。單片機的晶振并不是只能用12M,只要不超過 20M 就行,在準許的范圍內(nèi),晶振越大,單片機運行越快,還有用 12M 的就是好算時間,因為一個機器周期為 1/12 時鐘周期,所以這樣用 12M 的話,一個時鐘周期為 12us,那么定時器計一次數(shù)就是 1us 了,電容范圍在 20-40pF 之間,這里連接的是 3

15、3pF 的電容。機器周期 =10*晶振周期 =12*系統(tǒng)時鐘周期4、顯示電路就時鐘而言,通??刹捎靡壕э@示或數(shù)碼管顯示。由于一般的段式液晶屏,需要專門的驅(qū)動電路,而且液晶顯示作為一種被動顯示,可視性相對較差;對于具有驅(qū)動電路和微處理器接口的液晶顯示模塊(字符或點陣),一般多采用并行接口,對微處理器的接口要求較高, 占用資源多。另外,89C2051本身無專門的液晶驅(qū)動接口,因此,本時鐘采用數(shù)碼管顯示方式。數(shù)碼管作為一種主動顯示器件,具有亮度高、價格便宜等優(yōu)點,而且市場上也有專門的時鐘顯示組合數(shù)碼管。對于實時時鐘而言,顯示顯然是另一個重要的環(huán)節(jié)。通常LED 顯示有兩種方式:動態(tài)顯示和靜態(tài)顯示。靜態(tài)

16、顯示的優(yōu)點是程序簡單、顯示亮度有保證、單片機CPU 的開銷小,節(jié)約 CPU 的工作時間。但占有 I/O 口線多,每一個 LED 都要占有一個 I/O 口,硬件開銷大,電路復(fù)雜。需要幾個LED 就必須占有幾個并行口,比較適用于LED 數(shù)量較少的場合。當然當LED 數(shù)量較多的時候,可以使用單片機的串行口通過移位寄存器的方式加以解決,但程序編寫比較麻煩。LED 動態(tài)顯示硬件連接簡單,但動態(tài)掃描的顯示方式需要占有CPU 較多的時間,在單片機沒有太多實時測控任務(wù)的情況下可以采用。本系統(tǒng)需要采用 8 位 LED 數(shù)碼管來分別顯示時、分、秒,因數(shù)碼管個數(shù)較多,故本系統(tǒng)選擇動態(tài)顯示方式。5、時鐘顯示校正電路本

17、設(shè)計利用按鍵開關(guān)來校正時鐘顯示的數(shù)字。當按鈕按下時,將在相應(yīng)的端口輸入一個低電平,通過相應(yīng)的程序來改變時鐘顯示。其中 S1 按鍵開關(guān)用來選擇要修改的數(shù)字; S2 按鍵用來增加所選數(shù)字的數(shù)值; S3 按鍵用來減少所選數(shù)字的數(shù)值。SMH6、總電路原理圖 圖如下圖所示。U1U219XTAL1P0.0/AD0392A0B018C138317P0.1/AD1A1B13741622pFP0.2/AD2A2B21836515X1XTAL2P0.3/AD3356A3B314CRYSTALP0.4/AD4A4B434713P0.5/AD5A5B5C233812P0.6/AD6A6B693291122pFRSTP

18、0.7/AD7A7B7P2.0/A82119CE221P2.1/A9AB/BAR123P2.2/A10292474LS245PSENP2.3/A1110K3025ALEP2.4/A1231C3EAP2.5/A132610uP2.6/A1427S28P2.7/A15M1P1.0P3.0/RXD10211P1.1P3.1/TXDH312P1.2P3.2/INT0413P1.3P3.3/INT1514P1.4P3.4/T0615P1.5P3.5/T1716P1.6P3.6/WR817P1.7P3.7/RDAT89C51(四)軟件部分根據(jù)上述電子時鐘的工作流程,軟件設(shè)計可分為以下幾個功能模塊:1、主程

19、序模塊。主程序主要用于系統(tǒng)初始化:設(shè)置計時緩沖區(qū)的位置及初值,定時器的工作方式和計數(shù)初值等參數(shù)。2、計時模塊。即定時器0 中斷子程序,完成刷新計時緩沖區(qū)的功能。系統(tǒng)使用 12MHz 的晶振,假設(shè)定時器0 工作在方式 1,則定時器的最大定時時間值遠遠小于1s。因此本系統(tǒng)采用定時器與軟件循環(huán)相結(jié)合的定時方法。設(shè)定時器 0 工作在方式 1,每隔 50ms 溢出中斷一次,則循環(huán)中斷 20 次延時時間是 1s,上述過程重復(fù) 60 次為 1 分,分計時 60 次為 1 小時,小時計時 24 次則時間重新回到12:00:00。因定時器 0 工作在方式 1,則 50ms 定時對應(yīng)的定時器初值為TH0=3CH,

20、TH0=0B0H。但應(yīng)當指出: CPU 從響應(yīng) T0 中斷到完成定時器初值重裝這段時間,定時器 T0 并不停止工作,而是繼續(xù)計數(shù)。因此,為了確保 T0 能準確定時 50ms,重裝的定時器初值必須加以修正, 修正的定時器初值必須考慮到從原定時器初值中扣除計數(shù)器多計的脈沖個數(shù)。 由于定時器計數(shù)脈沖的周期恰好和機器周期吻合,因此修正量等于 CPU 從響應(yīng)中斷到重裝完 TL0 為止所用的機器周期數(shù)。3、時間設(shè)置模塊。該模塊由鍵盤輸入相應(yīng)的數(shù)據(jù)來設(shè)置當前時間。程序通過調(diào)用一個鍵盤設(shè)置子程序通過鍵盤掃描將鍵入的8 位時間值送入顯示緩沖區(qū)。設(shè)置時間后,時鐘要從這個時間開始計時, 而時分秒單元各占一個字節(jié),鍵

21、盤占 8 個字節(jié)。因此程序中要調(diào)用一個合字子程序?qū)@示緩沖區(qū)中的6 位BCD 碼合并為 3 位壓縮 BCD 碼,并送入計時緩沖區(qū), 作為當前計時起始時間。4、顯示模塊。該模塊完成時分秒8 位 LED 的動態(tài)顯示。因為顯示為8 位,二計時是 3 個字節(jié)單元,為此,必須將3 字節(jié)計時緩沖區(qū)中的時分秒壓縮BCD 碼拆分為8 字節(jié) BCD 碼,并送入顯示緩沖區(qū)中。當按下調(diào)整時間鍵后,在8 位設(shè)置完成之前,這8個 LED 應(yīng)該顯示鍵人的數(shù)據(jù),不顯示當前的時間。為此,我們設(shè)置了一個計時顯示允許標志位 F0,在時間設(shè)置期間 F0=1,不調(diào)用刷新顯示緩沖區(qū)的子程序。5、程序流程框圖開始N一秒時間到?Y秒單元加

22、 1N60 秒時間到?Y秒單元清零,分單元加1N60 分鐘到?Y分單元清零,時單元加1N24 小時到?Y時單元清零時間顯示中斷返回6、匯編程序如下 :S_SET BIT P1.0M_SET BIT P1.1H_SET BIT P1.2SECOND EQU 30HMINUTE EQU 31HHOUREQU 32HTCNT EQU 34HORG 0000HSJMP STARTORG 000BHLJMP INT_T0START: MOV DPTR,#TABLEMOV HOUR ,#12MOV MINUTE,#0MOV SECOND ,#0MOV TCNT,#0MOV TMOD,#01HMOV TH0

23、,#3CHMOV TL0,#0B0HMOV IE,#82HSETB TR0A1:LCALL DISPLAYJNB S_SET,S1JNB M_SET,S2JNB H_SET,S3LJMP A1S1: LCALL DELAYJB S_SET,A1INC SECONDMOV A,SECONDCJNE A,#60,J0MOV SECOND,#0LJMP K1S2: LCALL DELAYJB M_SET,A1K1: INC MINUTEMOV A,MINUTECJNE A,#60,J1MOV MINUTE,#0LJMP K2S3: LCALL DELAYJB H_SET,A1K2: INC HOUR

24、MOV A,HOURCJNE A,#24,J2MOV HOUR,#0MOV MINUTE,#0MOV SECOND,#0LJMP A1J0:JB S_SET,A1LCALL DISPLAYSJMP J0J1:JB M_SET,A1LCALL DISPLAYSJMP J1J2: JB H_SET,A1LCALL DISPLAYSJMP J2INT_T0:MOV TH0,#3CHMOV TL0,#0B0HINC TCNTMOV A,TCNTCJNE A,#20,RETUNEINC SECONDMOV TCNT,#0MOV A,SECONDCJNE A,#60,RETUNEINC MINUTEMOV

25、 SECOND,#0MOV A,MINUTECJNE A,#60,RETUNEINC HOURMOV MINUTE,#0MOV A,HOURCJNE A,#24,RETUNEMOV HOUR,#0MOV MINUTE,#0MOV SECOND,#0MOV TCNT,#0RETUNE: RETIDISPLAY: MOV A,SECONDMOV B,#10DIV ABCLR P3.6MOVC A,A+DPTRMOV P0,ALCALL DELAYSETB P3.6MOV A,BCLR P3.7MOVC A,A+DPTRMOV P0,ALCALL DELAYSETB P3.7CLR P3.5MOV

26、P0,#40HLCALL DELAYSETB P3.5MOV A,MINUTEMOV B,#10DIV ABCLR P3.3MOVC A,A+DPTRMOV A,BMOV P0,ACLR P3.4LCALL DELAYMOVC A,A+DPTRSETB P3.3MOV P0,ALCALL DELAYSETB P3.4CLR P3.2MOV P0,#40HLCALL DELAYSETB P3.2MOV A,HOURMOV B,#10DIV ABCLR P3.0MOVC A,A+DPTRMOV P0,ALCALL DELAYSETB P3.0MOV A,BCLR P3.1MOVC A,A+DPTRMOV P0,ALCALL DELAYSETB P3.1RETTABLE: DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FHDELAY: MOV R6,#10D1

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論