⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 time.c

📁 PIC19F946下的定时器测试程序
💻 C
字号:
//******************************************************************************* 
//程 序 名:高精度时钟 
//设 计 者:石鱼WLEEN 
//		设计说明:设置TMR0预分频系数为16,一次计数中断溢出时间为4096us(0x1000) 
// 		每次TMR0中断服务中对时间累计变量microsecond加上4096 
// 		程序主循环中不停地查询变量microsecond,看是否超过50ms,如果时间超过 
// 		50ms,则microsecond=microsecond-50000,同时50ms计数器ms50加1 
// 		基于50ms计数器的累加值,更新秒,分和小时值 
// 		虽然每一个50ms的变化时间略有偏差,但所有偏差值都保留在microsecond 
// 		中,并得到累计修正,所以长时间跨度计时精确 
//******************************************************************************* 
#include<pic.h>
								/*
								TMR1IF:TMR1 溢出中断标志位
								1 = TMR1 寄存器已经溢出(必须用软件清零)
								0 = TMR1 寄存器未溢出
								*/

void interrupt timer(void) 
{ 
  if(TMR1IF)
  { 
    GIE=0;
 
   TMR1IF=0;
   TMR1ON=0;
   RD2=!RD2;
  //TMR1L=0x00;
  //TMR1H=0x80;
 
 
   TMR1ON=1;
   GIE=1;
  }

 }

void main() 
{				
 TRISD2=0;
 TRISA6=1;
 TRISA7=1;
 RD2=1;	
 TMR1ON=0;
 //TMR1H=0x80;
 //TMR1L=0x00;			
								/*
								bit 7 GIE:全局中断允许位
								1 = 允许所有未屏蔽的中断
								0 = 禁止所有中断
								bit 6 PEIE:外设中断允许位
								1 = 允许所有未屏蔽的外设中断
								0 = 禁止所有外设中断   
								*/

        
				                 // 溢溢出中断允许位
				                 // 1 = 允许
				                 // 0 = 禁止
   //TMR1CS=1;
  // T1CKS1=0;
  // T1CKS2=0;
  // T1SYNC=1;
  // 
 //  T1OSCEN=0;
TMR1IF=0;
PEIE=1;
GIE=1;
   T1CON=0b00001110;    //init but disable timer1
								/*
								bit7 0 bit6 0
								bit 5-4 T1CKPS<1:0>:Timer1 输入时钟预分频比选择位
								11 = 1:8 预分频比
								10 = 1:4 预分频比
								01 = 1:2 预分频比
								00 = 1:1 预分频比
								bit 3 T1OSCEN:LP 振荡器使能控制位
								0 = LP 振荡器关闭
								bit 2 T1SYNC:Timer1 外部时钟输入同步控制位
								TMR1CS = 1:
								1 = 不与外部时钟输入同步
								bit 1 TMR1CS:Timer1 时钟源选择位
								1 = 选择来自RC5/T1CKI/CCP1/SEG10 引脚或T1OSC 的外部时钟(上升沿计数)
								0 = 内部时钟(FOSC/4)
								bit 0 TMR1ON:Timer1 使能位
								1 = 使能Timer1
								0 = 停止Timer1
								*/
TMR1IE=1;

TMR1ON=1;

while(1) ;

}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -