|
從PIC12C508開(kāi)始,逐漸地,PIC有很多型號(hào)都內(nèi)含有可以當(dāng)作系統(tǒng)時(shí)脈源的RC振蕩器。有了這項(xiàng)功能,不但讓整體系統(tǒng)的成本進(jìn)一步往下降;并且還因?yàn)閮?nèi)部的RC振蕩源是經(jīng)過(guò)校正的,而獲得了比外接RC振蕩更精確的時(shí)鐘。
不過(guò),想要使用內(nèi)部RC振蕩而有精確的時(shí)鐘,是有方法的。除了在刻錄IC時(shí)要指定使用內(nèi)部RC振蕩以外,還要在原始程序代碼中加上一些命令才行。而命令的用法,還因不同種類(lèi)的PIC而有不同。
以12-BIT 架構(gòu)的PIC而言,例如PIC12C508,Microchp在IC的最后一行程式內(nèi)存,加上一個(gè)"movlw 0x??"的命令,當(dāng)芯片復(fù)位時(shí),IC會(huì)先運(yùn)行該命令之后,再跳到地址0繼續(xù)運(yùn)行。因此,如果您一直沒(méi)有去修改到w暫存器的屬性的話,則w暫存器會(huì)一直保留著原來(lái)"??"的那個(gè)值。"??"就是Microchip測(cè)量出來(lái)的校正值。如果您把它填到OSCCAL那個(gè)寄存器的話,則以后的RC振蕩將是"蠻準(zhǔn)的"4MHz。因此,通常簡(jiǎn)單的作法,便是在程序的第0行填入" movwf OSCCAL"的命令就可以了。
以14-BIT架構(gòu)的PIC而言,例如PIC12F629,Microchp在IC的最后一行程式內(nèi)存,加上一個(gè)"retlw 0x??"的命令。因此,您可以利用在程序中的任何位置,加上"call LAST-ADDRESS"(調(diào)用最后一個(gè)地址) (對(duì)PIC12F629 而言,LAST-ADDRESS = 0x3ff),和"movwf OSCCAL"兩道命令來(lái)校正內(nèi)部RC振蕩。
|
|