<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > C8051F320-時鐘和4in1八段管

          C8051F320-時鐘和4in1八段管

          作者: 時間:2012-08-16 來源:網(wǎng)絡(luò) 收藏
          包含一個內(nèi)部振蕩器,也可以采用其他方式提供振蕩。手頭沒有任何元器件,所以只考慮使用內(nèi)部振蕩器。

          一、設(shè)定

          系統(tǒng)復(fù)位時,默認(rèn)使用內(nèi)部振蕩器作為系統(tǒng),出廠前已經(jīng)將基頻定為12MHZ,可以根據(jù)需要對其進(jìn)行分頻操作。

          分頻方法: 寄存器OSCICN 最低兩位D1D0的值決定了分頻數(shù),00~11分別為8分頻、4分頻、2分頻、不分頻。

          此外,D7=1表示內(nèi)部振蕩器使能,反之禁止內(nèi)部振蕩器

          D6=1內(nèi)部振蕩器頻率準(zhǔn)備好標(biāo)志

          D5=1強(qiáng)行掛起內(nèi)部振蕩器

          寄存器OSCICL 內(nèi)部振蕩器校準(zhǔn),D4~D0的數(shù)值決定了校準(zhǔn)后的頻率偏差,計算方法由如下公式?jīng)Q定:


          點擊瀏覽下一頁

          第二項的分母為基準(zhǔn)頻率,第三項為D4~D0,浮動范圍0~31,根據(jù)這個公式,當(dāng)基準(zhǔn)設(shè)置為12M時,能夠設(shè)置的偏差很小。

          △T=0.0025×0.083us×(0~31)=0 ~ 0.0064325 us

          以12Mhz為例,12M對應(yīng)的周期為0.0833us,加上該偏差為0.0897625us,對應(yīng)頻率為11.14M。

          也就是說,當(dāng)基準(zhǔn)頻率為12 Mhz時,最多可以調(diào)整為11.14M

          以此類推。2分頻時,6Mhz,最多可以5.57M

          4分頻時,3Mhz,最多可以2.78M

          8分頻時,1.5Mhz,最多可以1.39M

          二、的一點小收獲

          偶然發(fā)現(xiàn)自己以前寫顯示程序?qū)嵲谑翘贤亮?,display()鐵打不動就是選一個管,送個段碼,延時,選下一個管,段碼,延時,再選下一個管。。。 這樣一來顯示程序必定要消耗大量的時間在顯示程序上。當(dāng)系統(tǒng)時序要求高時,這種寫法根本就是自殺行為。

          正確方法應(yīng)該是,設(shè)置定時器在一個足夠小的時間上,比如10ms,利用一個變量保存中斷的次數(shù)。每次進(jìn)入中斷,根據(jù)(變量%4)的值,來驅(qū)動一個管顯示數(shù)字,下一次中斷時切換下個管,以此類推。。

          三、F320內(nèi)部定時/計數(shù)器的使用

          芯片內(nèi)部有4個定時計數(shù)器,其中T0T1與51兼容,T2T3只能定時不能計數(shù),但可以實現(xiàn)16位自動重裝計數(shù)值。

          寄存器TMOD TH0 TL0 TH1 TL1 以及T0T1相應(yīng)的啟停位中斷位不變。

          新增部分:

          1、CKCON 控制器 復(fù)位值00H

          D7D6控制T3高低位的時鐘源,1為選擇系統(tǒng)時鐘,0為用戶設(shè)定。

          D5D4控制T2高低位的時鐘源,1為選擇系統(tǒng)時鐘,0為用戶設(shè)定。

          *如果設(shè)置為單個16位定時器,則D5D7無效

          D3D2作用類似,分別控制T1T0的時鐘源,1為系統(tǒng)時鐘,0為分頻時鐘,默認(rèn)為分頻時鐘。其分頻系數(shù)由D1D0決定,

          00——12分頻 01——4分頻 10——48分頻 11——8分頻

          2、定時器T2

          和T0做個對照:

          TH0 —— TMR2H TL0 —— TMR2L

          TMOD —— TMR2CN (D4D3決定T2工作方式)

          TF0 —— TF2H(16位時,H起作用)/TF2L ET0 —— IE.5 TR0 —— TR2(雙8位時,只能控制高八位定時器,低八位永遠(yuǎn)工作)

          TF2LEN =1 低八位時鐘中斷允許位

          TMR2RLH TMR2RLL 專用于高低八位的計數(shù)值重載

          設(shè)為2個八位時鐘時,共用一個中斷,必須在中斷程序中檢查對應(yīng)的標(biāo)志位才能確定是哪一個時鐘計數(shù)到,且標(biāo)志位必須手動清零

          另有usb起始幀捕捉模式,暫時不研究

          細(xì)節(jié): TMR2H 控制字 D7D6 為TF2H 、TF2L,中斷標(biāo)志

          D5為 TF2LEN,定時器2低字節(jié)中斷允許位

          D4 為T2SOF 沒研究那部分,應(yīng)該給0,表示禁用

          D3 為T2SPLIT 1表示雙8位,0表示單16位,均可自動重載計數(shù)值

          D2 為TR2,高八位時鐘啟動(16位時鐘不知道怎么啟動。。。。)

          D1無用D0 為T2外部時鐘選擇,需要與上面的CKCON對應(yīng),沒研究。


          上一頁 1 2 下一頁

          關(guān)鍵詞: C8051F320 時鐘 八段管

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();