新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC單片機(jī)入門之定時(shí)器查詢閃燈程序

        PIC單片機(jī)入門之定時(shí)器查詢閃燈程序

        作者: 時(shí)間:2016-11-24 來源:網(wǎng)絡(luò) 收藏
        上一篇文章寫了PIC最基本得入門的閃燈程序,通過這個(gè)程序而歐美可以看到我們的單片機(jī)的確開始按照我們的程序工作了,今天我們開始使用單片機(jī)里面的一個(gè)定時(shí)器的資源,即就是PIC里面的定時(shí)器,通過查詢定時(shí)器是否計(jì)時(shí)到我們規(guī)定的值來決定我們是否要做什么事!
        PIC里面有3個(gè)定時(shí)器,比起51單片機(jī)多了一個(gè)定時(shí)器(哈哈)!分別為Timer0,Timer1,Timer2.分別說說每一個(gè)定時(shí)器吧:
        Timer0是一個(gè)8為定時(shí)器,與看門狗公用一個(gè)8位預(yù)分配頻器,時(shí)鐘源可以選擇位內(nèi)部時(shí)鐘和外部時(shí)鐘,通過設(shè)置OPTION_REG寄存器的PS<2:0>位的值可以選擇不同的預(yù)分頻比,根據(jù)選擇的預(yù)分頻比和系統(tǒng)震蕩頻率就可以計(jì)時(shí)定時(shí)了。
        Timer1是一個(gè)16位的計(jì)時(shí)器,有一個(gè)3位預(yù)分頻器,也就是意味著最多實(shí)現(xiàn)1:8的分頻比,(隨便說一下,要實(shí)現(xiàn)比較精確的定時(shí)的話,最好選擇小一點(diǎn)的預(yù)分頻比,最好是不分頻),Timer1也可以選擇內(nèi)部或者是外部時(shí)鐘。
        Timer2是一個(gè)8為定時(shí)器,至今沒用過Timer2,感覺還是Timer1用的比較舒服。
        下面貼上最基本得Timer0的定時(shí)器查詢的閃燈程序,程序計(jì)時(shí)0.5秒燈閃一次。
        #include
        ;程序采用可重定位的匯編編寫
        udata_shr
        L1 res 1h ;為變量L1分配一個(gè)字節(jié)地址
        reset code 0x0 ;程序開始地址
        pagesel main
        goto main
        code
        main
        NOP
        BANKSEL PORTA ;配置PORTA端口
        CLRF PORTA
        BANKSEL ANSEL ;端口PORTA為數(shù)字端口模式
        CLRF ANSEL
        BANKSEL TRISA
        MOVLW B00000000
        MOVWF TRISA ;PORTA所有位為輸出
        BANKSEL OPTION_REG
        MOVLW B11000100
        MOVWF OPTION_REG ;配置Timer0預(yù)分頻為32分頻
        BANKSEL PORTA
        INITTMR0
        BCF INTCON,T0IF
        MOVLW d61 ;設(shè)置外面套的循環(huán)次數(shù)
        MOVWF L1
        LOOP
        BTFSS INTCON,T0IF
        GOTO LOOP
        BCF INTCON,T0IF
        DECFSZ L1,f ;外面套的循環(huán)
        GOTO LOOP
        MOVLW B00000001
        XORWF PORTA,f ;取反RA0,讓LED閃爍
        GOTO INITTMR0
        END


        評論


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

        關(guān)閉
        主站蜘蛛池模板: 呈贡县| 礼泉县| 西平县| 张家口市| 河间市| 侯马市| 塘沽区| 鲁山县| 博乐市| 五大连池市| 祁连县| 上犹县| 淮南市| 石泉县| 博乐市| 宁城县| 临漳县| 常山县| 鄱阳县| 昆山市| 芮城县| 嘉定区| 本溪市| 瓦房店市| 云林县| 桐梓县| 连云港市| 河东区| 曲麻莱县| 于都县| 铁岭县| 红河县| 龙门县| 凉山| 荆州市| 元阳县| 外汇| 新郑市| 马山县| 内江市| 阳西县|