葉 青(武漢輕工大學 電氣與電子工程學院,武漢 430048)
基于51單片機的多功能數字電子鐘的設計
葉青
(武漢輕工大學電氣與電子工程學院,武漢430048)
多功能電子時鐘除了具有時鐘的功能外還可以包含對環境溫度檢測的功能。溫度是一種最基本的環境參數。在各個行業生產及日常生活中,對溫度的測量及控制始終占據著非常重要的地位。目前,典型的溫度檢測控制系統由模擬式溫度傳感器、A/D轉換電路和各種單片機組成。由于模擬式溫度傳感器輸出的模擬信號必須經過A/D轉換環節轉換為數字信號后才能與單片機等微處理器接口進行讀寫的操作,所以硬件電路會比較復雜,成本較高。而以DS18B20為代表的新型單線總線數字式溫度傳感器集溫度測量和A/D轉換于一體,這類傳感器可以直接輸出數字量,同時與單片機接口電路結構非常簡單,可以廣泛用于距離遠、節點分布多的場合,具有較強推廣應用價值。
電子時鐘;單片機;模擬信號;A/D轉換
20世紀末,電子技術發展極為迅速,隨之現代電子產品和多種高科產品便在社會多個領域中得以應用,這對于社會生產力以及信息化程度的發展與提高是非常有效的,但產品更新換代的頻率也越來越快。隨著科技的發展社會的進步和全球化競爭的日益激烈,對于數字鐘,人們有著越來越高的要求,人們已經不再滿足于傳統時鐘。多功能電子鐘在用途已經樣式中都出現了極大的變化,大部分電子鐘都已具備電子鬧鐘、電子秒表、溫度檢測等功能。同時單片機在多功能數字鐘中的應用已是非常普遍的。
我們常常會在日常生活中,以及自動控制系統中碰到需要實時監控溫度以及時間的情況。這使得多種功能時鐘得到廣闊的發展市場。本文便將以單片機為基礎的對于帶溫度檢測電子時鐘進行設計以及實現的方式進行提供。
AT89S51具備的功耗較低,CMOS8位單片機具備較高性能,片內具備4k Bytes ISP(In-system programmable)能夠對Flash只讀程序存儲器進行1000次的反復擦鞋,器件選擇的是由ATMEL公司的89C51引腳結構以及兼容標準MCS-51指令系統,其實通過非易失性存儲技術已經高密度制造的,芯片內對于ISP Flash存儲單元以及通用8位中央處理器進行了集成,微型計算機AT89S51有著強大功能,能夠將性價比非常高的解決方案向多數嵌入式控制應用系統中進行提供。
AT89S51主要特點如下:具備引腳40個,隨機存取數據存儲器(RAM)128bytes片內程序存儲器4k Bytes Flash,中斷優先級5個2層中斷嵌套中斷,看門狗(WDT)電路,外部雙向輸入/輸出(I/O)口有32個,16位可編程定時計數器2個,片內時鐘振蕩器以及全雙工串行通信口2個。
同時,AT89S51在設計以及配置上對于振蕩頻率可為0Hz,同時能夠借助軟件來對省電模式進行設置。處于空閑模式中,CPU工作暫停,能夠繼續工作的有外中斷系統、串行口以及RAM定時計數器,掉電模式對于振蕩器進行凍結,并對RAM數據進行保存,對于其他功能,芯片會進行停職,知道硬件復位或者是激活外中斷。此外改芯片有三種封裝形式,一是PLCC,二是PDIP,三是TQFP,以此來對不同產品的需要給以滿足。
其特性主要就是可編程FLASH存儲器為4K字節,三級程序存儲器能進行鎖定保密,MCS-51和8031CPU可兼容,工作是全靜態的,可編程I/O線有32條,中斷源有6個,內部RAM128*8位,片內時鐘電路和振蕩器,掉電已經閑置模式功耗低,串行通道可編程,定時器/計數器是兩個16位的。
相較于89C51,89S51的功能主要有一下幾點增加:一是較大的提高了其性能,同時又很多功能增加,但是價格卻比89C51還要低。二是33MHz的工作頻率,89C51只具備24M的極限工作頻率,而S51的工作頻率更高,進而對計算速度給以提升。三是ISP在線編程功能,改功能可對單片機存儲器中的程序給以改寫,卻保證芯片不被在工作環境中剝離,改功能應用方便且非常強大。四是具備電源關閉標識。五是存在雙工UART串行通道。六是具備雙數據指示器。七是具備全新加密算法,這邊無法解密89S51,這極大的增強了程序保密性,進而使得知識產權被保密而不會受到侵犯。八是能夠向下對51全部字系列產品進行兼容,如89C51等。這就是指全部網絡教程已經教科書中的程序,都能夠正常運行在89S51中,這邊是向下兼容。九是看門狗計時器能夠在內部集成,不用再對89C51進行外接看門狗計時器單元電路。
3.1系統框架設計
系統框架如圖1。
3.2模塊設計
3.2.1單片機系統電路
AT89S51有40引腳,雙列直插(DIP)封裝,所用引腳功能如下:一是VCC—在運行中+5V。二是XTAL1是振蕩器反相放大器和其內部時鐘發生器的輸入端。三是GND—接地。四是RST-進行復位輸入,進行晶振工作時,RST引腳中對于具備2個機器周期以上的高電平給以作用,促進單片機復位。該引腳會受到WDT溢出的影響將高電平進行輸出,對SFT AUXR的DISRTO位(地址8EH)進行設置則能夠對該功能給以關閉或是打開。DISRTO位缺省是REST輸出高電平打開。五是XTAL2,是振蕩器反相放大器輸出端。六是無自鎖開關,(S2-P3.7)開關與相應引腳P3.7進行連接,按下開關,引腳是低電平0,在斷開時,引腳具備高電平1。六是P1口,P2口—P1,P2是8位雙向I/O口具備內部上拉電阻。運行過程中借助P1口對驅動電路給以控制,向數碼管進行數據輸送,對于相應段碼給以顯示,為使得功耗減少,并使得功耗減少,并對最大電流給以限制,并將一限流電阻進行加入。P2.0—P2.7口對于數碼管位選給以控制,進而讓數據被六個數碼管進行輪流顯示,其為0的時候對三極管導通給以位選,為1時對三極管截止進行位選。七是EA/VPP,片外程序存儲器對于信號是允許訪問的。如果讓CPU只對于外部程序存儲器進行訪問,則EA必須對于低電平進行保持,若是EA是高電平,那么CPU會對內部程序存儲器的指令給以執行。
3.2.2復位電路
不管是對哪種類型單片機給以應用,其是對單片機復位電路的相關設計進行涉及的,單片機復位電路的設計質量對于整個系統工作的可靠性有著直接影響。多數用戶在進行單片機系統設計的時候,在成功調試實驗室之后,現場會有“程序走飛”、“死機”等出現,主要原因就是單片機不可靠的復位電路設計。復位電路具備的基本功能是,系統進行上電時,要對復位信號進行提供,待電源穩定之后,對復位信號進行撤銷。為保證可靠性,穩定電源之后進行復位信號的撤銷藥經過一定時間才可,為使得電源插頭已經電源開關分合過程中的抖動被引起而對復位進行影響。選定單片機復位電路參數的時候藥保證正當穩定之后具備大于2個機器周期的高電平持續時間。主要具備泗忠單片機復位電路類型,一是積分型復位電路;二是看門狗型復位電路;三是比較器型復位電路;四是微分型復位電路。
3.2.3晶振電路
晶振電路設計如圖2。
XTAL1對反向放大器進行輸入,XTAL2進行輸出。反相放大器能夠對片內振蕩器進行配置。這在陶瓷震蕩已經晶振蕩中都可使用。若是對外部時鐘源驅動器件進行使用,則不用連接XTAL1。強有余向內部時鐘信號進行輸入,藥借助一個二分頻觸發器來實現,這就使得對外部時鐘信號的脈寬不具備要求,不過藥對于脈沖高低電平的寬度進行保證。C1,C2在是電時幫助晶振起振。
3.2.4數碼管顯示驅動電路
數碼管點亮田:段選和位選,結合圖3
圖3.3表示的是數碼管引腳圖,每位段碼線(a,b,c,d,e,f,g,dp)是與1個8位鎖村器的輸出分別連接,通過AT89S51對于0-9十個數據給以控制組合,如果其對于1進行顯示,則b,c引腳將高電平進行輸送,這個時候數碼管會對1進行顯示。因為各位段碼線是并聯,相較于8 位I/O口輸出段碼,其顯示是相同的。
當數碼管正常工作時必須接上拉電阻,數碼管點亮一般要5~10mA的電流,po輸出電流不到1mA,同時上拉電阻起到一個限流的作用。
顯示多位LED的是,是為保證電路得以簡化,并對成本進行降低,從而對資源進行計生,把全部N位段選碼進行并聯,被一片74HC595進行控制。因為全部LED段選碼都是74HC595并行來對輸出口給以控制的,所以,所有瞬間,N位LED會對相同字符進行顯示。藥對不同字符進行顯示,需要選擇掃描方法,也就是所有瞬間都對一位顯示字符進行使用。此時74HC595并行出口將相應字段符選碼給以輸出,位選對于I/O口進行控制,在該顯示位將選通電平進行輸送,進而使得該位對于相應字符進行顯示。這樣循環,保證所有位分時對于應顯示字符給以顯示。因為74HC595能夠進行鎖存,所以串行輸入段選碼具備一定時間,所以不能夠進行延時,進而使得視覺暫留效果得以形成。
PNP型三極管集電極同數碼管公共端進行連接,如果P2口所對應的引腳將低電平進行輸出時,三極管會導通,對應數碼管對于數據進行顯示。在處于一個時刻時,多位LED中對于字符顯示的只有選通的那1位,其他5位處于滅火的。這個時候僅需要保持下一位位選線保持選通狀態,其他個位位選線則保持關閉狀態,對藥顯示的字符段碼藥在段碼線上進行輸出,這個時候對于相應字符僅由選通位進行顯示,其他位是保持熄滅的。這樣進行循環,便能夠保證對于要顯示的字符進行顯示。這些字符雖然是出現在不同時刻,但是只有一位在同一時刻進行顯示,其他位是熄滅的,不過因為存在人眼視覺暫留以及LED余暉的作用,使得每位只要對顯示間隔保證足夠短便可,進而便能夠對多位同時亮的假象出現,進而使得同時顯示被實現。
3.2.5定時報時電路設計
該電路使用的發聲報時聲源是無源蜂鳴器,對于P1.3口延時翻轉電平會有驅動波形產生,以此來驅動蜂鳴器。借助于對延時時間進行改變來對方波占功比進行改變,從而獲取對蜂鳴器進行驅動的方波信號。這便使得蜂鳴器進行報時的時候,不會存在不同音調的報時聲。
4.1主程序流程圖(圖4)
4.2系統設計的源程序
包括主程序、中斷子程序、顯示子程序、判斷按鍵和調時設置程序、等待按鍵抬起程序、報時子程序、延時子程序.
用單片機AT89C51設計一個多功能電子時鐘能實現時分秒顯示,能定時報時,還有調整時間的功能。單片機AT89C51的P0口接數碼管的7段,P2口接數碼管的位選。P3.0-P3.4接按鍵,P1.3接蜂鳴,數碼管是一個八位一體共陰的,時間初始值00:00:00
#include
unsigned char Tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,};//段碼共陰
unsigned char port[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char int_time ;//中斷次數計數變量
unsigned char second;//秒計數變量
unsigned char minute;//分鐘計數變量
unsigned char hour;//小時計數變量
unsigned char second0;//秒計數變量
unsigned char minute0;//分鐘計數變量
unsigned char hour0;
unsigned char fl ag ;
sbit k0=P3^0;
sbit k1=P3^1;
sbit k2=P3^2;
sbit k3=P3^3;
sbit k4=P3^4;
sbit ring=P1^3;
}
隨著科學技術的不斷進步和發展,多功能電子鐘在性能、樣式、用途上都發生著重大的變化,許多電子鐘都已具備電子鬧鐘、電子秒表、溫度檢測等功能。同時單片機在多功能數字鐘中的應用已是非常普遍的。AT89S51功耗較低,具備CMOS8位單擊片的性能較高,其片內具備4k Bytes ISP(In-system programmable)能夠進行1000次的反復擦寫Flash只讀程序存儲器,在多數嵌入式控制應用系統中,AT89S51能夠將性價比較高的解決方案進行提供。本文中將以單片機為基礎的對帶溫度檢測的電子時鐘的相關設計以及實現進行完成。其借助于C語言通過AT89S51單片機來實現編程的,其對于設計要求進行了滿足,因為收到設計者知識水平的限制,對于該設計是能夠繼續完善和優化的,進而對于“智能”時鐘在根本上實現。
[1]黃仁欣.單片機原理與應用技術第二版[M].北京:清華大學出版社,2010.
[2]趙嘉蔚.單片機原理與接口技術[M].北京:清華大學出版社,2010.
[3]李朝青.單片機原理與接口技術[M].北京:北京航空航天大學出版社,2005.
[4]童詩白,華成英.模擬電子基礎技術[M].北京:高等教育出版社,2001.
[5]鄭峰.51單片機應用系統典型模塊開發大全[M].北京:中國鐵道出版社,2010.
[6]鄒顯圣.基于AT89C51單片機數字時鐘的研究[J].機電產品開發與創新,2009,22(05):61-62.
[7]曾力,劉煒,曹龍.基于AT89C51單片機的數字時鐘設計與仿真[J].信息通信,2015(10):4-5.
[8]李娜,楊杰,牛曉飛.基于單片機的簡易數字電子鐘設計[J].河北北方學院學報(自然科學版).2014,30(06):15-18.
[9]劉翠玲,呂娣,叢俊玲.基于AT89S51單片機數字電子鐘設計與實現[J].信息系統工程,2011(12):16-17.
10.16640/j.cnki.37-1222/t.2016.10.139