久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 15415|回復: 6
打印 上一主題 下一主題
收起左側

c51單片機課程設計數字時鐘

  [復制鏈接]
跳轉到指定樓層
樓主

目錄

1 引言              1

2 設計目的              2

3 系統方案與總體結構設計              2

3.1系統方案設計              2

3.2數字時鐘框圖設計              3

4數字時鐘的硬件構成              4

4.1 選用芯片簡介              4

4.2 LED數碼顯示器簡介              9

5各個模塊工作原理及原理圖              9

5.1計時模塊              10

5.2數字時鐘控制模塊              10

5.3振蕩模塊              11

5.4顯示模塊              11

6系統軟件設計              12

6.1軟件設計的要點              12

6.2 AT89C51內部定時器/計數器0的使用方法              13

6.3 程序設計流程圖              13

7系統調試與總結              14

7.1電路調試              14

7.2軟件調試              14

8結論與心得              15

附錄A系統原理圖              16

附錄B 源程序              17

參考文獻              23

1 引言

數字時鐘是一種用數字電路技術實現時、分、秒計時的裝置,與機械式時鐘相比具有更高的準確性和直觀性,無機械裝置,具有更長的使用壽命。數字集成電路的發展和石英晶體振蕩器的廣泛應用,使得數字時鐘的精度,遠遠超過老式鐘表,使其得到了廣泛的使用。

該課程設計為數字電子鐘的設計。以AT89C51為核心,配合8位7段共陰極LED數碼管顯示實時數據,按鍵可以進行數據調整,為用戶提供長期、連續、可靠、穩定的工作環境。該數字電子鐘有時分秒顯示功能以及時間的調整的功能。系統軟件設計主要實現參數設置、串行口數據接收、指令發送以及數據的顯示和存儲,并且實現鍵盤、液晶顯示器等各模塊的功能,采用匯編語言編程。


關鍵詞: 數字電子鐘 單片機 匯編語言

2 設計目的

深化和擴充在單片機原理及相關課程方面的基本知識、基本理論和基本技能熟悉設計過程,了解設計步驟,掌握設計內容,培養設計電路、實現軟件編程和編寫設計說明書能力的目的,為今后從事相關方面的實際工作打下良好基礎。

(1)熟悉AT89C51內部定時器/計數器原理和應用,把理論加以實踐;

(2)了解使用單片機處理復雜邏輯的方法;

(3)掌握多位數碼動態顯示的方法;

(4)掌握多個按鍵的讀鍵和處理方法。

3 系統方案與總體結構設計3.1系統方案設計

系統采用通用的80C51芯片,顯示器為8個共陰極LED數碼管,用1個八總線接收/發送器74LS245驅動數碼管,因為采用了上述兩個芯片,所以在對數碼管進行掃描顯示時,只需要單片機的8條I/O線就能完成顯示功能了。

選用P0.0--P0.7作為顯示數據值的輸出,連接在八總線接收/發送器74LS245輸入端。由于LED數據管點亮時耗電量較大,因此使用了排阻作為電源驅動輸出,以保證數碼管的正常亮度。單片機的P1.0--P1.4口分別接在S1—S4 4個按鍵上,以控制“時”,“分”,“秒”的調整。

時間以24小時為一個周期,數字時鐘鐘的格式為:XX-XX-XX,由左向右分別為:“時-分-秒”(由于沒有采用小數點,符號 “-”為分隔“時”“分”“秒”的分隔符)。完成顯示由秒加1,一直加1至59,再恢復為00;分加1,一直加1至59,再恢復00;時加1,一直加1至23,再恢復00。

***** 按鍵功能*****

啟動時,數字時鐘從00-00-00 開始自動計時;

按鍵S1控制對“秒”的調整,每按一次時計數值加1;

按鍵S2控制對“分”的調整,每按一次分計數值加1;

按鍵S3控制對“時”的調整,每按一次秒計數值加1;

  按鍵S4用做復位鍵,在計時過程中,如果按下復位鍵,則返回00-00-00重新計時。

3.2數字時鐘框圖設計
數字時鐘總體結構框圖設計如圖3-1所示。

圖3-1 數字時鐘設計框圖

  用AT89C51單片機的定時器/計數器T0產生1s的定時時間,作為秒計數時間,當1s產生時,秒計數加1開始計時。顯示00-00-00的時間,開始計時;P1.0口控制“秒”的調整,每次按鍵加1s;P1.1口控制“分”的調整,每按一次按鍵加1min;P1.2口控制“時”的調整,每按一次加1h。計時滿23-59-59時,返回00-00-00重新計時。P1.3口用作復位鍵,在計時過程中,如果按下復位鍵,則返回00-00-00重新計時。

3.2.1計時模塊:

①用AT89C51單片機的定時器/計數器T0產生1s的定時時間,作為秒計數時間;

②當1s產生時,秒計數加1,當加到60s時向分鐘位進一位,當分鐘位加到60時,向時鐘位進一;

③開機時,顯示00-00-00,并開始連續計時;

④計時滿23-59-59時,返回00-00-00重新開始計時。

3.2.2數字時鐘控制模塊:

在以上設計基礎上,在單片機的P1.0~P1.3口分別接入4個按鍵。

①P1.0口控制“秒”的調整,每次按鍵加1s;

②P1.1口控制“分”的調整,每按一次按鍵加1min;

③P1.2口控制“時”的調整,每按一次加1h;

④P1.3口用作復位鍵控制,在計時過程中,如果按下復位鍵,則返回00-00-00重新計時。

3.2.3振蕩模塊:

晶體振蕩器電路給數字時鐘提供一個頻率穩定準確的12MHz的方波信號,不管是指針式的電子鐘還是數字顯示的電子鐘都使用了晶體振蕩器電路。

3.2.4顯示模塊:

顯示電路采用8位7段共陰極LED數碼管顯示實時數據,采用74LS245增加I/O口的驅動能力。

4數字時鐘的硬件構成4.1 選用芯片簡介

4.1.1 89C51簡介

AT89C51是一種帶4K字節FLASH存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機,其引腳圖如圖4-1所示。

AT89C51提供以下標準功能:4k 字節Flash 閃速存儲器,128字節內部RAM,32 個I/O 口線,兩個16位定時/計數器,一個5向量兩級中斷結構,一個全雙工串行通信口,片內振蕩器及時鐘電路。同時,AT89C51可降至0Hz的靜態邏輯操作,并支持兩種軟件可選的節電工作模式。空閑方式停止CPU的工作,但允許RAM,定時/計數器,串行通信口及中斷系統繼續工作。掉電方式保存RAM中的內容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復位。

1.管腳說明

VCC:供電電壓。

GND:接地。

P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P0口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的低八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須接上拉電阻。

P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為低八位地址接收。

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

P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。

P3口也可作為AT89C51的一些特殊功能口,如下表所示:

2.口管腳 備選功能

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(外部數據存儲器寫選通)

P3.7 /RD(外部數據存儲器讀選通)

P3口同時為閃爍編程和編程校驗接收一些控制信號。

RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。

ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的低位字節。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執行狀態ALE禁止,置位無效。

/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。

/EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。

XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。

XTAL2:來自反向振蕩器的輸出。

                  

圖4-1 89C51單片機引腳圖

4.1.2  74LS245簡介

74LS245是我們常用的芯片,用來驅動led或者其他的設備,它是8路同相三態雙向總線收發器,可雙向傳輸數據,其引腳圖如圖4-5。當片選端/CE有效時,74LS245的輸入/輸出方向由DIR控制。74LS245還具有雙向三態功能,既可以輸出,也可以輸入數據。其工作方式如表4-1所示。

                      表4-1 74LS245的工作方式

控制信號

數據傳輸方向

/E

DIR

L

L

B→A

L

H

A←B

L

X

高阻


由表4-1可知,當8051單片機的P0口總線負載達到或超過P0最大負載能力時,必須接入74LS245等總線驅動器。當片選端/CE低電平有效時,DIR=“0”,信號由 B 向 A 傳輸(接收);DIR=“1”,信號由 A 向 B 傳輸(發送);當/CE為高電平時,A、B均為高阻態。由于P2口始終輸出地址的高8位,接口時74LS245的三態控制端1G和2G接地,P2口與驅動器輸入線對應相連。P0口與74LS245輸入端相連,E端接地,保證數據線暢通。8051的/RD和/PSEN相與后接DIR,使得RD且PSEN有效時,74LS245輸入(P0.1←D1),其它時間處于輸出(P0.1→D1)。

圖4.3 74LS245管腳圖

    若將DIR接固定TTL邏輯電平(高或低),則74LS245變為單向緩沖器,但這種方式是極少采用的。一般都是使用它的雙向輸出功能。為此,DIR必須可控,使其根據需要變為高電平或低電平,并與/E相結合控制數據傳輸方向。在單片機系統中,可采用讀信號或者寫信號實現控制。當/WR有效時數據通過74LS245的B(B0~B7)端輸入,由(A1~A8)輸出;當/RD有效時數據由A端輸入,B端輸出。由此可見,由于74LS245芯片具有雙向緩沖和驅動作用,很適合作單片機的數據總線的收發器。

4.2 LED數碼顯示器簡介

LED數碼顯示器是1種由LED發光二極管組合顯示字符的顯示器件。它使用了8個LED發光二極管,其中7個用于顯示字符,1個用于顯示小數點,在本設計中用不到小數點,故不予考慮。

LED數碼顯示器有兩種連接方法。 (1)共陽極接法。把發光二極管的陽極連在一起構成公共陽極,使用時公共陽極接+5V,每個發光二極管的陰極通過電阻與輸入端相連。當陰極端輸入低電平時,段發光二極管就導通點亮,而輸入高電平時則不點亮。(2)共陰極接法。把發光二極管的陰極連在一起構成公共陰極,使用時公共陰極接地。每個發光二極管的陽極通過電阻與輸入端相連。當陽極端輸入高電平時,段發光二極管就導通點亮,而輸入低電平時則不點亮。在本設計中所采用的是共陰極LED數碼顯示器,其引腳排列如圖7所示:

  •                       (b)

圖4-4 (a)典型LED數碼顯示器 (b) 典型LED數碼顯示器共陰極、共陽極接法

5各個模塊工作原理及原理圖

用AT89C51單片機的定時器/計數器T0產生1s的定時時間,作為秒計數時間,當1s產生時,秒計數加1開始計時。顯示00-00-00的時間,開始計時;P1.0口控制“秒”的調整,每次按鍵加1s;P1.1口控制“分”的調整,每按一次按鍵加1min;P1.2口控制“時”的調整,每按一次加1h。計時滿23-59-59時,返回00-00-00重新計時。P1.3口用作復位鍵,在計時過程中,如果按下復位鍵,則返回00-00-00重新計時。

5.1計時模塊

①用AT89C51單片機的定時器/計數器T0產生1s的定時時間,作為秒計數時間;

②當1s產生時,秒計數加1,當加到60s時向分鐘位進一位,當分鐘位加到60時,向時鐘位進一;

③開機時,顯示00-00-00,并開始連續計時;

④計時滿23-59-59時,返回00-00-00重新開始計時。

5.2數字時鐘控制模塊

在以上設計基礎上,在單片機的P1.0~P1.3口分別接入4個按鍵S1、S2、S3、S4。控制模塊的原理圖如圖5-1

①P1.0口控制“秒”的調整,每次按鍵加1s,;

②P1.1口控制“分”的調整,每按一次按鍵加1min;

③P1.2口控制“時”的調整,每按一次加1h;

④P1.3口用作復位鍵控制,在計時過程中,如果按下復位鍵,則返回00-00-00重新計時。

                圖5-1  數字時鐘控制模塊原理圖

5.3振蕩模塊

晶體振蕩器電路給數字時鐘提供一個頻率穩定準確的12MHz的方波信號,不管是指針式的電子鐘還是數字顯示的電子鐘都使用了晶體振蕩器電路振蕩模塊的原理圖如圖5-2。

圖5-2 振蕩模塊電路原理圖

5.4顯示模塊

顯示電路采用8位7段共陰極LED數碼管顯示實時數據,采用74LS245增加I/O口的驅動能力。

圖5-3顯示模塊電路原理圖

6系統軟件設計6.1軟件設計的要點

由于電路設計得極其巧妙,許多功能都可以由硬件完成,因此軟件設計就比較簡單了。下面介紹軟件設計的要點:

主程序:首先進行初始化,設置數字時鐘的計時初值為00-00-00,啟動T0進行50ms定時,且允許T0中斷。然后檢測S1—S4是否按下,當按鍵S1—S4按下時,轉入時、分、秒計數值的調整程序。

定時器T0中斷子程序:中斷服務子程序的作用是進行時、分、秒的計時與顯示。定時器T0用于定時,定時周期設為50ms,中斷累計20次(即1s)。

時、分、秒計數值調整子程序TIME:時間計數單元在30H(s),31H(min),32H(h)內存單元中,在計數單元中采用組合BCD碼計數。TIME子程序的作用是當滿1秒時,對秒計數單元進行加1操作,滿60向分進位;對分計數單元進行加1操作,滿60向時進位;對時計數單元進行加1操作,滿24清零。

顯示子程序VIEW:VIEW子程序的作用是分別將時間計數單元30H(s),31H(min),32H(h)中的十進制時間值轉化為個位和十位存放在顯示緩沖區中,顯示緩沖區地址為30H--34H。其中30H--31H存放秒數據,31H--32H存放分數據,33H--33H存放時數據。

掃描子程序SCAN:SCAN子程序的作用是把顯示緩沖區中的數據依次送往顯示器顯示。,所以用10H和40H單元存放掃描指針,即10H和40H中存放的是數碼管的序號,顯示時,只需取出30H--34H某一地址中的數據,P0口作為掃描值輸出,就能保證數碼管的正常工作。  

6.2 AT89C51內部定時器/計數器0的使用方法

AT89C51單片機的內部16位定時/計數器是一個可編程定時/計數器,它既可以工作在13位定時方式,也可以工作在16位的定時方式或8位的定時方式,只要通過特殊功能寄存器TMOD即可完成。定時/計數器何時工作也是通過TCON特殊功能寄存器來設置的。

在本課程設計中,選擇16位定時工作方式。對于T0來說,系統時鐘為12MHZ,最大定時時間65.536ms,無法達到1s的定時,因此必須通過軟件處理來解決這個問題。假設取T0的最大定時時間為50ms。既要定時1s的需要經過20次的50ms定時。對于這20次計數,可采用軟件的方法來統計。

設定TMOD=00000001H,即設置定時/計數器0工作在方式1。

給定時/計數器T0的TH0、TL0預置初值,通過下面的公式可以計算出來,即             TH0=(65536-50000)/256

            TL0=(65536-50000)MOD 256

這樣,當定時/計數器0計滿50ms時,產生一個中斷,可以在中斷服務程序中對中斷次數加以統計,以實現數字鐘的邏輯功能。

6.3 程序設計流程圖

綜合以上內容設計出數字鐘程序設計流程圖,如圖6-1所示。

                         圖6-1 數字鐘程序設計流程圖
7系統調試與總結7.1電路調試

把相應編譯好的目標源程序代碼加載到單片機芯片AT89C51,可接+5V電壓電源即開始進行硬件電路的調試工作。如果顯示結果不符合設計要求,即檢查代碼程序是否符合硬件電路的設計,若有錯即進行相應的修改,編譯后,再進行硬件電路的調試工作。如此反復操作,直到調試出正確的結果。

7.2軟件調試

(1)在計算機上運行程序調試軟件Keill,進行程序調試,若顯示0錯誤(S), 0警告(S)即證明程序代碼正確。

(2)在Protel軟件畫好的電路原理圖中加載程序代碼到單片機芯片AT89C51中,進行模擬仿真。若出現錯誤,查看錯誤后進行相應的修改再進行調試與模擬仿真,直到調試出正確的結果。

系統調試完成之后,系統上電進行功能測試,通過測試觀察到,系統上電后數碼管上顯示時間:00-00-00。

按下S1鍵進行“秒”的調整,每次按鍵加1s如圖按S1兩次,LED數碼管由00-00-00顯示為00-00-02,如圖7-1所示

        圖7-1 系統由初始狀態進行秒調整兩次后的仿真圖

按下S3鍵進行“時”的調整,每按一次加1h;

按下S4鍵進行復位鍵控制,在計時過程中,按下復位鍵,則返回00-00-00重新計時。

通過測試,本設按下S2鍵進行“分”的調整,每按一次按鍵加1min;

計實現了數字電子鐘的基本功能,且系統工作穩定。

8結論與心得

本單片機數字電子鐘系統的功能顯示格式為XX-XX-XX即時-分-秒,采用24小時制顯示,并且設置4個獨立式按鍵進行時間的調整,并且可以按自己的要求設置擴展小鍵盤個數,經過測試,系統的可靠性基本上能夠達到數字電子鐘的設計要求,同時本單片機數字電子鐘系統具有擴展性。

課程設計是培養學生綜合運用所學知識,發現實際問題、提出實際問題、分析和解決實際問題,鍛煉實踐能力的重要環節,是對學生實際學習能力、動手能力的具體訓練和考察過程。

在此次課程設計中,在學習新知識的同時,把在課程中學到的理論和知識運用到了實踐中去,更進一步地熟悉掌握了單片機的結構及掌握了其工作原理和具體的使用方法與相關元件的計算方法、使用方法,了解了電路的開發和制作及課程設計報告的的編寫。加深了相關理論知識及專業知識的掌握度,增強了自身的動手能力,鍛煉及提高了理解問題、分析問題、解決問題、的能力,更深刻的體會到了理論聯系實際的重要性,進一步掌握畫圖軟件的使用和提高相應的畫圖操作水平及技巧。

附錄A系統原理圖

附錄B 源程序

【匯編語言源程序代碼】

見附件:


完整的Word格式文檔51黑下載地址:

17高.doc (522.5 KB, 下載次數: 152)




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏8 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:362435 發表于 2018-6-30 21:02 | 只看該作者
感謝大神 好資料,51黑有你更精彩!!!
回復

使用道具 舉報

板凳
ID:373059 發表于 2018-7-17 09:59 | 只看該作者
xiexie
回復

使用道具 舉報

地板
ID:320832 發表于 2018-9-13 16:20 | 只看該作者
下載后變成了亂碼

圖片1.png (125.88 KB, 下載次數: 155)

圖片1.png
回復

使用道具 舉報

5#
ID:473728 發表于 2019-1-31 20:24 | 只看該作者
您好,樓主,emm下載了附件,但是我學的是c語言,沒學過匯編看不懂怎么辦,,程序能發一個c語言版本的么?求回復求私聊
回復

使用道具 舉報

6#
ID:583479 發表于 2019-12-11 08:27 來自手機 | 只看該作者
加一,能發一個c語言版本嗎,求私聊,在線等
回復

使用道具 舉報

7#
ID:924259 發表于 2021-5-26 22:53 | 只看該作者
仿真不行,垃圾
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产高清免费 | 欧美一级免费看 | 中文字幕在线一区二区三区 | 精品中文字幕久久 | 影音先锋中文字幕在线观看 | 北条麻妃一区二区三区在线观看 | 日韩中文字幕在线 | 国产日韩欧美在线 | 精品欧美一区二区三区久久久 | 婷婷开心激情综合五月天 | 一本一道久久a久久精品综合 | 亚洲人在线| 中文字幕 欧美 日韩 | 在线看中文字幕 | 国产精品福利在线 | 久久久久久免费毛片精品 | 国产农村妇女毛片精品久久麻豆 | 一本一道久久a久久精品综合蜜臀 | 成人片在线看 | 日本天堂一区 | 日本一区二区三区四区 | 国产在线网址 | 丁香婷婷久久久综合精品国产 | 日本在线黄色 | 日韩欧美在线视频播放 | 亚洲国产成人av好男人在线观看 | 91av导航 | 国产精品中文字幕在线观看 | 国产美女自拍视频 | 欧美日韩综合视频 | 宅女噜噜66国产精品观看免费 | 天天碰日日操 | 91黄在线观看 | 精品国产99 | 一区二区三区视频 | aaa综合国产 | 亚洲精品乱码久久久久久按摩 | 综合久久av | 精品三级| 久久不卡 | 玖玖玖在线 |