Chinaunix首页 | 论坛 | 博客
  • 博客访问: 631571
  • 博文数量: 1008
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 5175
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-31 09:44
文章分类
文章存档

2012年(1008)

我的朋友

分类:

2012-08-01 10:59:35

原文地址:定时中断2 作者:luozhiyong131


点击(此处)折叠或打开

  1. /**
  2.  * 功能:定时中断2
  3.  * 说明:    
  4.  * 时间:2012-5-21 Lzy
  5.  */
  6. #include <pic.h>

  7. unsigned char num = 0;

  8. void init()
  9. {
  10.     TRISD &= ~0x01 ; /* 设置第0脚为输出方式 */
  11.     RD0 = 0;

  12.     INTCON |= 1 << 7;    /* 开启总中断 */
  13.     INTCON |= (1 << 6);    
  14.     PIE1 = 1<<1;    /* 充许定时中断 */
  15.     
  16.     /*初值*/
  17.     TMR2 = 6;

  18.     T2CON = 0x01;    /* 前分频为1:4*/
  19.     T2CON |= 10<<3;    /* 设定分频 */
  20.     T2CON |= 1<<2;    /* 设Timer2 is on */
  21. }

  22. void main()
  23. {    
  24.     init();

  25.     while(1)
  26.     {
  27.         if(num >100)
  28.         {
  29.             num = 0;        /* 计数值归0 */
  30.             RD0 = !RD0;        /* 引脚电平变换 */
  31.         }
  32.     
  33.     }
  34. }

  35. /* 中断处理函数 */
  36. void interrupt time0()
  37. {
  38.     if(1 == TMR2IF)    /* 判断定时器1 产生中断*/
  39.     {
  40.         TMR2IF = 0;    /* 中断标志位需软件清0 */

  41.         TMR2 = 6;

  42.         ++num; /* 计数值加一 */
  43.     }
  44. }
源码+仿真图: temp.rar   
阅读(90) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~