百分之一秒計時器設(shè)計_第1頁
百分之一秒計時器設(shè)計_第2頁
百分之一秒計時器設(shè)計_第3頁
百分之一秒計時器設(shè)計_第4頁
百分之一秒計時器設(shè)計_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第1章 秒計時器總體設(shè)計課程設(shè)計是單片機課程教學(xué)的最后一個環(huán)節(jié),是對學(xué)生進行全面的系統(tǒng)的訓(xùn)練。進行課程設(shè)計可以讓學(xué)生把學(xué)過的比較零碎的知識系統(tǒng)化,真正的能夠把學(xué)過的知識落到實處,能夠開發(fā)簡單的系統(tǒng),也進一步激發(fā)了學(xué)生再深一步學(xué)習(xí)的熱情,因此課程設(shè)計是必不少的,是非常必要的。1.1 設(shè)計目的設(shè)計目的1. 單片機的基本原理及相關(guān)的簡單應(yīng)用。2. 掌握用單片機設(shè)計系統(tǒng)的一般步驟。3. 了解LED數(shù)碼管的基本知識和驅(qū)動方法。4掌握單片機系統(tǒng)各個組成部分的作用以及分布位置。5學(xué)會運用單片機的硬件資源。1.2 設(shè)計任務(wù)和要求任務(wù)和要求任務(wù):用AT89S51單片機和中小規(guī)模集成芯片設(shè)計1/100秒計時器要求

2、:1. 計時精度 10-2秒。2. 6位數(shù)碼顯示,分別表示分、秒、1/10秒、1/100秒。3. 有兩個按鍵分別控制秒表的歸零、停止。4. 用匯編語言編程,用proteus仿真。1.3 總體設(shè)計方案1.硬件設(shè)計方案方案:該系統(tǒng)采用51系列單片機AT89C51作為控制核心,該系統(tǒng)可以完成運算控制、信號識別以及顯示功能的實現(xiàn)。由于用了單片機,使其技術(shù)比較成熟,應(yīng)用起來方便、簡單并且單片機周圍的輔助電路也比較少,便于控制和實現(xiàn)。整個系統(tǒng)具有極其靈活的可編程性,能方便地對系統(tǒng)進行功能的擴張和更改。 MCS-51單片機特點如下: (1)可靠性好:單片機按照工業(yè)控制要求設(shè)計,抵抗工業(yè)噪聲干擾優(yōu)于一般的CP

3、U,程序指令和數(shù)據(jù)都可以寫在ROM里,許多信號通道都在同一芯片,因此可靠性高、易擴充。(2)單片機有一般電腦所必須的器件,如三態(tài)雙向總線,串并行的輸入及輸出引腳,可擴充為各種規(guī)模的微電腦系統(tǒng)。 (3)控制功能強:單片機指令除了輸入輸出指令,邏輯判斷指令外還有更豐富的條件分支跳躍指令。其原理框圖如圖1.1所示:六位顯示AT89C51復(fù)位開關(guān)暫停開關(guān)時間脈沖源圖1.1 硬件設(shè)計原理框圖2.軟件設(shè)計方案顯示程序主程序復(fù)位程序暫停程序中斷程序 通過匯編語言編寫程序來實現(xiàn)設(shè)計任務(wù)與要求,總體設(shè)計方案圖如圖1.2所示: 圖1.2 軟件設(shè)計原理框圖第2章 單片機應(yīng)用系統(tǒng)簡介單片機的應(yīng)用系統(tǒng)隨著用途不同,它們

4、的硬件和軟件結(jié)構(gòu)差別很大,但系統(tǒng)設(shè)計的方法和步驟基本上是相同的。一般包括總體設(shè)計、硬件設(shè)計、軟件設(shè)計、仿真調(diào)試、固化程序、應(yīng)用系統(tǒng)獨立運行等步驟。2.1單片機結(jié)構(gòu)1. 80C51單片機的功能結(jié)構(gòu) 正如我們所知,單片機是屬于三總線結(jié)構(gòu),80C51單片機功能方框圖如圖2.1所示:圖2.1 單片機內(nèi)部結(jié)構(gòu)框圖2. 單片機內(nèi)容結(jié)構(gòu)單片機的內(nèi)部結(jié)構(gòu)如圖2.2所示,從圖中看出,它具有以下特征;適于控制應(yīng)用的8位CPU56字節(jié)片內(nèi)數(shù)據(jù)存儲器,分高低兩個128字節(jié)4K字節(jié)片內(nèi)程序存儲器64KB程序存儲器空間64KB數(shù)據(jù)存儲器空間4個8位共32根雙向并可按位尋址的I/O口線兩個16位定時/計數(shù)器一個全雙工的串行

5、I/O接口有5個中斷源片內(nèi)時鐘振蕩器具有布爾處理(位處理)能力圖2.2 單片機內(nèi)部結(jié)構(gòu)2.2 單片機的封裝形式、引腳定義及功能1. 80C51封裝80C51系列單片機具有雙列直插式和方形兩種封裝。2. 80C51系列單片機引腳功能 引腳分布:如圖2.3所示為雙列直插式引腳分布圖 引腳功能:VCC-工作電源+5VGND-電源地ALE/PROG -訪問外部存儲器時作為低8位地址鎖存控制信號;在對EPROM編程時作為編程脈沖輸入;在不訪問外部存儲器和非EPROM編程狀態(tài)下,該腳輸出頻率為1/6單片機晶振頻率的方波信號,該信號,可作為時鐘脈沖,但在訪問數(shù)據(jù)存儲器時會丟失一個脈沖 PSEN外部程序存儲器

6、讀選通信號EA/VPP訪問程序存儲器控制信號。當(dāng)EA為低電平時,只讀外部存儲器,當(dāng)EA為高電平時則先讀內(nèi)部程序存儲器,再讀外部程序存儲器;這個引腳在編程時接編程電壓VPP RST復(fù)位信號,對系統(tǒng)復(fù)位信號要>2TXTAL1片內(nèi)振蕩電路輸入端XTAL2片內(nèi)振蕩電路輸出端 P0-P3輸入輸出端口 圖2.3 雙列直插式引腳分布圖2.3 定時計數(shù)器1.定時/計數(shù)器結(jié)構(gòu)80C51單片機內(nèi)部設(shè)有兩個16位定時/計數(shù)器,簡稱為定時器0(T0)和定時器1(T1)。定時器計數(shù)器的結(jié)構(gòu)如圖2.4所示:TMOD-方式控制寄存器,用于設(shè)定定時計數(shù)器的工作方式TCON-定時器控制寄存器,用于啟動定時計數(shù)器IE-中斷

7、允許控制寄存器:定時計數(shù)器是微機的中斷源圖2.4 80C51單片機內(nèi)部定時計數(shù)器的結(jié)構(gòu)2.工作原理定時/計數(shù)功能選擇:當(dāng)CT0時,為定時器功能,此時,C與A相連(計數(shù)脈沖為機器周期);當(dāng)CT1時,為計數(shù)功能,此時,C與B相連(計數(shù)脈沖從P3.4或P3.5口輸入)。定時/計數(shù)器設(shè)置:定時計數(shù)器設(shè)置由工作方式控制寄存器(TMOD)、定時控制寄存器(TCON)以及中斷允許寄存器(IE)共同完成。2.4 鍵盤接口技術(shù)鍵盤分兩類:獨立連接多鍵盤和矩陣式鍵盤,如圖2.5所示。1.獨立式鍵盤獨立式按鍵結(jié)構(gòu)的鍵盤是最簡單的鍵盤電路,每個鍵獨立接入一根輸入線。這種鍵盤的優(yōu)點是結(jié)構(gòu)簡單、使用十分方便,目前這種結(jié)構(gòu)

8、的鍵盤應(yīng)用還相當(dāng)普遍,這種鍵盤的缺點是隨著鍵數(shù)數(shù)量的增加所占用的I/O口線也增加。獨立式按鍵結(jié)構(gòu)的鍵盤在沒有鍵按下時,數(shù)據(jù)輸入線均為高電平,當(dāng)有鍵按下時,與之對應(yīng)的數(shù)據(jù)線將變成低電平。因此可用位指令判別是否有鍵按下。2.行列式鍵盤獨立式鍵盤雖然結(jié)構(gòu)簡單,使用方便,但每一個按鍵開關(guān)要占一根I/O口線,因此在按鍵數(shù)較多時,采用行列式鍵盤技術(shù)。 圖2.5獨立式鍵盤行列式鍵盤的結(jié)構(gòu)及原理輸出鎖存器輸入緩沖器圖2.6 行列式鍵盤行線列線 行列式鍵盤的結(jié)構(gòu)圖2.6所示為行列式鍵盤的基本結(jié)構(gòu)。它由鍵盤開關(guān)矩陣、輸出(行線)鎖存器、輸入(列線)緩沖器三部分組成。在具體組成電路時,有以下幾種組合方式:直接使用I

9、/O的鍵盤電路。MCU的I/O口輸出具有鎖存器,輸入具有緩沖器,因此應(yīng)用I/O口直接與行線與列線相連就可以組成行列式鍵盤。如圖2.6所示,是由P1口組成的44鍵盤。圖中左示的是普通接法,右示為帶中斷的鍵盤接法。利用I/O口和譯碼器的接口電路P10P11P12 P00P01P02P03ABC 圖2.7 由I/O口與譯碼器組成的行列式鍵盤如圖2.7所示為使用I/O口與74LS138譯碼器構(gòu)成的鍵盤電路利用串行口的鍵盤接口電路圖2.8為由I/O口與串行口組成的鍵盤電路。行列式鍵盤的工作原理:盡管構(gòu)成行列式鍵盤有多種形式,但它們的工作原理是相同的,現(xiàn)以圖2.8為例來說明: 行線P14P17為輸出,列線

10、P10P13為輸入。CPU先使第一行( P14)為“0”,其余行為“1”。讀輸入口P10P13的狀態(tài),若輸入緩沖器的狀態(tài)全部為“1”,則表示所在行無鍵按下,CPU使一下行線為“0”,其余行線為“1”,掃描下一行,這樣在P14P17循環(huán)進行。若輸入緩沖器不全為“1”,說明所在行有鍵按下,CPU停止當(dāng)前行線掃描,轉(zhuǎn)入到列線掃描,列線P10 P13為“0”狀態(tài)的列表示對應(yīng)列有鍵按下。這樣,行線與列數(shù)交叉鍵就是掃描到的按鍵。P10P11 AB P12 RXD TXD圖2.8 I/O口與串行口組成的行列式鍵盤鍵掃描方式:程控掃描方式:CPU從執(zhí)行程序就開始了鍵盤的掃描,等待來是鍵盤的命令。這種程控掃描方

11、式,適用單任務(wù)多分支結(jié)構(gòu)。定時掃描方式:在多任務(wù)應(yīng)用系統(tǒng)中,既要執(zhí)行當(dāng)前任務(wù),又要及時接受鍵盤命令,定時掃描方式適應(yīng)這種需要。具體做法是:在程序初始化時,先對定時/計數(shù)器進行設(shè)置,使其每10ms中斷一次,每次中斷,CPU將去掃描一次鍵盤,若兩次中斷掃描到有鍵按下(這里考慮了消抖動),CPU將對鍵作相應(yīng)的處理。中斷掃描方式:采用中斷掃描方式必需有外部中斷接口,當(dāng)有鍵按下時,產(chǎn)生中斷請請求,CPU響應(yīng)中斷,在中斷服務(wù)程序掃描鍵盤,作相應(yīng)處理。這是多任務(wù)應(yīng)用系統(tǒng)常用的一種方式。2.5 顯示接口技術(shù)1.顯示器結(jié)構(gòu)與原理如圖2.9所示為LED顯示器。在單片機系統(tǒng)中,通常用LED數(shù)碼顯示器來顯示各種數(shù)字或

12、符號。由于它具有顯示清晰、亮度高、使用電壓低、壽命長的特點,因此使用非常廣泛。八段LED顯示器由8個發(fā)光二極管組成?;?個長條形的發(fā)光管排列成“8”字形,另一個點置于右下角作為顯示小數(shù)點用。LED顯示器有共陰和共陽兩種結(jié)構(gòu),顯示器各筆劃段名和安排位置相同。當(dāng)二極管導(dǎo)通時,相應(yīng)的筆劃段發(fā)亮,由發(fā)亮的筆劃段組合而顯示的各種字符。在單片機接口中,單片機口線須接300-750的限流電阻。aabcdefghabcdefghbcdefghgfGNDabedGNDcdp共陽極共陰極圖2.9 LED顯示器2. LED顯示接口技術(shù)LED顯示電路分靜態(tài)顯示和動態(tài)顯示兩類:(1)靜態(tài)顯示接口技術(shù)所謂靜態(tài)顯示,就是

13、每一個顯示器都要占用單獨的具有鎖存功能的I/O接口用于筆劃段字形代碼。單片機只要把要顯示的字形代碼發(fā)送到接口電路就可以了,靜態(tài)顯示電路有以下幾種形式:通過MCU的口線的顯示接口電路aabcdefghbcdefghP1GND圖2.10 單片機的I/O口直接與LED顯示器相連如圖2.10所示,數(shù)碼管既可直接接單片機的口線(如果是P0口的話,只能接共陽極的,接共陰的要接上拉電阻),又可通過鎖存器接單片機口線。通過MCU口線和譯碼驅(qū)動的顯示接口如圖2.11所示,圖中MC14495為帶鎖存的地址譯碼器,譯碼器采用通用的二-四譯碼器。圖2.11 I/O口線與譯碼器構(gòu)成靜態(tài)顯示電路利用串行總線控制的顯示接口

14、如圖2.12所示,通過單片機的串行總線控制的靜態(tài)顯示電路:abcdefgh+5VVCCaedfchgbdfgahcbeP0+5VVCCP10 P11圖2.12 單片機動態(tài)顯示掃描電路圖中74LS164為移位寄存器,將單片機設(shè)置在串行口方式0,欲顯示的數(shù)據(jù)建一個表格,然后采用MOVC A,A+DPTR指令,將欲顯示的數(shù)據(jù)送入SBUF寄存器中,SBUF中的數(shù)據(jù)通過串行口送到74LS164,移位寄存器的輸出接數(shù)碼管。(2)動態(tài)顯示接口技術(shù)如圖2.12是動態(tài)掃描顯示接口電路。接口電路是把所有顯示器的8個筆劃段a-h同名端連在一起,而每一個顯示器的公共極COM是各自獨立地受I/O線控制。CPU向字段輸出

15、口送出字形碼時,雖然所所有顯示器接收到相同的字形碼,但是只有被選中的位才顯示。所謂動態(tài)掃描就是指我們采用分時的方法,輪流控制各個顯示器的COM端,使各個顯示器輪流點亮。2.6 復(fù)位操作復(fù)位操作是單片機的初始化操作,單片機在進入運行前和在運行過程中程序出錯或操作失誤使系統(tǒng)不能正常運行時,需要進行復(fù)位操作。復(fù)位操作后,程序?qū)?000H開始重新執(zhí)行,復(fù)位時特殊功能寄存器的狀態(tài)。除此之外,復(fù)位操作還使單片機的ALE和PSEN引腳信號在復(fù)位期間變?yōu)闊o效狀態(tài)。單片機對復(fù)位信號的要求:一是復(fù)位信號為高電平,二是復(fù)位信號有效持續(xù)時間不少于24個振蕩脈沖(兩個機器周期)以上。在這里特別要提醒的是,在一個應(yīng)用系

16、統(tǒng)中,如果有幾片單片機同時工作,在程序上有連接關(guān)系,系統(tǒng)復(fù)位時,應(yīng)確保每一片單片機同時復(fù)位。復(fù)位信號由單片機的RST引腳輸入,復(fù)位操作有上電自動復(fù)位、按鍵復(fù)位和外部脈沖復(fù)位三種方式。隨著單片機技術(shù)的發(fā)展,目前有些單片機內(nèi)部帶有看門狗電路,當(dāng)程序進行出錯或進入了無休止循環(huán)時,看門狗電路將利用軟件強行使系統(tǒng)復(fù)位。第3章 硬件電路設(shè)3.1 秒計時器電路圖如圖3.1所示為電路圖。其工作原理為:接通電源后,按“開始”按鍵,開始計數(shù),數(shù)碼管顯示從00開始每百分之一秒自動加一;按“復(fù)位”按鍵,系統(tǒng)清零,數(shù)碼管顯示00;按“暫?!卑存I,系統(tǒng)暫停計數(shù),數(shù)碼管顯示當(dāng)時的計數(shù)。圖3.1 秒計時器電路原理圖3.2 單

17、元電路設(shè)計1.時序控制電路設(shè)計時序電路設(shè)計是秒計數(shù)器設(shè)計的關(guān)鍵,如圖3.2所示,它主要完成以下功能: (1)當(dāng)我們按下“開始”按鈕時,數(shù)碼管顯示數(shù)字,秒計時器開始計時。 (2)當(dāng)我們再按一下“暫?!卑粹o時,數(shù)碼管停止計數(shù),顯示當(dāng)前數(shù)值。2.復(fù)位電路的設(shè)計外部中斷和內(nèi)部中斷并存,單片機硬件復(fù)位端,只要持續(xù)4個機器周期的高電平即可實現(xiàn)復(fù)位,硬件復(fù)位后的各狀態(tài)可知寄存器以及存儲器的值都恢復(fù)到了初始值,因為本設(shè)計中功能中有倒計時時間的記憶功能,所以不能對單片機進行硬件復(fù)位,只能用軟件復(fù)位,軟件復(fù)位實際上就是當(dāng)程序執(zhí)行完之后,將程序通過一條跳轉(zhuǎn)指令讓它完成復(fù)位。復(fù)位電路如下圖3.3所示:圖3.2 開始/

18、暫停按鈕圖3.3 復(fù)位電路3.3外部震蕩電路外部震蕩電路單片機必須在AT49C51的驅(qū)動下才能工作,在單片機內(nèi)部有一個時鐘震蕩電路,只需要外接一個振蕩器就能產(chǎn)生一定的時鐘信號送到單片機內(nèi)部的各個單元,外部震蕩電路如圖3.4所示。圖3.4外部震蕩電路圖3.4 LED顯示電路設(shè)計秒計時器采用LED動態(tài)顯示,為了簡化電路將所有位的段選線并聯(lián)在一起,由一個八位IO的接口控制,電路如圖3.5所示:圖3.5 LED顯示第4章 軟件設(shè)計通過前面的硬件介紹,現(xiàn)在我們將對1/100秒表進行系統(tǒng)軟件設(shè)計。4.1 系統(tǒng)主程序設(shè)計END開始計數(shù)取秒鐘的六位數(shù)字放六個連續(xù)單元存放起來調(diào)用顯示子程序STATR顯示單元置初

19、值定時和中斷的初始化秒鐘初值設(shè)置調(diào)用鍵盤操作(主程序) 圖4.1 主程序流程圖2.LED動態(tài)程序圖如圖4.2所示:秒鐘加160秒到嗎分鐘加160分到嗎分鐘清0開T1RETI1s到嗎MSECBUF 內(nèi)容加1關(guān)T1并重裝時常數(shù)(中斷服務(wù)程序)中斷入口N YNYNY圖4.2 LED動態(tài)程序圖3.程序清單ORG 0000HLJMP START ORG 001BH ;中斷入口 LJMP CLOCK ORG 0100H;-內(nèi)存分配- DISBUF EQU 30H ;顯示數(shù)字緩沖首地址 MSECBUF EQU 21H ;1/100秒緩沖 SECBUF EQU 22H ;秒緩沖 MINBUF EQU 23H

20、;分鐘緩沖 ;-主程序-START: MOV MSECBUF ,# 00H MOV SECBUF ,#00H MOV MINBUF,#00H JB P3.2,$ CALL DELAY1 MOV TMOD ,#10H ;設(shè)置T1工作于定時方式1 MOV TL1,#68H MOV TH1,#0C5H ;寫0.01S的時間常數(shù) MOV SP,#50H SETB EA ;開放CPU中斷 SETB ET1 ;開放T1中斷 SETB TR1 ;允許T1工作;-暫停復(fù)位程序-L2:CALL DELAY ;跳轉(zhuǎn)消抖程序 JB P3.5,L3 ;暫停程序 JMP L2L3:JB P3.5,$ CALL DELA

21、Y1L4:JB P3.5,START ;復(fù)位程序JMP4DISP1:MOV R0,#DISBUF ;顯示數(shù)字存放首地址 MOV A, MSECBUF ;取0.01秒高位數(shù)字 ANL A, #0FH MOV R0, A INC R0 ;指向下一個單元 MOV A, MSECBUF ;取0.01秒低位數(shù)字 ANL A, #0F0H SWAP A MOV R0 ,A INC R0 MOV A, SECBUF ;取秒高位數(shù)字 ANL A, #0FH MOV R0 , A INC R0 MOV A, SECBUF ;取秒低位數(shù)字 ANL A, #0F0H SWAP A MOV R0, A INC R0

22、MOV A, MINBUF ;取分高位數(shù)字 ANL A, #0FH MOV R0 ,A INC R0 MOV A, MINBUF ;取分低高位數(shù)字 ANL A ,#0F0H SWAP A MOV R0 ,A LCALL DISPLAY SJMP DISP1;-顯示子程序-DISPLAY: MOV P3, #0FEH ;驅(qū)動最低位 MOV R1, #DISBUF ;取顯示數(shù)字首地址 MOV R2, #06H ;軟計數(shù)器表示顯示位數(shù)LOOP1: MOV DPTR,#SEGTAB ;七段顯示碼表首地址 MOV A, R1 MOVC A, A+DPTR ;查代碼 MOV P0 ,A ;送段驅(qū)動器74L

23、S273 LCALL DELAY ;延時 MOV A, P3 RL A ;指向下一位位驅(qū)動 MOV P0, A INC R1 ;指向下以個顯示數(shù)字的地址單元 DJNZ R2, LOOP1;顯示位完了嗎 RET;-中斷服務(wù)程序-CLOCK: CLR TR1 ;關(guān)T1 MOV TL1, #68H MOV TH1, #0C5H ;重裝時間常數(shù) PUSH PSW PUSH ACC ;壓棧保護 MOV A, MSECBUF ADD A, #01H ;0.01S緩沖器加1 DA A ;轉(zhuǎn)換為BCD碼數(shù) MOV MSECBUF ,A CJNE A, #100H, INT_DONE ;1 S時間沒有到中斷返回

24、 MOV MSECBUF ,#00H ;1S到就將BUF清0 MOV A , SECBUF ADD A , #01H DA A ;秒鐘加1并變成BCD碼數(shù) MOV SECBUF , A CJNE A, #60H, INT_DONE;60秒沒有到中斷返回 MOV SECBUF ,#00H ;60秒到秒鐘清0 MOV A, MINBUF ADD A, # 01H DA A ;環(huán)種蛹?并變成BCD碼數(shù) MOV MINBUF , A CJNE A, #60H, INT_DONE ;60分鐘沒到中斷返回 MOV MINBUF , #00H ;60分到分鐘清0INT_DONE:POP ACC POP PSW SETB TR1 RETI ;-延時此程序-DELAY: MOV R7 , #2 D1: MOV R6 ,

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論