PIC16F917 Time0定时/计数器练习程序

发布者:冰雪勇士最新更新时间:2016-09-05 来源: eefocus关键字:PIC16F917  Time0  计数器 手机看文章 扫描二维码
随时随地手机看文章
PIC16F917 Time0定时/计数器练习程序 - 小文 - 小文电子设计

 

PIC16F917 Time0定时/计数器练习程序 - 小文 - 小文电子设计

 

/*************PIC16F917单片机程序******************************/
/*****File  Function :  Time0定时器/计数器练习程序   *****/
/*****Program Author :  ZhengWen(ClimberWin)       *****/
/*****MCU            : PIC16F917  内部晶振              *****/
/*****Compile Date   :  2010/08/17                          *****/
/*****Edition Info   :  V1.0                                       *****/
/*************************************************************/
//使用内部Time0定时器/计数器,进行LED计数显示
//引脚定义:PORTD=8LED,KEY=RB0(INT)
/*修改日期:                                                 */

/************************************/
#include 
#define uchar unsigned char
#define uint unsigned int
void Init(void);//初始化子程序
#define       KEY       RB0
uchar led_num;//定义LED计数值存储地址
uchar T0_Count;
void Init(void)
 {
     PORTB = 0B00000000;
     PORTD = 0B00000000;
     TRISB = 0B00100001;//设置RB0为输入,作为按键口
     TRISD = 0B00000000;//设置PORTD口为输出,作为LED显示口
     PORTD=~led_num;
///////////Time0配置///////////////////////////////////////
     T0CS=0;//配置为定时器模式
     PSA=1;//T0不分频,预分频器分配给WDT
     T0IE=1; //T0定时器使能
     T0IF=0; //T0定时器标志位,1表示有中断,必须软件清零
     GIE=1;//全局中断使能   
}


/////////////定时器0子程序//////////////////
void interrupt Time0(void)//进入中断计数值加1,并输出显示
{
 TMR0=0x00;//定时器初始值
 T0IF=0;  //清除中断标志位
 T0_Count++;

  if(T0_Count==200)
  {
   PORTD=~led_num;
  led_num++;
  }
 else
  {;}
}

////////////主程序/////////////////////////
int main (void)
{
  Init();//初始化程序
  while(1);//等待进入定时中断程序
}

关键字:PIC16F917  Time0  计数器 引用地址:PIC16F917 Time0定时/计数器练习程序

上一篇:PIC16F917 NOKIA5110液晶测试程序
下一篇:PIC16F917 RB0(INT)外部中断练习程序

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

14.定时器和计数器
CPU时序的有关知识: 振荡周期:为单片机提供定时信号的振荡源的周期(晶振周期或外加振荡周期)该开发板外接12M(频率)晶振提供震荡周期 状态周期:2个振荡周期为1个状态周期,用S表示。振荡周期又称S周期或时钟周期。 机器周期:1个机器周期含6个状态周期,12个振荡周期。 指令周期:完成1条指令所占用的全部时间,它以机器周期为单位。 外接晶振为12MHz时,51单片机相关周期的具体值为: 振荡周期=1/12us; 状态周期=1/6us; 机器周期=1us; 指令周期=1~4us; 51单片机有两组定时器/计数器,因为既可以定时,又可以计数,故称之为定时器/计数器。 定时器/计数器和单片机的CPU是相互独立的。定时器/计数器工作
[单片机]
14.定时器和<font color='red'>计数器</font>
1/n计数器电路
CD4017.pdf
[模拟电子]
1/n<font color='red'>计数器</font>电路
51中断-定时器/计数器中断
什么时中断: 是指在执行程序的过程中,当出现每种情况,发出紧急的事件或其他情况时,有服务对象向CPU发出中断请求的信号,CPU暂时中断当前的程序的执行,而转去执行相应的处理程序,待处理程序完毕以后,再返回来执行原来被中断的程序。 关于中断以定时/计数器0中断为例; void timer0_init() { EA = 1; //打开总中断; TMOD |= 0x01; //选定定时/计数器0的工作的方式 TH0 = (65536 - 20000) / 256; TL0 = (65536 - 20000) % 256; //初始化定时/计数器的值 ET0 = 1; //打
[单片机]
LPC1788实现10ms单位的计数器
利用LPC1788的定时器0实现10ms单位的计数器,即每10ms计数增加1. 初始化定时器0 init_timer(1,599990); //10ms为单位 599990=10(60000000/1000-1),LPC1788工作在120MHZ,经PLL分频后的外设时钟PeripheralClock为60MHZ 函数原型: uint32_t init_timer ( uint8_t timer_num, uint32_t TimerInterval ) { timer0_counter = 0; LPC_SC- PCONP |= (0x01 1); LPC_TIM0- MR0 = TimerInter
[单片机]
PIC单片机中预分频器的作用
预分频器是一个分频倍数可编程的8位计数器。其结构如图所示上节对预分频参数已有描述,这里不赘述。 预分频器的分配对象完全由程序控制。可以在程序中改变预分频器分配对象。 1、从RTCC到WDT的改变 MOVLW B‘XX0X0XXX’ ;选择内部时钟和新的预分频值 OPTION ;如果新的预分频值=“000”或者 CLRF RTCC ;=“001”,则暂时先选一个另外的值 MOVLW B‘XXXX1XXX’ ;清零RTCC和预分频器 OPTION ;选择WDT为对象,但不要改变预分频值 CLRWDT ;清WDT和预分频器 MOVLW B‘XXXX1XXX’ ;选择新的预分频值 2、从WDT到RTCC的改变 CLRWDT ;清
[单片机]
PIC单片机中预分频器的作用
基于51单片机定时器0计时计数器1计数的霍尔传感器精确测速
#include reg52.h #include intrins.h #define uchar unsigned char #define uint unsigned int sbit RW=P2^6;//定义LCD1602液晶显示器读写端 sbit RS=P2^5;//定义LCD1602液晶显示器数据命令端 sbit EN=P2^7;//定义LCD1602液晶显示器使能端 sbit qiting=P3^0;//定义启停按键 uchar qitingnum;//定义启停次数变量 uint count;//定时器0定时中断次数变量 unsigned long speed=0;//定义速度变量 uchar co
[单片机]
基于51单片机定时器0计时<font color='red'>计数器</font>1计数的霍尔传感器精确测速
INT1 中断五位计数器 PROTEUS 和51单片机教程
程序源代码如下: /* INT1中断5位计数 */ #include reg51.h typedef unsigned char uint8; typedef unsigned int uint16; sbit K2 = P3^4; void delay(uint16 x) { uint16 i,j; for(i = x; i 0; i --) for(j = 114; j 0; j --); } code uint8 LED_CODE = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF}; code uint8 Scan_BITs =
[单片机]
INT1 中断五位<font color='red'>计数器</font> PROTEUS 和51单片机教程
17课:单片机定时器/计数器的方式控制字
从上一节我们已经得知,单片机中的定时/计数器都能有多种用途,那么我怎样才能让它们工作于我所需要的用途呢?这就要通过定时/计数器的方式控制字来设置。 在单片机中有两个特殊功能寄存器与定时/计数有关,这就是TMOD和TCON。顺便说一下,TMOD和TCON是名称,我们在写程序时就能直接用这个名称来指定它们,当然也能直接用它们的地址89H和88H来指定它们(其实用名称也就是直接用地址,汇编软件帮你翻译一下而已)。 TMOD结构 从图1中我们能看出,TMOD被分成两部份,每部份4位。分别用于控制T1和T0,至于这里面是什么意思,我们下面介绍。 TCON结构 从图2中我们能看出,TCON也被分成两部份,高4位用于定时/计
[单片机]
17课:单片机定时器/<font color='red'>计数器</font>的方式控制字
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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