<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)學(xué)習(xí)之十七:計(jì)數(shù)器的應(yīng)用

          單片機(jī)學(xué)習(xí)之十七:計(jì)數(shù)器的應(yīng)用

          作者: 時(shí)間:2016-11-18 來源:網(wǎng)絡(luò) 收藏
          一、實(shí)驗(yàn)現(xiàn)象

          本文引用地址:http://www.ex-cimer.com/article/201611/315891.htm

          每次按下k0按鍵2次后,在P0.0輸出一個(gè)周期是100ms的方波信號(hào)。

          二、實(shí)驗(yàn)?zāi)康?/p>

          掌握內(nèi)部定時(shí)/計(jì)數(shù)器作計(jì)數(shù)功能的應(yīng)用

          三、實(shí)驗(yàn)任務(wù)分析

          在前面的3個(gè)試驗(yàn)里面,我們都是讓T0工作于定時(shí)方式,從而產(chǎn)生一段固定的時(shí)間。但是T0和T1除了可以用于定時(shí)外,還可以用于對(duì)外部輸入的脈沖進(jìn)行計(jì)數(shù)。在這個(gè)試驗(yàn)里面,我們學(xué)習(xí)T0工作于計(jì)數(shù)方式時(shí)的編程方法。

          在本試驗(yàn)中,我們用T0對(duì)外部按鍵的動(dòng)作進(jìn)行計(jì)數(shù)??匆幌露〞r(shí)/計(jì)數(shù)器的邏輯圖如下圖所示:

          我們發(fā)現(xiàn)當(dāng)C/T=1的時(shí)候,定時(shí)/計(jì)數(shù)器T0可對(duì)T0(P3.4)端計(jì)數(shù),每當(dāng)T0端產(chǎn)生一個(gè)負(fù)跳變的時(shí)候,計(jì)數(shù)器執(zhí)行一次加1的運(yùn)算。為了讓k0按鍵按下的時(shí)候,在p3.4端產(chǎn)生一個(gè)負(fù)跳變,我們首先要做的是把p1.1和p3.4用導(dǎo)線短路,如下圖13-2所示,這樣才能滿足試驗(yàn)要求。

          這個(gè)試驗(yàn)的思路如下:讓T0在計(jì)數(shù)2次時(shí),產(chǎn)生溢出中斷,在T0的中斷服務(wù)程序我們啟動(dòng)T1開始計(jì)數(shù),然后在T1的溢出中斷里面把P0.0取反,這樣就可以產(chǎn)生符合我們實(shí)驗(yàn)要求的信號(hào)

          為了讓k0按下2次后T0產(chǎn)生溢出中斷,我們可以讓T0工作于計(jì)數(shù)方式,并選擇可重新置入計(jì)數(shù)初值的8位計(jì)數(shù)器模式2;為了產(chǎn)生100ms的方波信號(hào),我們讓T1工作于定時(shí)方式,選擇16位計(jì)數(shù)器模式。所以tmod的初值應(yīng)該是:0001 0110,即16h。

          四、實(shí)驗(yàn)程序

          org 0000h

          ajmp main

          org 000bh ;T0溢出中斷入口地址

          ajmp time0

          org 001bh

          ajmp time1 ;T1溢出中斷入口地址

          org 0020h

          main: clr p1.5

          setb p0.0

          mov sp,#70h ;設(shè)置堆棧

          mov tmod,#16h ;T0、T1初始化,T0工作在計(jì)數(shù)方式,T1工作在定時(shí)方式

          mov tl0,#0feh ;T0置計(jì)數(shù)初值,計(jì)數(shù)2次后產(chǎn)生溢出中斷

          mov th0,#0feh ;計(jì)數(shù)初值置入常數(shù)緩沖區(qū)

          mov th1,#3ch ;T1置入計(jì)數(shù)初值,產(chǎn)生50ms定時(shí)

          mov tl1,#0b0h

          setb et0 ;允許T0溢出中斷

          setb et1 ;允許T1溢出中斷

          setb tr0 ;啟動(dòng)T0計(jì)數(shù)

          setb ea cpu開中斷

          ajmp $

          time0: setb tr1 ;啟動(dòng)T1計(jì)數(shù)

          reti

          time1: mov th1,#3ch ;T1重裝計(jì)數(shù)初值

          mov tl1,#0b0h

          cpl p0.0 ;P0.0取反

          reti

          end

          五、幾點(diǎn)說明

          在運(yùn)行該程序時(shí),有時(shí)可能會(huì)發(fā)現(xiàn)并不是按鍵按下兩次后產(chǎn)生信號(hào),這是因?yàn)槭謩?dòng)按鍵的時(shí)候可能會(huì)發(fā)生抖動(dòng)情況,導(dǎo)致計(jì)數(shù)器計(jì)數(shù)的緣故。



          關(guān)鍵詞: 單片機(jī)計(jì)數(shù)

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();