![]() |
發(fā)布時間: 2019-4-16 17:59
正文摘要:最近在自學(xué)STC89C52單片機,也看了許多的老師的講解,有些問題沒有弄明白,向大家求教一下。 外部中斷,我明白有兩種觸發(fā)方式,一種電平觸發(fā),一種下降沿觸發(fā),也看了單片機的原理圖。 我理解的外部中斷,電平 ... |
yzwzfyz 發(fā)表于 2019-4-17 11:29 大哥您好 這個定時器,聽了一些視頻資料的講解,大概知道它是什么原理,但就是具體的該怎么用還不太清楚。 程序方面流程圖畫的有,都說的通。就是不知道該如何下手。 看一些例程,自己分析,就是先,頭文件,定義引腳,然后程序的流程。引用的函數(shù)。等。自己寫的時候就完全不知道該怎么寫了。之前也按照流程寫過了,當時想的是。我需要的程序就和點亮LED燈一樣,不過是時間不一樣,但就是時間不知道該如何計算,怎么樣才能一會定時4秒 一會定時10秒, |
如果離我近,不出一周教會你單片機。 |
你的原理圖上可以省去四個元件:D1、C3、C7、Y1。 D1省去后:短接。 C3、C7、Y1省去后,從U2-8引一條線至OSCIN。不過CPU的主頻就統(tǒng)一成12M了,這一點軟件上是可以克服的(相關(guān)時序的參數(shù)調(diào)整一下)。 |
我的分很多,你就留著用吧,不別給我了。不夠用我可以贊助你一點。 |
你留的不是程序,只是定義接口接的是什么東西。 |
“程序方面,看了許多的例程,里面的代碼,最后感覺有很多的相似,就好像有固定的框框,寫程序的時候只需要朝里面套自己的東西一樣。” 寫程序很容易,就那么幾個句子抄抄。但架構(gòu)程序,是需要相當?shù)闹腔郏。。∧X子不太好使用的,不好學(xué)這一行。你必須學(xué)會構(gòu)建程序,第一步就是必須會畫流程圖,流程圖說得通道理,達得成目的。再依流程圖寫程序,余下的就是抄抄句子了。 看別人的程序,要點是了解它的構(gòu)思、目的、達成目的所采用的方式。語句不重要! |
51單片機就是這樣,它只有兩個外部中斷輸入口,如果你中斷輸入口不夠,你可以使用與非門連接(將普通的IO口連接在門電路的輸入口,門電路的輸出口接單片機中斷口)。 |
“還有定時器,感覺怎么這么復(fù)雜,可以一會語句循環(huán),一會定時器控制,都不知道到底該用哪種了。 到現(xiàn)在定時器都沒弄懂。” 它就是個計數(shù)器,即然是計數(shù)器就有以下: 1、輸入時鐘脈沖CLK,來一個計一次。如果CLK間隔很準時(來自晶振),自然就可以用來“定時”,這時可以美其名曰“定時器”了;如果間隔很隨機(來自引腳的外接脈沖),就只能數(shù)數(shù)脈沖的個數(shù),就只能是“計數(shù)器”了。如果切斷(TR=0)它,當然就停止計數(shù)了;如果接通它(TR=1),就又計數(shù)了。這樣說不就知道“定時”、“計數(shù)”、“起動”、“停止”了嗎。 2、是計數(shù)器就有位數(shù)限制,計滿會發(fā)生什么?會輸出一個脈沖至中斷標記位。這就是“定時器中斷”的道理。 3、這個計數(shù)器是可以預(yù)置轉(zhuǎn)數(shù)的,在任何時候你都可以預(yù)置數(shù),你瞎置它就瞎數(shù),為了有規(guī)律,你通常會選擇一個特定的時刻置數(shù),當然最有特點的時刻就是它計滿的時候!例如:65536計滿,計滿后你置數(shù)據(jù)60000,這樣它就每計5536次發(fā)出一次中斷申請。如果你不置數(shù),它就每65536次發(fā)出一次中斷申請。 4、中斷申請發(fā)出后,如果沒有被清除(用其它方式清除),那么再次申請就沒有意義了。這就是中斷響應(yīng)后為什么要復(fù)位中斷標記的道理,當然有些機型是硬件復(fù)位的,即一響應(yīng)就自動清除它,也就不要你操心了。 |
robinsonlin 發(fā)表于 2019-4-17 08:51 這個視頻就是我正在看的,宋老師講的很好,我也在認真學(xué)習(xí),有的視頻會反反復(fù)復(fù)的看,了解他講的一些知識點。 另外,大哥我想問一下,我想一步一步的把我上邊的這個程序給推敲出來,這樣更能加深我的理解, 就是單片機怎么接受高電平的輸入,現(xiàn)在這個遙控接收表只能輸出高電平,有什么辦法在程序上調(diào)整或者是硬件上加什么東西, 謝謝大哥的回復(fù) |
那想是有3 個4個的中斷源怎么辦?換板子嗎? |
“就一點不明白,外部中斷一定要接在INT0,INT1引腳上才可以嗎?別的端口不可以嗎?那如果需要用傳感器控制的外部中斷多幾個,好像局限性很大” 你的想法,設(shè)計大師們已經(jīng)考慮到了:后期改進型51計算機的確可以在別的端口中斷,如P2.0。STC的機型就是你想像的。傳統(tǒng)51沒有。 |
“我理解的外部中斷,電平觸發(fā)就是一個按鍵或是什么東西,在單片機引腳上輸入了一個電平,這個電平一直存在使其一直保持中斷,松開按鍵就外部中斷停止了, 下沿觸發(fā)像是在引腳上輸入一個電平的信號,就像一個波形一樣,觸發(fā)不需要保持住,單片機檢測到這個波形了就觸發(fā)外部中斷。” 你說對了一半:準確地說,不是“就中斷了”,而是產(chǎn)生中斷申請標記位了,離中斷還差一步:你讓不讓它中斷! |
總工講解的很詳細了 |
定時器是單片機內(nèi)部的硬件,而中斷只是單片機的一種機制,在使用計時器的時候,你可以用中斷機制,也可以不用。 有個教程推薦給你, 用一天的時間就可以讀完這個教程,一定對你有很大的幫助。 下載地址:http://www.zg4o1577.cn/bbs/dpj-26246-1.html |
只說一點:外部中斷的IO口
![]() 外部中斷的IO口,只能是P32、P33,不能是其它的。因為這是由單片機的內(nèi)部硬件電路決定的,不是由軟件可以決定的。 如果你使用中斷,就只能是對應(yīng)的IO口。 另外,中斷源也是由單片機電路決定的,看手冊就知道。 |
中斷和定時正是單片機的“精要”啊。 |
Powered by 單片機教程網(wǎng)