单片机实训教案课题2.docx
《单片机实训教案课题2.docx》由会员分享,可在线阅读,更多相关《单片机实训教案课题2.docx(25页珍藏版)》请在冰豆网上搜索。
单片机实训教案课题2
XX高级技工学校教案XXJA—01
姓名
XXX
课程
单片机应用技术
班级
教学时间
自9周至11周共24学时
编写时间
年月日
课题(模块)名称
定时/计数器和中断系统应用
教学目标
1、(知识)掌握定时/计数器的组成和应用;
掌握中断控制系统的的概念及定时功能。
2、(能力)能正确使用定时/计数器;
能够完成脉冲发生器和脉冲计数器的程序编写。
3、(素质)提升学生使用先进技术及团结协作能力。
教学重点
1、定时/计数器的使用
2、秒脉冲发生器的构成和工作原理
3、脉冲计数装置的设计
教学难点
定时/计数器的正确使用
教学手段
演示
教学方法
项目教学任务驱动
教材选用
《MCS—51单片机应用技术》中国劳动社会保障出版社
时间分配
教学过程设计及教学内容
备注
5
15
10
1、任务一秒脉冲发生器的设计12课时
2、任务二秒脉冲计数测量的设计12课时
模块二定时/计数器和中断系统应用
任务一秒脉冲发生器的设计
组织教学:
点名
知识回顾:
回顾模块一所讲有关单片机的基础知识,包括硬件组成和软件仿真,程序设计和指令组成,
任务引入:
在我们的生活中,处处用得到定时和计数,那么在单片机这个看似弱小,实则强大的工具里,怎样设计,能够组成一个计数器呢?
在这里,要求如下:
由MSC-51单片机组成单片机最小应用系统,产生
XX高级技工学校教案XXJA—02
时间分配
教学过程设计及教学内容
备注
10
10
30
30
30
30
30
30
30
20
20
45
5
10
15
15
10
10
10
45
10
20
20
一个秒脉冲信号,控制发光二极管(LED)每一秒钟点亮一次。
任务分析:
1、用最少的元器件构成一个单片机的最小应用系统,这个在以前的学习中已多次设计,没有任何问题;
2、定时1S如何实现?
定时1S可以采用模块一的延时程序,也可以用定时中断来实现,本次任务采用定时器中断来实现,使用MCS-51单片机内部的定时/计数器,单片机内部一共有2个定时/计数器。
3、单片机产生的秒脉冲如何输出?
秒脉冲由P1.0端口输出,驱动LED每隔1S亮一次。
相关知识讲解:
一、定时/计数器结构及工作原理
1、定时/计数器的结构
MCS-51系列单片机内部提供了两个定时/计数器,分别记作定时/计数器0和定时/计数器1。
两个定时/计数器都是16位的加1计数器。
每输入一个脉冲,计数器加1。
当加到计数器各位全是1,再输入一个脉冲时,计数器全变为0,并产生溢出信号。
两个定时/计数器的16位又各由两个8位计数器组成,它们分别是专用寄存器TH0、TL0和TH1、TL1。
对这四个专用寄存器,可以如同一般的存储单元一样,读取或者写入新的数据。
2、定时/计数器功能
(1)计数功能
对外部输入脉冲计数。
两个定时/计数器都可以用于计数功能,它们计数的信号分别由芯片的两个端口引入。
定时/计数器0计数信号由芯片的T0(P3.4)端引入。
定时/计数器1计数信号由芯片的T1(P3.5)端引入。
外部输入脉冲频率不能高于单片机晶体振荡频率的1/24,因为单片机在相邻两个机器周期中采样到端口上有负跳变时,才计作输入一个脉冲。
由于输入脉冲的周期不确定,所以只能计数。
(2)定时功能
对内部机器周期脉冲计数
定时时间=计数脉冲数*机器周期时间
由于输入的脉冲是周期固定不变并已知单片机内部的机器周期脉冲,因此通过计数,就实现了定时功能。
3、中断定义
单片机主要用于实时控制,当对控制对象进行正常控制时,如果突然发生特殊情况,则CPU必须立即暂停原来正常的控制程序,并转向执行应急处理的服务程序,等应急处理完毕,再恢复到原来正常控制程序的暂停处继续执行,这样的过程称为中断,处理终端功能的部件称为中断系统。
4、中断服务子程序返回指令
中断响应是单片机相应随机的突发要求,进行相应处理,等应急处理的服务程序完毕,要进行中断返回,为区别子程序返回,中断服务子程序返回指令用“RETI”。
5、中断源
能够引发CPU终端的事件源称为中断源。
MCS-51系列单片机有定时中断(定时/计数器0和定时/计数器1)、外中断(外中断0和外中断1)和串行中断3类。
6、定时中断
MCS-51系列单片机内部的2个定时/计数器可以对外部事件进行计数,或者利用他们进行计时。
当它们计数到预定的次数或预定的时间时,通过单片机内部硬件电路将定时中断源的中断请求标志置于“1”,向CPU提出中断请求,让CPU及时作出处理。
7、定时控制寄存器TCON
(1)TCON.7TF1:
定时器1溢出标志位。
当定时器1计满数产生溢出时,由硬件自动置TF1=1。
在中断允许时,向CPU发出定时器1的中断请求,进入中断服务程序后,由硬件自动清0。
在中断屏蔽时,TF1可作查询测试用,此时只能由软件清0。
(2)TCON.6TR1:
定时器1运行控制位。
由软件置1或清0来启动或关闭定时器1。
当GATE=1,且为高电平时,TR1置1启动定时器1;当GATE=0时,TR1置1即可启动定时器1。
(3)TCON.5TF0:
定时器0溢出标志位。
其功能及操作情况同TF1。
(4)TCON.4TR0:
定时器0运行控制位。
其功能及操作情况同TR1。
(5)TCON.3IE1:
外部中断1请求标志位。
(6)TCON.2IT1:
外部中断1触发方式选择位。
(7)TCON.1IE0:
外部中断0请求标志位。
(8)TCON.0IT0:
外部中断0触发方式选择位。
8、工作方式寄存器TMOD
(1) M1和M0:
方式选择位。
(2)C/T:
功能选择位。
当C/T=0时,设置为定时器工作方式;当C/T=1时,设置为计数器工作方式。
(3)GATE:
门控位。
当GATE=0时,软件控制位TR0或TR1置1即可启动定时器;当GATE=1时,软件控制位TR0或TR1须置1,同时还须(P3.2)或(P3.3)为高电平方可启动定时器,即允许外中断、启动定时器。
9、定时/计数器的工作方式
(1).方式0
方式0构成一个13位定时/计数器。
图是定时器0在方式0时的逻辑电路结构,定时器1的结构和操作与定时器0完全相同。
(2).方式1
定时器工作于方式1时。
由图可知,方式1构成一个16位定时/计数器,其结构与操作几乎完全与方式0相同,惟一差别是二者计数位数不同。
(3).方式2
定时/计数器工作于方式2时,。
由图可知,方式2中,16位加法计数器的TH0和TL0具有不同功能,其中,TL0是8位计数器,TH0是重置初值的8位缓冲器。
(4).方式3
定时/计数器工作于方式3时,其逻辑结构图如图所示。
10、中断允许控制寄存器(IE)
专用寄存器
(1)EA中断允许总控制位
EA=0,禁止所有中断;EA=1,允许有中断,中断取决于各中断源的允许控制位。
(2)ES串行中断允许控制位。
(3)ET1和ET0定时/计数器1和0中断允许控制位。
(4)EX1和EX0外部中断1和中断0允许控制位。
二、相关指令
(1)位置位指令:
SETBC;C置位
SETBbit;直接寻址位置位
(2)位复位指令
CLRC;C清零11
CLRbit;直接寻址位清零
(3)位控制转移指令
JBCbit,rel;若直接位=1则转移且清除
三、中断入口地址
MCS-51系列单片机的5个中断源在程序存储器中各有固定的中断入口地址,由此进入中断服务子程序。
单片机在管理的ROM存储单元中保留了一组特殊区。
从0003H~002AH共40个单元,被均匀地分为五段。
每段8个单元,分别作为5个中断源的中断地址区。
四、定时/计数器的应用
在定时/计数器启动之前,要对定时/计数器进行初始化设置,一般要完成以下工作:
1、设置TMOD寄存器参数
通过设置TMOD参数来选定所使用的定时/计数器,确定其功能和工作方式,选择外信号是否参与启/停控制。
未被选用的定时/计数器,它对应TMOD存储器中的参数选择为零,即与抚慰后的状态相同。
2、计算计数初值
根据工作方式,计算计数初值,并装入选定的定时/计数器的TH、TL寄存器。
3、定时中断选择
(1)应用定时中断编程时,需要开启相应的中断控制位,否则将其设为禁止。
(2)若定时/计数器仅使用一次,则要在服务程序中把工作启动/停止控制位TR清为“0”,关闭定时/计数器,若连续使用时,则不改变TR位。
(3)当不使用定时中断时,即用查询溢出标志编程,无论定时/计数仅用一次还是连续使用,每次都要用指令将对应的溢出标志位清“0”。
而采用中断编程时,一旦中断响应,由硬件自动将对应的溢出标志位撤销。
(4)在连续使用时,若采用工作方式1,还需要重新装入计数初值。
任务实施:
一、单片机秒脉冲发生器硬件电路设计
用最少的外部元件,组成单片机最小控制系统。
将电路仿真器和实验台上的发光二极管连接起来。
二、软件设计
1、任务分析
(1)设定控制要控制LED发光二极管每1S亮一次,秒脉冲的周期T=1S,若每隔0.5S将P1.0端口取反,即可以在P1.0端口输出1HZ的方波。
(2)设定TMOD寄存器
用定时/计数器1,工作方式1
(3)计算计数初值
当使用6MHz晶振,用定时/计数器1工作方式1时,
最大工作时间=216*12/(6*106)=131ms
而125ms*4=0.5S,可选定时0.5S,所以定时时间取125ms,对125ms中断4次,就是0.5S。
计数初值=216-定时时间/机器周期=0BDCH
2、程序设计
定时中断程序如下:
ORG0000H
AJMPMAIN
ORG001BH;定时/计数器1中断入口地址
AJMPRT1
ORG0030H
MAIN:
MOVTMOD,#10H;设定时/计数器1定时功能,工作方式1
MOVTH1,#0BH;设置计数初值
MOVTL1,#0DCH;设置计数初值
MOVR2,#00H;设置记录中断次数初值
SETBEA;开启总中断允许
SETBET1;开启定时/计数器1中断允许
SETBTR1;启动定时/计数器1
MAIN1:
CJNER2,#04H,RT11;判别满0.5S否
MOVR2,#00H;满,则记录恢复初值
RT11:
JCMAIN1;若(R2)<5,则继续判0.5s到否
MOVR2,#00H
CPLP1.0
XXMPMAIN1
RT1:
MOVTH1,#0BH;定时/计数器1中断服务子程序
MOVTL1,#0DCH
INCR2;中断次数加1
RETI;中断返回
END
三、软件调试与仿真
(1)启动KeiluVision2仿真软件,新建一个项目文件,从器件库中选择一个器件;
(2)建立一个汇编源程序文件;
(3)添加文件到当前项目组中;
(4)设置Optionsfor‘Target1’选项;
(5)编译程序文件;
(6)检查并修改原程序文件中的错误,直至编译通过为止;
(7)、仿真调试:
1)进入仿真环境;2)熟悉存储器结构;3)检查存储器状态;
四、实际模拟仿真
将仿真器和仿真实验台上的外部设备结合起来,将P1.0端口接至试验台上的LED发光二极管上,观察点亮情况。
任务评价
1、学生必须掌握课本所给程序的调试和仿真;
2、在满足要求的基础上,自己编程实现其他周期的脉冲发生器;
3、尝试用别的I/O来完成任务;
4、结合学生完成任务情况,给每个学生打分。
任务二脉冲计数测量
组织教学:
点名
知识回顾:
回顾任务一所讲有关单片机定时/计数器的基础知识。
任务引入:
在上一个任务中,我们了解到,在51系列单片机内部有两个定时/计数器,上一个任务我们已经学习了定时器,这节课,我们将通过任务来学习计数器,任务设计要求如下:
由MCS-51单片机组成单片机最小应用系统,对外部脉冲信号进行计数测量,通过8个发光二极管(LED)显示。
任务分析:
1、用最小的元器件构成一个单片机的最小应用系统;
2、MCS-51单片机有2个外部中断源,利用外部中断0实现对外部脉冲的测量,即每输入一个外部脉冲,引起外部中断一次。
3、单片机将测量的脉冲个数由P1端口输出,驱动LED发光二极管显示。
相关知识讲解:
一、外部中断
MCS-51系列单片机可以响应2个外部中断源,分别命名为外部中断0和外部中断1。
1、信号引入脚
2个外中断源中断请求信号引入单片机的引脚为:
外中断0:
中断请求信号从P3.2端口引入
外中断1:
中断请求信号从P3.3端口引入
2、信号方式和中断请求标志
(1)信号方式
2个外中断源的中断请求信号可以任选电平方式或脉冲方式:
1)电平方式—低电平有效,即当相对应引脚上出现低电平时表示中断请求;
2)脉冲方式—负跳变有效,即当对应引脚出现由高到低的电平变化时表示中断请求。
(2)定时器控制寄存器与中断请求标志
定时器控制寄存器TCON
二、串行中断
SCON是串行口控制寄存器,其低两位TI和RI锁存串行口的发送中断标志和接收中断标志。
(1) SCON.1TI:
串行发送中断标志。
CPU将数据写入发送缓冲器SBUF时,就启动发送,每发送完一个串行帧,硬件将使TI置位。
但CPU响应中断时并不清除TI,必须由软件清除。
三、中断优先级
1、中断优先级的概念
当多个中断源同时向CPU发出中断请求时,CPU应按照情况的紧急程度,按照优先次序来处理,最紧急的中断源请求优先处理,这就是中断优先级控制。
2、中断优先级控制寄存器(IP)
8051单片机有两个中断优先级,每个中断源都可以通过编程确定为高优先级中断或低
(1)IP.4PS:
串行口中断优先控制位。
PS=1,设定串行口为高优先级中断;PS=0,设定串行口为低优先级中断。
(2)IP.3PT1:
定时器T1中断优先控制位。
PT1=1,设定定时器T1中断为高优先级中断;PT1=0,设定定时器T1中断为低优先级中断。
(3)IP.2PX1:
外部中断1中断优先控制位。
PX1=1,设定外部中断1为高优先级中断;PX1=0,设定外部中断1为低优先级中断。
(4)IP.1PT0:
定时器T0中断优先控制位。
PT0=1,设定定时器T0中断为高优先级中断;PT0=0,设定定时器T0中断为低优先级中断。
(5)IP.0PX0:
外部中断0中断优先控制位。
PX0=1,设定外部中断0为高优先级中断;PX0=0,设定外部中断0为低优先级中断。
当系统复位后,IP低5位全部清0,所有中断源均设定为低优先级中断。
如果几个同一优先级的中断源同时向CPU申请中断,CPU通过内部硬件查询逻辑,按自然优先级顺序确定先响应哪个中断请求。
自然优先级由硬件形成,排列如下:
中断源同级自然优先级
外部中断0最高级
定时器T0中断
外部中断1
定时器T1中断
串行口中断最低级
四、中断响应
中断响应是CPU对中断源中断请求的响应,包括保护断点和将程序转向中断服务程序的入口地址(通常称矢量地址)。
中断响应过程
中断响应过程包括保护断点和将程序转向中断服务程序的入口地址。
首先,中断系统通过硬件自动生成长调用指令(LACLL),该指
令将自动把断点地址压入堆栈保护(不保护累加器A、状态寄存器PSW和其它寄存器的内容),然后,将对应的中断入口地址装入程序
计数器PC(由硬件自动执行),使程序转向该中断入口地址,执行中断服务程序。
MCS-51系列单片机各中断源的入口地址由硬件事先设定,分配如下:
中断源入口地址
外部中断00003H
定时器T0中断000BH
外部中断10013H
定时器T1中断001BH
串行口中断0023H
使用时,通常在这些中断入口地址处存放一条绝对跳转指令,使程序跳转到用户安排的中断服务程序的起始地址上去。
五、中断返回
中断返回是指中断服务完后,计算机返回原来断开的位置(即断点),继续执行原来的程序。
中断返回由中断返回指令RETI来实现。
该指令的功能是把断点地址从堆栈中弹出,送回到程序计数器PC,此外,还通知中断系统已完成中断处理,并同时清除优先级状态触发器。
特别要注意不能用“RET”指令代替“RETI”指令。
中断请求的撤除
巡回指导
检查并纠正
评分
XX高级技工学校教案XXJA—02
时间分配
教学过程设计及教学内容
备注
10
5
20
CPU响应中断请求后即进入中断服务程序,在中断返回前,应撤除该中断请求,否则,会重复引起中断而导致错误。
MCS-51各中断源中断请求撤消的方法各不相同,分别为:
1)定时器中断请求的撤除
对于定时器0或1溢出中断,CPU在响应中断后即由硬件自动清除其中断标志位TF0或TF1,无需采取其它措施。
2)串行口中断请求的撤除
对于串行口中断,CPU在响应中断后,硬件不能自动清除中断请求标志位TI、RI,必须在中断服务程序中用软件将其清除。
3)外部中断请求的撤除
外部中断可分为边沿触发型和电平触发型。
对于边沿触发的外部中断0或1,CPU在响应中断后由硬件自动清除其中断标志位IE0或IE1,无需采取其它措施。
任务实施
一、硬件设计
硬件包括:
最少的元器件组成的单片机最小应用系统、外部脉冲产生和输入装置、发光二极管(LED)。
硬件的设计都是按照模块化教学设计的。
二、软件设计
1、任务分析
(1)利用外部中断0来实现对外部脉冲的计数测量,即每输入一个外部脉冲,引起外部中断一次。
(2)外部中断初始化设置。
1)中断允许:
中断总允许EA=1,外中断允许EX0=1
2)中断方式设置:
本任务采用脉冲方式。
2、中断控制设置
设置中断允许控制寄存器IE
设置定时器控制寄存器TCON
三、程序设计
外部中断控制编程程序如下:
ORG0000H
AJMPMAIN
ORG0003H;外中断0入口地址
AJMPRXO
ORG0030H
XX高级技工学校教案XXJA—02
时间分配
教学过程设计及教学内容
备注
30
30
45
30
MAIN:
CLRA
MOVP1,#0FFH;发光二极管都不亮
MOVTCON,#01H;外部中断0下降沿触发
MOVIE,#81H;打开外部中断允许位及总中断允许位
XXMP$;等待中断
RXO:
PUSHPSW;保护现场
INCA;脉冲计数
CPLA;取反
MOVP1,A;脉冲计数值由P1端口送发光二极管显示
POPPSW;恢复现场
RETI;中断返回
END
四、软件调试与仿真
(1)启动KeiluVision2仿真软件,新建一个项目文件,从器件库中选择一个器件;
(2)建立一个汇编源程序文件;
(3)添加文件到当前项目组中;
(4)设置Optionsfor‘Target1’选项;
(5)编译程序文件;
(6)检查并修改原程序文件中的错误,直至编译通过为止;
(7)、仿真调试:
1)进入仿真环境;2)熟悉存储器结构;3)检查存储器状态;
五、实际模拟仿真
将仿真器和仿真实验台上的外部设备结合起来,将P1端口接至试验台上的LED发光二极管上,观察点亮情况。
任务评价
1、学生必须掌握课本所给程序的调试和仿真;
2、在满足要求的基础上,自己编程实现其他周期的脉冲发生器;
3、尝试用别的I/O来完成任务;
4、结合学生完成任务情况,给每个学生打分。
巡回指导
检查并纠正
评分
XX高级技工学校教案XXJA—03
时间分配
教学过程设计及教学内容
备注
教学效果检验
课堂任务
完成所布置任务,理解讲解内容
课外任务
完成作业和练习
专业主任
签字
年月日
教学效果
评价
良好
教学反思
在实习教学中,教学是教学相长的过程,学生有时也是老师的老师,虚心学习,刻苦钻研才能教好课程,
学习小组课外活动内容