| 
 
| ORG 0x000 CLRF  PCLATH
 GOTO  MAIN;冗余
 ;-----------------------
 ;中断入口向量
 ;-----------------------
 ORG  0X004
 PUSH  ;进栈
 BANK0
 CLRF  PCLATH
 GOTO  INTSEV
 ;-----------------------
 ;中断服务子程序
 ;-----------------------
 INTSEV NOP  ;中断程序体
 BTFSS T0IE ;判断是否允许TMR0外部计数中
 GOTO BACK0;允许,则继续判断是否产生中断
 BTFSC T0IF ;中断吗?
 GOTO INT00
 BACK0 BANK0
 BCF T0IF ;退出中断
 POP
 RETFIE
 ;-----各个中断处理----
 INT00 BANK0;检测过零点,-开启TMR1和设定其初值
 BSF RESLED
 NOP
 MOVLW 0FFH;定时常数
 MOVWF TMR0;重新装载TMR00
 GOTO BACK0
 MAIN  BANK1
 MOVLW B'00000111'
 MOVWF ADCON1
 MOVLW  0FFH
 MOVWF  TRISA;PORTA
 BSF T0CS ;TMR0设置为外部上升沿脉冲计数
 BCF T0SE
 BSF GIE
 BSF T0IE
 BCF T0IF
 MOVLW 0FFH
 MOVWF TMR0 ;TMR0的计数初值
 MAIN1  BANK0
 CLRWDT
 BSF PSA
 BCF RESLED
 GOTO MAIN1
 经测试发现与RA,4脚的外部脉冲周期不一致。丢掉好些个计数脉冲
 波形如
 蓝色为RESLED
 黄色为RA,4脚脉冲。
 | 
 
×本帖子中包含更多资源您需要 登录 才可以下载或查看,没有账号?注册 
  |