1、实验二 定时器/中断实验
一、实验目的
1.掌握定时器/计数器的工作原理及8051定时器/计数器的使用方法;
2. 掌握8051中断系统及中断程序结构;
3.进一步熟悉8051的指令及程序调试方法。
二、实验属性(验证性)
三、实验仪器设备及器材
1.伟福Lab2000P单片机仿真器、实验箱各一台(套); 2.PC机一台
四、实验内容
1.利用8031定时器的中断方式(T0或T1,下同),产生400Hz的音频信号(方波),通过P1口(某一位)驱动蜂鸣器响。
2.添加两个按键,K1键(接P3.0)、K2键(接P3.0),实现以下功能:
K
2、1键按下时,通过定时器的中断方式,通过P1口(某一位)驱动蜂鸣器响(频率自定);
K2键按下时,使蜂鸣器不响。
注: fosc=12 MHz
五、实验步骤:(略)
六、问题与思考
1.中断服务子程序与子程序调用有何不同?
2.中断响应的条件?
3.中断服务子程序的内容一般应包括哪几部分?
4. 如果需测量 管脚 INT0的脉冲宽度(低电平),简述解决方法。
5.利用查询中断标志位的方法,如何上述实验?结合一个实验内容编程。
6.利用定时器如何产生秒脉冲?
置入初值X的计算公式:
定时值
T
3、
定时方式时 (M-X)T=定时值所以
X=M-
由于fosc=12 MHz ,选用定时器的模式1的工作模式
1
400×2
计算结果如下:
(216-X) ×10-6=
X=0FB1E
实验内容1 硬件电路图、 流程图、程序分别如下:
送方式控制字给TMOD
开始
送定时器初值TL0 TH0
计数器清零并送到P1.0口
开放T0中断
启动T0 开始定时
等待中断
主程序流程图
O
4、RG 0000H
AJMP START
ORG 000BH
AJMP TOINT
ORG 00F0H
START:MOV TMOD,#01H
MOV TL1,#01EH
MOV TH1,#0FBH
MOV A,#00H
MOV P1.0,A
SETB ET1
SETB EA
SETB TR
JLMP $
TOION:MOV TL1,#01EH
MOV TH1,#0FBH
CPL P1.0
RETI
重新置定时初值
开始
P1.0口状态取反
中断返回
5、
中断服务流程图
END
P1.0
8051
实验内容2硬件电路图、 流程图、程序分别如下:
送方式控制字给TMOD
开始
送定时器初值TL1 TH1
计数器清零并送到P1.0口
开放T0中断
启动T1 开始定时
等待中断
关闭T1停止定时
按键1按下
按键2按下
N
N
Y
Y
启动T1 开始定时
等待中断
6、
关闭T1停止定时
按键2按下
送方式控制字给TMOD
开始
送定时器初值TL1 TH1
计数器清零并送到P1.0口
开放T0中断
按键1按下
Y
启动T1 开始定时
等待中断
关闭T1停止定时
按键2按下
送方式控制字给TMOD
开始
送定时器初值TL1 TH1
计数器清零并送到P1.0口
开放T0中断
按键1按下
Y
Y
主程序流程图
ORG 0000H
AJMP START
ORG 001BH
AJMP TOINT
ORG 00F0H
START:MOV TM
7、OD,#10H
MOV TL1,#01EH
MOV TH1,#0FBH
MOV A,#00H
MOV P1.0,A
SETB ET1
SETB EA
MAIN:JB P3.0,LOOP1
JB P3.1,LOOP2
LJMP MAIN
LOOP1:SETB TR1
AJMP MAIN
LOOP2:CLR TR1
AJMP MAIN
TOINT: MOV TL1,#01EH
MOV TH1,#0FBH
CPL P1.0
RETI
END
P1.0
P3.0
P3.1
○ ○
○ ○
5V
硬件电路图
8051
重新置定时初值
开始
P1.0口状态取反
中断返回
中断服务流程图