1.设置定时器0设置流程定时器0配置 代码展示// 定时器0设置 PCON1 C_TMR0_Dis; // 设置定时器0 要先关闭定时器0 TMR0 0; // 设置定时器0 初始值默认 上溢 8位 T0MD C_PS0_TMR0 | C_PS0_Div8 ; // 设置定时器0 分频器08分频器 PCON1 C_TMR0_En; // 使能寄存器 打开定时器0 开始计数代码详解设置定时器0 关闭PCON1(Power控制寄存器1)PCON1 可以控制 T0EN (定时器0的开关从表中可以看出 T0EN 初始值1 表示定时器0 已被开启使用方法1可以使用PCON1 0x00控制第0位 关闭定时器02也可以使用官方 .h 宏定义来进行操作 格式(PCON1 C_TMR0_DIs)设置TMR0初始值TMR0 0; (这里设置 定时器0 是上溢中段 所以从0开始 且定时器0 是八位上数定时器 所以总共可以计数255)这里指的位数 是几位二进制 8位(1111 1111) 10位(0011 1111 1111) 12位(1111 1111 1111)配置T0MD 定时器0控制寄存器( 配置分频器 )T0MD C_PS0_TMR0 | C_PS0_Div8 ;可以使用操作八位寄存器的方式 将预分频器0 分配到 定时器0并且将分频的比例选择 也设置为分频值 设置为8位 (下图为NY8b062f_constant.h 中的宏定义)设置定时器0 开启中断函数配置 代码展示void isr(void) __interrupt(0) //中断触发时自动运行到这里示例Timer0 Timer1中断 { //if进行条件判断 看是触发了那一条中断 if(INTFbits.T1IF)//检查Timer1的中断标志位是否溢出 { //写自己的业务代码 } if(INTFbits.T0IF)//检查Timer0的中断标志位是否溢出 { //写自己的业务代码 } } //在配置定时器时 要关闭总中断 来避免其他中断导致问题 void main() { DISI();//关闭总中断 //定时器0 配置 //定时器1 配置 ENI();//开启总中断 }中断的核心本质利用定时器、看门狗 产生中断溢出 中断溢出标志位 中断被检测到之后 自动的跳转到中断函数 执行中断函数中的命令 主函数中不需要写任何东西 这篇文章中使用的宏定义 全部会自动生成在 需要的时候让代码运行后进行查询