C8051F320-時(shí)鐘和4in1八段管
一、時(shí)鐘設(shè)定
系統(tǒng)復(fù)位時(shí),默認(rèn)使用內(nèi)部振蕩器作為系統(tǒng)時(shí)鐘,出廠前已經(jīng)將基頻定為12MHZ,可以根據(jù)需要對(duì)其進(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ì)算方法由如下公式?jīng)Q定:
第二項(xiàng)的分母為基準(zhǔn)頻率,第三項(xiàng)為D4~D0,浮動(dòng)范圍0~31,根據(jù)這個(gè)公式,當(dāng)基準(zhǔn)設(shè)置為12M時(shí),能夠設(shè)置的偏差很小。
△T=0.0025×0.083us×(0~31)=0 ~ 0.0064325 us
以12Mhz為例,12M對(duì)應(yīng)的周期為0.0833us,加上該偏差為0.0897625us,對(duì)應(yīng)頻率為11.14M。
也就是說(shuō),當(dāng)基準(zhǔn)頻率為12 Mhz時(shí),最多可以調(diào)整為11.14M
以此類(lèi)推。2分頻時(shí),6Mhz,最多可以5.57M
4分頻時(shí),3Mhz,最多可以2.78M
8分頻時(shí),1.5Mhz,最多可以1.39M
二、八段管的一點(diǎn)小收獲
偶然發(fā)現(xiàn)自己以前寫(xiě)顯示程序?qū)嵲谑翘贤亮?,display()鐵打不動(dòng)就是選一個(gè)管,送個(gè)段碼,延時(shí),選下一個(gè)管,段碼,延時(shí),再選下一個(gè)管。。。 這樣一來(lái)顯示程序必定要消耗大量的時(shí)間在顯示程序上。當(dāng)系統(tǒng)時(shí)序要求高時(shí),這種寫(xiě)法根本就是自殺行為。
正確方法應(yīng)該是,設(shè)置定時(shí)器在一個(gè)足夠小的時(shí)間上,比如10ms,利用一個(gè)變量保存中斷的次數(shù)。每次進(jìn)入中斷,根據(jù)(變量%4)的值,來(lái)驅(qū)動(dòng)一個(gè)管顯示數(shù)字,下一次中斷時(shí)切換下個(gè)管,以此類(lèi)推。。
三、F320內(nèi)部定時(shí)/計(jì)數(shù)器的使用
芯片內(nèi)部有4個(gè)定時(shí)計(jì)數(shù)器,其中T0T1與51兼容,T2T3只能定時(shí)不能計(jì)數(shù),但可以實(shí)現(xiàn)16位自動(dòng)重裝計(jì)數(shù)值。
寄存器TMOD TH0 TL0 TH1 TL1 以及T0T1相應(yīng)的啟停位中斷位不變。
新增部分:
1、CKCON 時(shí)鐘控制器 復(fù)位值00H
D7D6控制T3高低位的時(shí)鐘源,1為選擇系統(tǒng)時(shí)鐘,0為用戶(hù)設(shè)定。
D5D4控制T2高低位的時(shí)鐘源,1為選擇系統(tǒng)時(shí)鐘,0為用戶(hù)設(shè)定。
*如果設(shè)置為單個(gè)16位定時(shí)器,則D5D7無(wú)效
D3D2作用類(lèi)似,分別控制T1T0的時(shí)鐘源,1為系統(tǒng)時(shí)鐘,0為分頻時(shí)鐘,默認(rèn)為分頻時(shí)鐘。其分頻系數(shù)由D1D0決定,
00——12分頻 01——4分頻 10——48分頻 11——8分頻
2、定時(shí)器T2
和T0做個(gè)對(duì)照:
TH0 —— TMR2H TL0 —— TMR2L
TMOD —— TMR2CN (D4D3決定T2工作方式)
TF0 —— TF2H(16位時(shí),H起作用)/TF2L ET0 —— IE.5 TR0 —— TR2(雙8位時(shí),只能控制高八位定時(shí)器,低八位永遠(yuǎn)工作)
TF2LEN =1 低八位時(shí)鐘中斷允許位
TMR2RLH TMR2RLL 專(zhuān)用于高低八位的計(jì)數(shù)值重載
設(shè)為2個(gè)八位時(shí)鐘時(shí),共用一個(gè)中斷,必須在中斷程序中檢查對(duì)應(yīng)的標(biāo)志位才能確定是哪一個(gè)時(shí)鐘計(jì)數(shù)到,且標(biāo)志位必須手動(dòng)清零
另有usb起始幀捕捉模式,暫時(shí)不研究
細(xì)節(jié): TMR2H 控制字 D7D6 為T(mén)F2H 、TF2L,中斷標(biāo)志
D5為 TF2LEN,定時(shí)器2低字節(jié)中斷允許位
D4 為T(mén)2SOF 沒(méi)研究那部分,應(yīng)該給0,表示禁用
D3 為T(mén)2SPLIT 1表示雙8位,0表示單16位,均可自動(dòng)重載計(jì)數(shù)值
D2 為T(mén)R2,高八位時(shí)鐘啟動(dòng)(16位時(shí)鐘不知道怎么啟動(dòng)。。。。)
D1無(wú)用D0 為T(mén)2外部時(shí)鐘選擇,需要與上面的CKCON對(duì)應(yīng),沒(méi)研究。
評(píng)論