<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è) > 嵌入式系統 > 設計應用 > 利用TA89C2051設計的電子琴方案

利用TA89C2051設計的電子琴方案

作者: 時(shí)間:2010-04-22 來(lái)源:網(wǎng)絡(luò ) 收藏

  2.工作方式1

  工作方式1是16位的定時(shí)/計數方式,將M1M0設為01即可,其它特性與工作方式0相同。

  3:工作方式2

  8位自動(dòng)裝入時(shí)間常數方式。由TL1構成8位計數器,TH1僅用來(lái)存放時(shí)間常數??磮D5所示,每當計數溢出,就會(huì )打開(kāi)T(0/1)的高、低8位之間的開(kāi)關(guān),計預置數進(jìn)入低8位。這是由硬件自動(dòng)完成的,不需要由人工干預。通常這種式作方式用于波特率發(fā)生器,用于這種用途時(shí),定時(shí)器就是為了提供一個(gè)時(shí)間基準。計數溢出后不需要做事情,要做的僅僅只有一件,就是重新裝入預置數,再開(kāi)始計數,而且中間不要任何延遲,可見(jiàn)這個(gè)任務(wù)用工作方式2來(lái)完成是最妙不過(guò)了。

  4.工作方式3

  2個(gè)8位的計數器,只適合于定時(shí)器0。這種式作方式之下,定時(shí)/計數器0被拆成2個(gè)獨立的定時(shí)/計數器來(lái)用。其中,TL0可以構成8位的定時(shí)器或計數器的工作方式,而THO則只能作為定時(shí)器來(lái)用。我們知道作定時(shí)、計數器來(lái)用需要控制位TR0,計滿(mǎn)后溢出需要有溢出標記TF0。T0被分成兩個(gè)來(lái)用,那就要兩套控制及溢出標記,TLO還是用原來(lái)的T0的標記,而TH0則借用T1的標記。如此T1就無(wú)標記、控制可用因此一般只有在T1以工作方式2運行(當波特率發(fā)生器用)時(shí),才讓T0工作于方式3的。

  (二)定時(shí)器/計數器的定時(shí)/計數范圍

  工作方式O:13位定時(shí)/計數方式,因此,最多可以計到2^13,也就是8192次。對于12MHz的晶振,單片機的機器周期是1us。則工作方式0最大定時(shí)時(shí)間是8.192us。

  工作方式1:16位定時(shí)/計數方式,因此,最多可以計到2^16,也就是65536次。對于12MHz晶振,工作方式1最大定時(shí)時(shí)間是65536 μ s。

  工作方式2和工作方式3,都是8位的定時(shí)/計數方式,因此,最多可以計到2^8,也說(shuō)是256次。對于12MHz晶振,工作方式1最大定時(shí)時(shí)間是256 μ s。

  計數初值的計算方法:用最大計數量減去需要的計數次數即可。例:如果T0運行于定時(shí)狀態(tài),單片機的晶振是12MHz,要求定時(shí)lOOus,那么定時(shí)器要計 100個(gè)機器周期,當TO工作在工作方式O時(shí)計數初值應該是8192―100=8092;工作在方式1時(shí)的計數初值應該是65536-100= *36;工作在方式2,3時(shí)的計數初值應該是256―100=156。

  系統軟件流程圖如圖所示。


  開(kāi)機時(shí)。第一步是對定時(shí)器T0進(jìn)行初始化,設定它的工作狀態(tài)(對于本系統將T0設定為工作方式O);然后判斷是否有鍵按下,如果沒(méi)有按鍵按下,繼續判斷,如果有按鍵按下,則判斷是哪個(gè)鍵按下;再根據按鍵的功能將計數初值裝入定時(shí)器T0中中并啟動(dòng)T0,當T0定時(shí)完畢后,重新裝入計數初值繼續定時(shí)并將P3. 6取反,再次定時(shí)完畢后再一次的裝入計數初值繼續定時(shí)并將P3.6取反,一直循環(huán)此操作直到按鍵釋放為止,按鍵釋放后停止T0工作并再次判斷是否又有按鍵按下,并繼續執行以前的過(guò)程。


  定時(shí)器T0工作在方式0,13位計數方式所以最大的計數次數為2^13=8192次,由于單片機的晶振是12MHz則機器周期是1 μ s,即定時(shí)器最大可以定時(shí)8192 μ s。各個(gè)音符周期的一半即高電平或低電平持續的時(shí)間就是定時(shí)器需要定時(shí)的時(shí)間,所以對于各個(gè)音符的計數初值計算方法如下:

  設音符的頻率為f,則計數初值=8192一各個(gè)音符的周期=8192-

  計數初值如表2所示:


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 方案 電子琴 設計 TA89C2051 利用

評論


相關(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>