• 
    

    
    

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

      ?

      基于AT89C52單片機(jī)的數(shù)字秒表設(shè)計(jì)

      2016-11-19 20:29:42崔紫騰李小蕊
      物聯(lián)網(wǎng)技術(shù) 2016年10期
      關(guān)鍵詞:C語言單片機(jī)

      崔紫騰+李小蕊

      摘 要:文中設(shè)計(jì)了基于單片機(jī)技術(shù)原理的簡易秒表,該設(shè)計(jì)以AT89C52芯片作為核心元件,采用C語言為開發(fā)工具,通過數(shù)碼管顯示計(jì)時(shí)結(jié)果,并以Proteus和Keil軟件作為開發(fā)平臺(tái),對(duì)所設(shè)計(jì)的數(shù)字秒表進(jìn)行仿真,調(diào)試及優(yōu)化設(shè)計(jì),并觀察實(shí)際的工作狀態(tài),從而達(dá)到預(yù)期效果。

      關(guān)鍵詞:單片機(jī);數(shù)字秒表;C語言;AT89C52芯片

      中圖分類號(hào):TP368 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2016)10-00-02

      0 引 言

      目前,計(jì)算機(jī)技術(shù)為生活帶來了巨大的變化,微型計(jì)算機(jī)的應(yīng)用已滲透到我們生活的各個(gè)領(lǐng)域。單片機(jī)作為計(jì)算機(jī)發(fā)展的一個(gè)重要分支領(lǐng)域,其具有系統(tǒng)結(jié)構(gòu)簡單,使用方便,可實(shí)現(xiàn)模塊化,環(huán)境適應(yīng)能力強(qiáng)等特點(diǎn)。數(shù)字秒表在生活、運(yùn)動(dòng)、競賽中起著非常重要的作用,已發(fā)展成為人們?nèi)粘S?jì)時(shí)的必需品,本文結(jié)合單片機(jī)設(shè)計(jì)及C語言編程實(shí)現(xiàn)了一種基于AT89C52單片機(jī)的數(shù)字秒表。

      1 總體方案設(shè)計(jì)

      本設(shè)計(jì)由AT89C52單片機(jī)、電源電路、晶振電路、復(fù)位電路、顯示電路以及按鍵電路等組成。軟件系統(tǒng)采用C語言編寫程序,包括顯示、計(jì)數(shù)、中斷、延時(shí)、按鍵消抖程序等。數(shù)字秒表的總體框圖如圖1所示。

      2 硬件電路設(shè)計(jì)

      2.1 晶體振蕩電路

      89C52芯片內(nèi)部有一個(gè)由高增益反相放大器構(gòu)成的振蕩電路,XTAL1和XTAL2分別為振蕩電路的輸入和輸出端[1]。本設(shè)計(jì)采用52單片機(jī)12 MHz的內(nèi)部振蕩方式,其振蕩電路如圖2所示,電容器C1、C2可以使電路具有穩(wěn)定的振蕩頻率和快速起振,電容值一般為20100 pF。本設(shè)計(jì)采用大小為30 pF的電容。

      2.2 復(fù)位電路

      為確保微機(jī)系統(tǒng)中的電路穩(wěn)定可靠的工作,復(fù)位電路必不可少。復(fù)位電路可以使中央處理器CPU以及其他功能部件都恢復(fù)到一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作[2]。從圖3所示的電路可以看出其可實(shí)現(xiàn)上電復(fù)位和按鍵復(fù)位功能。

      上電后,由于電容C3的充電和反相門的作用,使RST持續(xù)一段時(shí)間的高電平。當(dāng)單片機(jī)進(jìn)入工作狀態(tài)時(shí),按下復(fù)位按鈕,使RST引腳接到高電平,電容C3放電完后可實(shí)現(xiàn)上電加按鍵復(fù)位的操作。復(fù)位電路如圖3所示。

      2.3 按鍵電路

      鍵盤從結(jié)構(gòu)上分為獨(dú)立式按鍵和矩陣式鍵盤[3]。由于本設(shè)計(jì)按鍵較少所以采用獨(dú)立式按鍵,即按鍵直接和I/O口連接,電路圖如圖4所示。此處設(shè)計(jì)了五個(gè)按鍵,分別為開始/暫停、記錄、上翻、下翻、清零,鍵盤按鍵識(shí)別方法采用查詢法,并設(shè)計(jì)了防抖動(dòng)程序。當(dāng)按鍵沒按下時(shí),CPU對(duì)應(yīng)的I/O接口由于內(nèi)部有上拉電阻,其輸入為高電平;當(dāng)某鍵被按下后,對(duì)應(yīng)的I/O接口變成低電平。只要在程序中判斷I/O接口的狀態(tài)即可知道獲得的鍵值,并執(zhí)行鍵功能程序。

      2.4 顯示電路

      單片機(jī)應(yīng)用系統(tǒng)中使用的顯示器件主要有LED和LCD。在一位LED顯示器中,當(dāng)某一段加上正向電流時(shí),該段被點(diǎn)亮,沒有通電的則不亮[4]。LED顯示器一般由8個(gè)發(fā)光二極管組成,可分為共陽極與共陰極兩種。共陽極將8個(gè)發(fā)光二極管的陽極連在一起,成為一個(gè)公共端。共陰極將8個(gè)發(fā)光二極管的陰極連在一起,成為一個(gè)公共端[5]。LED顯示分為靜態(tài)顯示與動(dòng)態(tài)顯示[4]。靜態(tài)顯示在顯示某一字符時(shí),電路具有鎖存功能。動(dòng)態(tài)顯示使LED在一個(gè)顯示周期內(nèi)分別顯示一段時(shí)間,用P0口驅(qū)動(dòng)顯示。本設(shè)計(jì)采用如圖5所示的共陽極LED動(dòng)態(tài)顯示電路。

      2.5 硬件整體電路

      在Proteus中繪制的硬件電路原理圖如圖6所示。

      3 軟件設(shè)計(jì)

      本文設(shè)計(jì)的模塊程序采用C語言編寫,在編寫代碼時(shí),將程序模塊化設(shè)計(jì)。在模塊設(shè)計(jì)的過程中,需讓各模塊的程序完成明確的任務(wù),實(shí)現(xiàn)某個(gè)具體的功能,并盡量減少模塊之間的控制參數(shù)和數(shù)據(jù)參數(shù)。數(shù)字秒表軟件系統(tǒng)模塊如圖7所示。

      3.1 初始化模塊

      定時(shí)器共有四種工作方式,分別為方式0、方式1、方式2、方式3。TMOD寄存器中的M0、M1位為01時(shí),定時(shí)器被選為工作方式1[6]。初始化模塊主要根據(jù)晶振頻率來設(shè)定定時(shí)器的中斷時(shí)間,讓單片機(jī)定時(shí)器工作在方式1下。

      3.2 中斷模塊

      CPU在處理某一事件A時(shí),能對(duì)外界發(fā)生的事情B請(qǐng)求CPU迅速處理。CPU暫停中斷當(dāng)前的工作,轉(zhuǎn)去處理事件B,CPU將事件B處理完畢后,再回到原來的事件A被中斷的地方繼續(xù)處理事件A,這一過程稱為中斷[7]。AT89C52單片機(jī)提供了5個(gè)中斷源,兩個(gè)外部中斷源和3個(gè)內(nèi)部中斷源。每個(gè)中斷源都有一個(gè)中斷申請(qǐng)標(biāo)志,串行口占兩個(gè)中斷標(biāo)志位,共6個(gè)中斷標(biāo)志。

      3.3 顯示模塊

      本設(shè)計(jì)采用4位7段LED數(shù)碼管,采用共陽極顯示器。為使LED點(diǎn)亮,位選信號(hào)應(yīng)為高電平,段選信號(hào)應(yīng)為低電平。使用動(dòng)態(tài)顯示的方法,AT89C52單片機(jī)的P1口和P2口分別為LED的段選和位選。由于在Proteus中模擬仿真時(shí),它的反應(yīng)速度太慢,比不上硬件,所以會(huì)出現(xiàn)顯示不清楚的情況,這時(shí)就需要加上消隱程序以消除這種情況。數(shù)碼管顯示流程圖如圖8所示。

      3.4 按鍵模塊

      本文設(shè)計(jì)的按鍵檢測模塊函數(shù)采用查詢法實(shí)現(xiàn)按鍵檢測,通過檢測接口上的電平變化可以確定哪個(gè)按鍵被按下。程序的按鍵模塊流程圖如圖9所示。

      4 結(jié) 語

      本文設(shè)計(jì)的數(shù)字秒表采用軟件與硬件相結(jié)合的開發(fā)模式,具有線路簡單、系統(tǒng)設(shè)計(jì)合理、執(zhí)行速度快、性能穩(wěn)定、程序精簡易懂等特點(diǎn)。對(duì)于程序設(shè)計(jì),應(yīng)采用模塊化設(shè)計(jì)以優(yōu)化結(jié)構(gòu)。最終,實(shí)現(xiàn)了開始、暫停、記錄、查詢等功能,達(dá)到了預(yù)期效果。

      參考文獻(xiàn)

      [1]高文慶,呂英英.基于AT89C51單片機(jī)的數(shù)字秒表設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2012,8(22):5344-5346.

      [2]王新娜,孫新鳳.基于ATmega16單片機(jī)的簡易秒表的設(shè)計(jì)與制作[J].硅谷,2011(23):59.

      [3]屈楊.數(shù)字秒表的設(shè)計(jì)[J].科技信息,2013(2):206-207.

      [4]郭海麗.基于單片機(jī)的數(shù)字秒表設(shè)計(jì)[J].電子元器件應(yīng)用,2012(1):27-29.

      [5]雷躍榮,詹旭,杜玲艷,等.基于單片機(jī)的智能秒表設(shè)計(jì)[J].四川理工學(xué)院學(xué)報(bào)(自然科學(xué)版),2010,23(5):602-604.

      [6]李彩娜,王智磊.基于LCD1602的數(shù)字電子鐘設(shè)計(jì)[J].無錫南洋職業(yè)技術(shù)學(xué)院論叢,2012(Z1):70-74.

      [7]樓俊君.基于STC89C51的簡易秒表的設(shè)計(jì)[J].福建電腦,2015,31(9):116,145.endprint

      猜你喜歡
      C語言單片機(jī)
      基于Visual Studio Code的C語言程序設(shè)計(jì)實(shí)踐教學(xué)探索
      基于單片機(jī)的SPWM控制逆變器的設(shè)計(jì)與實(shí)現(xiàn)
      電子制作(2019年13期)2020-01-14 03:15:28
      基于單片機(jī)的層次漸變暖燈的研究
      電子制作(2019年15期)2019-08-27 01:12:10
      基于單片機(jī)的便捷式LCF測量儀
      電子制作(2019年9期)2019-05-30 09:42:02
      基于C語言的計(jì)算機(jī)軟件編程
      電子制作(2018年16期)2018-09-26 03:27:08
      小議PLC與單片機(jī)之間的串行通信及應(yīng)用
      電子制作(2018年12期)2018-08-01 00:48:04
      C語言程序設(shè)計(jì)課程教學(xué)與學(xué)科專業(yè)相結(jié)合的探索
      基于單片機(jī)的平衡控制系統(tǒng)設(shè)計(jì)
      電子制作(2017年19期)2017-02-02 07:08:27
      高職高專院校C語言程序設(shè)計(jì)教學(xué)改革探索
      論子函數(shù)在C語言數(shù)據(jù)格式輸出中的應(yīng)用
      朝阳区| 徐汇区| 绥宁县| 武强县| 翁源县| 宕昌县| 长武县| 屏山县| 蒲江县| 鲁山县| 呼伦贝尔市| 江孜县| 东源县| 永年县| 纳雍县| 浪卡子县| 台中市| 沭阳县| 德庆县| 广宁县| 兴义市| 瑞丽市| 鱼台县| 湘西| 永仁县| 如皋市| 赤水市| 漠河县| 西和县| 崇义县| 吉木萨尔县| 玛曲县| 大竹县| 娄底市| 禄丰县| 拉孜县| 沧州市| 安远县| 延长县| 交城县| 东源县|