<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 單片機學(xué)習之十七:計數器的應用

單片機學(xué)習之十七:計數器的應用

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

本文引用地址:http://dyxdggzs.com/article/201611/315891.htm

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

二、實(shí)驗目的

掌握內部定時(shí)/計數器作計數功能的應用

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

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

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

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

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

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

四、實(shí)驗程序

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 ;設置堆棧

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

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

mov th0,#0feh ;計數初值置入常數緩沖區

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

mov tl1,#0b0h

setb et0 ;允許T0溢出中斷

setb et1 ;允許T1溢出中斷

setb tr0 ;啟動(dòng)T0計數

setb ea cpu開(kāi)中斷

ajmp $

time0: setb tr1 ;啟動(dòng)T1計數

reti

time1: mov th1,#3ch ;T1重裝計數初值

mov tl1,#0b0h

cpl p0.0 ;P0.0取反

reti

end

五、幾點(diǎn)說(shuō)明

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



關(guān)鍵詞: 單片機計數

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>