新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于PIC12XX的精確延時技術

        基于PIC12XX的精確延時技術

        作者: 時間:2011-10-11 來源:網絡 收藏

        1 PIC12XX的結構

        Microchip公司的率先采用RISC(精簡指令集計算機)結構的高性能價格比的嵌入式控制器。

        該PIC具有高速度、低工作電壓、低功耗、較大的輸入輸出直接驅動能力、在線串行編程、芯片的低價位和小體積等特點。為此,Microchip開發了高檔、中檔、低檔不同層次系列多種型號的產品,PIC12XX是一款基于EEPROM的8位微控制器的中檔PIC,具有高性能的RISC CPU、特殊單片機功能、低功耗功能、增強型Timer 1外設功能,為單片機的精確延時技術提供可靠保障。其內部結構如圖1所示。

        1.1 外部結構特點

        該單片機共8個引腳,其中6個引腳具有獨立方向控制功能的I/O引腳,其引腳結構如圖2所示。

        其引腳具有高灌/拉電流能力,可直接驅動LED。模擬比較器模塊帶有一個模擬比較器、片上可編程比較器參考電壓(CVREF)模塊、來自器件輸入引腳的可編程輸入復用、可外部訪問比較器輸出。Timer 0帶有8位可編程預分頻器的8位定時器/計數器;增強的Timer 1帶有預分頻器的16位定時器/計數器,外部選通輸入模式,通過兩個引腳可實現在線串行編程。



        1.2 內部結構特點

        高性能的RISC-CPU僅35條指令,除跳轉指令外,所有指令都是單周期,其時鐘頻率為DC-20 MHz,指令周期為0-200 ns;有較強的中斷功能,8級深度硬件堆棧,采用直接、間接和相對尋址方式;可選擇內部和外部振蕩器,內部為4 MHz高精度振蕩器,其出廠時精度已校準為±1% ;能將CPU從休眠模式喚醒和進入省電休眠模式,帶低功耗上電復位(POR)、上電延時定時器(PWRT)和振蕩器起振定時器(OST)、欠壓檢測(BOD)和獨立振蕩器的看門狗定時器;可復用MCLR輸入引腳,引腳電平變化可觸發中斷,具有獨立的可編程弱上拉功能、可編程代碼保護、高耐久性的閃存/EEPROM存儲單元,閃存耐寫次數達10 次,EEPROM耐寫次數達10 次,閃存/數據EEPROM的數據保持期>40年。

        1.3 Timer 1工作特點

        Timer 1模塊是由兩個可讀寫的8位寄存器(TMR1H和TMR1L)組成的16位定時器/計數器。TMR1寄存器對(TMR1H、TMR1L)從0000h遞增到FFFFh后,計滿回零到0000h。如果允許Timer 1中斷,則溢出時會產生Timer 1中斷。該中斷可通過置位/清零TMR1IE位來允許/禁止。Timer 1有3種工作模式:同步定時器模式、同步計數器模式、異步計數器模式。其模式由時鐘選擇位TMR1CS(T1CONl>)和同步控制位T1SYNC決定,如圖3所示。

        在定時器模式下,Timer 1在每個指令周期遞增。而在計數器模式下,Timer 1在T1CKI引腳上外部時鐘的每個上升沿遞增。Timer 1可以通過TMR1ON(T1CON0>)控制位來打開和關閉。Timer 1還有一個內部“復位輸入”,可由一個CCP模塊產生。Timer 1可以外接晶體振蕩器,當Timer 1的振蕩器被使能(T1OSCEN位置1)時,T1OSI和T1OSO引腳設定為輸入引腳。也就是說,其相應的TRIS值被忽略。

        2 精確延時技術

        2.1 理論分析

        PIC12XX單片機內置晶振的頻率為4 MHz,其精度為±1% ,則時鐘周期為0.25 us,單指令運行時間為1 us,其誤差均為1%us,導致較大的累積誤差,故不能直接利用其內部晶振進行精確延時。為此需要采用高精度的外部時鐘信號,又由于Timer 1為16位,計滿次數為2 次,為便于計算采用頻率為32768Hz,即215Hz,精度為5×10-6,以此作為時鐘,計滿Timer 1為2 s,如果用該晶振作為時鐘,半年的最大誤差不會超過1 min。圖4為外接晶振信號發生電路原理圖。

        由于PIC12XX指令運行是按內部晶振進行的,為提高單片的延時精度,采用外接晶振信號作為時鐘信號,利用單片機的Timer 1進行中斷延時,即可實現高精度的任意時間延時。

        2.2 延時方法

        經過理論分析,采用圖5所示的基本電路進行精確延時。由于采用的是32786 Hz時鐘,Timer 1為16位,因此采用中斷延時,當Timer 1初值置為0000H時,中斷一次延時時間為2 s;當Timer 1初值置為8000H時,中斷一次延時時間為1 s。對于大于或等于2 s的長延時,采用Timer1置0000H初值;對于大于1 s的長延時,采用Timer1置8000H初值;對于小于1 s的短延時,采用Timer 1置預算初值,中斷一次完成所有短延時,這樣可大大提高延時的精度。

        PIC基本延時電路


        2.3 延時關鍵子程序

        由于精確延時采用的是外部晶振,則Timer 1接外部晶振的初始化程序采用如下精簡程序:
        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

        根據延時方法分析,中斷置初值采用如下程序:
        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

        程序初始化后,通過預置初值,加上程序的其他結構。就可以實現PIC的精確延時。

        3 結束語

        鑒于PIC12XX單片機的功能特點和優點,采用外接晶振和Timer 1中斷技術,可實現較精確的任意延時。另外。Microchip公司的PIC系列單片機具有實用、低價、易學、省電、高速和體積小等特點,還具有低功耗睡眠、掉電復位鎖定、上電復位電路、看門狗電路等功能,而且外圍器件少、占用空間小、成本低,保密技術也十分可靠,可最大限度地保護開發者的利益。因此,在工業控制、儀器儀表、計算機、家電等諸多領域具有極其廣泛的應用前景。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 深圳市| 登封市| 恩平市| 阿拉善盟| 广饶县| 常州市| 扎鲁特旗| 安乡县| 阿克苏市| 蓝山县| 汉中市| 郸城县| 腾冲县| 特克斯县| 南溪县| 镇康县| 板桥市| 乌海市| 广州市| 大邑县| 洱源县| 柯坪县| 泽库县| 徐闻县| 当阳市| 灵宝市| 尚志市| 宝坻区| 合江县| 滕州市| 永安市| 三河市| 广汉市| 阿拉善盟| 林西县| 平顶山市| 正宁县| 睢宁县| 江陵县| 石阡县| 连南|