您的位置 首页 测评

PIC单片机入门之定时器查询闪灯程序

上一篇文章写了PIC最基本得入门的闪灯程序,通过这个程序而欧美可以看到我们的单片机的确开始按照我们的程序工作了,今天我们开始使用单片

上一篇文章写了PIC最基本得入门的闪灯程序,经过这个程序而欧美能够看到咱们的单片机确实开端依照咱们的程序工作了,今日咱们开端使用单片机里边的一个守时器的资源,即便是PIC里边的守时器,经过查询守时器是否计时到咱们规则的值来决议咱们是否要做什么事!

PIC里边有3个守时器,比起51单片机多了一个守时器(哈哈)!别离为Timer0,Timer1,Timer2.别离说说每一个守时器吧:
Timer0是一个8为守时器,与看门狗共用一个8位预分配频器,时钟源能够挑选位内部时钟和外部时钟,经过设置OPTION_REG寄存器的PS<2:0>位的值能够挑选不同的预分频比,依据挑选的预分频比和体系震动频率就能够计时守时了。
Timer1是一个16位的计时器,有一个3位预分频器,也便是意味着最多完成1:8的分频比,(随意说一下,要完成比较准确的守时的话,最好挑选小一点的预分频比,最好是不分频),Timer1也能够挑选内部或者是外部时钟。
Timer2是一个8为守时器,至今没用过Timer2,感觉仍是Timer1用的比较舒畅。
下面贴上最基本得Timer0的守时器查询的闪灯程序,程序计时0.5秒灯闪一次。
#include
;程序选用可重定位的汇编编写
udata_shr
L1 res 1h ;为变量L1分配一个字节地址
reset code 0x0 ;程序开端地址
pagesel main
goto main
code
main
NOP
BANKSEL PORTA ;装备PORTA端口
CLRF PORTA
BANKSEL ANSEL ;端口PORTA为数字端口形式
CLRF ANSEL
BANKSEL TRISA
MOVLW B00000000
MOVWF TRISA ;PORTA一切位为输出
BANKSEL OPTION_REG
MOVLW B11000100
MOVWF OPTION_REG ;装备Timer0预分频为32分频
BANKSEL PORTA
INITTMR0
BCF INTCON,T0IF
MOVLW d61 ;设置外面套的循环次数
MOVWF L1
LOOP
BTFSS INTCON,T0IF
GOTO LOOP
BCF INTCON,T0IF
DECFSZ L1,f ;外面套的循环
GOTO LOOP
MOVLW B00000001
XORWF PORTA,f ;取反RA0,让LED闪耀
GOTO INITTMR0
END

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/260177.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部