• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于51單片機(jī)的電子時(shí)鐘設(shè)計(jì)

      2017-07-08 04:27:09許珂樂(lè)
      現(xiàn)代電子技術(shù) 2017年13期
      關(guān)鍵詞:蜂鳴器鬧鐘時(shí)鐘

      許珂樂(lè)

      摘 要: 利用Atmel公司的IEEE1149.7仿真器對(duì)電子時(shí)鐘進(jìn)行開(kāi)發(fā),用實(shí)驗(yàn)板實(shí)現(xiàn)時(shí)間、日期、定時(shí)及其設(shè)定功能,詳細(xì)對(duì)軟件編程流程以及調(diào)試進(jìn)行說(shuō)明,并對(duì)計(jì)時(shí)誤差進(jìn)行分析及校正,提出了定時(shí)音與顯示相沖突問(wèn)題及解決方案。由于單片機(jī)具有低成本、高性能等特點(diǎn),在自動(dòng)控制產(chǎn)品中得到了廣泛的應(yīng)用。整個(gè)電路結(jié)構(gòu)簡(jiǎn)單,可靠性能高,易于推廣和移植,具有廣闊的應(yīng)用前景。

      關(guān)鍵詞: 單片機(jī); IEEE1149.7仿真器; 電子時(shí)鐘; C語(yǔ)言

      中圖分類(lèi)號(hào): TN79?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2017)13?0175?03

      Abstract: The IEEE1149.7 simulator developed by Atmel Company is used to develop the electronic clock. The test board is adopted to realize the functions of time, date and timing, and their setting functions. The software programming flow and debugging are described in detail. The timing error is analyzed and corrected. The problem that the timing sound is conflicted with the display, and its solution are put forward. Since the single chip microcomputer (SCM) has the characteristics of low cost and high performance, it is widely used in the automatic control products. The whole design has the advantages of simple circuit structure and high reliability, is easy to popularize and transplant, and has broad application prospect.

      Keywords: single chip microcomputer; IEEE1149.7 simulator; electronic clock; C programming language

      0 引 言

      在日常生活和工作中常常用到定時(shí)控制,如擴(kuò)印過(guò)程中的曝光定時(shí)等。早期常用的一些時(shí)間控制單元都使用模擬電路設(shè)計(jì)制作,其定時(shí)準(zhǔn)確性和重復(fù)精度不是很理想,現(xiàn)在基本上都是基于數(shù)字技術(shù)的新一代產(chǎn)品,隨著單片機(jī)性?xún)r(jià)比的不斷提高,新一代產(chǎn)品的應(yīng)用也越來(lái)越廣泛。其功能強(qiáng)大、體積小、質(zhì)量輕、靈活好用,配以適當(dāng)?shù)慕涌谛酒梢詷?gòu)成各種各樣、功能各異的微電子產(chǎn)品。

      隨著電子技術(shù)的飛速發(fā)展,家用電器和辦公電子設(shè)備逐漸增多,不同的設(shè)備都有自己的控制器,使用起來(lái)很不方便。這些具有人們所需的智能化特性產(chǎn)品減輕了人的勞動(dòng),擴(kuò)大了數(shù)字化的范圍,為家庭數(shù)字化提供了可能。根據(jù)這種實(shí)際情況,設(shè)計(jì)了一個(gè)單片機(jī)多功能時(shí)鐘系統(tǒng),它有基本的時(shí)間功能,還有秒表、鬧鐘功能,也可擴(kuò)展為定時(shí)對(duì)家電等電氣產(chǎn)品的自動(dòng)控制,可以避免多種控制器的混淆,利用一個(gè)控制器對(duì)多路電器進(jìn)行控制;可增加溫度傳感器,進(jìn)行實(shí)時(shí)溫度顯示,進(jìn)一步擴(kuò)展為利用不同的溫度對(duì)某些電氣產(chǎn)品進(jìn)行自動(dòng)控制。

      1 系統(tǒng)功能及操作

      1.1 系統(tǒng)功能的確定

      系統(tǒng)具有時(shí)間、秒表、鬧鐘功能,并可以對(duì)時(shí)間、秒表、鬧鐘進(jìn)行設(shè)置,鬧鐘使用蜂鳴器提醒。要求計(jì)時(shí)精度盡量提高。顯示格式為:

      時(shí)間:“時(shí)”(第1,2位),“分”(第3,4位),“秒”(第5,6位);

      秒表:“時(shí)”(第1,2位),“分”(第3,4位),“秒”(第5,6位);

      鬧鐘:“時(shí)”(第1,2位),“分”(第3,4位),“秒”(第5,6位)。

      1.2 系統(tǒng)操作說(shuō)明

      (1) 按開(kāi)始鍵自動(dòng)進(jìn)入時(shí)間顯示,開(kāi)始為0,按K1鍵進(jìn)入更改時(shí)間,閃爍位為可更改位,按K2鍵調(diào)整更改位,K3鍵為自增鍵,K4鍵為自減鍵,修改成功之后按K1鍵確定修改成功;

      (2) 按K2鍵進(jìn)入秒表功能,再次按K2鍵秒表開(kāi)始計(jì)時(shí),K3鍵為秒表暫停鍵,繼續(xù)則按K2鍵,K4鍵為清零鍵;

      (3) 按K3鍵進(jìn)入鬧鐘功能,進(jìn)去之后閃爍位為可更改位,按K2鍵調(diào)整更改位,K3鍵為自增鍵,K4鍵為自減鍵。

      2 系統(tǒng)硬件設(shè)計(jì)

      2.1 實(shí)驗(yàn)板電路結(jié)構(gòu)框圖

      實(shí)驗(yàn)板電路結(jié)構(gòu)框圖如圖1所示。

      2.2 數(shù)碼顯示電路

      如圖2所示為數(shù)碼顯示電路,仿真器使用了6個(gè)共陽(yáng)極的數(shù)碼管,P0口為段碼信號(hào)線(xiàn),AD0~AD7為段選,A8~A15為位選。

      2.3 蜂鳴器電路

      蜂鳴器電路的硬件原理圖如圖3所示。此電路用于定時(shí)發(fā)出提示音,可以讓蜂鳴器發(fā)出不同的聲音。此電路用于產(chǎn)生定時(shí)器提示音。

      3 系統(tǒng)軟件設(shè)計(jì)

      3.1 數(shù)據(jù)單元分配

      數(shù)據(jù)存儲(chǔ)單元、標(biāo)志單元的分配表見(jiàn)表1,表2。

      3.2 計(jì)時(shí)時(shí)鐘實(shí)現(xiàn)

      時(shí)鐘的最小計(jì)時(shí)單位是s,使用定時(shí)器的方式1,最大的定時(shí)時(shí)間也只能達(dá)到131 ms。可把定時(shí)器的定時(shí)時(shí)間定為50 ms,這樣,計(jì)數(shù)溢出20次即可得到時(shí)鐘的最小計(jì)時(shí)單位。計(jì)數(shù)20次可以用軟件實(shí)現(xiàn),對(duì)定時(shí)器溢出次數(shù)進(jìn)行計(jì)數(shù),計(jì)滿(mǎn)20次即為1 s。從秒到分,從分到時(shí)都是通過(guò)軟件累加并進(jìn)行比較的方法實(shí)現(xiàn)的。

      (1) 計(jì)時(shí)子程序模塊的實(shí)現(xiàn)

      當(dāng)T0中斷時(shí),執(zhí)行本程序,因T0設(shè)為50 ms中斷,故中斷20次為1 s。中斷程序分別有20次計(jì)數(shù)(1 s),60次計(jì)數(shù)(1 min),60次計(jì)數(shù)(1 h),等于24時(shí)又重新開(kāi)始。

      (2) 時(shí)鐘設(shè)定子程序模塊的實(shí)現(xiàn)

      當(dāng)設(shè)定時(shí)間時(shí),斷開(kāi)T0中斷,秒單元清0,進(jìn)入時(shí)、分單元設(shè)定。設(shè)定好后重裝T0初值,開(kāi)T0中斷。

      (3) 日期、定時(shí)設(shè)定子程序模塊的實(shí)現(xiàn)

      日期、定時(shí)的設(shè)定同時(shí)鐘設(shè)定。定時(shí)設(shè)定時(shí),把時(shí)鐘的秒位換成定時(shí)標(biāo)志位,“00”為當(dāng)路定時(shí)關(guān),“01”為當(dāng)路定時(shí)開(kāi)。

      3.3 程序說(shuō)明

      (1) 程序初始化

      程序初始化時(shí),清相應(yīng)內(nèi)存單元(20H~4FH共48個(gè)單元),送時(shí)間(00時(shí)00分00秒),送定時(shí)器T0,T1初值,TH0=TH1=4CH,TL0=TL1=00H,特殊寄存器(SP=50H,TMOD=11H)值等。

      (2) 誤差分析及校正

      當(dāng)T0中斷時(shí),需重裝定時(shí)初值,且要加上從斷開(kāi)T0中斷到允許T0中斷共有13個(gè)周期,以減小誤差,故理論重裝定時(shí)初值為(TH0)=4CH,(TL0)=13H。但該外接晶振電路的晶振頻率可調(diào),可能出現(xiàn)誤差,所以實(shí)際不是這個(gè)值。

      經(jīng)調(diào)試,當(dāng)定時(shí)初值為(TH0)=4CH,(TL0)=06H時(shí),24 h約慢2 s,所以每當(dāng)計(jì)時(shí)24 h之后,給秒單元(30H)送02H,使秒累加時(shí)從2加起,24 h就少加2 s,即可使時(shí)間得到校正。

      (3) 實(shí)現(xiàn)閃動(dòng)設(shè)定

      閃動(dòng)可選用段碼送00H實(shí)現(xiàn),也可禁止當(dāng)前位顯示,選通位送0實(shí)現(xiàn)。本設(shè)計(jì)選用后者實(shí)現(xiàn)閃動(dòng),用定時(shí)器T1進(jìn)行控制。

      (4) 實(shí)現(xiàn)連續(xù)加1

      先判斷鍵是否松開(kāi),若松開(kāi),則只執(zhí)行一次加1程序段,進(jìn)行單次加1;若未松開(kāi),則連續(xù)執(zhí)行加1程序段,實(shí)現(xiàn)連續(xù)加1。每執(zhí)行一次加1程序段就調(diào)用顯示子程序進(jìn)行延時(shí),對(duì)調(diào)節(jié)速度進(jìn)行控制。本系統(tǒng)以5 Hz的速度連續(xù)加1,這樣能快速對(duì)時(shí)間、鬧鐘、蜂鳴器進(jìn)行設(shè)定。

      (5) 定時(shí)音與顯示相沖突問(wèn)題及解決方案

      由于蜂鳴器響時(shí)P3.2口的電平呈高頻變化,頻率1~2 kHz,其間隙時(shí)間為0.5~1 ms,小于6 ms,因顯示時(shí)每個(gè)數(shù)碼管顯示1 ms,至少需要6 ms,故蜂鳴器響時(shí)無(wú)法進(jìn)行顯示。為解決此問(wèn)題,可增加鎖存器,采用靜態(tài)顯示;也可增加一語(yǔ)音芯片,既可解決此問(wèn)題,也可把定時(shí)音換成音樂(lè)或語(yǔ)音提示,或增加其他功能,使系統(tǒng)功能更強(qiáng)。

      4 系統(tǒng)調(diào)試

      該時(shí)鐘程序的功能模塊先后實(shí)現(xiàn)的順序?yàn)椋褐鞒绦颉鷷r(shí)間模塊→顯示模塊→時(shí)間設(shè)定及其顯示模塊→鬧鐘及其顯示模塊→鬧鐘設(shè)定及其顯示模塊→定時(shí)提示音及與顯示相沖突的協(xié)調(diào)模塊。每完成一個(gè)模塊就與前一個(gè)已完成的模塊結(jié)合起來(lái)調(diào)試,直至實(shí)現(xiàn)相應(yīng)功能再編寫(xiě)下一模塊程序。在與主程序銜接時(shí),主程序和各子程序也需做相應(yīng)的改動(dòng),以便與子程序更好的銜接,特別是顯示子程序需做較大改動(dòng),以便對(duì)不同內(nèi)容進(jìn)行顯示。

      程序用C語(yǔ)言程序編寫(xiě),該軟件還可進(jìn)行軟件仿真。用C語(yǔ)言編好程序后,先編譯,把C語(yǔ)言編譯成二進(jìn)制代碼和十六進(jìn)制代碼。若編譯無(wú)法進(jìn)行,說(shuō)明程序有語(yǔ)法錯(cuò)誤,需進(jìn)行修改。編譯成功后則可進(jìn)行軟件仿真,仿真可單步運(yùn)行,也可連續(xù)運(yùn)行。仿真時(shí)應(yīng)調(diào)出數(shù)據(jù)窗口,看各單元數(shù)據(jù)是否正確,這是軟件仿真的目的。當(dāng)然,有些錯(cuò)誤軟件仿真不容易發(fā)現(xiàn),看是否正常,若不正常,再根據(jù)出錯(cuò)的地方返回軟件仿真,查看相應(yīng)的數(shù)據(jù)單元,再修改程序,這樣反復(fù)調(diào)試,直至程序可用,在實(shí)驗(yàn)板上能正常運(yùn)行,至此完成系統(tǒng)調(diào)試。

      5 結(jié) 論

      該系統(tǒng)經(jīng)驗(yàn)證,滿(mǎn)足設(shè)計(jì)要求。由于加入了計(jì)時(shí)修正,在精度方面已經(jīng)相當(dāng)準(zhǔn)確,還可以達(dá)到更高精度,需要精確計(jì)算定時(shí)器T0中斷次數(shù)的誤差,再予以修正;在軟件的定時(shí)部分可以進(jìn)行改進(jìn),用循環(huán)程序?qū)崿F(xiàn),每次循環(huán)只需更改相應(yīng)單元即可,這樣會(huì)使該設(shè)計(jì)系統(tǒng)更精簡(jiǎn)。

      參考文獻(xiàn)

      [1] 肖廣兵.ARM嵌入式開(kāi)發(fā)實(shí)例?基于STM32的系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2013.

      [2] 王永虹.STM32系列ARM CortexM3微控制器原理與實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2008.

      [3] 郭天祥.51單片機(jī)C語(yǔ)言教程[M].北京:電子工業(yè)出版社,2008.

      [4] 譚浩強(qiáng).C程序設(shè)計(jì)[M].4版.北京:清華大學(xué)出版社,2011.

      [5] 徐曉平,程傳勝.PCB設(shè)計(jì)標(biāo)準(zhǔn)教程[M].北京:北京郵電大學(xué)出版社,2008.

      [6] 何立民.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2013.

      [7] 李廣弟.單片機(jī)基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,2014.

      [8] 何希才.新型實(shí)用電子電路400例[M].北京:電子工業(yè)出版社,2014.

      [9] 徐愛(ài)鈞.Keil C51單片機(jī)高級(jí)語(yǔ)言應(yīng)用編程與實(shí)踐[M].北京:電子工業(yè)出版社,2013.

      [10] 杜樹(shù)春.基于Proteus和Keil C51的單片機(jī)設(shè)計(jì)與仿真[M].北京:電子工業(yè)出版社,2012.

      [11] 許維鎣,鄭榮煥.Proteus電子電路設(shè)計(jì)及仿真[M].北京:中國(guó)電力出版社,2014.

      [12] 張毅剛.基于Proteus的單片機(jī)課程的基礎(chǔ)實(shí)驗(yàn)與課程設(shè)計(jì)[M].北京:人民郵電出版社,2012.

      [13] LOUDON Kyle.算法精解:C語(yǔ)言描述[M].肖翔,陳舸,譯.北京:機(jī)械工業(yè)出版社,2012.

      [14] 中尾真治.活學(xué)活用PIC單片機(jī)C語(yǔ)言編程[M].盧伯英,譯.北京:科學(xué)出版社,2012.

      [15] 內(nèi)格爾.C#高級(jí)編程:C# 5.0 & .NET 4.5.1[M].李銘,譯.9版.北京:清華大學(xué)出版社,2014.

      猜你喜歡
      蜂鳴器鬧鐘時(shí)鐘
      電動(dòng)自行車(chē)產(chǎn)品車(chē)速提示音檢測(cè)現(xiàn)狀和整改技術(shù)研究(2)
      多彩創(chuàng)意鬧鐘
      別樣的“時(shí)鐘”
      古代的時(shí)鐘
      掌控板制作簡(jiǎn)易鋼琴
      天然鬧鐘
      單片機(jī)驅(qū)動(dòng)蜂鳴器的程序設(shè)計(jì)
      小鬧鐘的提醒
      能幫我設(shè)個(gè)鬧鐘不等四則
      有趣的時(shí)鐘
      北宁市| 铁岭市| 鄂伦春自治旗| 奇台县| 清河县| 嘉鱼县| 疏附县| 武强县| 滦南县| 永寿县| 遵义市| 浦江县| 乌审旗| 青岛市| 叶城县| 平原县| 宜良县| 阿图什市| 应城市| 祁东县| 南丹县| 嵩明县| 汝州市| 茂名市| 江北区| 贡觉县| 施甸县| 武邑县| 耒阳市| 仪征市| 庐江县| 南通市| 寻乌县| 禹州市| 陕西省| 会同县| 鲁山县| 仁寿县| 突泉县| 山阴县| 于都县|