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

2021-01-10 電子工程世界

第一章 設計目的及要求

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的應用不熟悉,而且也沒深入想過課本上那些小的程序之間的聯繫應用。所以學習知識不能太局限於理論,要與實踐結合。學會了單片機的一般設計過程,通常都要進行系統擴展與配置,因此,要完成一個單片機的設計工作,必須依次做到下述工作:


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

應用軟體的編寫、調試;

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

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

相關焦點

  • 基於51單片機定時器的電子時鐘設計方案
    今天我們將會為大家分享一種比較基礎的電子時鐘設計方案,該方案基於51單片機定時器進行設計,精度較高,時鐘鬧鐘調節簡單。本文引用地址:http://www.eepw.com.cn/article/201808/387025.htm在本方案中,我們所設計的這種電子時鐘主要由51單片機定時器、1602LCD液晶屏等構成。
  • 一款基於51單片機的簡易示波器設計
    非常昂貴,對於非盈利事業的教學組織來說無疑不合適,所以提出了一種以單片機為控制核心的簡易示波器設計方案。它由前向控制部分,數據採集和存儲部分,51單片機控制部分以及按鍵和MS12864R顯示部分組成。本文引用地址:http://www.eepw.com.cn/article/248283.htm1 簡易數字示波器的工作原理以及總體框架本設計硬體電路部分由單片機控制系統電路,前向輸入調理電路,模數轉換和存儲電路,以及按鍵顯示電路組成。
  • 基於51單片機的DS1307液晶顯示可調萬年曆項目設計
    我已經把這篇設計論文發到百度文庫裡了,不過在那裡下載需要5個財富值,所以為了回報朋友們,在日誌裡又重新整理的一便,這個程序涵蓋了51單片機幾乎所有的知識,學會這個項目可以說51單片機就拿下了。還有技術含量很高的I2C通訊技術,在這個程序裡都有涉及。
  • 如何利用51單片機設計一個電子密碼鎖系統?
    打開APP 如何利用51單片機設計一個電子密碼鎖系統? 2.2 單片機開鎖機構的設計 單片機開鎖機構的設計是將單片機送入開鎖執行的機構,促使電路驅動和電磁鎖吸合,進而開鎖。本文設計的電子鎖通過P3.0 來接入三極體進而驅動繼電器來打開電磁閥線圈進而實現開門和關門。
  • 《電子發燒友網51單片機設計方案TOP10》
    【詳情請參閱:基於51單片機的智能壓力傳感器設計】     基於MCS-51單片機的實時在線環境監測系統   1 引言   基於GPRS和MCS-51單片機的數據採集器是一種實時在線環境監測系統
  • 基於51單片機設計的DS1302時鐘程序
    /******************************************************#include reg52.h>DS1302時鐘程序 *******************************************************/sbit ACC_0 = ACC^0;sbit ACC_1 = ACC^1;sbit ACC_
  • 基於KEIL 51的單片機開發系統設計
    1.引言本文引用地址:http://www.eepw.com.cn/article/171806.htm近年來隨著KEIL 51不斷升級,高版本的KEIL 51編譯器,尤其是Keil μVision2(基於Windows的C51集成編譯環境)
  • 基於51單片機的人體紅外模塊的自動門設計
    方案二:採用51系列單片機。系統的要求不高,程序的編寫也比較簡單,需要用到的I/O口的數量用該系列的單片機來操作完全能夠實現,無需再擴展,充分的利用了單片機資源。另外,經典的51系列單片機的處理速度也能夠滿足系統要求,性價比相對CPLD器件更高。綜合以上兩種方案,本系統選擇方案二,以AT89C51作為系統的微控制器。4.
  • 基於51單片機電子琴的設計(附源碼及論文)
    單片機最小系統單片機最小系統單片機最小系統說明:時鐘信號的產生:在MCS-51晶片內部有一個高增益反相放大器,其輸入端為晶片引腳而在晶片的外部,XTAL1和XTAL2之間跨接晶體振蕩器和微調電容,從而構成一個穩定的自激振蕩器,這就是單片機的時鐘振蕩電路。時鐘電路產生的振蕩脈衝經過觸發器進行二分頻之後,才成為單片機的時鐘脈衝信號。一般地,電容C2和C3取30pF左右,晶體的振蕩頻率範圍是1.2-12MHz。
  • 基於51單片機的異步串行接口鍵盤設計
    筆者結合工作實際,圍繞單片機89C51設計了通用異步串行接口鍵盤作為顯示分系統的擴展鍵盤。目的在於為顯示分系統增加一種幹預手段。實踐表明:此鍵盤改善了系統的人機界面,提高了系統的處理效率。1 設計要求與工作原理1.1 設計要求 (1)擴展鍵盤鍵位編碼符合顯示分系統的約定。
  • 51單片機之4位數加法計算器的設計報告
    電子時鐘是現代社會中的主要計時工具之一,廣泛應用於手機,電腦,汽車等社會生活需要的各個方面,及對時間有要求的場合。本設計採用AT89C52單片機作為主要核心部件,附以上電復位電路,時鐘電路及按鍵調時電路組成。數字鐘已成為人們日常生活中: 必不可少的必需品, 廣泛用於個人家庭以及車站、 碼頭、劇場、辦公室等公共場所,給人們的生活、學習、工作、娛樂帶來極大的方便。
  • 基於51單片機的嵌入式SNMP代理器設計與實現
    2 嵌入式代理器的硬體實現 我們設計的基於SNMP的控制系統原理見圖2。 控制現場的信號採集由A/D轉換模塊輸入單片機。單片機對信號進行處理,並且執行SNMP代理器的任務,硬體部分主要包括A/D、串口、乙太網、小邏輯、單片機、監控信號採集、電源及監控等模塊,本文著重介紹與嵌入式SNMP代理器密切相關的部分。
  • 基於51單片機的兩路溫度控制器的設計方案
    本方案中所設計的溫度控制器,採用AT89C51單片機作為內核,採用DS18B20作為溫度傳感器,通過四位LED顯示,通過循環掃描實現了兩路溫度的採集與顯示。
  • 基於HYM8563的80C51系列單片機低功耗系統設計
    介紹一種利用I2C實時時鐘晶片HYM8563產生的多種中斷方式,喚醒進入掉電狀態的80C51系列單片機,由此技術構建的低功耗單片機系統。
  • 基於Modbus通信協議的eView觸控螢幕與51單片機的通信設計
    基於Modbus通信協議的eView觸控螢幕與51單片機的通信設計 電子工程網 發表於 2019-09-27 16:27:48 Modbus協議由於其具有開放性、透明性、成本低、易於開發等特點,已成為當今工業領域通信協議的首選
  • 51單片機AD轉換電路設計實現
    51單片機AD轉換電路設計實現關於AD轉換的原理,大家在《數字電子技術》中已經學過,這裡做過多的介紹,本文介紹一款經典的8位AD轉換晶片ADC0804,基於51單片機設計AD轉換電路,並完成測量值的轉換。
  • 51單片機、STM32單片機、PIC單片機性能對比
    雖然I/O腳使用簡單,但高電平時無輸出能力,這也是51系列單片機的最大軟肋 3.超低功耗方面,MSP430 單片機之所以有超低的功耗,是因為其在降低晶片的電源電壓及靈活而可控的運行時鐘方面都有其獨到之處。電源電壓採用的是 1.8~3.6V 電壓。
  • 基於AT89C51單片機的十進位計算器系統設計
    基於AT89C51單片機的十進位計算器系統設計
  • 基於51單片機的電子廣告牌電路設計
    1 系統設計方案 鑑於所設計的點陣屏為16×16單色顯示,可以用8×8的點陣屏4塊來級聯實現,此時點陣屏的行列各為16管腳,需要擴展口,採用74LS164串行輸入並行輸出來實現。整個系統以AT89S51為控制晶片,P0/P2口為行控制,P3口為晶片74LS164的輸入,且2片74LS164級聯後為列控制,通過軟體程序調用不同的代碼來顯示字符或文字。
  • 基於AT89S52單片機的多功能電子萬年曆
    引言本文引用地址:http://www.eepw.com.cn/article/170491.htm隨著生活節奏的日益加快,人們的時間觀也越來越重,同時對電子鐘錶、日曆的需求也隨之提高。