22.1184晶振的單片機(jī) 作者: 時(shí)間:2016-11-28 來源:網(wǎng)絡(luò) 加入技術(shù)交流群 掃碼加入和技術(shù)大咖面對(duì)面交流海量資料庫(kù)查詢 收藏 首先說說晶振與51單片機(jī)的機(jī)器周期得關(guān)系:晶振的倒數(shù)是一個(gè)時(shí)鐘周期單位為秒,一個(gè)機(jī)器周期等于12乘時(shí)鐘周期。 再說說指令周期與時(shí)鐘周期得關(guān)系:對(duì)于8031等早期的51來說,指令周期和機(jī)器周期是一樣的等于12乘時(shí)鐘周期,但后來出現(xiàn)了很多改進(jìn)型的51系列單片機(jī)如80320等,指令周期等于4個(gè)時(shí)鐘周期,也就是說同樣的晶振速度是原來的3倍。但無(wú)論如何變,T0、T1等定時(shí)器的計(jì)時(shí)任然按機(jī)器周期來計(jì)算的,也就是說12乘時(shí)鐘周期。 定時(shí)器是按溢出產(chǎn)生中斷的,所以要用溢出值65536減你所希望的值得到定時(shí)器的初值。 那么怎么計(jì)算賦值所決定的時(shí)間呢: 首先計(jì)算出機(jī)器周期:12*(1/22.1184/1000000)秒(應(yīng)該是22.1184兆吧), 因?yàn)槟阈枰?jì)時(shí)50毫秒那么就換算成毫秒吧,該值乘1000就是毫秒了。這個(gè)值就是定時(shí)器的機(jī)器周期,也就是定時(shí)器增加一個(gè)計(jì)數(shù)值的值。 那么對(duì)你而言需要定時(shí)50毫秒,需要多少個(gè)定時(shí)值呢?很簡(jiǎn)單用50除這個(gè)值就OK了,你可以算算應(yīng)該是:92160. 現(xiàn)在問題來了,我們需要92160個(gè)計(jì)數(shù)值,但51定時(shí)器最大只能是65536,容不下怎么辦?只能在中斷服務(wù)程序中處理了,比如兩次中斷做一次計(jì)時(shí)到時(shí)判據(jù)那么就可以,于是計(jì)數(shù)值就可以除以2得46080小于65536可以處理了。 那么初值就是65536-46080=19456了,你可以用電腦計(jì)算器換算成16進(jìn)制填入TH1和TL1。
評(píng)論