?? dpjjx19.htm
字號:
</font><FONT SIZE=3><P ALIGN="JUSTIFY"></FONT><LI><FONT SIZE=3>GATE=0</font><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>,分析一下邏輯,</FONT><FONT SIZE=3>GATE</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>非后是</FONT><FONT SIZE=3>1</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>,進入或門,或門總是輸出</FONT><FONT SIZE=3>1</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>,和或門的另一個輸入端</FONT><FONT SIZE=3>INT1</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>無關,在這種情況下,開關的打開、合上只取決于</FONT><FONT SIZE=3>TR1</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>,只要</FONT><FONT SIZE=3>TR1</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>是</FONT><FONT SIZE=3>1</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>,開關就合上,計數脈沖得以暢通無阻,而如果</FONT><FONT SIZE=3>TR1</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>等于</FONT><FONT SIZE=3>0</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>則開關打開,計數脈沖無法通過,因此定時</FONT><FONT SIZE=3>/</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>計數是否工作,只取決于</FONT><FONT SIZE=3>TR1</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>。</font></LI><FONT FACE="宋體" LANG="ZH-CN" SIZE=3><p></P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY"></FONT><LI><FONT SIZE=3>GATE=1</font><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>,在此種情況下,計數脈沖通路上的開關不僅要由</FONT><FONT SIZE=3>TR1</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>來控制,而且還要受到</FONT><FONT SIZE=3>INT1</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>引腳的控制,只有</FONT><FONT SIZE=3>TR1</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>為</FONT><FONT SIZE=3>1</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>,且</FONT><FONT SIZE=3>INT1</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>引腳也是高電平,開關才合上,計數脈沖才得以通過。這個特性可以用來測量一個信號的高電平的寬度,想想看,怎么測?</font></LI><FONT FACE="宋體" LANG="ZH-CN" SIZE=3><p></P></font></OL><P ALIGN="JUSTIFY">
<FONT FACE="宋體" LANG="ZH-CN" SIZE=3>為什	么在這種模式下只用</font><FONT SIZE=3>13</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>位呢?干嗎不用</FONT><FONT SIZE=3>16</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>位,這是為了和</FONT><FONT SIZE=3>51</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>機的前輩</FONT><FONT SIZE=3>48</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>系列兼容而設的一種工作式,如果你覺得用得不順手,那就干脆用第二種工作方式。</font></P><OL>
<FONT FACE="宋體" LANG="ZH-CN" SIZE=3>
<P ALIGN="JUSTIFY"></font><LI><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>工作方式</font><FONT SIZE=3>1</font></LI><FONT SIZE=3><p></P>
</FONT><P ALIGN="JUSTIFY"><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>工作方式</font><FONT SIZE=3>1</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>是</FONT><FONT SIZE=3>16</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>位的定時</FONT><FONT SIZE=3>/</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>計數方式,將</FONT><FONT SIZE=3>M1M0</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>設為</FONT><FONT SIZE=3>01</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>即可,其它特性與工作方式</FONT><FONT SIZE=3>0</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>相同。</font></P><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>
<P ALIGN="JUSTIFY"></FONT><LI><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>工作方式</font><FONT SIZE=3>2</font></LI><FONT SIZE=3><p></P>
</FONT><P ALIGN="JUSTIFY"><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>在介紹這種式方式之前先讓我們思考一個問題:上一次課我們提到過任意計數及任意定時的問題,比如我要計</font><FONT SIZE=3>1000</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>個數,可是</FONT><FONT SIZE=3>16</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>位的計數器要計到</FONT><FONT SIZE=3>65536</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>才滿,怎么辦呢?我們討論后得出的辦法是用預置數,先在計數器里放上</FONT><FONT SIZE=3>64536</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>,再來</FONT><FONT SIZE=3>1000</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>個脈沖,不就行了嗎?是的,但是計滿了之后我們又該怎么辦呢?要知道,計數總是不斷重復的,流水線上計滿后馬上又要開始下一次計數,下一次的計數還是</FONT><FONT SIZE=3>1000</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>嗎?當計滿并溢出后,計數器里面的值變成了</FONT><FONT SIZE=3>0</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>(為什么,可以參考前面課程的說明),因此下一次將要計滿</FONT><FONT SIZE=3>65536</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>后才會溢出,這可不符合要求,怎么辦?當然辦法很簡單,就是每次一溢出時執行一段程序(這通常是需要的,要不然要溢出干嗎?)可以在這段程序中做把預置數</FONT><FONT SIZE=3>64536</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>送入計數器中的事情。所以采用工作方式</FONT><FONT SIZE=3>0</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>或</FONT><FONT SIZE=3>1</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>都要在溢出后做一個重置預置數的工作,做工作當然就得要時間,一般來說這點時間不算什么,可是有一些場合我們還是要計較的,所以就有了第三種工作方式��自動再裝入預置數的工作方式。</font></P><P ALIGN="JUSTIFY">
<FONT FACE="宋體" LANG="ZH-CN" SIZE=3>既然要自動得新裝入預置數,那么預置數就得放在一個地方,要不然裝什么呢?那么預置數放在什么地方呢?它放在</font><FONT SIZE=3>T</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>(</FONT><FONT SIZE=3>0/1</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>)的高</FONT><FONT SIZE=3>8</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>位,那么這樣高</FONT><FONT SIZE=3>8</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>位不就不能參與計數了嗎?是的,在工作方式</FONT><FONT SIZE=3>2</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>,只有低</FONT><FONT SIZE=3>8</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>位參與計數,而高</FONT><FONT SIZE=3>8</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>位不參與計數,用作預置數的存放,這樣計數范圍就小多了,當然做任可事總有代價的,關鍵是看值不值,如果我根本不需要計那么多數,那么就可以用這種方式。看圖</FONT><FONT SIZE=3>4</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>,每當計數溢出,就會打開</FONT><FONT SIZE=3>T</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>(</FONT><FONT SIZE=3>0/1</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>)的高、低</FONT><FONT SIZE=3>8</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>位之間的開關,計預置數進入低</FONT><FONT SIZE=3>8</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>位。這是由硬件自動完成的,不需要由人工干預。</font></P><P ALIGN="JUSTIFY">
<FONT FACE="宋體" LANG="ZH-CN" SIZE=3>通常這種式作方式用于波特率發生器(我們將在串行接口中講解),用于這種用途時,定時器就是為了提供一個時間基準。計數溢出后不需要做事情,要做的僅僅只有一件,就是重新裝入預置數,再開始計數,而且中間不要任何延遲,可見這個任務用工作方式</font><FONT SIZE=3>2</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>來完成是最妙不過了。</font></P><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>
<P ALIGN="JUSTIFY"></FONT><LI><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>工作方式</font><FONT SIZE=3>3</font></LI><FONT SIZE=3><p></P></font></OL>
<P ALIGN="JUSTIFY"><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>這種式作方式之下,定時</font><FONT SIZE=3>/</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>計數器</FONT><FONT SIZE=3>0</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>被拆成</FONT><FONT SIZE=3>2</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>個獨立的定時</FONT><FONT SIZE=3>/</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>計數器來用。其中,</FONT><FONT SIZE=3>TL0</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>可以構成</FONT><FONT SIZE=3>8</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>位的定時器或計數器的工作方式,而</FONT><FONT SIZE=3>TH0</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>則只能作為定時器來用。我們知道作定時、計數器來用,需要控制,計滿后溢出需要有溢出標記,</FONT><FONT SIZE=3>T0</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>被分成兩個來用,那就要兩套控制及、溢出標記了,從何而來呢?</FONT><FONT SIZE=3>TL0</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>還是用原來的</FONT><FONT SIZE=3>T0</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>的標記,而</FONT><FONT SIZE=3>TH0</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>則借用</FONT><FONT SIZE=3>T1</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>的標記。如此</FONT><FONT SIZE=3>T1</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>不是無標記、控制可用了嗎?是的。</font></P><P ALIGN="JUSTIFY">
<FONT FACE="宋體" LANG="ZH-CN" SIZE=3>一般情況處,只有在</font><FONT SIZE=3>T1</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>以工作方式</FONT><FONT SIZE=3>2</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>運行(當波特率發生器用)時,才讓</FONT><FONT SIZE=3>T0</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>工作于方式</FONT><FONT SIZE=3>3</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>的。</font></P>
<B><P ALIGN="JUSTIFY"><FONT FACE="宋體" LANG="ZH-CN" SIZE=5>定時器</font><FONT SIZE=5>/</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=5>計數器的定時</FONT><FONT SIZE=5>/</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=5>計數范圍</font></P>
</B><P ALIGN="JUSTIFY"><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>工作方式</font><FONT SIZE=3>0</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>:</FONT><FONT SIZE=3>13</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>位定時</FONT><FONT SIZE=3>/</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>計數方式,因此,最多可以計到</FONT><FONT SIZE=3>2</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>的</FONT><FONT SIZE=3>13</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>次方,也就是</FONT><FONT SIZE=3>8192</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>次。</font></P><P ALIGN="JUSTIFY">
<FONT FACE="宋體" LANG="ZH-CN" SIZE=3>工作方式</font><FONT SIZE=3>1</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>:</FONT><FONT SIZE=3>16</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>位定時</FONT><FONT SIZE=3>/</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>計數方式,因此,最多可以計到</FONT><FONT SIZE=3>2</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>的</FONT><FONT SIZE=3>16</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>次方,也就是</FONT><FONT SIZE=3>65536</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>次。</font></P><P ALIGN="JUSTIFY">
<FONT FACE="宋體" LANG="ZH-CN" SIZE=3>工作方式</font><FONT SIZE=3>2</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>和工作方式</FONT><FONT SIZE=3>3</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>,都是</FONT><FONT SIZE=3>8</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>位的定時</FONT><FONT SIZE=3>/</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>計數方式,因此,最多可以計到</FONT><FONT SIZE=3>2</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>的</FONT><FONT SIZE=3>8</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>次方,也說是</FONT><FONT SIZE=3>256</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>次。</font></P><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>
<P ALIGN="JUSTIFY">預置值計算:用最大計數量減去需要的計數次數即可。</P>
</FONT><P ALIGN="JUSTIFY"><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>例:流水線上一個包裝是</font><FONT SIZE=3>12</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>盒,要求每到</FONT><FONT SIZE=3>12</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>盒就產生一個動作,用單片機的工作方式</FONT><FONT SIZE=3>0</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>來控制,應當預置多大的值呢?對了,就是</FONT><FONT SIZE=3>8192-12=8180</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>。</font></P>
<P ALIGN="JUSTIFY"> <FONT FACE="宋體" LANG="ZH-CN" SIZE=3>以上是計數,明白了這個道理,定時也是一樣。這在前面的課程已提到,我們不再重復,請參考前面的例子</font><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>。</font>
</P>
<FONT FACE="宋體" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY"> </P></FONT></BODY>
</HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -