上一篇文章写了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秒灯闪一次。
;程序采用可重定位的汇编编写
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 B'00000000'
MOVWF TRISA ;PORTA所有位为输出
BANKSEL OPTION_REG
MOVLW B'11000100'
MOVWF OPTION_REG ;配置Timer0预分频为32分频
BANKSEL PORTA
INITTMR0
BCF INTCON,T0IF
MOVLW d'61' ;设置外面套的循环次数
MOVWF L1
LOOP
BTFSS INTCON,T0IF
GOTO LOOP
BCF INTCON,T0IF
DECFSZ L1,f ;外面套的循环
GOTO LOOP
MOVLW B'00000001'
XORWF PORTA,f ;取反RA0,让LED闪烁
GOTO INITTMR0
END
关键字:PIC单片机
引用地址:
PIC单片机入门之定时器查询闪灯程序
推荐阅读最新更新时间:2024-03-16 14:41
定时器 T1 通过查询方式控制 LED1 周期性闪烁
关键就是对寄存器的配置。 CC2530的T1定时器(16位)需要配置三个寄存器T1CTL、T1STAT、IRCON 这里只是给出简单的介绍,要详细的可以参考CC2530的datasheet. T1CTL(0xE4) 作用是定时器 1 的控制和状态 T1CTL (Bit 3:2) 分频器划分值,如下: 00: 标记频率/1 01: 标记频率/8 10: 标记频率/32 11: 标记频率/128 T1CTL (Bit 1:0) 选择定时器1模式 00: 暂停运行。 01: 自由运行,从0x0000到0xFFFF反复计数。 10: 模,从0x0000到T1CC0反复计数。 11: 正计数/倒计数,从 0x0000 到 T1CC0 反复计
[单片机]
基于PIC单片机的数字可调稳压电源(1.3-25v)PROTEUS仿真+源程序
程序如下: list p=12c672 ; list directive to define processor #include p12c672.inc ; processor specific variable definitions w_temp EQU 0x70 status_temp EQU 0x71 pclath_temp EQU 0x72 reg0 EQU 0x75 reg1 EQU 0x76 advalue EQU 0x77 advflag EQU 0x78 bank
[单片机]
pic单片机的各种汇编语言指令解析
pic 单片机为最常用单片机之一,许多程序均基于 pic 单片机进行开发。因此,熟练 pic 单片机编程尤为重要。为保证大家能准确、熟练掌握 pic 单片机的使用,本文特带来 pic 单片机的各种汇编语言指令的讲解上篇,下篇将在后期文章中予以讲解。如果你对本文即将讲解的内容充满兴趣,不妨继续往下阅读哦。 一、pic 的指令系统 pic8 位单片机共有三个级别,有相对应的指令集。基本级 pic 系列芯片共有指令 33 条,每条指令是 12 位字长;中级 pic 系列芯片共有指令 35 条,每条指令是 14 位字长;高级 pic 系列芯片共有指令 58 条,每条指令是 16 位字长。其指令向下兼容。 二、pic 汇编语言指令格
[单片机]
PIC单片机的中断讨论
******************** 中断服务代码 btfss INTCON,T0IE ; 判断是否为 T0中断 goto other_int btfss INTCON,T0IF ; it s the time of T0 int goto other_int bcf INTCON,T0IF ; 是T0中断,清除中断标 志 movlw 0x10 ; 微秒的高位字节加上定时时间 256x16分频=4096=0x1000的高位 (0x10) addwf us+1 goto end_int other_int ; 可 添加其他
[单片机]
基于PIC单片机的智能低电阻测量仪
引言
低电阻测凰仪按其测试电流的大小可分为两类:一类测试电流较大,主要用于接插件、开关、导体等产品的直流低电阻的测量,另-类测试电流很小(一般为1mA左右),用于电雷管、点火具或其他危险易爆场合的接插件、开关等元器件的直流低电阻的测量。该种测量仪对安全性能要求很高,必须增加多种保护电路。在PCB吸设计布线时也要考虑安全性和可靠性。89年至今,我们不断改进完善电路设计,设计生产了四个型号的低电阻测量仪,这里介绍的是最新的DZC-4型智能旺电阻测量仪。
一、 总体方案和技术指标
仪器可分为五个部分:电源供应、精密恒流源、精密电压放大器、A/D转换器、单片机控制器。见图l主要技术指标:
1、测试范围:0~20
[单片机]
pic单片机定时器/计数器模块
前言 在单片机中,对于广大初学者来说,定时器、计数器此章节不仅应用广泛,而且还是单片机入门的敲门砖。在此,笔者就以此章节为重点,对定时器/计数器学习做出基本介绍。 -------------------------------------------------------------------------------------------------** 提示:以下是本篇文章正文内容,下面案例仅供参考 定时器/计数器模块的基本用途 如今,在许多世界著名的半导体制造公司开发型号繁多的单片机芯片内部,定时器/计时器模块是一种基本上普遍配置的常用外围设备模块,区别仅在于:配备的数量和规格不同(如:规格是否附带预分频器和
[单片机]
PIC单片机学习之独立按键
硬件电路:独立按键接RA5 效果:让RD0口的LED,当独立按键为0时,点亮。 注意:PORTA口的默认状态不是数字IO口,我们要将他配置成数字IO口。这涉及到了ADCON1寄存器。 //按键的基本应用 独立按键 //现象:按下S18,LED1点亮 #include pic.h #include ../head/config.h __CONFIG(HS&WDTDIS&LVPDIS&PWRTEN);//对熔丝位进行设置 void main(void) { ADCON1 = 0x07;//让PORTA口都是数字IO功能,参看数据手册130页 TRISA = 0xff; // PORTA = 0xff;
[单片机]
PIC单片机通用同步异步收发器的编程应用
0 引言 PIC18Fxx8单片机是美国微芯公司推出的16位RISC指令集的高级产品,由于芯片内含有A/D、内部E2PROM存储器、I2C和SPI接口、CAN接口、同步/异步串行通信(USART)接口等强大的功能,具有很好的应用前景。但是,目前介绍其应用和以C语言编程的中文参考资料很少。本文将探讨该型单片机异步串行通信的编程应用,程序用HI-TECH PICC-18 C语言编写,并在重庆大学-美国微芯公司PIC单片机实验室的PIC18F458实验板上通过。 1 PIC18FXX8单片机同步/异步收发器(USART) 通用同步/异步收发器(USART)模块是由PIC18FXX8内的三个串行I/O模块组成的器件之
[单片机]