单片机 实验三中断及定时器实验

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

实验三:中断及定时器实验

一、实验目的:

1、弄清中断的概念、基本原理,掌握中断技术的应用

2、了解中断初始化的方法,中断向量安装和中断服务子程序的

设计方法。

3、了解定时/计数器的工作原理及MCS51单片机的定时器内

部结构

4、掌握时间常数计算方法

5、掌握定时器初始化方法和定时中断程序设计方法

二、实验内容:定时器实验

1、这个是一个电子钟走时程序,利用定时器T0产生50ms中

断,中断计数器中断20次为1秒,利用秒信号进行电子钟

计时。先读懂下面程序段,然后编辑、编译程序,并在伟福

仿真器上模拟调试该程序。

程序清单如下:

COUNT EQU 7FH

COUNT1 EQU 7EH

S_MEM EQU 73H

M_MEM EQU 72H

H_MEM EQU 71H

ORG 0000H

LJMP MAIN

ORG 000BH

LJMP INT_T0 ;“*1”

MAIN: MOV SP,#2FH

MOV TMOD,#00000001B

MOV TH0,#03CH ;50毫秒中断时间常数

MOV TL0,#0BH

MOV IE,#10000010B ;开放T0

MOV IP,#0

MOV S_MEM,#0

MOV M_MEM,#0

MOV H_MEM,#0

MOV COUNT,#20

SETB TR0

;______________________________________________________ W AIT:NOP

SJMP W AIT

INT_T0: MOV TL0,#0BH

MOV TH0,#3CH

DJNZ COUNT,EXT_T0

MOV COUNT,#20 ;恢复中断计数器

INC S_MEM ;“*2”

MOV A,S_MEM

CJNE A,60,EXT_T0

MOV S_MEM,#0

INC M_MEM

MOV A,M_MEM

CJNE A,#60,EXT_T0

MOV M_MEM,#0

INC H_MEM

MOV A,H_MEM

CJNE A,#13,EXT_T0

MOV H_MEM,#0

EXT_T0: RETI

2、按下列要求修改程序或回答问题。(实验报告内容)

a、把程序改成T1中断计时

ORG 000H

LJMP MAIN

ORG 001BH

LJMP INT_T1

MAIN: MOV TMOD,#10H

MOV TH1,#3CH ;50毫秒中断时间常数

MOV TL1,#0B0H

MOV IE,#88H ;开放T1

MOV IP,#0

SETB TR1

INT_T1: MOV TL1,#0B0H

MOV TH1,#3CH

….

b、把定时器工作模式改成自动重装方式

MAIN: MOV TMOD,#01H

MOV TH0,#06H ;250us*4000次

MOV TL0,#06H

MOV COUNT,#4000

....

INT_T1: DJNZ COUNT,EXT_T0

MOV COUNT,#4000 ;恢复中断计数器

INC S_MEM

MOV A,S_MEM

c、定时器中断初始化包括那些内容

答:先对TMOD,TH0,TL0,IE,IP进行初始化,最后把TR0

置位

d、简述中断调用对堆栈的使用情况

答:调用中断时,先把将要执行的下一条指令地址压

入堆栈,通过压栈保护现场,即将PC低八位压入堆栈

(SP=SP+1),再将PC高八位压(SP=SP+1)入堆栈。

e、怎样计算定时器时间常数

先确定晶振频率f,估算定时器单次定时时长T,用以下

公式

模式1用x=2^16-T*f/12

模式2用x=2^8-T*f/12

f、本程序若加上计“星期”,应如何修改?写出相关程序段。

COUNT EQU 7FH

COUNT1 EQU 7EH

S_MEM EQU 73H

M_MEM EQU 72H

H_MEM EQU 71H

W_MEM EQU 70H

ORG 0000H

LJMP MAIN

ORG 000BH

LJMP INT_T0 ;“*1”

MAIN: MOV SP,#2FH

MOV TMOD,#00000001B

MOV TH0,#03CH ;50毫秒中断时间常数

MOV TL0,#0BH

MOV IE,#10000010B ;开放T0

MOV IP,#0

MOV S_MEM,#0

MOV M_MEM,#0

MOV H_MEM,#0

MOV W_MEM,#1

MOV COUNT,#20

SETB TR0

;______________________________________________________ W AIT:NOP

SJMP W AIT

INT_T0: MOV TL0,#0BH

MOV TH0,#3CH

DJNZ COUNT,EXT_T0

相关文档
最新文档