Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7563390
  • 博文数量: 961
  • 博客积分: 15795
  • 博客等级: 上将
  • 技术积分: 16612
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-07 14:23
文章分类

全部博文(961)

文章存档

2016年(1)

2015年(61)

2014年(41)

2013年(51)

2012年(235)

2011年(391)

2010年(181)

分类: 嵌入式

2012-05-21 15:48:09


点击(此处)折叠或打开

  1. /**
  2.  * 功能:定时中断1
  3.  * 说明:    
  4.  * 时间:2012-5-18 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 = 0x01;    /* 充许定时中断 */
  15.     
  16.     /*计算50Ms初值*/
  17.     TMR1L = (65536-50000)%256;    
  18.     TMR1H = (65536-50000)/256;

  19.     T1CON = 0x01;
  20.     T1CON |= 1<<4;    /* 设定分频 */
  21. }

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

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

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

  41.         TMR1L = (65536-50000)%256;    
  42.         TMR1H = (65536-50000)/256;

  43.         ++num; /* 计数值加一 */
  44.     }
  45. }
源码+仿真图: temp.rar   
阅读(1093) | 评论(0) | 转发(1) |
0

上一篇:定时中断

下一篇:定时中断2

给主人留下些什么吧!~~