基於51單片機的電子時鐘課程設計

2021-01-07 電子工程世界

第一章 設計目的及要求

1.目的

通過對電子時鐘系統進行編程與Protues仿真,進一步掌握單片機的組成,P1、P0、P2、P3口的應用,蜂鳴器的應用,定時中斷程序的編寫及應用,對之前學習的單片機課程進行回顧與應用;初步掌握Protues仿真方法以及用keil軟體編寫程序的方法。


2.題目與要求

本次課程設計的題目為:電子時鐘的設計,其具體要求為:

(1)能實現時、分、秒的顯示;

(2)能實現12、24小時制的切換;

(3)能設定時間;

(4)能設定鬧鐘;

整個系統要設計鍵盤和顯示器,利用單片機內部時鐘完成定時器的定時設計。


第二章 理論基礎

1.AT89C52晶片

AT89C52晶片的引腳圖如圖1所示。

圖1 AT89C52晶片引腳


其中主要應用到的引腳口介紹:

(1)P0口的第一功能是作為一般I/O口使用,第二功能是在CPU訪問外部存儲器時,分時提供低8位地址和8位雙向數據。

(2)P1口是8位準雙向I/O口,51子系列中P1隻能用作一般I/O口,52子系列中P1.0和P1.1引腳還具有第二功能。

(3)P2口是8位準雙向I/O口,第二功能是在CPU訪問外部存儲器時,作為高8位地址總線,輸出高8位地址。

(4)P3口是8位準雙向I/O口,其第一功能是用作一般I/O口,第二功能是作為中斷信號和外部數據存儲器的讀寫控制信號。

(5)RES,復位信號高電平有效。


2.Keil的簡單介紹

Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟體開發系統。Keil提供了包括C編譯器、宏彙編、連結器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境(μVision)將這些部分組合在一起。此處簡單介紹一下Keil 工程的建立等,以Keil μVision2界面為例。


(1)建立一個工程,選擇菜單欄中的【Project】下的【New Project】,菜單欄如圖2所示。

圖2 菜單欄

(2)選擇工程要保存的路徑並且輸入工程名,以電子時鐘工程的建立為例,如圖3所示。

圖3 「保存新工程」對話框

(3)選擇系統要用的單片機如圖4(a)所示,選擇添加啟動文件如圖4(b)所示。

圖4(a)「選擇單片機」對話框

圖4(b)「添加啟動文件」對話框

(4)建立文件,選擇菜單【File】下的【New】,出現界面如圖5所示。

圖5 新建文件界面

(5)保存文件為「*.c」文件,並且添加文件到所建的工程下,保存文件截面圖如圖6所示,添加文件顯示界面如圖7所示,右鍵點擊SourceGroup添加。

圖6 保存文件界面

圖7 添加文件界面


3.Protues的簡單介紹

Proteus軟體是英國Lab Center Electronics公司出版的EDA工具軟體,它不僅具有其它EDA工具軟體的仿真功能,還能仿真單片機及外圍器件。它是目前比較好的仿真單片機及外圍器件的工具,可以仿真51系列、AVR、PIC、ARM、等常用主流單片機。在PROTEUS繪製好原理圖後,調入已編譯好的目標代碼文件:*.HEX,可以在PROTEUS的原理圖中看到模擬的實物運行狀態和過程。


(1)Keil中生成*.HEX的界面如圖8所示。

圖8 生成HEX文件界面

(2)Protues中加載HEX文件,在Protues界面中雙擊AT89C51晶片,所示界面如圖9所示。

              圖9 加載HEX文件界面


第三章 設計原理以及方案

1.系統總體框圖

本電子時鐘主要由單片機、鍵盤、數碼管顯示接口電路、蜂鳴器電路和復位電路構成,設計的總體方案如圖10所示:

圖10 總體方案

2.硬體電路

2.1晶振電路

晶振電路如圖11所示。

圖11 晶振電路

2.2復位電路

復位電路如圖12所示。

圖12 復位電路


2.3蜂鳴器電路

蜂鳴器電路如圖13所示。

圖13 蜂鳴器電路

2.4數碼管顯示電路

數碼管顯示電路如圖14所示。

圖14 數碼管顯示電路

2.5鍵盤電路

鍵盤電路如圖15所示。

圖15 鍵盤電路

2.6總體電路

在Protues中仿真的總體電路圖如圖16所示。

圖16 總體電路


3.軟體系統設計

3.1單片機的使用情況

設計電子時鐘使用單片機資源的情況如下:

P0口輸出數碼管段選信號,P2口輸出數碼管位選信號;調整功能選擇鍵kgnxz:P3.0口,通過其選擇調整時鐘還是調整鬧鐘;調整秒 ksec:P3.1口,按一次使秒加1;調整分kmin:P3.2;按一次使分加1;調整小時khour:P3.3口,按一次使時加1;12與24小時制的轉換鍵kzh:P3.4,默認24小時制,按一次鍵之後轉換為12小時制。具體如下:


(1)實現基本的走時間和顯示時間的時、分、秒,上電自動顯示初始時間00-00-00。

(2)當第一次按下第一個彈性按鍵時進入時間的調節狀態,按下第二個按鍵時實現秒的加一調節,按下第三個按鍵時實現分的加一調節,按下第四個按鍵時實現小時的加一調節。

(3)當第二次按下第一個彈性按鍵時進入鬧鐘的調節狀態(鬧鐘初始值設定為01-00-30),按下第二個按鍵時實現秒的加一調節,按下第三個按鍵時實現分的加一調節,按下第四個按鍵時實現小時的加一調節。

(4)當第三次按下第一個彈性按鍵時進入原顯示時間的狀態。

(5)按下第五個按鍵時實現24到12小時制的轉換。

(6)當第五次按下第一個彈性按鍵時返回正常的顯示時間走時狀態。


3.2軟體系統的各個模塊

時鐘系統的軟體設計主要採用以下基本模塊來實現,主程序、定時中斷服務程序、鍵盤掃描程序模塊、時鐘顯示模塊、鬧鐘顯示模塊、轉換模塊、延時模塊和蜂鳴器模塊。


主程序:對中斷程序初值進行設定,在各種情況下對子函數的調用,保證整個程序的順序執行。


定時中斷服務程序:用於電子時鐘的準確運行。

鍵盤掃描程序模塊:用於確定按鍵並在按鍵按下時調用相應的程序進行顯示。

時鐘顯示模塊:用於顯示正常走表的時間。

鬧鐘顯示模塊:用於顯示設定鬧鐘的時間。

轉換模塊:用於將默認的24小時制轉換為12小時制。

延時模塊:程序中調用延時子程序,用於按鍵消抖動,數碼管消影等。

蜂鳴器模塊:用於在設定的鬧鐘時間與走表的時間相等時,鬧鐘響起。


3.3軟體系統程序流圖

主程序的順序流圖如圖17所示。

圖17 主程序順序流圖


顯示程序的順序流圖如圖18所示。

圖18 顯示程序順序流圖

中斷程序的順序流圖如圖19所示。

圖19 中斷程序順序流

第四章 仿真結果與分析

1.仿真結果

上電走表仿真結果圖如圖20所示。

圖20 上電之後走表仿真結果圖

按下一次kgnxz鍵,再分別調整時、分、秒各按鍵,使得顯示時間為15-15-15仿真結果圖如圖21所示。

圖21 調整時分秒仿真結果圖

按下kzh鍵,使得顯示時間為03-15-19仿真結果圖如圖22所示。

圖22 24小時制轉換為12小時制仿真結果圖

按下第二次kgnxz鍵,再分別調整時、分、秒各按鍵,即調整的便是鬧鐘的設定時間(初始設定為01-00-30),仿真結果圖如圖23所示。

圖23 鬧鐘顯示仿真結果圖

調整鬧鐘的設定時間為03-20-30,仿真結果圖如圖24所示。

圖24 鬧鐘調整顯示仿真結果圖

按下第三次kgnxz鍵時,顯示走表的時間,並且在到達設定的鬧鐘時間時蜂鳴器發出聲音,即在蜂鳴器發聲過程中P1.0口會由原高電平變為低電平,仿真結果圖如圖25所示。

圖25 蜂鳴器發聲仿真圖


2.仿真結果分析

讓手機中的秒表與Protues仿真中的秒同時開始,可以發現他們幾乎是同步的(由於個人反應導致按下手機秒表瞬間有微小誤差)。而鬧鐘設定值是完全沒有誤差的,當時間與設定鬧鐘時間完全相等時蜂鳴器就會發聲。


第五章 總結

本次課程設計利用Keil以及Protues軟體,完成了電子時鐘系統的程序編寫與電路圖搭建,並對所設計的電子時鐘系統進行了仿真測試。


完成本次課程設計的過程,經歷了興奮、自信、失落、奮發、所悟、完成幾個過程。剛開始做課程設計時,仔細閱讀設計的題目和要求,想到理論課學得也還差不多,以為沒什麼太大困難,所用的知識書上都有,各部分程序大都可以參考課本例題完成。開始前兩天我就熟悉課本,參考課本內容在稿紙上把自己的思路和各部分程序寫了下來,然後就是銜接起來在Keil中編寫。經過三天的努力,毫無結果。埋頭苦幹的過程是痛苦的,尤其是在按自己覺得理論上合理的算法和程序做完,發現根本顯示不了的時候,是迷茫,煩躁的。在第三天下午參考別人只是顯示出來走表就可以的程序,並且接受別人建議按一步一步調試去編寫的情況下,編寫運行找錯地不斷循環中,終於在第五天完善了程序。


通過這次課程設計,我感覺到自己從課本上學到的理論知識和實踐仍有很大的差距。學習理論課時也是有實踐課的,但當時自己只是追求明白課本例題的程序,幾乎很少在Protues上去畫例題中的仿真圖,導致自己對Protues的應用不熟悉,而且也沒深入想過課本上那些小的程序之間的聯繫應用。所以學習知識不能太局限於理論,要與實踐結合。學會了單片機的一般設計過程,通常都要進行系統擴展與配置,因此,要完成一個單片機的設計工作,必須依次做到下述工作:


硬體電路的設計、組裝與調試;

應用軟體的編寫、調試;

完整應用軟體的調試、固化和脫機運行。

而在進行硬體系統設計時我們應當儘量做到:

相關焦點

  • 基於單片機的正弦信號發生器的設計
    基於單片機的正弦信號發生器的設計 秩名 發表於 2012-07-31 11:42:14   摘 要:本系統採用AT89S51單片機為核心,輔以必要的模擬,數字電路,構成了一個基於
  • 一種模塊獨立的單片機開發板設計
    它替代傳統的 AT89C51(不帶 SPI 下載)。外圍電路圖如圖 2 所示。2  模塊設計  2.1 輸入模塊(1)ZLG7290 鍵盤模塊。參考文獻[1] 賈飛.單片機技術課程中項目教學法的應用案例[J].張家口職業技術學院學報,2017, 30(03):75-77.[2] 黃海燕.SPOC教學模式在高職單片機技術課程教學中的實施探索[J].課程教育研究,2018 (01):210-212.
  • 基於單片機與PC通信的數據採集控制系統設計研究
    系統的基本組成  1. 1 系統的基本架構  文中構建的基於單片機與PC 通信的數據採集控制系統基本架構如圖1 所示:    筆者在設計中,對於總體的成本和系統性能需求進行了考慮,對於目前採用的節點中心設計,擬定了Atmega128L 單片機來完成。
  • 基於單片機設計的酒精氣體濃度探測儀
    基於STC12C5A16AD單片機設計的酒精氣體濃度探測儀,可用來檢測酒精氣體濃度,當酒精氣體濃度高於允許限定值時,發出報警。2 電路設計思路2.1 酒精濃度檢測儀電路由酒精氣體濃度傳感器MQ-3負責檢測空氣中的酒精氣體濃度;由單片機內部自帶的模/數轉換器把檢測到的模擬量(表示酒精濃度)的電壓信號轉換成數字量;然後和預先設定的表示酒精濃度的閥值進行比較,如果比較結果超過閥值就由單片機P2.3口輸出方波信號控制PNP型三極體VT4驅動蜂鳴器發出報警聲;同時由單片機P2.6口輸出低電平控制發光二極體
  • 基於P89V51單片機和CD4051晶片實現4路智能溫控儀產品樣機的設計
    打開APP 基於P89V51單片機和CD4051晶片實現4路智能溫控儀產品樣機的設計 張愛民,林輝 發表於 2020-12-23 10:00:44
  • 常用單片機晶片簡介
    STC單片機 :STC公司的單片機主要是基於8051內核,是新一代增強型單片機,指令代碼完全兼容傳統8051,速度快8~12倍,帶ADC,4路PWM,雙串口,有全球唯一ID號,加密性好,抗幹擾強.
  • 單片機系統中日曆時鐘自動校準及調整
    但日曆時鐘時常跑快跑慢的缺陷不可避免。經過日積月累,就會產生較大的誤差,這會影響控制與檢測的準確性。為了解決日曆時鐘的準確度問題,我們設計了能夠自動校準和調整運行速度的日曆時鐘。它在每天的12:00和00:00都會自動校準一次,並根據12個小時運行的誤差大小自動調整時鐘的運行速度。可使時鐘運行的準確度相當高。
  • 單片機晶片型號有哪些_常見單片機晶片型號大全
    晶片上的Flash存儲器附在用戶的產品中,可隨時編程,再編程,使用戶的產品設計容易,更新換代方便。其增強的RISC結構,使其具有高速處理能力,在一個時鐘周期內可執行複雜的指令,每MHz可實現1MIPS的處理能力.AVR單片機工作電壓為2.7~6.0V,可以實現耗電最優化.AVR的單片機廣泛應用於計算機外部設備,工業實時控制,儀器儀表,通訊設備,家用電器,宇航設備等各個領域。
  • 基於單片機的雙積分A/D轉換設計
    本文介紹的一種基於單片機的高精度、雙積分型A/D轉換電路,具有電路體積小、成本低、性價比高、結構簡單、調試容易和工作可靠等特點,有很好的實際應用價值。1 雙積分式ADC基本原理 雙積分式ADC的基本電路如圖1所示,運放A 1、R、C用來組成積分器,運放A2作為比較器。
  • 單片機哪家強?實力大比拼,你用的是哪家單片機
    單片機從當初的4位發展到8位、32位,甚至更高,到現在可以說種類繁多而且齊全,數量龐大,在不同的領域主流的單片機有不同,很多設計開發有時候要面臨很多選擇。下面介紹幾種常用的單片機1、51系列單片機51單片最初是由Intel始創的8004單片機開始,這是8位的單片機,特點是:寄存器少,.很多功能需要外部擴展,像AD轉換、PWM專門輸出信號等、I/O口輸出能力不強、運行速度慢、抗幹擾能力差、功耗高、不具備自編程能力。
  • 基於上位機控制自動接線的單片機實驗系統研究
    現代單片機實驗或單片機開發都離不開上位機對軟體的編譯和程序的下載。在實驗現場進行手工重接線時上位機處於空閒狀態。利用上位機控制對實驗現場進行自動重接線,是該研發項目研究的重要內容。  1 項目研發思路概述  項目的研發思路見圖1 所示的流程圖。
  • avr單片機和stm32區別與優缺點分析
    在avr中,沒有像51系列的數據指針DPTR,而是由X(由 R26、R27組成)、Y(由R28、R29組成)、Z(由R30、R31組成)三個16位的寄存器來完成數據指針的功能(相當於有三組DPTR),而且 還能作後增量或先減量等的運行,而在51系列中,所有的邏輯運算都必須在A中進行;而avr卻可以在任兩個寄存器之間進行,省去了在A中的來回折騰,這些 都比51系列出色些   2. avr
  • 史上最強單片機科普,看完給跪了!
    由於時鐘源可以自由選擇,因此,此類Timer一般均與Event Counter(事件計數器)合在一起。IO口:任何MCU都具有一定數量的IO口,沒有IO口,MCU就失去了與外部溝通的渠道。根據IO口的可配置情況,可以分為如下幾種類型:純輸入或純輸出口:此類IO口有MCU硬體設計決定,只能是輸入或輸出,不可用軟體來進行實時的設定。
  • 基於24位A/D轉換的高精度電子秤的設計
    打開APP 基於24位A/D轉換的高精度電子秤的設計 發表於 2017-12-21 20:04:15 基於24位A/D轉換的高精度電子秤的設計引言物料計量是工業生產與貿易流通中的一個重要環節
  • 基於GPS的電壓互感器二次線路壓降自動跟蹤補償裝置的設計與實現
    基於GPS的電壓互感器二次線路壓降自動跟蹤補償裝置的設計與實現 胡紹謙,王曉茹 發表於 2021-01-13 10:23:49 隨著電力系統體制改革的深化,廠網分家的模式已初步形成。
  • 單片機應用於電風扇起停自動控制系統設計方案
    本文從此目的出發利用AT89S52單片機設計了自動溫控電風扇系統,當溫度高於20℃時,自動打開電風扇;低於20℃時自動關閉電風扇。還可以實現當溫度過高或過低時,蜂鳴器發出聲音報警提醒人們注意避暑或防止受涼。l 設計方案電路的總框圖如圖1所示。
  • 基於CC2420晶片和ARM單片機實現智能交通系統的設計
    基於CC2420晶片和ARM單片機實現智能交通系統的設計 黃武陵,艾雲峰 發表於 2020-12-22 09:59:25 智能交通系統(ITS)應用在城市交通中主要體現在微觀的交通信息採集
  • 基於單片機的棋盤設計:帥、象、兵走棋程序詳解
    ,以及C語言編程技術等電子信息專業的所學知識來完成計時、聲音提示、判斷行棋規則等重要功能。由於篇幅關係本文主要探討棋盤的軟體設計。為了使棋盤設計更加人性化,更加方便選手完成比賽,也為了使棋盤更加的人性化,將棋盤及棋子根據其位置進行了編碼,中國的象棋棋盤如圖1所示,有橫9,縱10,共計90個格,交叉點為90個。紅黑雙方交替行棋,每人輪流走一步,可走棋、可吃棋,將帥吃掉為贏。
  • 使用STC14F104W單片機捕獲PWM脈寬
    4、捕獲模式類似於51單片機的計數器,但是又與計數器工作原理有很大差別,功能也比計數器強大。它既可以脈衝計數也可以計算一個脈衝寬度(也就是高電平的時間或者低電平 發表於 2020-07-06
  • 利用微處理器設計的電機數字測速系統,抗幹擾能力強、測量精確
    本文提出一種基於STC單片機實現對電機轉速測量的方法,利用霍爾傳感器採集脈衝信號,通過定時計數算法程序,將轉速通過數碼管實時顯示。1 測速系統概述單片機STC 89S52RC作為核心控制器控制著整個系統的工作,而時鐘電路負責產生單片機工作所必需的時鐘信號,復位電路使得單片機能夠正常、有序、穩定地工作。