实验三定时器实验.docx
《实验三定时器实验.docx》由会员分享,可在线阅读,更多相关《实验三定时器实验.docx(26页珍藏版)》请在冰豆网上搜索。
实验三定时器实验
篇章计划
第五章80C51的中断系统及定时/计数器
(共6次课)
教学目标及基本要求:
1、理解中断的基本概念;
2、理解80C51中断系统的结构;
3、理解80C51定时/计数器的结构。
各节(单元)教学内容及学时分配:
§5.180C51的中断系统2学时
§5.280C51中断处理过程2学时
§5.380C51的定时/计数器4学时
教学内容的重点、难点及处理方法:
重点:
1、中断的概念;
2、掌握80C51中断系统的使用方法;
3、掌握80C51定时/计数器的使用方法。
处理方法:
举例讲解。
难点:
80C51中断系统、定时/计数器的使用方法。
处理方法:
举例讲解。
教学内容的深化和拓展:
教学方式(手段)及教学过程中应注意的问题:
教学方式:
讲授与多媒体相结合
教学过程中应注意的问题:
结合实际进行讲解
主要参考书目及网络资源:
1、《单片机原理与应用》中国机械教育协会组编
2、《单片机应用新技术教材》朱宇光主编
3、《单片机应用技术》刘守义主编
4、《单片机原理与控制技术》及习题集张志良主编
实践教学安排:
实验二中断实验2学时
实验三定时器实验2学时
第20次课
一、教学简要说明:
1、本单元教学重点、难点及处理方法:
重点:
中断的概念、中断系统的结构、中断源和中断优先级。
处理方法:
举例讲解。
难点:
中断的控制。
处理方法:
举例讲解。
2、本单元教学方式(手段)或教学内容要点与时间分配:
1)复习10分
2)讲授70分
3)小结5分
4)自行消化5分
3、本单元师生活动设计:
提问。
二、授课内容:
1、新课引出:
中断是CPU与I/O设备间数据交换的一种控制方式。
80C51单片机有5个中断源、2个优先级,具备完善的中断系统。
2、本单元教学内容(具体到知识点)
掌握中断的概念、中断系统的结构、中断源和中断优先级。
3、本单元的讲课提纲、板书设计(或多媒体教学)
§5.180C51单片机的中断系统
一.中断概述
⒈什么叫中断?
CPU暂时中止其正在执行的程序,转去执行请求中断的那个外设或事件的服务程序,等处理完毕后再返回执行原来中止的程序,叫做中断。
⒉为什么要设置中断?
⑴提高CPU工作效率⑵具有实时处理功能
⑶具有故障处理功能⑷实现分时操作
二.中断源和中断控制寄存器
⒈中断源
中断源是指能发出中断请求,引起中断的装置或事件。
80C51单片机的中断源共有5个,其中2个为外部中断源,3个为内部中断源:
⑴INT0:
外部中断0,中断请求信号由P3.2输入。
⑵INT1:
外部中断1,中断请求信号由P3.3输入。
⑶T0:
定时/计数器0溢出中断,对外部脉冲计数由P3.4输入。
⑷T1:
定时/计数器1溢出中断,对外部脉冲计数由P3.5输入。
⑸串行中断:
包括串行接收中断RI和串行发送中断TI。
⒉中断控制寄存器
80C51单片机中涉及中断控制的有3个方面4个特殊功能寄存器:
①中断请求:
定时和外中断控制寄存器TCON;串行控制寄存器SCON;
中断允许控制寄存器IE;
③中断优先级控制寄存器IP。
⑴中断请求控制寄存器
INT0、INT1、T0、T1中断请求标志放在TCON中串行中断请求标志放在SCON中。
TCON的结构、位名称、位地址和功能如下:
TCON
D7
D6
D5
D4
D3
D2
D1
D0
位名称
TF1
—
TF0
—
IE1
IT1
IE0
IT0
位地址
8FH
8EH
8DH
8CH
8BH
8AH
89H
88H
功能
T1中断
标志
—
T0中断
标志
—
中断
标志
触发
方式
中断
标志
触发
方式
TCON位功能:
①TF1——T1溢出中断请求标志,T1计数溢出后,TF1=1
②TF0——T0溢出中断请求标志
T0计数溢出后,TF0=1
③IE1——外中断中断请求标志
当P3.3引脚信号有效时,IE1=1
④IE0——外中断中断请求标志
当P3.2引脚信号有效时,IE0=1
⑤IT1——外中断触发方式控制位
IT1=1,边沿触发方式;
IT1=0,电平触发方式。
⑥IT0——外中断触发方式控制位
其意义和功能与IT1相似。
串行控制寄存器SCON
TCON
D7
D6
D5
D4
D3
D2
D1
D0
位名称
—
—
—
—
—
—
TI
RI
位地址
—
—
—
—
—
—
99H
98H
功能
—
—
—
—
—
—
串行发送
中断标志
串行接收
中断标志
①TI——串行口发送中断请求标志②RI——串行口接收中断请求标志
⑵中断允许控制寄存器IE
80C51对中断源的开放或关闭由中断允许控制寄存器IE控制。
IE的结构、位名称和位地址如下:
IE
D7
D6
D5
D4
D3
D2
D1
D0
位名称
EA
—
—
ES
ET1
EX1
ET0
EX0
位地址
AFH
—
—
ACH
ABH
AAH
A9H
A8H
①EA——CPU中断允许控制位
EA=1,CPU开中;
EA=0,CPU关中,且屏蔽所有5个中断源。
②EX0——外中断INT0中断允许控制位
EX0=1,INT0开中;EX0=0,INT0关中。
③EX1——外中断INT1中断允许控制位
EX1=1,INT1开中;EX1=0,INT1关中。
④ET0——定时/计数器T0中断允许控制位
ET0=1,T0开中;ET0=0,T0关中。
⑤ET1——定时/计数器T1中断允许控制位
ET1=1,T1开中;ET1=0,T1关中。
⑥ES——串行口中断(包括串发、串收)允许控制位
ES=1,串行口开中;ES=0,串行口关中。
说明:
80C51对中断实行两级控制,总控制位是EA,每一中断源还有各自的控制位。
首先要EA=1,其次还要自身的控制位置“1”。
4、本单元的作业布置:
5、小结:
中断概念、中断源及中断优先级。
第22次课
一、教学简要说明:
1、本单元教学重点、难点及处理方法:
重点:
中断的处理过程。
处理方法:
举例讲解。
难点:
中断系统的使用方法。
处理方法:
举例讲解。
2、本单元教学方式(手段)或教学内容要点与时间分配:
1)复习10分
2)讲授70分
3)小结5分
4)自行消化5分
3、本单元师生活动设计:
提问。
二、授课内容:
1、复习:
中断概念、中断源及自然优先级。
2、本单元教学内容(具体到知识点)
掌握中断的使用方法。
3、本单元的讲课提纲、板书设计(或多媒体教学)
§5.280C51单片机中断处理过程
一、中断处理过程
中断处理过程大致可分为四步:
中断请求、中断响应、中断服务、中断返回。
1.中断请求
中断源发出中断请求信号,相应的中断请求标志位(在中断允许控制寄存器IE中)置“1”。
2.中断响应
CPU查询(检测)到某中断标志为“1”,在满足中断响应条件下,响应中断。
(1)中断响应条件:
①该中断已经“开中”;
②CPU此时没有响应同级或更高级的中断;
③当前正处于所执行指令的最后一个机器周期;
④正在执行的指令不是RETI或者是访向IE、IP的指令,
否则必须再另外执行一条指令后才能响应。
(2)中断响应操作
CPU响应中断后,进行下列操作:
①保护断点地址;②撤除该中断源的中断请求标志;
③关闭同级中断;④将相应中断的入口地址送入PC;
80C51五个中断入口地址:
INT0:
0003H;
T0:
000BH;INT1:
0013H
T1:
001BH;串行口:
0023H
3.执行中断服务程序
中断服务程序应包含以下几部分:
⑴保护现场⑵执行中断服务程序主体,完成相应操作
⑶恢复现场
⒋中断返回
在中断服务程序最后,必须安排一条中断返回指令RETI,当CPU执行RETI指令后,自动完成下列操作:
⑴恢复断点地址。
⑵开放同级中断,以便允许同级中断源请求中断。
二、中断响应等待时间
若排除CPU正在响应同级或更高级的中断情况,中断响应等待时间为:
3~8个机器周期
三、中断请求的撤除
中断源发出中断请求,相应中断请求标志置“1”。
CPU响应中断后,必须清除中断请求“1”标志。
否则中断响应返回后,将再次进入该中断,引起死循环出错。
⑴对定时/计数器T0、T1中断,外中断边沿触发方式,CPU响应中断时就用硬件自动清除了相应的中断请求标志。
⑵对外中断电平触发方式,需要采取软硬结合的方法消除后果。
⑶对串行口中断,用户应在串行中断服务程序中用软件清除TI或RI。
四、中断优先控制和中断嵌套
⒈中断优先控制
80C51中断优先控制首先根据中断优先级,此外还规定了同一中断优先级之间的中断优先权。
其从高到低的顺序为:
INT0、INT1、T0、T1、串行口。
中断优先级是可编程的,而中断优先权是固定的,不能设置,仅用于同级中断源同时请求中断时的优先次序。
80C51中断优先控制的基本原则:
①高优先级中断可以中断正在响应的低优先级中断,反之则不能。
②同优先级中断不能互相中断。
③同一中断优先级中,若有多个中断源同时请求中断,CPU将先响应优先权高的中断,后响应优先权低的中断。
⒉中断嵌套
当CPU正在执行某个中断服务程序时,如果发生更高一级的中断源请求中断,CPU可以“中断”正在执行的低优先级中断,转而响应更高一级的中断,这就是中断嵌套。
中断嵌套只能高优先级“中断”低优先级,低优先级不能“中断”高优先级,同一优先级也不能相互“中断”。
中断嵌套结构类似与调用子程序嵌套,不同的是:
①子程序嵌套是在程序中事先按排好的;中断嵌套是随机发生的。
②子程序嵌套无次序限制,中断嵌套只允许高优先级“中断”低优先级。
五、中断系统的应用
⒈中断初始化
⑴设置堆栈指针SP⑵定义中断优先级
⑶定义外中断触发方式⑷开放中断
⑸安排好等待中断或中断发生前主程序应完成的操作内容。
⒉中断服务主程序
中断服务子程序内容要求:
⑴在中断服务入口地址设置一条跳转指令,转移到中断服务程序的实际入口处。
⑵根据需要保护现场。
⑶中断源请求中断服务要求的操作。
⑷恢复现场。
与保护现场相对应,注意先进后出、后进先出操作原则。
⑸中断返回,最后一条指令必须是RETI。
⒊中断系统应用举例(见教材)
4、本单元的作业布置:
5、小结:
中断的响应过程。
第23次课
一、教学简要说明:
1、本单元教学重点、难点及处理方法:
重点:
熟练掌握汇编语言建立、运行的上机操作方法。
处理方法:
上机操作。
难点:
同上。
2、本单元教学方式(手段)或教学内容要点与时间分配:
实验二中断实验90分
3、本单元师生活动设计:
二、授课内容:
1、复习:
2、本单元教学内容(具体到知识点)
1、学习外部中断技术的基本使用方法。
2、学习中断处理程序的编程方法。
3、本单元的讲课提纲、板书设计(或多媒体教学)
实验二中断实验
一、实验内容
P1口做输出口,接八只发光二极管,通过程序控制发光二极管循环点亮,P3口的P3.0,P3.1,P3.4,P4.5与另外四个发光二极管相接,当单片机的INT0端出现负脉冲时,进入相应的中断服务程序,在中断服务程序中,使P3口所接的四个发光二极管快速闪烁大约20次,然后返回主程序,使P1口所接的八只二极管继续循环显示。
二、实验目的
1、学习外部中断技术的基本使用方法。
2、学习中断处理程序的编程方法。
三、实验简述
本实验中断处理程序的应用,最主要的地方是如何保护进入中断前的状态,使得中断程序执行完毕后能回到交通灯中断前的状态。
要保护的地方,除了累加器ACC、标志寄存器PSW外,还要注意。
一是主程序中的延时程序和中断处理程序中的延时程序不能混用,本实验中,主程序延时用的寄存器和中断延时用的寄存器应不相同。
四、实验电路
五、接线方式
P1.0—P1.7接发光二极管的L1—L8,P3.0、P3.1、P3.4、P3.5接发光二极管的L9—L12;单脉冲输出端“
”接INI0,即接8031的第12号管脚。
六、参考程序
ST_ADDREQU4000H
ORGST_ADDR
LJMPSTART
ORGST_ADDR+03H;中断入口地址
JMPINTI
ORGST_ADDR+200H
START:
SETBEX0
SETBEA
SETBIT0
CLRP3.0
CLRP3.1
CLRP3.4
CLRP3.5
MOVA,#01H
LOOP:
MOVP1,A
MOVR0,#10
DEL1:
MOVR1,#200
DEL2:
MOVR2,#126
DEL3:
DJNZR2,DEL3
DJNZR1,DEL2
DJNZR0,DEL1
RLA
JMPLOOP
INTI:
PUSHACC;中断服务程序
PUSHPSW
MOVR3,#20;闪烁周期约为:
100ms,共闪20次
DEL11:
MOVR4,#100
DEL22:
MOVR5,#126
DEL33:
DJNZR5,DEL33
DJNZR4,DEL22
CPLP3.0
CPLP3.1
CPLP3.4
CPLP3.5
DJNZR3,DEL11
CLRP3.0
CLRP3.1
CLRP3.4
CLRP3.5
POPPSW
POPACC
SETBEX0
RETI
END
4、本单元的作业布置:
独立撰写实验报告。
5、小结:
P1口做输出口,接八只发光二极管,通过程序控制发光二极管循环点亮,P3口的P3.0,P3.1,P3.4,P4.5与另外四个发光二极管相接,当单片机的INT0端出现负脉冲时,进入相应的中断服务程序,在中断服务程序中,使P3口所接的四个发光二极管快速闪烁大约20次,然后返回主程序,使P1口所接的八只二极管继续循环显示。
第24、25次课
一、教学简要说明:
1、本单元教学重点、难点及处理方法:
重点:
80C51定时/计数器的结构、工作原理及工作方式。
处理方法:
图示讲解。
难点:
80C51定时/计数器的使用方法。
处理方法:
举例讲解。
2、本单元教学方式(手段)或教学内容要点与时间分配:
1)复习20分
2)讲授140分
3)小结10分
4)自行消化10分
3、本单元师生活动设计:
提问。
二、授课内容:
1、复习:
中断的响应过程。
2、本单元教学内容(具体到知识点)
1)理解80C51定时/计数器的结构、工作原理;
2)掌握80C51定时/计数器的工作方式。
3、本单元的讲课提纲、板书设计(或多媒体教学)
§5.380C51的定时/计数器
定时/计数器是单片机系统一个重要的部件,其工作方式灵活、编程简单、使用方便,可用来实现定时控制、延时、频率测量、脉宽测量、信号发生、信号检测等。
此外,定时/计数器还可作为串行通信中波特率发生器。
一.定时/计数器的结构和工作原理:
1.定时/计数器的结构:
见图5.6
1)80C51单片机内部有两个定时/计数器T0和T1,其核心是计数器,基本功能是加1。
2)对外部事件脉冲(下降沿)计数,是计数器;对片内机周脉冲计数,是定时器。
3)计数器由二个8位计数器组成。
2.定时/计数器的工作原理:
1)定时时间和计数值可以编程设定,其方法是在计数器内设置一个初值,然后加1计满后溢出。
调整计数器初值,可调整从初值到计满溢出的数值,即调整了定时时间和计数值。
2)定时/计数器作为计数器时,外部事件脉冲必须从规定的引脚输入。
且外部脉冲的最高频率不能超过时钟频率的1/24。
二.定时/计数器的控制寄存器
⒈定时/计数器控制寄存器TCON
TCON
T1中断
标志
T1运行
标志
T0中断
标志
T0运行
标志
INT1
中断
标志
INT1
触发
方式
INT0
中断
标志
INT0
触发
方式
位名称
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
位地址
8FH
8EH
8DH
8CH
8BH
8AH
89H
88H
TCON低4位与外中断、有关,已在中断中叙述。
高4位与定时/计数器T0、T1有关。
⑴TF1:
定时/计数器T1溢出标志。
⑵TF0:
定时/计数器T0溢出标志。
⑶TR1:
定时/计数器T1运行控制位。
TR1=1,T1运行;TR1=0,T1停。
⑷TR0:
定时/计数器T0运行控制位。
TR0=1,T0运行;TR0=0,T0停。
TCON的字节地址为88H,每一位有位地址,均可位操作。
⒉定时/计数器工作方式控制寄存器TMOD
TMOD用于设定定时/计数器的工作方式
低4位用于控制T0,高4位用于控制T1。
高4位控制T1
低4位控制T0
门控位
计数/定时
方式选择
工作方式
选择
门控位
计数/定时
方式选择
工作方式
选择
G
C/T
M1
M0
G
C/T
M1
M0
⑴M1M0——工作方式选择位
M1M0
工作方式
功能
00
方式0
13位计数器
01
方式1
16位计数器
10
方式2
两个8位计数器,初值自动装入
11
方式3
两个8位计数器,仅适用T0
⑵C/T——计数/定时方式选择位
C/T=1,计数工作方式,对外部事件脉冲计数,用作计数器。
C/T=0,定时工作方式,对片内机周脉冲计数,用作定时器。
⑶GATE——门控位
GATE=0,运行只受TCON中运行控制位TR0/TR1的控制。
GATE=1,运行同时受TR0/TR1和外中断输入信号的双重控制。
只有当INT0/INT1=1且TR0/TR1=1,T0/T1才能运行。
TMOD字节地址89H,不能位操作,设置TMOD须用字节操作指令。
三.定时/计数器工作方式
⒈工作方式0
13位计数器,由TL0低5位和TH08位组成,TL0低5位计数满时不向TL0第6位进位,而是向TH0进位,13位计满溢出,TF0置“1”。
最大计数值213=8192。
⒉工作方式1
16位计数器,最大计数值为216=65536。
⒊工作方式2
8位计数器,仅用TL0计数,最大计数值为28=256,计满溢出后,一方面进位TF0,使溢出标志TF0=1;另一方面,使原来装在TH0中的初值装入TL0。
优点:
定时初值可自动恢复;缺点:
计数范围小。
适用于需要重复定时,而定时范围不大的应用场合。
⒋工作方式3
方式3仅适用于T0,T1无方式3。
⑴T0方式3
在方式3情况下,T0被拆成二个独立的8位计数器TH0、TL0。
①TL0使用T0原有的控制寄存器资源:
TF0,TR0,GATE,C/T,INT0,组成一个8位的定时/计数器;
②TH0借用T1的中断溢出标志TF1,运行控制开关TR1,只能对片内机周脉冲计数,组成另一个8位定时器(不能用作计数器)。
⑵T0方式3情况下的T1
T1由于其TF1、TR1被T0的TH0占用,计数器溢出时,只能将输出信号送至串行口,即用作串行口波特率发生器。
四.定时/计数器的应用
⒈计算定时/计数初值
80C51定时/计数初值计算公式:
其中:
N与工作方式有关:
方式0时,N=13;
方式1时,N=16;
方式2、3时,N=8。
机周时间与主振频率有关:
机周时间=12/fosc;fosc=12MHZ时,1机周=1S;fosc=6MHZ时,1机周=2S。
【例】已知晶振6MHz,要求定时0.5mS,试分别求出T0工作于方式0、方式1、方式2、方式3时的定时初值。
解:
⑴工作方式0:
213–500S/2S=8192-250=7942=1F06H
1F06H化成二进制:
1F06H=0001111100000110B
其中:
低5位00110前添加3位000送入TL0,TL0=00000110B=06H;
高8位11111000B送入TH0
TH0=11111000B=F8H。
⑵工作方式1:
T0初值=216-500s/2s=65536–250=65286=FF06H
TH0=FFH;TL0=06H。
⑶工作方式2:
T0初值=28-500s/2s=256-250=6
TH0=06H;TL0=06H。
⑷工作方式3:
T0方式3时,被拆成两个8位定时器,定时初值可分别计算,计算方法同方式2。
两个定时初值一个装入TL0,另一个装入TH0。
因此:
TH0=06H;TL0=06H。
从上例中看到,方式0时计算定时初值比较麻烦,根据公式计算出数值后,还要变换一下,容易出错,不如直接用方式1,且方式0计数范围比方式1小,方式0完全可以用方式1代替,方式0与方式1相比,无任何优点。
⒉定时/计数器应用步骤
⑴合理选择定时/计数器工作方式
⑵计算定时/计数器定时初值(按上述公式计算)
⑶编制应用程序
①定时/计数器的初始化
包括定义TMOD、写入定时初值、设置中断系统、启动定时/计数器运行等。
②正确编制定时/计数器中断服务程序
注意是否需要重装定时初值,若需要连续反复使用原定时时间,且未工作在方式2,则应在中断服务程序中重装定时初值。
【例】试用T1方式2编制程序,在P1.0引脚输出周期为400S的脉冲方波,已知fosc=12MHZ。
解:
①计算定时初值
T1初值=28-200s/1s=256–200=56=38H
TH1=38H;TL1=38H
②设置TMOD:
00100000B=20H
T0控制位,与T1无关
T1方式2
T1定时器
T1启动与无关
③编制程序如下:
ORG0000H;复位地址
LJMPMAIN;转主程序
ORG001BH;T1中断入口地址
LJMPIT1;转T1中断服务程序
ORG0100H;主程序首地址
MAIN:
MOVTMOD,#20H;置T1定时器方式2
MOVTL1,#38H;置定时初值
MOVTH1,#38H;置定时初值备份
MOVIP,#00001000