Lab8000定时器计数器及外部中断实验.doc
文本预览下载声明
实验三 定时器/计数器及外部中断实验
一、实验要求
P1.7~P1.0接发光二极管L7~L0,要求利用单片机内部定时器1,按方式1工作,每0.01秒T1溢出一次。要求编写程序模拟时序控制装置:开机第1秒钟L0、L2亮,第2秒钟L1、L3亮,第3秒钟L4、L6亮,第4秒钟L5、L7亮,第5秒钟L0、L2、L4、L6亮,第6秒钟L1、L3、L5、L7亮,第7秒钟L7~L0全亮,第8秒钟L7~L0全灭……一直循环下去。fosc=12MHz
1.用定时器1查询溢出,实现要求。
2.用定时器1中断溢出,实现要求。
3.在2.基础上,用单脉冲作为外部中断源,当为有效电平“0”时,启动外部中断服务程序使P1口所接二极管全亮10秒。10秒用软件延时实现。注意:中断现场的保护。
二、实验目的:
1.掌握定时器/计数器的使用方法。
2.学习外部中断技术的基本使用方法。
3.学习中断处理程序的编程方法。
三、实验器材
Lab8000单片机仿真实验系统一套,计算机一台。
四、实验连线
80C51的(P3.2)接单片机实验系统上的负单脉冲的输出信号插孔,P1.0~P1.7接L0~L7。
1.单脉冲电路
单脉冲电路由按键(PULSE) 和去抖动处理组成,每按一次(PULSE) 键 产生一个单脉冲。板上有单脉冲的输出信号插孔,分别为正脉冲和负脉冲。
图1: 单脉冲发生电路
2.LED电平显示电路
图2: LED电平显示电路
五、实验框图
1.用定时器1查询溢出 2.用定时器1中断溢出
3.T1定时中断,/INT0下降沿触发中断10秒,使P1口发光二极管全亮
六、程序清单
1.查询模式
ORG 0000H
LJMP START
ORG 0200H
START:MOV TMOD,#10H
MOV TH1,#0B1H
MOV TL1,#0DFH
MOV A,#00H
MOV P1,A
MOV R2,#50
SETB TR1
LOOP:MOV DPTR,#TAB
MOV R7,#08H
WAIT:JNB TF1,$
MOV TH1,#0B1H
MOV TL1,#0DFH
CLR TF1
DJNZ R2,WAIT
MOV R2,#50
CLR A
MOVC A,@A+DPTR
INC DPTR
MOV P1,A
DJNZ R7,WAIT
SJMP LOOP
TAB:DB 05H,0AH,050H,0A0H,055H,0AAH,0FFH,00H
END
2.中断模式
ORG 0000H
LJMP START
ORG 001BH
LJMP INT_T1
ORG 0100H
START:MOV SP,#60H
MOV TMOD,#10H
MOV TH1,#0B1H
MOV TL1,#0E0H
MOV R0,#00H
MOV R1,#50
MOV R3,#08H
SETB EA
SETB ET1
SETB TR1
SJMP $
INT_T1:PUSH ACC
PUSH PSW
PUSH DPL
PUSH DPH
CLR TR1
MOV TH1,#0B1H
MOV TL1,#0E0H
SETB TR1
DJNZ R1,EXIT
MOV R1,#50
MOV DPTR,#TAB
MOV A,R0
MOVC A,@A+DPTR
MOV P1,A
INC R0
DJNZ R3,EXIT
MOV R0,#00H
MOV R3,#08H
EXIT:POP DPH
POP DPL
POP PSW
POP ACC
RETI
TAB:DB 05H,0AH,050H,0A0H,055H,0AAH,0FFH,00H
END
3.中断模式加外部中断
ORG 0000H
LJMP START
ORG 0003H
LJMP INT_0
ORG 001BH
LJMP INT_T1
ORG 0200H
START:MOV SP,#60H
MOV TMOD,#10H
MOV TL1,#0E0H
MOV TH
显示全部