1 PIC12XX的結(jié)構(gòu)
Microchip公司的單片機(jī)率先采用RISC(精簡(jiǎn)指令集計(jì)算機(jī))結(jié)構(gòu)的高性能價(jià)格比的嵌入式控制器。
該PIC單片機(jī)具有高速度、低工作電壓、低功耗、較大的輸入輸出直接驅(qū)動(dòng)能力、在線串行編程、芯片的低價(jià)位和小體積等特點(diǎn)。為此,Microchip開(kāi)發(fā)了高檔、中檔、低檔不同層次系列多種型號(hào)的產(chǎn)品,PIC12XX是一款基于EEPROM的8位微控制器的中檔PIC單片機(jī),具有高性能的RISC CPU、特殊單片機(jī)功能、低功耗功能、增強(qiáng)型Timer 1外設(shè)功能,為單片機(jī)的精確延時(shí)技術(shù)提供可靠保障。其內(nèi)部結(jié)構(gòu)如圖1所示。
1.1 外部結(jié)構(gòu)特點(diǎn)
該單片機(jī)共8個(gè)引腳,其中6個(gè)引腳具有獨(dú)立方向控制功能的I/O引腳,其引腳結(jié)構(gòu)如圖2所示。
其引腳具有高灌/拉電流能力,可直接驅(qū)動(dòng)LED。模擬比較器模塊帶有一個(gè)模擬比較器、片上可編程比較器參考電壓(CVREF)模塊、來(lái)自器件輸入引腳的可編程輸入復(fù)用、可外部訪問(wèn)比較器輸出。Timer 0帶有8位可編程預(yù)分頻器的8位定時(shí)器/計(jì)數(shù)器;增強(qiáng)的Timer 1帶有預(yù)分頻器的16位定時(shí)器/計(jì)數(shù)器,外部選通輸入模式,通過(guò)兩個(gè)引腳可實(shí)現(xiàn)在線串行編程。
1.2 內(nèi)部結(jié)構(gòu)特點(diǎn)
高性能的RISC-CPU僅35條指令,除跳轉(zhuǎn)指令外,所有指令都是單周期,其時(shí)鐘頻率為DC-20 MHz,指令周期為0-200 ns;有較強(qiáng)的中斷功能,8級(jí)深度硬件堆棧,采用直接、間接和相對(duì)尋址方式;可選擇內(nèi)部和外部振蕩器,內(nèi)部為4 MHz高精度振蕩器,其出廠時(shí)精度已校準(zhǔn)為±1% ;能將CPU從休眠模式喚醒和進(jìn)入省電休眠模式,帶低功耗上電復(fù)位(POR)、上電延時(shí)定時(shí)器(PWRT)和振蕩器起振定時(shí)器(OST)、欠壓檢測(cè)(BOD)和獨(dú)立振蕩器的看門狗定時(shí)器;可復(fù)用MCLR輸入引腳,引腳電平變化可觸發(fā)中斷,具有獨(dú)立的可編程弱上拉功能、可編程代碼保護(hù)、高耐久性的閃存/EEPROM存儲(chǔ)單元,閃存耐寫次數(shù)達(dá)10 次,EEPROM耐寫次數(shù)達(dá)10 次,閃存/數(shù)據(jù)EEPROM的數(shù)據(jù)保持期》40年。
1.3 Timer 1工作特點(diǎn)
Timer 1模塊是由兩個(gè)可讀寫的8位寄存器(TMR1H和TMR1L)組成的16位定時(shí)器/計(jì)數(shù)器。TMR1寄存器對(duì)(TMR1H、TMR1L)從0000h遞增到FFFFh后,計(jì)滿回零到0000h。如果允許Timer 1中斷,則溢出時(shí)會(huì)產(chǎn)生Timer 1中斷。該中斷可通過(guò)置位/清零TMR1IE位來(lái)允許/禁止。Timer 1有3種工作模式:同步定時(shí)器模式、同步計(jì)數(shù)器模式、異步計(jì)數(shù)器模式。其模式由時(shí)鐘選擇位TMR1CS(T1CON)和同步控制位T1SYNC決定,如圖3所示。
在定時(shí)器模式下,Timer 1在每個(gè)指令周期遞增。而在計(jì)數(shù)器模式下,Timer 1在T1CKI引腳上外部時(shí)鐘的每個(gè)上升沿遞增。Timer 1可以通過(guò)TMR1ON(T1CON)控制位來(lái)打開(kāi)和關(guān)閉。Timer 1還有一個(gè)內(nèi)部“復(fù)位輸入”,可由一個(gè)CCP模塊產(chǎn)生。Timer 1可以外接晶體振蕩器,當(dāng)Timer 1的振蕩器被使能(T1OSCEN位置1)時(shí),T1OSI和T1OSO引腳設(shè)定為輸入引腳。也就是說(shuō),其相應(yīng)的TRIS值被忽略。
2 精確延時(shí)技術(shù)
2.1 理論分析
PIC12XX單片機(jī)內(nèi)置晶振的頻率為4 MHz,其精度為±1% ,則時(shí)鐘周期為0.25 us,單指令運(yùn)行時(shí)間為1 us,其誤差均為1%us,導(dǎo)致較大的累積誤差,故不能直接利用其內(nèi)部晶振進(jìn)行精確延時(shí)。為此需要采用高精度的外部時(shí)鐘信號(hào),又由于Timer 1為16位,計(jì)滿次數(shù)為2 次,為便于計(jì)算采用頻率為32768Hz,即215Hz,精度為5×10-6,以此作為時(shí)鐘,計(jì)滿Timer 1為2 s,如果用該晶振作為時(shí)鐘,半年的最大誤差不會(huì)超過(guò)1 min。圖4為外接晶振信號(hào)發(fā)生電路原理圖。
由于PIC12XX指令運(yùn)行是按內(nèi)部晶振進(jìn)行的,為提高單片的延時(shí)精度,采用外接晶振信號(hào)作為時(shí)鐘信號(hào),利用單片機(jī)的Timer 1進(jìn)行中斷延時(shí),即可實(shí)現(xiàn)高精度的任意時(shí)間延時(shí)。
2.2 延時(shí)方法
經(jīng)過(guò)理論分析,采用圖5所示的基本電路進(jìn)行精確延時(shí)。由于采用的是32786 Hz時(shí)鐘,Timer 1為16位,因此采用中斷延時(shí),當(dāng)Timer 1初值置為0000H時(shí),中斷一次延時(shí)時(shí)間為2 s;當(dāng)Timer 1初值置為8000H時(shí),中斷一次延時(shí)時(shí)間為1 s。對(duì)于大于或等于2 s的長(zhǎng)延時(shí),采用Timer1置0000H初值;對(duì)于大于1 s的長(zhǎng)延時(shí),采用Timer1置8000H初值;對(duì)于小于1 s的短延時(shí),采用Timer 1置預(yù)算初值,中斷一次完成所有短延時(shí),這樣可大大提高延時(shí)的精度。
2.3 延時(shí)關(guān)鍵子程序
由于精確延時(shí)采用的是外部晶振,則Timer 1接外部晶振的初始化程序采用如下精簡(jiǎn)程序:
CLRF T1 CON ;Stop Timer1,Internal Clock Source
;T1 oscillator disabled,prescaler = 1:1
CLRF TMR1H ;Clear Timer1 High byte register
CLRF TMR1L ;Clear Timer1 Low byte register
CLRF INTCON ;Disable interrupts
BSF STATUS,RP0 ;Bank1
CLRF PIE1;Disable peripheral interrupts
BCF STATUS,RP0 ;BankO
CLRF PIR1;Clear pe ripheral interrupts Flags
MOVLW 0x32 ;External Clock source with 1:8 prescaler
MOVWF T1CON ;Clock source is synchronized to device
;Timerl is stopped and T1 OSC is disabled
BSF T1CON,TMR1ON ;Timerl starts to increment
;The Timerl interrupt is disabled,do poling on the overflow bit
T1_OVFL_WAIT
BTFSS PIR1,TMR1IF
GOTO T1_OVFL_WAIT
;Timer has overflowed
BCF PIR1,TMR1IF
根據(jù)延時(shí)方法分析,中斷置初值采用如下程序:
load_initial_s
bcf T1CON,TMR1ON
CLRF TMR1H; Clear Low byte,Ensures no rolover into
TMR1H,Value to load into TMR1H
MOVLW 0X80 ;Value to load into TMR1H,Write High byte
MOVWF TMR1H ;
MOVLW 0X00 ;Value to load into TMR1L,Write Low byte
ADDWF TMR1L;one second intrupt one time run 262162 Tcy,i.e.0.262162s。soset tmr1
BSF T1CON,TMR1ON
load_initial_ms
bcf T1CON,TMR1ON
CLRF TMR1L;Clear Low byte,Ensures no rolover into
TMR1H,Value to load into TMR1H
MOVLW 0Xxx;the value is preparative worked out
MOVWF TMR1H;
MOVLW 0Xxx ;the value is preparative worked out
MOVWF TMR1L;
BSF T1CON,TMR1ON
程序初始化后,通過(guò)預(yù)置初值,加上程序的其他結(jié)構(gòu)。就可以實(shí)現(xiàn)PIC的精確延時(shí)。
3 結(jié)束語(yǔ)
鑒于PIC12XX單片機(jī)的功能特點(diǎn)和優(yōu)點(diǎn),采用外接晶振和Timer 1中斷技術(shù),可實(shí)現(xiàn)較精確的任意延時(shí)。另外。Microchip公司的PIC系列單片機(jī)具有實(shí)用、低價(jià)、易學(xué)、省電、高速和體積小等特點(diǎn),還具有低功耗睡眠、掉電復(fù)位鎖定、上電復(fù)位電路、看門狗電路等功能,而且外圍器件少、占用空間小、成本低,保密技術(shù)也十分可靠,可最大限度地保護(hù)開(kāi)發(fā)者的利益。因此,在工業(yè)控制、儀器儀表、計(jì)算機(jī)、家電等諸多領(lǐng)域具有極其廣泛的應(yīng)用前景。
-
單片機(jī)
+關(guān)注
關(guān)注
6067文章
44992瀏覽量
650443 -
RISC
+關(guān)注
關(guān)注
6文章
482瀏覽量
84991
發(fā)布評(píng)論請(qǐng)先 登錄
杰理 2.4G 藍(lán)牙音頻低延時(shí)耳機(jī)方案:芯片選型 延時(shí) 硬件設(shè)計(jì)

國(guó)產(chǎn)電壓基準(zhǔn)源對(duì)標(biāo)REF34XX/ADR34XX的模擬I/O模塊替換方案

M12螺栓工程標(biāo)準(zhǔn)尺寸:精確測(cè)量與應(yīng)用技巧

求遠(yuǎn)電子ESS工商儲(chǔ)方案設(shè)計(jì)解析

PIC12F629/675 數(shù)據(jù)手冊(cè)免費(fèi)下載
EE-401:ADSP-SC5xx/215xx SHARC處理器系統(tǒng)優(yōu)化技術(shù)

STM32G471xx/473xx/474xx/483xx/484xx設(shè)備勘誤表
負(fù)壓抽真空氣泵方案設(shè)計(jì):探討其機(jī)械結(jié)構(gòu)和工作原理
工程師視角:攝影云臺(tái)與攝像云臺(tái)的驅(qū)動(dòng)板方案設(shè)計(jì)差異
戶用光儲(chǔ)系統(tǒng)方案設(shè)計(jì)

增量編碼器中磁性與光學(xué)解決方案設(shè)計(jì)的優(yōu)勢(shì)

安森美OBC系統(tǒng)解決方案設(shè)計(jì)指南


評(píng)論