新闻  |   论坛  |   博客  |   在线研讨会
51单片机系列之六:中断的应用
十年砍柴 | 2010-07-10 21:21:24    阅读:1068   发布文章

51单片机系列之六:中断的应用

一、设计任务

1、如图1,单片机的P2口通过一个排阻接上一个数码管,P3.2口接上一个开关(开关用于产生中断信号)。用单片机实现:开始时数码管的a,b,c,d,e,f,g依次被点亮(循环),当P3.2口来一个中断信号(一个低电平)时,数码管的a,b,c,d,e,f,g全部点亮,并且亮暗闪烁8次,然后接着原来的依次点亮。

2、如图2,单片机P0口接红色数码管,P1口接蓝色数码管,P2口接绿色数码管,P3.2接开关1(用于产生低优先级中断),P3.3口接开关2(用于产生高优先级中断)。用单片机实现:开始时红色数码管显示数字1~~8(循环),当开关1按下时,红色数码管显示当前数字停止,绿色数码管显示1~~8,一次完了后红色数码管接着显示,当绿色数码管显示时,按下开关2,绿色数码管显示当前数字停止,蓝色数码管显示1~~8(一次)。

二、电路原理图

          1——1:数码管的各段依次被点亮

         1——2K0按下时,产生中断信号

           2——1:低优先级中断

       2——2:高优先级中断

 

三、设计程序

//INT0中断数码管a,b,c,d,e,f,g

       ORG  0

       SJMP START

       ORG 30H

       SJMP INT0S

START:MOV IE,#81H

      MOV TCON,#1

      MOV A,#0FEH

      MOV P3,#0FFH

ST:   MOV P2,A

      ACALL DELAY

      RL A

      SJMP ST

INT0S:PUSH ACC

      MOV R2,#8

LOOP: CLR A

      MOV P2,A

      ACALL DELAY

      MOV A,#0FFH

      MOV P2,A

      ACALL DELAY

      DJNZ R2,LOOP

      POP ACC

      RETI

DELAY:MOV R7,#250

  D1: MOV R6,#250

  D2: NOP

      NOP

      NOP

      DJNZ R6,D2

      DJNZ R7,D1

      RET

      END

//高级中断中断低级中断

       ORG 0

       SJMP START

       ORG 3

       SJMP INT0S

       ORG 13H

       SJMP INT1S

       ORG 30H

START: MOV IE,#85H

       MOV TCON,#5

       MOV A,#0FEH

       MOV P3,#0FEH

       SETB PX1

ST0:   MOV A,#1

ST1:   PUSH ACC

       ACALL SEG7

       MOV P0,A

       ACALL DELAY

       POP ACC

       INC A

       CJNE A,#9,ST1

       SJMP ST0

INT0S: PUSH ACC

       MOV A,#0

LOOP:  INC A

       PUSH ACC

       ACALL SEG7

       MOV P2,A

       POP ACC

       ACALL DELAY

       CJNE A,#8,LOOP

       POP ACC

       MOV P2,#0FFH

       RETI

INT1S: PUSH ACC

       MOV A,#0

LOOP1: INC A

       PUSH ACC

       ACALL SEG7

       MOV P1,A

       ACALL DELAY

       POP ACC

       CJNE A,#8,LOOP1

       MOV P1,#0FFH

       POP ACC

       RETI

DELAY: MOV R7,#250

  D1:  MOV R6,#250

  D2:  NOP

       NOP

       NOP

       DJNZ R6,D2

       DJNZ R7,D1

       RET

SEG7:  INC A

       MOVC A,@A+PC

       RET

       DB 0C0H,0F9H,0A4H,0B0H

       DB 99H,92H,82H,0F8H

       DB 80H,90H,88H,83H

       DB 0C6H,0A1H,86H,8EH

       END

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客