资源简介 中小学教育资源及组卷应用平台项目三 倒计时交通灯一、教学目标1. 了解中断的概念和作用等概念。2. 熟悉会运用51系列单片机的中断系统进行简单的功能控制。3. 掌握编写中断服务程序。4. 掌握设计简单的单片机系统软件。二、课时分配本项目共4个任务,安排8课时。三、教学重点通过本项目的学习,让学生学习按钮控制外部中断应用、定时器控制数码管计时、定时器中断实现倒计时交通灯控制、倒计时交通灯制作与调试的识读及简单分析;电阻器的参数、作用及测量;通过本项目的学习与实践,我们要掌握单片机中断系统的基本概念、工作原理和工作方式,并掌握中断服务程序的写法和实际应用;了解定时器的工作方式及应用。本项目中,我们将先用两个任务来学习单片机的中断系统和定时器系统,最后以这两个项目为基础实现交通灯的总体控制。四、教学难点1.掌握中断服务程序的工作过程。2.掌握会使用51系列定时器。五、教学内容任务一 按钮控制外部中断应用知识准备51单片机四组I/O口中的P3口其实是多功能复用口,其中P3.2和P3.3(第12、13脚)就是单片机的外部中断输入端,如图所示。一、 任务及其优先级一个完整的单片机系统其实就是由多个不同功能的子模块叠加在一起所组成的。二、 中断的概念中断是为使CPU具有对单片机外部或内部产生的重要事件进行实时处理的能力而设置的。51系列单片机的中断系统能大大提高单片机对内部和外部事件的处理能力。三、 51系列单片机的中断源51系列单片机的中断系统如图所示。1. IT1——INT1中断触发方式控制位(1) “1”INT1使用跳沿触发方式;(2) “0”INT1使用电平触发方式。2. IE1——INT1中断请求标志位若IT1为1,则当INT1输入引脚产生一个下降沿时,该位会被硬件置“1”,以向CPU发出中断申请。该位会在CPU响应INT1中断服务程序后由硬件清“0”,该位可以软件清“0”。四、 中断使能控制寄存器中断使能控制寄存器IE是控制51单片机中断开关的寄存器。其各位的含义如表所示。该特殊功能寄存器是可位寻址的。通过对该寄存器的设置,能够实现中断的2级开关控制,即一个所有中断的总开关和每个中断的子开关。1. EA——中断使能总控制位(1) “1”开放所有中断(俗称开中断);(2) “0”屏蔽所有中断(俗称关中断)。2. ES——串口中断使能控制位(1) “1”打开串口中断;(2) “0”关闭串口中断。3. ET1——T1溢出中断使能控制位(1) “1”打开T1溢出中断;(2) “0”关闭T1溢出中断。4. EX1——INT1中断使能控制位(1) “1”打开INT1中断;(2) “0”关闭INT1中断。5. ET0——T0溢出中断使能控制位(1) “1”打开T0溢出中断;(2) “0”关闭T0溢出中断。6. EX0——INT0中断使能控制位(1) “1”打开INT0中断;(2) “0”关闭INT0中断。五、 中断优先级控制寄存器中断优先级控制寄存器IP,用于控制单片机中断源的优先级。该寄存器是可位寻址的。并且该寄存器设定的中断优先级高于自然优先级。其各位的含义如表所示。1. PS——串口中断优先级控制位(1) “1”串口中断优先级设为高;(2) “0”串口中断优先级设为低。2. PT1——T1溢出中断优先级控制位(1) “1”T1溢出中断优先级设为高;(2) “0”T1溢出中断优先级设为低。3. PX1——INT1中断优先级控制位(1) “1”INT1中断优先级设为高;(2) “0”INT1中断优先级设为低。4. PT0——T0溢出中断优先级控制位(1) “1”T0溢出中断优先级设为高;(2) “0”T0溢出中断优先级设为低。5. PX0——INT0中断优先级控制位(1) “1”INT0中断优先级设为高;(2) “0”INT0中断优先级设为低。六、 中断处理过程当某一个中断发生时,单片机的中断系统将该中断的中断请求标志位置“1”,CPU查询到该标志位是“1”后,如果该中断被打开,那么,CPU会停止当前程序的运行,转而执行中断服务程序,并将中断请求标志位清“0”(串口中断标志位必须软件清“0”)。七、 外部中断的触发方式外部中断是当单片机外部发生紧急事件,需要单片机立即处理时,事件能够向CPU发出处理请求的途径。外部事件触发外部中断的方式有两种:1. 电平触发方式(低电平)2. 边沿触发方式(下降沿)八、 外部中断服务程序的编写中断服务程序的编写和其他函数程序的编写略有不同。这是因为当中断发生时,每个中断所对应的中断服务程序所存放的位置在ROM中是固定的,因此,中断服务程序必须通过中断号指定中断的类型。任务实施一、 原理图的绘制在PROTUES中画好原理图,完整的原理图如图所示。二、 编写外部中断试验程序三、 程序分析typedef 原数据类型 新数据类型;typedef unsigned int U16;四、 编译与仿真将上述源程序在KEIL C中编译并生成HEX文件,在PROTUES中作原理图仿真。正确的编译结果如图所示。目标检测任务二 定时器控制数码管计时知识准备数字钟是日常生活很常用的数码产品,在本任务中,我们将模拟实现数字钟读秒部分的功能,并且使用两个按键控制外部中断来使秒表能够根据需要正计时和倒计时。一、 定时/计数器的基本知识51系列单片机内部具有两个16位的定时/计数器,分别是T0和T1(52系列还有定时器T2)。1.计数器模式2. 定时器模式二、 定时器控制寄存器TCONTCON中各位的含义如表312所示,这里我们主要讲解高四位的功能。1. TF1——T1溢出中断请求位(1) “1”T1溢出,向CPU申请中断。(2) “0”T1未溢出。2. TR1——T1启动位,该位须由软件置位或清零(1) “1”T1计数开始。(2) “0”T1计数停止。三、 定时方式寄存器TMOD表321所示是TMOD中各位的含义。该寄存器不能位寻址。1. M1,M0——T0方式控制位(1) “00”方式0——13位定时计数方式。(2) “01”方式1——16位定时计数方式。(3) “10”方式2——8位常数自动重载方式。(4) “11”方式3——双8位定时计数方式(仅适用于T0)。2. C/T——定时器计数器模式选择位(1) “1”T0处于计数模式。(2) “0”T0处于定时模式。3. GATE——门控位(1) “1”定时计数器的启动由TR0=1和INT0接收到的高电平来共同控制。(2) “0”定时计数器的启动仅由TR0=1来控制。四、 定时计数器的四种工作方式1. 方式0当M1M0是00时,定时计数器工作于方式0,该方式是13位定时或计数方式。该方式下,定时计数器的逻辑结构如图所示。2. 方式1当M1M0是01时,定时计数器工作于方式1,该方式是16位定时或计数方式。该方式下,定时计数器的逻辑结构如图所示。3. 方式2方式0和方式1的最大特点是,当计数发生溢出后,计数器会全部清0。因此在循环定时或循环计数应用时,就会需要软件反复设置计数器的初值,这不但增加了程序的复杂度,而且在定时时间很短的场合,也会影响到定时的精度。此时,可以使用方式2来解决这个问题。4. 方式3方式3是为了增加一个附加的8位定时计数器而提供的,这样51单片机就具有三个定时计数器(52系列单片机本身就有第三个定时计数器T2)。只有T0能工作于方式3,T1不能工作在方式3,一般只有在T1做波特率发生器,系统却还需要两个定时器的情况下才使T0工作于方式3。如图所示是T0工作在方式3时的逻辑结构图。五、 定时器初值的计算当使用定时器时,根据所需的定时值,需要设置定时器的初值。下面以最常用的方式1为例,详细讲解定时器初值的计算过程。任务实施一、 原理图的绘制在PROTUES中绘制原理图,绘制好原理图。二、 编写定时器计数试验程序三、 程序分析主函数首先初始化定时器T1和T0,并打开两个定时器中断和外部中断。然后打开两个定时器使两个定时器开始运行。四、 编译仿真将上述源程序在KEIL C中编译并生成HEX文件,在PROTUES中作原理图仿真。正确的编译结果如图所示。目标检测任务三 定时器中断实现倒计时交通灯控制知识准备本任务是以上两个任务的综合。系统主要要求如下:① 红绿灯控制只使用一路双向。② 两个数码管用于对红黄绿灯的时间进行倒计时计数。③ 绿灯40s,红灯20s,黄灯4s。④ 行人优先系统能强行减少机动车的绿灯时间。⑤ 计时精度达到实用要求,误差控制要好。⑥ 程序结构清晰,变量命名含义明确,采用结构化的编程方法。⑦ 系统整个运行过程中没有明显漏洞。任务实施一、 编写源程序二、 程序分析主函数中,程序先完成对各个中断和定时器的初始化,并确定系统运行时的初始状态(本任务是绿灯状态)。然后后台部分启动[即主函数中的while三、 编译与仿真将上述源程序在KEIL C中编译并生成HEX文件,在PROTUES中作原理图仿真。正确的编译结果如图所示。目标检测1. 修改本任务的设计,实现:主道红灯状态下,10s内如无行人按下按键,则主道方向自动切换成绿灯;如10s内有行人按下按键,则主道方向的红灯再延时10秒。其余条件不变。任务四 倒计时交通灯制作与调试知识准备倒计时交通灯的硬件连接原理图如图331所示。按照图中的硬件在万能板上搭建实物。任务实施搭建好的实物板如图所示。目标检测六、课后练习完成每个任务的目标检测。21世纪教育网 www.21cnjy.com 精品试卷·第 2 页 (共 2 页)21世纪教育网(www.21cnjy.com) 展开更多...... 收起↑ 资源预览