单片机实验七-外部中断

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验七外部中断

1:在P1.0上产生周期为10ms的方波,设晶振频率12MHz.(要求分别以查询方式和中断方式设计程序)

查询:

ORG 0000H

MOV TMOD,#10H

MOV TH1,#0CEH

MOV TL1,#78H

SETB TR1

WAIT:JBC TF1,NX

SJMP WAIT

NX:CPL P1.0

MOV TH1,#0CEH

MOV TL1,#78H

SJMP WAIT

END

中断:

ORG 0000H

MOV TMOD,#10H

MOV TH1,#0CEH

MOV TL1,#78H

MOV IE, #88H

SETB TR1

WAIT: SJMP WAIT

ORG 001BH

CPL P1.0

MOV TH1,#0CEH

MOV TL1,#78H

RETI

END

例2按照按键次序,先后依次点亮8盏灯中的一盏,要求采用中断方式编程。

案例一:

ORG 0000H

LJMP MAIN

ORG 0013H ; 中断矢量

LJMP INT

ORG 040H

MAIN:SETB EX1 ; 开外部中断允许

CLR PX1 ; 外部中断低优先级

SETB IT1; 边沿触发

SETB EA; 开中断总允许

MOV A,#01H; 给A寄存器赋初值

HERE:SJMP HERE; 原地等待中断申请

INT:

MOV P1,A ; 输出到P1口显示

RL A ; 左环移一次,准备下次显示的数据

RETI ; 中断返回

END

案例二:

ORG 0000H

LJMP MAIN

ORG 0013H ; 外部中断1矢量

LJMP INT

ORG 030H

MAIN: MOV R0,#09

SETB EX1 ; 开外部中断允许

SETB PX1 ; 外部中断高优先级

SETB IT1; 边沿触发

SETB EA; 开中断总允许

MOV SP, #40H

MOV A,#0

MOV P1,A; 初始状态,全部灯暗

PUSH ACC; 保护中断前A值

MOV A,#01H; 赋待显示初值

WAIT: CJNE R0,#0,WAIT ;3次中断后退出

POP ACC ;弹出中断前保护的A值

MOV P1,A ;恢复初始状态,全部灯暗

INT:

MOV P1,A ; 输出到P1口显示

RL A ; 左环移一次,准备下次显示的数据

DEC R0;中断次数减1

RETI ; 中断返回

END

例3 有两组“红绿蓝黄”灯,无键按下时,两组“红绿蓝黄”灯依次显示。当K1按下时,红灯闪烁;K2按下时,绿灯闪烁;K3按下时,蓝灯闪烁;K4按下时,黄灯闪烁。

ORG 0000H

LJMP MAIN

ORG 0003H

LJMP INTT0 ; 红

ORG 0013H

LJMP INTT1 ; 绿

ORG 000BH

LJMP CONT0 ; 蓝

ORG 001BH

LJMP CONT1 ; 黄

ORG 0100H

MAIN:

MOV SP,#60H

MOV TMOD,#66H MOV TH0,#0FFH

MOV TL0,#0FFH

MOV TH1,#0FFH

MOV TL1,#0FFH

SETB EX0

SETB EX1

SETB ET0

SETB ET1

SETB EA

SETB IT0

SETB IT1

MOV R0,#5

SETB TR0

SETB TR1

LP0: MOV A,#0EEH

MOV P0,A

LCALL DELAY

MOV P0,#0FFH

LP1: RL A

MOV P0,A

LCALL DELAY

SJMP LP1

INTT0:

MOV P0,#0EEH ; 红

LCALL DELAY

MOV P0,#0FFH

LCALL DELAY

DJNZ R0,INTT0

MOV R0,#5

RETI

INTT1:

MOV P0,#0DDH ; 绿

LCALL DELAY

MOV P0,#0FFH

LCALL DELAY

DJNZ R0,INTT1 MOV R0,#5

RETI

CONT0:

MOV P0,#0BBH ; 蓝LCALL DELAY

MOV P0,#0FFH LCALL DELAY

DJNZ R0,CONT0 MOV R0,#5

RETI

CONT1:

MOV P0,#77H ; 黄LCALL DELAY

MOV P0,#0FFH LCALL DELAY

DJNZ R0,CONT1 MOV R0,#5

RETI

DELAY:

MOV R3,#255 DEL2:

MOV R4,#255 DEL1:

NOP

DJNZ R4,DEL1

DJNZ R3,DEL2

RET

END

相关文档
最新文档