PIC16F877A TIMER1定时操作

发布者:心想的45号最新更新时间:2016-12-07 来源: eefocus关键字:PIC16F877A  TIMER1  定时操作 手机看文章 扫描二维码
随时随地手机看文章

/********************** 
Title:PIC16F877A TIMER1定时操作 
Author:hnrain 
Date:2010-12-28

使用前置分频器 
T1CKPS1  T1CKPS1   
   0        0        1  分频  TMR1时钟为晶振时钟/(4*1) 
   0        1        2  分频  TMR1时钟为晶振时钟/(4*2) 
   1        0        4  分频  TMR1时钟为晶振时钟/(4*4) 
   1        1        8  分频  TMR1时钟为晶振时钟/(4*8) 
   TMR1是16位宽度的TMR1由2个8位的可读写的寄存器TMR1H和TMR1L组成。

TMR1有专门的启停控制位TMR1ON,通过软件可以任意启动或暂停TMR1计数功能。

T1CON:TIMER1 CONTROL REGISTER

bit7-6 unimplemented :Read as ‘0’

bit5-4 T1CKPS1:T1CKPS0:Timer1 input Clock Prescale Select bits

          11=1:8 prescale value

          10=1:4 prescale value

          01=1:2 prescale value

          00=1:1 prescale value

bit3   T1OSCEN:Timer1 Oscillator Enable Control bit

         1 = Oscillator is enable

         0 = Oscillator is shut-off

bit2 T1SYNC:Timer1 External Clock Input Synchronization Control bit

        when TMR1CS = 1

        1= Do not synchronize external clock input

        0= Synchronize external clock input

        when TMR1CS = 0

        This bit is ignored .Timer1 uses the internal clock when TMR1CS = 0.

bit1 TMR1CS:Timer1 Clock Source Select bit

       1 = External clock from pin RC0/T1OSO/T1CKI

       0 = Internal clock

bit0 TMR1ON:Timer1 on bit

     1 = enables timer1

     0 = stops timer1 
***********************/ 
#include  
#include "../head/config.h"

__CONFIG(HS&WDTDIS&LVPDIS&PWRTEN);

void Delayms(uint16 dly);

void main(void) 

    T1CKPS1 = 1; 
    T1CKPS0 = 1; 
    TMR1CS = 0; 
    TMR1L = (65536 - 37500)%256; 
    TMR1H = (65536 - 37500)/256; 
    GIE = 1; 
    PEIE = 1; 
    TMR1IE = 1; 
    TMR1ON = 1;    
    PORTD = 0x00; 
    TRISD = 0x00; 
    while(1){} 
}

void interrupt ISR(void) 

    TMR1L = (65536 - 37500)%256; 
    TMR1H = (65536 - 37500)/256; 
    if(TMR1IF&&TMR1IE) 
    { 
        TMR1IF = 0; 
        PORTD = ~PORTD; 
    }    
}


关键字:PIC16F877A  TIMER1  定时操作 引用地址:PIC16F877A TIMER1定时操作

上一篇:防水功能强大的外设触摸控制器令Microchip MCU如虎添翼
下一篇:PIC单片机学习7 TMR1

推荐阅读最新更新时间:2024-03-16 15:23

PIC16F877A单片机驱动按键控制8个数码管的显示的C程序
经典按键控制数码管C程序 #include htc.h #define HC595_SER RB7 #define HC595_SCK RB6 #define HC595_RCK RB5 #define key_164_data RB3 #define key_164_clk RB2 #define key_com1 RB1 #define key_com0 RB0 #define TURE 1 bit key_finish; //定义的位变量,这是PICmate仿真软件
[单片机]
PIC16F877A LCD驱动HT1621的源代码
P IC 16F877A LCD 驱动HT1621的源代码 STATUS EQU 3H FSR EQU 4H RB EQU 6H RC EQU 7H OPTIONA EQU 81H TRISB EQU 86H TRISC EQU 87H GENR0 EQU 053H GENR1 EQU 054H WD_RG EQU 055H DA_AG0 EQU 056H ;SEG0 SEG1 DA_AG8 EQU 05EH ;SEG16 SEG17 ;............................. C EQU 0 Z EQU 2 RP
[单片机]
STM32之timer1产生PWM(互补通道)
一、简介 本文介绍STM32系列如何使用timer1的第TIM1_CH2N通道(PB14)产生PWM。 二、实验平台 库版本:STM32F10x_StdPeriph_Lib_V3.5.0 编译软件:MDK4.53 硬件平台:STM32开发板(主芯片stm32f103c8t6) 仿真器:JLINK 三、版权声明 四、实验前提 1、在进行本文步骤前,请先阅读以下博文: 1)《STM32之timer3产生PWM》:http://blog.csdn.net/feilusia/article/details/53634882 2、在进行本文步骤前,请先实现以下博文: 暂无 五、基础知识 1、什么是
[单片机]
STM32之<font color='red'>timer1</font>产生PWM(互补通道)
PIC16F877A单片机led的动态显示
list p=16F877A,R=DEC include p16F877A.inc ;;;;;user variables;;;;;;;; Count2 equ 23H Count3 equ 24H data_out1 equ 25H data_out2 equ 26H ;;;;;;;reset vector;;;;;;;;; org 0x00 goto mainline ;;;;;;delay program;;;;;;; delay_2ms movlw 0x05 movwf Count2 lp0 movlw 0xff movwf Count3 lp1 decfsz Count3,F goto lp1 decfsz Count2
[单片机]
PIC16F877A定时器的学习
由于实时数据的仿真需要用到定时器产生数据,今天晚上完成PIC16F877A产生正弦波形,并将波形数据发送到上位机! 这是一个三角波的仿真程序,并通过串口发送到上位机 #include stdio.h #include stdlib.h #include math.h #include main.h #include t232.h #include lcd.h #include timer.h //define global variable bank1 uchar flag =0 ;//利用flag判断中断时间是否到了! bank1 char dat ; bank2 char str = shan dong qi
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved