| |
|
|
警告:由于格式的原因,直接从网页上复制程序,粘贴到编译环境里面,编译时会出错。敬请直接下载word档,从word里面直接复制到编译环境里面即可。 ( word原文件下载) |
外部中断的设置
1.设置外部中断0(PB4):上升沿触发
clr P_IRQ_Opt1,CB_IRQOpt1_IRQM0
clr P_IRQ_Opt1,CB_IRQOpt1_IRQM0
; IRQ0 edge trigger
set P_IRQ_Opt1,CB_IRQOpt1_IRQ0ES
set P_IRQ_Opt1,CB_IRQOpt1_IRQ0ES
; IRQ0 rising trigger
set P_INT_Flag0,CB_INT_IRQ0IF
; clear INT request flag
set P_INT_Ctrl0,CB_INT_IRQ0IE
; enable IRQ0 INT (INT1).
cli ; enable INT
|
2.设置外部中断0(PB4):下降沿触发
clr P_IRQ_Opt1,CB_IRQOpt1_IRQM0
clr P_IRQ_Opt1,CB_IRQOpt1_IRQM0
; IRQ0 edge trigger
clr P_IRQ_Opt1,CB_IRQOpt1_IRQ0ES
clr P_IRQ_Opt1,CB_IRQOpt1_IRQ0ES
; IRQ0 falling trigger
set P_INT_Flag0,CB_INT_IRQ0IF
; clear INT request flag
set P_INT_Ctrl0,CB_INT_IRQ0IE
; enable IRQ1 INT (INT1).
cli ; enable INT |
3.设置外部中断0(PB4):高电平触发
|
set P_IRQ_Opt1,CB_IRQOpt1_IRQM0
set P_IRQ_Opt1,CB_IRQOpt1_IRQM0
; IRQ0 level trigger
set P_IRQ_Opt1,CB_IRQOpt1_IRQ0ES
set P_IRQ_Opt1,CB_IRQOpt1_IRQ0ES
; IRQ0 rising level trigger
set P_INT_Flag0,CB_INT_IRQ0IF
; clear INT request flag
set P_INT_Ctrl0,CB_INT_IRQ0IE
; enable IRQ1 INT (INT1).
cli ; enable INT
|
4.设置外部中断0(PB4):低电平触发
|
set P_IRQ_Opt1,CB_IRQOpt1_IRQM0
set P_IRQ_Opt1,CB_IRQOpt1_IRQM0
; IRQ0 level trigger
clr P_IRQ_Opt1,CB_IRQOpt1_IRQ0ES
clr P_IRQ_Opt1,CB_IRQOpt1_IRQ0ES
; IRQ0 falling level trigger
set P_INT_Flag0,CB_INT_IRQ0IF
; clear INT request flag
set P_INT_Ctrl0,CB_INT_IRQ0IE
; enable IRQ1 INT (INT1).
cli ; enable INT
|
5 .设置外部中断1(PB5):上升沿触发
|
clr P_IRQ_Opt1,CB_IRQOpt1_IRQM1
clr P_IRQ_Opt1,CB_IRQOpt1_IRQM1
; IRQ1 edge trigger
set P_IRQ_Opt1,CB_IRQOpt1_IRQ1ES
set P_IRQ_Opt1,CB_IRQOpt1_IRQ1ES
; IRQ1 rising trigger
set P_INT_Flag0,CB_INT_IRQ1IF
; clear INT request flag
set P_INT_Ctrl0,CB_INT_IRQ1IE
; enable IRQ1 INT (INT1).
cli ; enable INT
|
6.设置外部中断1(PB5):下降沿触发
|
clr P_IRQ_Opt1,CB_IRQOpt1_IRQM1
clr P_IRQ_Opt1,CB_IRQOpt1_IRQM1
; IRQ1 edge trigger
clr P_IRQ_Opt1,CB_IRQOpt1_IRQ1ES
clr P_IRQ_Opt1,CB_IRQOpt1_IRQ1ES
; IRQ1 falling trigger
set P_INT_Flag0,CB_INT_IRQ1IF
; clear INT request flag
set P_INT_Ctrl0,CB_INT_IRQ1IE
; enable IRQ1 INT (INT1).
cli ; enable INT
|
7.设置外部中断1(PB5):高电平触发
|
set P_IRQ_Opt1,CB_IRQOpt1_IRQM1
set P_IRQ_Opt1,CB_IRQOpt1_IRQM1
; IRQ1 level trigger
set P_IRQ_Opt1,CB_IRQOpt1_IRQ1ES
set P_IRQ_Opt1,CB_IRQOpt1_IRQ1ES
; IRQ1 high level trigger
set P_INT_Flag0,CB_INT_IRQ1IF
; clear INT request flag
set P_INT_Ctrl0,CB_INT_IRQ1IE
; enable IRQ1 INT (INT1).
cli ; enable INT
|
8.设置外部中断1(PB5):低电平触发
|
set P_IRQ_Opt1,CB_IRQOpt1_IRQM1
set P_IRQ_Opt1,CB_IRQOpt1_IRQM1
; IRQ1 level trigger
clr P_IRQ_Opt1,CB_IRQOpt1_IRQ1ES
clr P_IRQ_Opt1,CB_IRQOpt1_IRQ1ES
; IRQ1 low level trigger
set P_INT_Flag0,CB_INT_IRQ1IF
; clear INT request flag
set P_INT_Ctrl0,CB_INT_IRQ1IE
; enable IRQ1 INT (INT1).
cli ; enable INT
|
9.设置外部中断2(PD0):上升沿触发
|
clr P_IRQ_Opt1,CB_IRQOpt1_IRQM2
clr P_IRQ_Opt1,CB_IRQOpt1_IRQM2
; IRQ2 edge trigger
set P_IRQ_Opt1,CB_IRQOpt1_IRQ2ES
set P_IRQ_Opt1,CB_IRQOpt1_IRQ2ES
; IRQ2 rising trigger
set P_INT_Flag0,CB_INT_IRQ2IF
; clear INT request flag
set P_INT_Ctrl0,CB_INT_IRQ2IE
; enable IRQ2 INT (INT1).
cli ; enable INT
|
10.设置外部中断2(PD0):下降沿触发
|
clr P_IRQ_Opt1,CB_IRQOpt1_IRQM2
clr P_IRQ_Opt1,CB_IRQOpt1_IRQM2
; IRQ2 edge trigger
clr P_IRQ_Opt1,CB_IRQOpt1_IRQ2ES
clr P_IRQ_Opt1,CB_IRQOpt1_IRQ2ES
; IRQ2 falling trigger
set P_INT_Flag0,CB_INT_IRQ2IF
; clear INT request flag
set P_INT_Ctrl0,CB_INT_IRQ2IE
; enable IRQ2 INT (INT1).
cli ; enable INT
|
11.设置外部中断2(PD0):高电平触发
|
set P_IRQ_Opt1,CB_IRQOpt1_IRQM2
set P_IRQ_Opt1,CB_IRQOpt1_IRQM2
; IRQ2 level trigger
set P_IRQ_Opt1,CB_IRQOpt1_IRQ2ES
set P_IRQ_Opt1,CB_IRQOpt1_IRQ2ES
; IRQ2 high level trigger
set P_INT_Flag0,CB_INT_IRQ2IF
; clear INT request flag
set P_INT_Ctrl0,CB_INT_IRQ2IE
; enable IRQ2 INT (INT1).
cli ; enable INT
|
12.设置外部中断2(PD0):低电平触发
|
set P_IRQ_Opt1,CB_IRQOpt1_IRQM2
set P_IRQ_Opt1,CB_IRQOpt1_IRQM2
; IRQ2 level trigger
clr P_IRQ_Opt1,CB_IRQOpt1_IRQ2ES
clr P_IRQ_Opt1,CB_IRQOpt1_IRQ2ES
; IRQ2 low level trigger
set P_INT_Flag0,CB_INT_IRQ2IF
; clear INT request flag
set P_INT_Ctrl0,CB_INT_IRQ2IE
; enable IRQ2 INT (INT1).
cli ; enable INT
|
13.设置外部中断3(PD1):上升沿触发
|
clr P_IRQ_Opt1,CB_IRQOpt1_IRQM3
clr P_IRQ_Opt1,CB_IRQOpt1_IRQM3
; IRQ3 edge trigger
set P_IRQ_Opt1,CB_IRQOpt1_IRQ3ES
set P_IRQ_Opt1,CB_IRQOpt1_IRQ3ES
; IRQ3 rising trigger
set P_INT_Flag0,CB_INT_IRQ3IF
; clear INT request flag
set P_INT_Ctrl0,CB_INT_IRQ3IE
; enable IRQ3 INT (INT1).
cli ; enable INT
|
14.设置外部中断3(PD1):下降沿触发
|
clr P_IRQ_Opt1,CB_IRQOpt1_IRQM3
clr P_IRQ_Opt1,CB_IRQOpt1_IRQM3
; IRQ3 edge trigger
clr P_IRQ_Opt1,CB_IRQOpt1_IRQ3ES
clr P_IRQ_Opt1,CB_IRQOpt1_IRQ3ES
; IRQ3 falling trigger
set P_INT_Flag0,CB_INT_IRQ3IF
; clear INT request flag
set P_INT_Ctrl0,CB_INT_IRQ3IE
; enable IRQ3 INT (INT1).
cli ; enable INT
|
15.设置外部中断3(PD1):高电平触发
|
set P_IRQ_Opt1,CB_IRQOpt1_IRQM3
set P_IRQ_Opt1,CB_IRQOpt1_IRQM3
; IRQ3 level trigger
set P_IRQ_Opt1,CB_IRQOpt1_IRQ3ES
set P_IRQ_Opt1,CB_IRQOpt1_IRQ3ES
; IRQ3 high level trigger
set P_INT_Flag0,CB_INT_IRQ3IF
; clear INT request flag
set P_INT_Ctrl0,CB_INT_IRQ3IE
; enable IRQ3 INT (INT1).
cli ; enable INT
|
16.设置外部中断3(PD1):低电平触发
|
set P_IRQ_Opt1,CB_IRQOpt1_IRQM3
set P_IRQ_Opt1,CB_IRQOpt1_IRQM3
; IRQ3 level trigger
clr P_IRQ_Opt1,CB_IRQOpt1_IRQ3ES
clr P_IRQ_Opt1,CB_IRQOpt1_IRQ3ES
; IRQ3 low level trigger
set P_INT_Flag0,CB_INT_IRQ3IF
; clear INT request flag
set P_INT_Ctrl0,CB_INT_IRQ3IE
; enable IRQ3 INT (INT1).
cli ; enable INT
|
|
|