- /**
- * 功能:定时中断
- * 说明:
- * 时间:2012-5-18 Lzy
- */
- #include <pic.h>
- unsigned char num = 0;
- void init()
- {
- TRISD &= ~1 ; /* 设置第0脚为输出方式 */
- OPTION &= 1 << 5; /* Internal instruction cycle clock (CLKOUT) */
- OPTION &= 1 << 3; /* Prescaler is assigned to the Timer0 module */
- OPTION |= 2; /* 1 : 8 */
- INTCON = 0xa0; // 初始化INTCON REGISTER
- TMR0 = 6; /* 初始值为6*/
- }
- void main()
- {
- init();
- while(1)
- {
- if(num >50)
- {
- num = 0; /* 计数值归0 */
- RD0 = !RD0; /* 引脚电平变换 */
- }
-
- }
- }
- /* 中断处理函数 */
- void interrupt time0()
- {
- if(1 == T0IF) /* 判断定时器0 产生中断*/
- {
- T0IF = 0; /* 中断标志位需软件清0 */
- TMR0 = 6; /* 重赋初始值6 */
- ++num; /* 计数值加一 */
- }
- }
源码+仿真图:
temp.rar