键盘设计与实现

上传人:汽*** 文档编号:580536851 上传时间:2024-08-29 格式:PPT 页数:61 大小:486.03KB
返回 下载 相关 举报
键盘设计与实现_第1页
第1页 / 共61页
键盘设计与实现_第2页
第2页 / 共61页
键盘设计与实现_第3页
第3页 / 共61页
键盘设计与实现_第4页
第4页 / 共61页
键盘设计与实现_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《键盘设计与实现》由会员分享,可在线阅读,更多相关《键盘设计与实现(61页珍藏版)》请在金锄头文库上搜索。

1、项目四项目四 键盘设计与实现键盘设计与实现ort-zc/ scnzf lknzg 0838mlj 5sbj light-ks jnxrt topbrightness hd8go hd88go oemgc 189288 hzp580 yjoem oemdg xcdnpx skfjk oemdg zhongtezc yanjigz zg-nsk skf- nsk-zt fag-zt zhongtezc ntn-zt 189286 xcdnpx dgxcdn dgxcpx xcwxpx xunchi-px oemfy 0759mz lczx188 189287 nizifn mynzf mynzf

2、 mynzg mynzg mynzg mljsgf mljnzf 0838mlj教学目的教学目的n掌握键盘的接口方法和编程方法掌握键盘的接口方法和编程方法掌握键盘的接口方法和编程方法掌握键盘的接口方法和编程方法 。n了解中断的基本概念和功能。了解中断的基本概念和功能。了解中断的基本概念和功能。了解中断的基本概念和功能。n掌握掌握掌握掌握5151单片机中断系统的结构和控制方式。单片机中断系统的结构和控制方式。单片机中断系统的结构和控制方式。单片机中断系统的结构和控制方式。n掌握中断系统的中断处理过程。掌握中断系统的中断处理过程。掌握中断系统的中断处理过程。掌握中断系统的中断处理过程。 ort-z

3、c/ scnzf lknzg 0838mlj 5sbj light-ks jnxrt topbrightness hd8go hd88go oemgc 189288 hzp580 yjoem oemdg xcdnpx skfjk oemdg zhongtezc yanjigz zg-nsk skf- nsk-zt fag-zt zhongtezc ntn-zt 189286 xcdnpx dgxcdn dgxcpx xcwxpx xunchi-px oemfy 0759mz lczx188 189287 nizifn mynzf mynzf mynzg mynzg mynzg mljsgf

4、mljnzf 0838mlj模块九模块九独立式键盘设计与实现独立式键盘设计与实现 n n使用使用使用使用AT89S52AT89S52单片机,设计一个具有单片机,设计一个具有单片机,设计一个具有单片机,设计一个具有8 8个按键的独立式键个按键的独立式键个按键的独立式键个按键的独立式键盘,每个按键对应一个发光二极管。功能要求:无键按下盘,每个按键对应一个发光二极管。功能要求:无键按下盘,每个按键对应一个发光二极管。功能要求:无键按下盘,每个按键对应一个发光二极管。功能要求:无键按下时,键盘输出全为时,键盘输出全为时,键盘输出全为时,键盘输出全为“ “1”1”,发光二极管全部熄灭;有键按,发光二极管

5、全部熄灭;有键按,发光二极管全部熄灭;有键按,发光二极管全部熄灭;有键按下时,其所对应发光二极管点亮。下时,其所对应发光二极管点亮。下时,其所对应发光二极管点亮。下时,其所对应发光二极管点亮。 认识键盘认识键盘u键盘是键盘是键盘是键盘是单片机应用系统中人机交流不可缺少的单片机应用系统中人机交流不可缺少的单片机应用系统中人机交流不可缺少的单片机应用系统中人机交流不可缺少的输输输输入设备入设备入设备入设备。u键盘由一组规则排列的按键组成,一个按键实际键盘由一组规则排列的按键组成,一个按键实际键盘由一组规则排列的按键组成,一个按键实际键盘由一组规则排列的按键组成,一个按键实际上是一个开关元件。键盘通

6、常使用上是一个开关元件。键盘通常使用上是一个开关元件。键盘通常使用上是一个开关元件。键盘通常使用机械触点式按机械触点式按机械触点式按机械触点式按键开关键开关键开关键开关,其主要功能是把机械上的通断转换为电,其主要功能是把机械上的通断转换为电,其主要功能是把机械上的通断转换为电,其主要功能是把机械上的通断转换为电气上的逻辑关系气上的逻辑关系气上的逻辑关系气上的逻辑关系(1(1和和和和0)0)。u常见的种类有:常见的种类有:常见的种类有:常见的种类有:查询(独立)式键盘查询(独立)式键盘查询(独立)式键盘查询(独立)式键盘 矩阵式键盘矩阵式键盘矩阵式键盘矩阵式键盘 ort-zc/ scnzf lk

7、nzg 0838mlj 5sbj light-ks jnxrt topbrightness hd8go hd88go oemgc 189288 hzp580 yjoem oemdg xcdnpx skfjk oemdg zhongtezc yanjigz zg-nsk skf- nsk-zt fag-zt zhongtezc ntn-zt 189286 xcdnpx dgxcdn dgxcpx xcwxpx xunchi-px oemfy 0759mz lczx188 189287 nizifn mynzf mynzf mynzg mynzg mynzg mljsgf mljnzf 0838

8、mlj键盘分类键盘分类 n按键按照结构原理可分为两类按键按照结构原理可分为两类按键按照结构原理可分为两类按键按照结构原理可分为两类n n触点式开关按键触点式开关按键触点式开关按键触点式开关按键,如机械式开关、导电橡胶式开关等;,如机械式开关、导电橡胶式开关等;,如机械式开关、导电橡胶式开关等;,如机械式开关、导电橡胶式开关等;n n无触点开关按键无触点开关按键无触点开关按键无触点开关按键,如电气式按键,磁感应按键等。前,如电气式按键,磁感应按键等。前,如电气式按键,磁感应按键等。前,如电气式按键,磁感应按键等。前者造价低,后者寿命长。按键按照接口原理可分为两者造价低,后者寿命长。按键按照接口原

9、理可分为两者造价低,后者寿命长。按键按照接口原理可分为两者造价低,后者寿命长。按键按照接口原理可分为两类类类类n按键按照接口原理可分为两类按键按照接口原理可分为两类按键按照接口原理可分为两类按键按照接口原理可分为两类 n n编码键盘编码键盘编码键盘编码键盘,主要是用硬件来实现对按键的识别,硬件,主要是用硬件来实现对按键的识别,硬件,主要是用硬件来实现对按键的识别,硬件,主要是用硬件来实现对按键的识别,硬件结构复杂;结构复杂;结构复杂;结构复杂;n n非编码键盘非编码键盘非编码键盘非编码键盘,主要是由软件来实现按键的定义与识别,主要是由软件来实现按键的定义与识别,主要是由软件来实现按键的定义与识

10、别,主要是由软件来实现按键的定义与识别,硬件结构简单,软件编程量大。硬件结构简单,软件编程量大。硬件结构简单,软件编程量大。硬件结构简单,软件编程量大。n这里我们主要介绍单片机中常用的触点式开关按这里我们主要介绍单片机中常用的触点式开关按这里我们主要介绍单片机中常用的触点式开关按这里我们主要介绍单片机中常用的触点式开关按键、非编码键盘。键、非编码键盘。键、非编码键盘。键、非编码键盘。ort-zc/ scnzf lknzg 0838mlj 5sbj light-ks jnxrt topbrightness hd8go hd88go oemgc 189288 hzp580 yjoem oemdg

11、 xcdnpx skfjk oemdg zhongtezc yanjigz zg-nsk skf- nsk-zt fag-zt zhongtezc ntn-zt 189286 xcdnpx dgxcdn dgxcpx xcwxpx xunchi-px oemfy 0759mz lczx188 189287 nizifn mynzf mynzf mynzg mynzg mynzg mljsgf mljnzf 0838mlj独立式独立式键盘电路键盘电路u独立式键盘电路设计时,每个按键的一端与独立式键盘电路设计时,每个按键的一端与独立式键盘电路设计时,每个按键的一端与独立式键盘电路设计时,每个按键的

12、一端与P0P0口口口口的一个引脚相连,另一端接地。的一个引脚相连,另一端接地。的一个引脚相连,另一端接地。的一个引脚相连,另一端接地。u无键按下时,无键按下时,无键按下时,无键按下时,P0P0的的的的8 8个个个个I/OI/O口均通过电阻接高电平,口均通过电阻接高电平,口均通过电阻接高电平,口均通过电阻接高电平,信息为信息为信息为信息为“ “1” 1” ,键盘输出全为,键盘输出全为,键盘输出全为,键盘输出全为“ “1”1”发光二极管全发光二极管全发光二极管全发光二极管全部熄灭。部熄灭。部熄灭。部熄灭。u有键按下,将使对应的有键按下,将使对应的有键按下,将使对应的有键按下,将使对应的I/OI/O

13、口通过该键接地,信息口通过该键接地,信息口通过该键接地,信息口通过该键接地,信息为为为为“ “0” 0” ,对应发光二极管点亮。,对应发光二极管点亮。,对应发光二极管点亮。,对应发光二极管点亮。uCPUCPU可以通过可以通过可以通过可以通过检测检测检测检测P0P0的的的的8 8个个个个I/OI/O口线哪个是口线哪个是口线哪个是口线哪个是“ “0”0”就可以识别是否有键按下就可以识别是否有键按下就可以识别是否有键按下就可以识别是否有键按下,并能识别出是哪一个,并能识别出是哪一个,并能识别出是哪一个,并能识别出是哪一个键按下。键按下。键按下。键按下。 独立式独立式键盘程序键盘程序u程序要判断是否有

14、程序要判断是否有程序要判断是否有程序要判断是否有2 2个或个或个或个或2 2个以上的键盘同时按下,个以上的键盘同时按下,个以上的键盘同时按下,个以上的键盘同时按下,以免键盘分析错误。以免键盘分析错误。以免键盘分析错误。以免键盘分析错误。u独立式键盘程序独立式键盘程序独立式键盘程序独立式键盘程序u假设假设假设假设8 8个按键分别为个按键分别为个按键分别为个按键分别为1818,试一试能否用数码管显,试一试能否用数码管显,试一试能否用数码管显,试一试能否用数码管显示按下的按键。示按下的按键。示按下的按键。示按下的按键。键盘设计应注意的问题键盘设计应注意的问题uu机械式按键在按下或释放时,机械式按键在

15、按下或释放时,机械式按键在按下或释放时,机械式按键在按下或释放时,由于机械弹性作用的影响,由于机械弹性作用的影响,由于机械弹性作用的影响,由于机械弹性作用的影响,通常伴随有一定时间的触点通常伴随有一定时间的触点通常伴随有一定时间的触点通常伴随有一定时间的触点机械抖动,然后其触点才稳机械抖动,然后其触点才稳机械抖动,然后其触点才稳机械抖动,然后其触点才稳定下来。定下来。定下来。定下来。uu其抖动过程如右图所示,抖其抖动过程如右图所示,抖其抖动过程如右图所示,抖其抖动过程如右图所示,抖动时间的长短与开关的机械动时间的长短与开关的机械动时间的长短与开关的机械动时间的长短与开关的机械特性有关,一般为特

16、性有关,一般为特性有关,一般为特性有关,一般为5 5 10ms10ms。uu若有抖动,按键按下会被错若有抖动,按键按下会被错若有抖动,按键按下会被错若有抖动,按键按下会被错误地认为是多次操作。误地认为是多次操作。误地认为是多次操作。误地认为是多次操作。 按键触点的机械抖动防抖动措施防抖动措施u为了克服按键触点机械抖动所致的检测误判,必为了克服按键触点机械抖动所致的检测误判,必为了克服按键触点机械抖动所致的检测误判,必为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施,可从硬件、软件两方面予以须采取去抖动措施,可从硬件、软件两方面予以须采取去抖动措施,可从硬件、软件两方面予以须采取去抖动

17、措施,可从硬件、软件两方面予以考虑。考虑。考虑。考虑。键数较少时,键数较少时,键数较少时,键数较少时,采用硬件去抖采用硬件去抖采用硬件去抖采用硬件去抖;键数较多时,键数较多时,键数较多时,键数较多时,采用软件去抖采用软件去抖采用软件去抖采用软件去抖。 软件上采取的措施是在软件上采取的措施是在软件上采取的措施是在软件上采取的措施是在检测到有按键按下检测到有按键按下检测到有按键按下检测到有按键按下时,时,时,时,执执执执行一个行一个行一个行一个10ms10ms左右左右左右左右( (具体时间应视所使用的按键进具体时间应视所使用的按键进具体时间应视所使用的按键进具体时间应视所使用的按键进行调整行调整行

18、调整行调整) )的延时程序,再确认该键电平是否的延时程序,再确认该键电平是否的延时程序,再确认该键电平是否的延时程序,再确认该键电平是否仍保持仍保持仍保持仍保持闭合状态闭合状态闭合状态闭合状态电平,若仍保持闭合状态电平,电平,若仍保持闭合状态电平,电平,若仍保持闭合状态电平,电平,若仍保持闭合状态电平,则确认则确认则确认则确认该键处于闭合状态,该键处于闭合状态,该键处于闭合状态,该键处于闭合状态,从而消除抖动的影响。从而消除抖动的影响。从而消除抖动的影响。从而消除抖动的影响。软件去抖软件去抖 n在检测到有按键按下时在检测到有按键按下时在检测到有按键按下时在检测到有按键按下时n n执行一个执行一

19、个执行一个执行一个10ms10ms10ms10ms左右(具体时左右(具体时左右(具体时左右(具体时间应视所使用的按键进行调间应视所使用的按键进行调间应视所使用的按键进行调间应视所使用的按键进行调整)的延时程序后;整)的延时程序后;整)的延时程序后;整)的延时程序后;n n再确认该键电平是否仍保持再确认该键电平是否仍保持再确认该键电平是否仍保持再确认该键电平是否仍保持闭合状态电平,若仍保持闭闭合状态电平,若仍保持闭闭合状态电平,若仍保持闭闭合状态电平,若仍保持闭合状态电平,则确认该键是合状态电平,则确认该键是合状态电平,则确认该键是合状态电平,则确认该键是处于闭合状态。处于闭合状态。处于闭合状态

20、。处于闭合状态。 技能训练技能训练4-1n一键多功能按键识别设计与实现一键多功能按键识别设计与实现一键多功能按键识别设计与实现一键多功能按键识别设计与实现n n按键接在按键接在按键接在按键接在P3.0P3.0管脚上,在管脚上,在管脚上,在管脚上,在AT89S52AT89S52单片机的单片机的单片机的单片机的P1 P1 端口接端口接端口接端口接有四个发光二极管。有四个发光二极管。有四个发光二极管。有四个发光二极管。n n上电的时候,接在上电的时候,接在上电的时候,接在上电的时候,接在P1.0P1.0管脚上的发光二极管管脚上的发光二极管管脚上的发光二极管管脚上的发光二极管D1D1在闪烁;在闪烁;在

21、闪烁;在闪烁;n n当第一次按下按键的时候,接在当第一次按下按键的时候,接在当第一次按下按键的时候,接在当第一次按下按键的时候,接在P1.1 P1.1 管脚上的发光二管脚上的发光二管脚上的发光二管脚上的发光二极管极管极管极管D2D2在闪烁;在闪烁;在闪烁;在闪烁;n n再按下按键的时候,接在再按下按键的时候,接在再按下按键的时候,接在再按下按键的时候,接在P1.2 P1.2 管脚上的发光二极管管脚上的发光二极管管脚上的发光二极管管脚上的发光二极管D3D3在闪烁,再按下按键的时候,接在在闪烁,再按下按键的时候,接在在闪烁,再按下按键的时候,接在在闪烁,再按下按键的时候,接在P1.3 P1.3 管

22、脚上的发光管脚上的发光管脚上的发光管脚上的发光二极管二极管二极管二极管D4D4在闪烁,再按下按键的时候,又轮到在闪烁,再按下按键的时候,又轮到在闪烁,再按下按键的时候,又轮到在闪烁,再按下按键的时候,又轮到D1 D1 在闪在闪在闪在闪烁了,如此轮流下去。烁了,如此轮流下去。烁了,如此轮流下去。烁了,如此轮流下去。 ort-zc/ scnzf lknzg 0838mlj 5sbj light-ks jnxrt topbrightness hd8go hd88go oemgc 189288 hzp580 yjoem oemdg xcdnpx skfjk oemdg zhongtezc yanji

23、gz zg-nsk skf- nsk-zt fag-zt zhongtezc ntn-zt 189286 xcdnpx dgxcdn dgxcpx xcwxpx xunchi-px oemfy 0759mz lczx188 189287 nizifn mynzf mynzf mynzg mynzg mynzg mljsgf mljnzf 0838mlj一键多功能按键识别电路设计一键多功能按键识别电路设计 一键多功能按键识别程序设计一键多功能按键识别程序设计 n n对于要通过一个按键来识别每种不同的功能,我们给对于要通过一个按键来识别每种不同的功能,我们给对于要通过一个按键来识别每种不同的功能,

24、我们给对于要通过一个按键来识别每种不同的功能,我们给每个每个每个每个不同的功能模块用不同的不同的功能模块用不同的不同的功能模块用不同的不同的功能模块用不同的IDIDIDID号标识号标识号标识号标识,这样,每按下一次按,这样,每按下一次按,这样,每按下一次按,这样,每按下一次按键,键,键,键,ID ID ID ID 的值是不相同的,所以单片机就很容易识别不同的值是不相同的,所以单片机就很容易识别不同的值是不相同的,所以单片机就很容易识别不同的值是不相同的,所以单片机就很容易识别不同功能的身份了。功能的身份了。功能的身份了。功能的身份了。 n n从上面的要求我们可以看出,从上面的要求我们可以看出,

25、从上面的要求我们可以看出,从上面的要求我们可以看出,D1D1D1D1到到到到D4D4D4D4发光二极管在每个时发光二极管在每个时发光二极管在每个时发光二极管在每个时刻的闪烁的时间是受按键来控制,我们给刻的闪烁的时间是受按键来控制,我们给刻的闪烁的时间是受按键来控制,我们给刻的闪烁的时间是受按键来控制,我们给D1D1D1D1到到到到D4D4D4D4闪烁的时闪烁的时闪烁的时闪烁的时段,定义出不同的段,定义出不同的段,定义出不同的段,定义出不同的IDIDIDID号号号号: : : :n nD1D1D1D1在闪烁时,在闪烁时,在闪烁时,在闪烁时,IDIDIDID0 0 0 0;n nD2D2D2D2在

26、闪烁时,在闪烁时,在闪烁时,在闪烁时,IDIDIDID1 1 1 1;n nD3D3D3D3在闪烁时,在闪烁时,在闪烁时,在闪烁时,IDIDIDID2 2 2 2;n nD4D4D4D4在闪烁时,在闪烁时,在闪烁时,在闪烁时,IDIDIDID3 3 3 3;n n很显然,只要每次按下按键时,分别给出不同的很显然,只要每次按下按键时,分别给出不同的很显然,只要每次按下按键时,分别给出不同的很显然,只要每次按下按键时,分别给出不同的IDIDIDID号我们号我们号我们号我们就能够完成上面的任务了。就能够完成上面的任务了。就能够完成上面的任务了。就能够完成上面的任务了。n n一键多功能按键识别程序一键

27、多功能按键识别程序一键多功能按键识别程序一键多功能按键识别程序矩阵式键盘设计与实现矩阵式键盘设计与实现u4X44X4小键盘,小键盘,小键盘,小键盘,1616个键分别对应个键分别对应个键分别对应个键分别对应0909、AFAF;u有键按下,数码管显示;有键按下,数码管显示;有键按下,数码管显示;有键按下,数码管显示;u无键按下,数码管无显示;无键按下,数码管无显示;无键按下,数码管无显示;无键按下,数码管无显示;u通过输出的列码和读取的行码来判断按下什么键;通过输出的列码和读取的行码来判断按下什么键;通过输出的列码和读取的行码来判断按下什么键;通过输出的列码和读取的行码来判断按下什么键;u有键按下

28、,要有一定的延时,防止由于键盘抖动有键按下,要有一定的延时,防止由于键盘抖动有键按下,要有一定的延时,防止由于键盘抖动有键按下,要有一定的延时,防止由于键盘抖动而引起误操作。而引起误操作。而引起误操作。而引起误操作。 矩阵式键盘电路矩阵式键盘电路键盘的结构与原理键盘的结构与原理uu矩阵式键盘矩阵式键盘矩阵式键盘矩阵式键盘 单片机系统中,若使用按键较多时,通常采用矩阵式键盘,单片机系统中,若使用按键较多时,通常采用矩阵式键盘,单片机系统中,若使用按键较多时,通常采用矩阵式键盘,单片机系统中,若使用按键较多时,通常采用矩阵式键盘,其结构如下图所示。由图可知,一个其结构如下图所示。由图可知,一个其结

29、构如下图所示。由图可知,一个其结构如下图所示。由图可知,一个4444的行、列结构,可的行、列结构,可的行、列结构,可的行、列结构,可以构成一个含有以构成一个含有以构成一个含有以构成一个含有1616个按键的键盘,节省了很多个按键的键盘,节省了很多个按键的键盘,节省了很多个按键的键盘,节省了很多I/OI/O口。口。口。口。 uu控制方式:控制方式:控制方式:控制方式:先判断是否有键按下先判断是否有键按下先判断是否有键按下先判断是否有键按下。 如有,如有,如有,如有,再判断哪一键按下再判断哪一键按下再判断哪一键按下再判断哪一键按下,并,并,并,并得到得到得到得到 键码值键码值键码值键码值,然后根据键

30、码值,然后根据键码值,然后根据键码值,然后根据键码值转向不同转向不同转向不同转向不同 的功能程序的功能程序的功能程序的功能程序。uu最常用的识别方法是最常用的识别方法是最常用的识别方法是最常用的识别方法是键盘扫描法键盘扫描法键盘扫描法键盘扫描法。 判断按键按下的方法判断按键按下的方法 n判断是否有键按下的方法是:判断是否有键按下的方法是:判断是否有键按下的方法是:判断是否有键按下的方法是:n n向所有的列输出口线输出低电平向所有的列输出口线输出低电平向所有的列输出口线输出低电平向所有的列输出口线输出低电平(不能为高电平,因(不能为高电平,因(不能为高电平,因(不能为高电平,因为若为高电平,按键

31、按下与否都不会引起行线电平的为若为高电平,按键按下与否都不会引起行线电平的为若为高电平,按键按下与否都不会引起行线电平的为若为高电平,按键按下与否都不会引起行线电平的变化),变化),变化),变化),然后将行线的电平状态读入然后将行线的电平状态读入然后将行线的电平状态读入然后将行线的电平状态读入。n n若无键按下,所有的若无键按下,所有的若无键按下,所有的若无键按下,所有的行线仍保持高电平行线仍保持高电平行线仍保持高电平行线仍保持高电平状态;状态;状态;状态;n n若有键按下,行线中若有键按下,行线中若有键按下,行线中若有键按下,行线中至少应有一条线为低电平至少应有一条线为低电平至少应有一条线为

32、低电平至少应有一条线为低电平。n n例如:第例如:第例如:第例如:第2 2 2 2行与第行与第行与第行与第2 2 2 2列交叉点的键被按下,则第列交叉点的键被按下,则第列交叉点的键被按下,则第列交叉点的键被按下,则第2 2 2 2行与第行与第行与第行与第2 2 2 2列导通,第列导通,第列导通,第列导通,第2 2 2 2行电平被拉低,读入的行信号就为低电行电平被拉低,读入的行信号就为低电行电平被拉低,读入的行信号就为低电行电平被拉低,读入的行信号就为低电平,表示有键按下。平,表示有键按下。平,表示有键按下。平,表示有键按下。 识别按键的方法识别按键的方法 n n按键识别的扫描方法:按键识别的扫

33、描方法:按键识别的扫描方法:按键识别的扫描方法:n n往列线上按顺序一列一列的送出低电平。往列线上按顺序一列一列的送出低电平。往列线上按顺序一列一列的送出低电平。往列线上按顺序一列一列的送出低电平。n n先送先送先送先送第第第第0 0 0 0列为低电平,其他列为高电平列为低电平,其他列为高电平列为低电平,其他列为高电平列为低电平,其他列为高电平,读入的行的电平状态就表,读入的行的电平状态就表,读入的行的电平状态就表,读入的行的电平状态就表明了第明了第明了第明了第0 0 0 0列的列的列的列的4 4 4 4个键的情况,若读入的行值全为高电平,则表示无个键的情况,若读入的行值全为高电平,则表示无个

34、键的情况,若读入的行值全为高电平,则表示无个键的情况,若读入的行值全为高电平,则表示无键按下;键按下;键按下;键按下;n n再送再送再送再送第第第第1 1 1 1列为低电平,其他列为高电平列为低电平,其他列为高电平列为低电平,其他列为高电平列为低电平,其他列为高电平,读入的行的电平状态则显,读入的行的电平状态则显,读入的行的电平状态则显,读入的行的电平状态则显示了该行上的示了该行上的示了该行上的示了该行上的4 4 4 4个按键的情况;个按键的情况;个按键的情况;个按键的情况;n n依次依次依次依次轮流给各列送出低电平轮流给各列送出低电平轮流给各列送出低电平轮流给各列送出低电平,直至,直至,直至

35、,直至4 4 4 4列全部送完,再从第列全部送完,再从第列全部送完,再从第列全部送完,再从第0 0 0 0列开始,列开始,列开始,列开始,依此循环。依此循环。依此循环。依此循环。n n采用键盘扫描,我们再来观察第采用键盘扫描,我们再来观察第采用键盘扫描,我们再来观察第采用键盘扫描,我们再来观察第2 2 2 2行与第行与第行与第行与第2 2 2 2列交叉点的键按列交叉点的键按列交叉点的键按列交叉点的键按下时的判断过程,当第下时的判断过程,当第下时的判断过程,当第下时的判断过程,当第2 2 2 2列送出低电平时,读第列送出低电平时,读第列送出低电平时,读第列送出低电平时,读第2 2 2 2行为低电

36、行为低电行为低电行为低电平,而其他列送出低电平时,读第平,而其他列送出低电平时,读第平,而其他列送出低电平时,读第平,而其他列送出低电平时,读第2 2 2 2行却为高电平,由此行却为高电平,由此行却为高电平,由此行却为高电平,由此即可断定按下的键应是第即可断定按下的键应是第即可断定按下的键应是第即可断定按下的键应是第2 2 2 2行与第行与第行与第行与第2 2 2 2列交叉点的键。列交叉点的键。列交叉点的键。列交叉点的键。 键盘扫描程序具体实现方法键盘扫描程序具体实现方法 n判断有无键按下判断有无键按下判断有无键按下判断有无键按下n去除按键的抖动去除按键的抖动去除按键的抖动去除按键的抖动n求按

37、键的键值求按键的键值求按键的键值求按键的键值n判断闭合键是否释放判断闭合键是否释放判断闭合键是否释放判断闭合键是否释放ort-zc/ scnzf lknzg 0838mlj 5sbj light-ks jnxrt topbrightness hd8go hd88go oemgc 189288 hzp580 yjoem oemdg xcdnpx skfjk oemdg zhongtezc yanjigz zg-nsk skf- nsk-zt fag-zt zhongtezc ntn-zt 189286 xcdnpx dgxcdn dgxcpx xcwxpx xunchi-px oemfy 07

38、59mz lczx188 189287 nizifn mynzf mynzf mynzg mynzg mynzg mljsgf mljnzf 0838mlj判断有无键按下判断有无键按下nP0.4P0.4P0.7P0.7输出输出输出输出0 0,然后读,然后读,然后读,然后读P0P0口;口;口;口;n若低若低若低若低4 4位位位位P0.0P0.0P0.3P0.3全为全为全为全为1 1,则键盘上没有键按,则键盘上没有键按,则键盘上没有键按,则键盘上没有键按下;下;下;下;n若若若若P0.0P0.0P0.3P0.3不全为不全为不全为不全为1 1,则有键按下。,则有键按下。,则有键按下。,则有键按下。1

39、.1.while(tmp=0x0f) while(tmp=0x0f) while(tmp=0x0f) while(tmp=0x0f) /循环判断是否有键按下循环判断是否有键按下循环判断是否有键按下循环判断是否有键按下2.2. 3.3. P0=0x0f; P0=0x0f; P0=0x0f; P0=0x0f; /所有列输出低电平所有列输出低电平所有列输出低电平所有列输出低电平4.4. tmp=P0; tmp=P0; tmp=P0; tmp=P0; /读行信号读行信号读行信号读行信号5.5. ort-zc/ scnzf lknzg 0838mlj 5sbj light-ks jnxrt topbri

40、ghtness hd8go hd88go oemgc 189288 hzp580 yjoem oemdg xcdnpx skfjk oemdg zhongtezc yanjigz zg-nsk skf- nsk-zt fag-zt zhongtezc ntn-zt 189286 xcdnpx dgxcdn dgxcpx xcwxpx xunchi-px oemfy 0759mz lczx188 189287 nizifn mynzf mynzf mynzg mynzg mynzg mljsgf mljnzf 0838mlj去除按键的抖动去除按键的抖动n当判断到键盘上有键按下后;当判断到键盘上

41、有键按下后;当判断到键盘上有键按下后;当判断到键盘上有键按下后;n延时一段时间再判断键盘的状态;延时一段时间再判断键盘的状态;延时一段时间再判断键盘的状态;延时一段时间再判断键盘的状态;n若仍为有键按下状态,则认为有一个键按下,否若仍为有键按下状态,则认为有一个键按下,否若仍为有键按下状态,则认为有一个键按下,否若仍为有键按下状态,则认为有一个键按下,否则当作按键抖动来处理。则当作按键抖动来处理。则当作按键抖动来处理。则当作按键抖动来处理。1.1.delay10ms(); delay10ms(); delay10ms(); delay10ms(); /延时延时延时延时10ms10ms10ms1

42、0ms去抖去抖去抖去抖2.2.P0=0x0f; P0=0x0f; P0=0x0f; P0=0x0f; /所有列输出低电平所有列输出低电平所有列输出低电平所有列输出低电平3.3.tmp=P0; tmp=P0; tmp=P0; tmp=P0; /再次读键盘状态再次读键盘状态再次读键盘状态再次读键盘状态4.4.if(tmp=0x0f) continue; if(tmp=0x0f) continue; if(tmp=0x0f) continue; if(tmp=0x0f) continue; /如果无键按如果无键按如果无键按如果无键按下则认为是按键抖动,重新扫描键盘下则认为是按键抖动,重新扫描键盘下则

43、认为是按键抖动,重新扫描键盘下则认为是按键抖动,重新扫描键盘 ort-zc/ scnzf lknzg 0838mlj 5sbj light-ks jnxrt topbrightness hd8go hd88go oemgc 189288 hzp580 yjoem oemdg xcdnpx skfjk oemdg zhongtezc yanjigz zg-nsk skf- nsk-zt fag-zt zhongtezc ntn-zt 189286 xcdnpx dgxcdn dgxcpx xcwxpx xunchi-px oemfy 0759mz lczx188 189287 nizifn m

44、ynzf mynzf mynzg mynzg mynzg mljsgf mljnzf 0838mlj求按键的键值求按键的键值n对键盘的列线进行扫描,对键盘的列线进行扫描,对键盘的列线进行扫描,对键盘的列线进行扫描,P0.4P0.4P0.4P0.4P0.7P0.7P0.7P0.7循环输出循环输出循环输出循环输出1110111011101110、1101110111011101、1011101110111011和和和和0111011101110111,依依依依次读次读次读次读P0P0P0P0口,若低口,若低口,若低口,若低4 4 4 4位位位位全为全为全为全为1 1 1 1,则断定该列上没有键按下

45、;,则断定该列上没有键按下;,则断定该列上没有键按下;,则断定该列上没有键按下;n否则,该列上就有键按下,并且就是行线为否则,该列上就有键按下,并且就是行线为否则,该列上就有键按下,并且就是行线为否则,该列上就有键按下,并且就是行线为0 0 0 0,列,列,列,列线为线为线为线为0 0 0 0的交叉点,行号和列号按公式:的交叉点,行号和列号按公式:的交叉点,行号和列号按公式:的交叉点,行号和列号按公式:rol*4+col rol*4+col 计算得到按下键的键值。计算得到按下键的键值。计算得到按下键的键值。计算得到按下键的键值。n例如,例如,例如,例如,P0.4P0.4P0.4P0.4P0.7

46、P0.7P0.7P0.7输出输出输出输出1101110111011101时,时,时,时,P0P0P0P0口的低四位读口的低四位读口的低四位读口的低四位读入的值为入的值为入的值为入的值为1011101110111011,不全为,不全为,不全为,不全为1 1 1 1,就可以断定有键按下,就可以断定有键按下,就可以断定有键按下,就可以断定有键按下,并且是并且是并且是并且是第第第第2 2 2 2行行行行和和和和第第第第1 1 1 1列列列列交叉点的键。于是,该键的交叉点的键。于是,该键的交叉点的键。于是,该键的交叉点的键。于是,该键的键值键值键值键值= = = =2 2 2 24+4+4+4+1 1

47、1 1=9=9=9=9。按照相同的方法可以得到所有键。按照相同的方法可以得到所有键。按照相同的方法可以得到所有键。按照相同的方法可以得到所有键的键值。如:的键值。如:的键值。如:的键值。如:return(rol*4+col);return(rol*4+col); 判断闭合键是否释放判断闭合键是否释放n n按键闭合一次只能进行一次功能操作,因此,等按键释按键闭合一次只能进行一次功能操作,因此,等按键释按键闭合一次只能进行一次功能操作,因此,等按键释按键闭合一次只能进行一次功能操作,因此,等按键释放后才能根据键号执行相应的功能键操作。放后才能根据键号执行相应的功能键操作。放后才能根据键号执行相应的

48、功能键操作。放后才能根据键号执行相应的功能键操作。1.1.1.1.key=scan_key( ); key=scan_key( ); key=scan_key( ); key=scan_key( ); /有键按下,调用键盘扫描程序,有键按下,调用键盘扫描程序,有键按下,调用键盘扫描程序,有键按下,调用键盘扫描程序, 并把键值送并把键值送并把键值送并把键值送key key key key 2.2.2.2.while(k!=-1) while(k!=-1) while(k!=-1) while(k!=-1) /判断闭合键是否释放,直到其释放判断闭合键是否释放,直到其释放判断闭合键是否释放,直到其释

49、放判断闭合键是否释放,直到其释放3.3.3.3. 4.4.4.4. delay10ms(); delay10ms(); delay10ms(); delay10ms();5.5.5.5. k=scan_key(); k=scan_key(); k=scan_key(); k=scan_key();6.6.6.6. 矩阵式键盘程序矩阵式键盘程序u程序要判断是否有程序要判断是否有程序要判断是否有程序要判断是否有2 2个或个或个或个或2 2个以上的键盘同时按下,个以上的键盘同时按下,个以上的键盘同时按下,个以上的键盘同时按下,以免键盘分析错误。以免键盘分析错误。以免键盘分析错误。以免键盘分析错误。u

50、1616个按键分别为个按键分别为个按键分别为个按键分别为0909、AFAF,用数码管显示按下,用数码管显示按下,用数码管显示按下,用数码管显示按下的按键。的按键。的按键。的按键。u矩阵式键盘程序矩阵式键盘程序矩阵式键盘程序矩阵式键盘程序工作模块工作模块11 11 中断方式矩阵键盘中断方式矩阵键盘 uu独立式键盘识别键盘比较容易,编程也比较简单,很适合独立式键盘识别键盘比较容易,编程也比较简单,很适合独立式键盘识别键盘比较容易,编程也比较简单,很适合独立式键盘识别键盘比较容易,编程也比较简单,很适合于功能键较少的单片机应用系统。于功能键较少的单片机应用系统。于功能键较少的单片机应用系统。于功能键

51、较少的单片机应用系统。uu独立式键盘独立式键盘独立式键盘独立式键盘每一个按键上用一根口线每一个按键上用一根口线每一个按键上用一根口线每一个按键上用一根口线,当按键较多时,当按键较多时,当按键较多时,当按键较多时( (超过超过超过超过8 8个个个个) )应采用矩阵式键盘。应采用矩阵式键盘。应采用矩阵式键盘。应采用矩阵式键盘。uu无论是否按键,无论是否按键,无论是否按键,无论是否按键,CPUCPU都要按时扫描键盘,而单片机应用系都要按时扫描键盘,而单片机应用系都要按时扫描键盘,而单片机应用系都要按时扫描键盘,而单片机应用系统工作时,并非经常需要键盘输入。因此,很多扫描工作统工作时,并非经常需要键盘

52、输入。因此,很多扫描工作统工作时,并非经常需要键盘输入。因此,很多扫描工作统工作时,并非经常需要键盘输入。因此,很多扫描工作是不必要的,浪费了是不必要的,浪费了是不必要的,浪费了是不必要的,浪费了CPUCPU的时间。的时间。的时间。的时间。uu为了提高为了提高为了提高为了提高CPUCPU的工作效率,可以采用的工作效率,可以采用的工作效率,可以采用的工作效率,可以采用中断扫描工作方式中断扫描工作方式中断扫描工作方式中断扫描工作方式。中断的概念中断的概念uu当当当当CPUCPU在执行程序时,由单片机在执行程序时,由单片机在执行程序时,由单片机在执行程序时,由单片机内部或内部或内部或内部或外部的原因

53、引起的随机事件外部的原因引起的随机事件外部的原因引起的随机事件外部的原因引起的随机事件要求要求要求要求CPUCPU暂暂暂暂时停止正在执行的程序,而转向执行一时停止正在执行的程序,而转向执行一时停止正在执行的程序,而转向执行一时停止正在执行的程序,而转向执行一个用于处理该随机事件的程序,处理完个用于处理该随机事件的程序,处理完个用于处理该随机事件的程序,处理完个用于处理该随机事件的程序,处理完后又返回被中止的程序断点处继续执行,后又返回被中止的程序断点处继续执行,后又返回被中止的程序断点处继续执行,后又返回被中止的程序断点处继续执行,这一过程就称为这一过程就称为这一过程就称为这一过程就称为中断中

54、断中断中断。uu向向向向CPUCPU发出中断请求的来源,或引起中发出中断请求的来源,或引起中发出中断请求的来源,或引起中发出中断请求的来源,或引起中断的原因称为断的原因称为断的原因称为断的原因称为中断源中断源中断源中断源。中断源可分为两。中断源可分为两。中断源可分为两。中断源可分为两大类:大类:大类:大类:一类来自单片机内部,称之为一类来自单片机内部,称之为一类来自单片机内部,称之为一类来自单片机内部,称之为内部中断源内部中断源内部中断源内部中断源;一类来自单片机外部,称之为一类来自单片机外部,称之为一类来自单片机外部,称之为一类来自单片机外部,称之为外部中断源外部中断源外部中断源外部中断源。

55、uu中断源要求服务的请求称为中断源要求服务的请求称为中断源要求服务的请求称为中断源要求服务的请求称为中断请求中断请求中断请求中断请求。中断的功能中断的功能uu中断系统中断系统中断系统中断系统是指能实现中断功能的硬件和软件。是指能实现中断功能的硬件和软件。是指能实现中断功能的硬件和软件。是指能实现中断功能的硬件和软件。uu中断系统的功能一般包括以下几个方面。中断系统的功能一般包括以下几个方面。中断系统的功能一般包括以下几个方面。中断系统的功能一般包括以下几个方面。进行中断优先级排队进行中断优先级排队进行中断优先级排队进行中断优先级排队实现中断嵌套实现中断嵌套实现中断嵌套实现中断嵌套自动响应中断自

56、动响应中断自动响应中断自动响应中断实现中断返回实现中断返回实现中断返回实现中断返回uu中断的特点。中断的特点。中断的特点。中断的特点。可以提高可以提高可以提高可以提高CPUCPU的工作效率的工作效率的工作效率的工作效率实现实时处理实现实时处理实现实时处理实现实时处理处理故障处理故障处理故障处理故障ort-zc/ scnzf lknzg 0838mlj 5sbj light-ks jnxrt topbrightness hd8go hd88go oemgc 189288 hzp580 yjoem oemdg xcdnpx skfjk oemdg zhongtezc yanjigz zg-nsk

57、 skf- nsk-zt fag-zt zhongtezc ntn-zt 189286 xcdnpx dgxcdn dgxcpx xcwxpx xunchi-px oemfy 0759mz lczx188 189287 nizifn mynzf mynzf mynzg mynzg mynzg mljsgf mljnzf 0838mlj进行中断优先级排队进行中断优先级排队uu通常,单片机中有多个中断源,设计人员能按轻重缓急通常,单片机中有多个中断源,设计人员能按轻重缓急通常,单片机中有多个中断源,设计人员能按轻重缓急通常,单片机中有多个中断源,设计人员能按轻重缓急给每个中断源的中断请求赋予一定的

58、中断优先级。给每个中断源的中断请求赋予一定的中断优先级。给每个中断源的中断请求赋予一定的中断优先级。给每个中断源的中断请求赋予一定的中断优先级。uu当两个或两个以上的中断源同时请求中断时,当两个或两个以上的中断源同时请求中断时,当两个或两个以上的中断源同时请求中断时,当两个或两个以上的中断源同时请求中断时,CPUCPU可通可通可通可通过中断优先级排队电路首先响应中断优先级高的中断请过中断优先级排队电路首先响应中断优先级高的中断请过中断优先级排队电路首先响应中断优先级高的中断请过中断优先级排队电路首先响应中断优先级高的中断请求,等到处理完优先级高的中断请求后,再来响应优先求,等到处理完优先级高的

59、中断请求后,再来响应优先求,等到处理完优先级高的中断请求后,再来响应优先求,等到处理完优先级高的中断请求后,再来响应优先级低的中断请求。级低的中断请求。级低的中断请求。级低的中断请求。ort-zc/ scnzf lknzg 0838mlj 5sbj light-ks jnxrt topbrightness hd8go hd88go oemgc 189288 hzp580 yjoem oemdg xcdnpx skfjk oemdg zhongtezc yanjigz zg-nsk skf- nsk-zt fag-zt zhongtezc ntn-zt 189286 xcdnpx dgxcdn

60、 dgxcpx xcwxpx xunchi-px oemfy 0759mz lczx188 189287 nizifn mynzf mynzf mynzg mynzg mynzg mljsgf mljnzf 0838mlj实现中断嵌套实现中断嵌套uuCPUCPU在响应某一中断源中断请求而进行中断处理时,若在响应某一中断源中断请求而进行中断处理时,若在响应某一中断源中断请求而进行中断处理时,若在响应某一中断源中断请求而进行中断处理时,若有中断优先级更高的中断源发出中断请求,有中断优先级更高的中断源发出中断请求,有中断优先级更高的中断源发出中断请求,有中断优先级更高的中断源发出中断请求,CPUCP

61、U会暂停会暂停会暂停会暂停正在执行的中断服务程序,转向执行中断优先级更高的正在执行的中断服务程序,转向执行中断优先级更高的正在执行的中断服务程序,转向执行中断优先级更高的正在执行的中断服务程序,转向执行中断优先级更高的中断源的中断服务程序,等处理完这个高优先级的中断中断源的中断服务程序,等处理完这个高优先级的中断中断源的中断服务程序,等处理完这个高优先级的中断中断源的中断服务程序,等处理完这个高优先级的中断请求后,再返回来继续执行被暂停的中断服务程序。这请求后,再返回来继续执行被暂停的中断服务程序。这请求后,再返回来继续执行被暂停的中断服务程序。这请求后,再返回来继续执行被暂停的中断服务程序。

62、这个过程称为中断嵌套。个过程称为中断嵌套。个过程称为中断嵌套。个过程称为中断嵌套。ort-zc/ scnzf lknzg 0838mlj 5sbj light-ks jnxrt topbrightness hd8go hd88go oemgc 189288 hzp580 yjoem oemdg xcdnpx skfjk oemdg zhongtezc yanjigz zg-nsk skf- nsk-zt fag-zt zhongtezc ntn-zt 189286 xcdnpx dgxcdn dgxcpx xcwxpx xunchi-px oemfy 0759mz lczx188 18928

63、7 nizifn mynzf mynzf mynzg mynzg mynzg mljsgf mljnzf 0838mlj自动响应中断自动响应中断uu中断源向中断源向中断源向中断源向CPUCPU发出的中断请求是随机的。发出的中断请求是随机的。发出的中断请求是随机的。发出的中断请求是随机的。uuCPUCPU总是在每条指令的最后状态对中断请求信号进行检总是在每条指令的最后状态对中断请求信号进行检总是在每条指令的最后状态对中断请求信号进行检总是在每条指令的最后状态对中断请求信号进行检测。测。测。测。uu当某一中断源发出中断请求时,当某一中断源发出中断请求时,当某一中断源发出中断请求时,当某一中断源发出

64、中断请求时,CPUCPU能根据相关条件能根据相关条件能根据相关条件能根据相关条件( (如如如如中断优先级、是否允许中断中断优先级、是否允许中断中断优先级、是否允许中断中断优先级、是否允许中断) )进行判断,决定是否响应这进行判断,决定是否响应这进行判断,决定是否响应这进行判断,决定是否响应这个中断请求。个中断请求。个中断请求。个中断请求。uu若允许响应这个中断请求,若允许响应这个中断请求,若允许响应这个中断请求,若允许响应这个中断请求,CPUCPU在执行完相关指令后,在执行完相关指令后,在执行完相关指令后,在执行完相关指令后,会自动完成断点地址压入堆栈、中断矢量地址送入程序会自动完成断点地址压

65、入堆栈、中断矢量地址送入程序会自动完成断点地址压入堆栈、中断矢量地址送入程序会自动完成断点地址压入堆栈、中断矢量地址送入程序计数器计数器计数器计数器PCPC、撤除本次中断请求标志,转入执行相应中断、撤除本次中断请求标志,转入执行相应中断、撤除本次中断请求标志,转入执行相应中断、撤除本次中断请求标志,转入执行相应中断服务程序。服务程序。服务程序。服务程序。实现中断返回实现中断返回uuCPUCPU响应某一中断源响应某一中断源响应某一中断源响应某一中断源中断请求,转入执行中断请求,转入执行中断请求,转入执行中断请求,转入执行相应中断服务程序,相应中断服务程序,相应中断服务程序,相应中断服务程序,在执

66、行中断服务程序在执行中断服务程序在执行中断服务程序在执行中断服务程序最后的中断返回指令最后的中断返回指令最后的中断返回指令最后的中断返回指令时,会自动弹出堆栈时,会自动弹出堆栈时,会自动弹出堆栈时,会自动弹出堆栈区中保存的断点地址,区中保存的断点地址,区中保存的断点地址,区中保存的断点地址,返回到中断前的原程返回到中断前的原程返回到中断前的原程返回到中断前的原程序中。序中。序中。序中。 中断方式矩阵键盘中断方式矩阵键盘u采用中断扫描工作方式采用中断扫描工作方式采用中断扫描工作方式采用中断扫描工作方式u中断方式矩阵式键盘电路中断方式矩阵式键盘电路中断方式矩阵式键盘电路中断方式矩阵式键盘电路u中断

67、方式矩阵式键盘程序中断方式矩阵式键盘程序中断方式矩阵式键盘程序中断方式矩阵式键盘程序中断方式矩阵键盘电路中断方式矩阵键盘电路中断方式矩阵键盘程序中断方式矩阵键盘程序u采用中断扫描工作方式,工作过程如下:采用中断扫描工作方式,工作过程如下:采用中断扫描工作方式,工作过程如下:采用中断扫描工作方式,工作过程如下:有按键按下时,产生中断请求,进入键盘扫描程序,有按键按下时,产生中断请求,进入键盘扫描程序,有按键按下时,产生中断请求,进入键盘扫描程序,有按键按下时,产生中断请求,进入键盘扫描程序,并识别键码、显示,然后返回。并识别键码、显示,然后返回。并识别键码、显示,然后返回。并识别键码、显示,然后

68、返回。无键按下时,不执行键盘扫描程序。无键按下时,不执行键盘扫描程序。无键按下时,不执行键盘扫描程序。无键按下时,不执行键盘扫描程序。u中断扫描工作方式键盘程序中断扫描工作方式键盘程序中断扫描工作方式键盘程序中断扫描工作方式键盘程序中断系统结构中断系统结构 uu80518051单片机的中断系统主要由与中断有关的单片机的中断系统主要由与中断有关的单片机的中断系统主要由与中断有关的单片机的中断系统主要由与中断有关的4 4个特殊功能个特殊功能个特殊功能个特殊功能寄存器和硬件查询电路等组成。寄存器和硬件查询电路等组成。寄存器和硬件查询电路等组成。寄存器和硬件查询电路等组成。uu定时器控制寄存器定时器控

69、制寄存器定时器控制寄存器定时器控制寄存器TCONTCON 主要用于保存中断信息。主要用于保存中断信息。主要用于保存中断信息。主要用于保存中断信息。uu串行口控制寄存器串行口控制寄存器串行口控制寄存器串行口控制寄存器SCONSCON 主要用于保存中断信息。主要用于保存中断信息。主要用于保存中断信息。主要用于保存中断信息。uu中断允许寄存器中断允许寄存器中断允许寄存器中断允许寄存器IEIE 主要用于控制中断的开放和关闭。主要用于控制中断的开放和关闭。主要用于控制中断的开放和关闭。主要用于控制中断的开放和关闭。uu中断优先级寄存器中断优先级寄存器中断优先级寄存器中断优先级寄存器IPIP主要用于设定优

70、先级别。主要用于设定优先级别。主要用于设定优先级别。主要用于设定优先级别。uu硬件查询电路硬件查询电路硬件查询电路硬件查询电路主要用于判定主要用于判定主要用于判定主要用于判定5 5个中断源的自然优先级个中断源的自然优先级个中断源的自然优先级个中断源的自然优先级别。别。别。别。uu 80518051单片机的中断源有五个,可分为三类。单片机的中断源有五个,可分为三类。单片机的中断源有五个,可分为三类。单片机的中断源有五个,可分为三类。外部中断外部中断外部中断外部中断定时中断定时中断定时中断定时中断串行口中断串行口中断串行口中断串行口中断ort-zc/ scnzf lknzg 0838mlj 5sb

71、j light-ks jnxrt topbrightness hd8go hd88go oemgc 189288 hzp580 yjoem oemdg xcdnpx skfjk oemdg zhongtezc yanjigz zg-nsk skf- nsk-zt fag-zt zhongtezc ntn-zt 189286 xcdnpx dgxcdn dgxcpx xcwxpx xunchi-px oemfy 0759mz lczx188 189287 nizifn mynzf mynzf mynzg mynzg mynzg mljsgf mljnzf 0838mlj中断系统结构中断系统结构

72、外部中断外部中断uu外部中断是由外部中断是由外部中断是由外部中断是由外部原因外部原因外部原因外部原因( (如打印机、键盘、控制开关、外如打印机、键盘、控制开关、外如打印机、键盘、控制开关、外如打印机、键盘、控制开关、外部故障部故障部故障部故障) )引起的,可以通过两个固定引脚来输入到单片机引起的,可以通过两个固定引脚来输入到单片机引起的,可以通过两个固定引脚来输入到单片机引起的,可以通过两个固定引脚来输入到单片机内的信号,即外部中断内的信号,即外部中断内的信号,即外部中断内的信号,即外部中断0(INT0)0(INT0)和外部中断和外部中断和外部中断和外部中断1(INT1)1(INT1)。INT

73、0INT0外部中断外部中断外部中断外部中断0 0中断请求信号输入端,中断请求信号输入端,中断请求信号输入端,中断请求信号输入端,P3.2P3.2的第二功能的第二功能的第二功能的第二功能。 由定时器控制寄存器由定时器控制寄存器由定时器控制寄存器由定时器控制寄存器TCONTCON中的中的中的中的IT0IT0位决定中断请求信号是低电位决定中断请求信号是低电位决定中断请求信号是低电位决定中断请求信号是低电平有效还是下降沿有效。平有效还是下降沿有效。平有效还是下降沿有效。平有效还是下降沿有效。一旦输入信号有效一旦输入信号有效一旦输入信号有效一旦输入信号有效,即向,即向,即向,即向CPUCPU申请中申请中

74、申请中申请中断,并且断,并且断,并且断,并且硬件自动使硬件自动使硬件自动使硬件自动使IE0IE0置置置置1 1。INT1INT1外部中断外部中断外部中断外部中断1 1中断请求信号输入端,中断请求信号输入端,中断请求信号输入端,中断请求信号输入端,P3.3P3.3的第二功能的第二功能的第二功能的第二功能。 由定时器控制寄存器由定时器控制寄存器由定时器控制寄存器由定时器控制寄存器TCONTCON中的中的中的中的IT1IT1位决定采用电平触发方式还位决定采用电平触发方式还位决定采用电平触发方式还位决定采用电平触发方式还是边沿触发方式。是边沿触发方式。是边沿触发方式。是边沿触发方式。一旦输入信号有效一

75、旦输入信号有效一旦输入信号有效一旦输入信号有效,即向,即向,即向,即向CPUCPU申请中断,并申请中断,并申请中断,并申请中断,并且且且且硬件自动使硬件自动使硬件自动使硬件自动使IE1IE1置置置置1 1。ort-zc/ scnzf lknzg 0838mlj 5sbj light-ks jnxrt topbrightness hd8go hd88go oemgc 189288 hzp580 yjoem oemdg xcdnpx skfjk oemdg zhongtezc yanjigz zg-nsk skf- nsk-zt fag-zt zhongtezc ntn-zt 189286 xc

76、dnpx dgxcdn dgxcpx xcwxpx xunchi-px oemfy 0759mz lczx188 189287 nizifn mynzf mynzf mynzg mynzg mynzg mljsgf mljnzf 0838mlj定时中断定时中断uu定时中断定时中断定时中断定时中断是由是由是由是由内部定时内部定时内部定时内部定时( (或计数或计数或计数或计数) )溢出或溢出或溢出或溢出或外部定时外部定时外部定时外部定时( (或计数或计数或计数或计数) )溢出引起的溢出引起的溢出引起的溢出引起的,即定时器,即定时器,即定时器,即定时器0(T0) 0(T0) 中断和定时器中断和定时器

77、中断和定时器中断和定时器1(T1) 1(T1) 中断。中断。中断。中断。内部定时:内部定时:内部定时:内部定时:当定时器对单片机内部定时脉冲进行计数而发生计数当定时器对单片机内部定时脉冲进行计数而发生计数当定时器对单片机内部定时脉冲进行计数而发生计数当定时器对单片机内部定时脉冲进行计数而发生计数溢出时,即表明定时时间到,由硬件自动使溢出时,即表明定时时间到,由硬件自动使溢出时,即表明定时时间到,由硬件自动使溢出时,即表明定时时间到,由硬件自动使TF0(TF1)TF0(TF1)置置置置1 1,并申,并申,并申,并申请中断。请中断。请中断。请中断。外部定时:外部定时:外部定时:外部定时:当定时器对

78、单片机外部计数脉冲进行计数而发生计数当定时器对单片机外部计数脉冲进行计数而发生计数当定时器对单片机外部计数脉冲进行计数而发生计数当定时器对单片机外部计数脉冲进行计数而发生计数溢出时,即表明计数次数到,由硬件自动使溢出时,即表明计数次数到,由硬件自动使溢出时,即表明计数次数到,由硬件自动使溢出时,即表明计数次数到,由硬件自动使TF0(TF1)TF0(TF1)置置置置1 1,并申,并申,并申,并申请中断。外部计数脉冲是通过两个固定引脚来输入到单片机内的。请中断。外部计数脉冲是通过两个固定引脚来输入到单片机内的。请中断。外部计数脉冲是通过两个固定引脚来输入到单片机内的。请中断。外部计数脉冲是通过两个

79、固定引脚来输入到单片机内的。uuT0T0外部计数输入端外部计数输入端外部计数输入端外部计数输入端P3.4P3.4的第二功能。的第二功能。的第二功能。的第二功能。uuT1T1外部计数输入端外部计数输入端外部计数输入端外部计数输入端P3.5P3.5的第二功能。的第二功能。的第二功能。的第二功能。串行口中断串行口中断uu串行口中断是为接收或发送串行数据而设置的。串行口中断是为接收或发送串行数据而设置的。串行口中断是为接收或发送串行数据而设置的。串行口中断是为接收或发送串行数据而设置的。 串行中断请求是在单片机芯片内部发生的串行中断请求是在单片机芯片内部发生的串行中断请求是在单片机芯片内部发生的串行中

80、断请求是在单片机芯片内部发生的。uuRXDRXD串行口输入端,串行口输入端,串行口输入端,串行口输入端,P3.0P3.0的第二功能。的第二功能。的第二功能。的第二功能。 当接收完一帧数据时,硬件自动使当接收完一帧数据时,硬件自动使当接收完一帧数据时,硬件自动使当接收完一帧数据时,硬件自动使RIRI置置置置1 1,并申请中断。,并申请中断。,并申请中断。,并申请中断。uuTXDTXD串行口输出端,串行口输出端,串行口输出端,串行口输出端,P3.1P3.1的第二功能。的第二功能。的第二功能。的第二功能。 当发送完一帧数据时,硬件自动使当发送完一帧数据时,硬件自动使当发送完一帧数据时,硬件自动使当发

81、送完一帧数据时,硬件自动使TITI置置置置1 1,并申请中断。,并申请中断。,并申请中断。,并申请中断。定时器控制寄存器定时器控制寄存器TCONuuTCONTCON的作用的作用的作用的作用是控制定时器的启动与停止,并保存是控制定时器的启动与停止,并保存是控制定时器的启动与停止,并保存是控制定时器的启动与停止,并保存T0T0、T1T1的溢出中断标志和外部中断的中断标志。的溢出中断标志和外部中断的中断标志。的溢出中断标志和外部中断的中断标志。的溢出中断标志和外部中断的中断标志。uuTCONTCON的格式:的格式:的格式:的格式: TCON 8FH 8EH 8DH 8CH 8BH 8AH 89H 8

82、8HTCON 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H (88H)(88H)uu功能说明:功能说明:功能说明:功能说明:TF1(TCON.7)TF1(TCON.7):定时器:定时器:定时器:定时器1 1溢出标志位。溢出标志位。溢出标志位。溢出标志位。 TR1(TCON.6)TR1(TCON.6):定时器:定时器:定时器:定时器1 1启停控制位。启停控制位。启停控制位。启停控制位。TF0(TCON.5)TF0(TCON.5):定时器:定时器:定时器:定时器0 0溢出标志位。溢出标志位。溢出标志位。溢出标志位。TR0(TCON.4)TR0(TCON.4):定时器:定时器:定时

83、器:定时器0 0启、停控制位。启、停控制位。启、停控制位。启、停控制位。IE1(TCON.3)IE1(TCON.3): 外部中断外部中断外部中断外部中断1 1请求标志位。请求标志位。请求标志位。请求标志位。IEl=1IEl=1表示外部中断表示外部中断表示外部中断表示外部中断1 1向向向向CPUCPU申请中断。申请中断。申请中断。申请中断。当当当当CPUCPU响应外部中断响应外部中断响应外部中断响应外部中断1 1的中断请求时,由硬件自的中断请求时,由硬件自的中断请求时,由硬件自的中断请求时,由硬件自动使动使动使动使IE1IE1清清清清0(0(边沿触发方式边沿触发方式边沿触发方式边沿触发方式) )

84、。 TF1TF1TR1TR1TF0TF0TR0TR0IE1IE1IT1IT1IE0IE0IT0IT0定时器控制寄存器定时器控制寄存器TCONIT1(TCON.2)IT1(TCON.2):外部中断:外部中断:外部中断:外部中断1 1触发方式选择位。触发方式选择位。触发方式选择位。触发方式选择位。l l当当当当ITl=0ITl=0时,外部中断时,外部中断时,外部中断时,外部中断1 1为为为为电平触发方式电平触发方式电平触发方式电平触发方式。n n若采到若采到若采到若采到低电平低电平低电平低电平,则认为,则认为,则认为,则认为有中断申请有中断申请有中断申请有中断申请,硬件自动使,硬件自动使,硬件自动

85、使,硬件自动使IElIEl置置置置1 1;n n若为高电平,认为无中断申请或中断申请已撤除,硬件自动使若为高电平,认为无中断申请或中断申请已撤除,硬件自动使若为高电平,认为无中断申请或中断申请已撤除,硬件自动使若为高电平,认为无中断申请或中断申请已撤除,硬件自动使IElIEl清清清清0 0。 注意:注意:注意:注意:CPUCPU响应中断后硬件响应中断后硬件响应中断后硬件响应中断后硬件不能自动使不能自动使不能自动使不能自动使IElIEl清清清清0 0,也不能由软件使,也不能由软件使,也不能由软件使,也不能由软件使IElIEl清清清清0 0,所以在中断返回前,所以在中断返回前,所以在中断返回前,所

86、以在中断返回前必须撤消必须撤消必须撤消必须撤消INT1INT1引脚上的低电平引脚上的低电平引脚上的低电平引脚上的低电平,否则,否则,否则,否则将再次响应中断造成出错。将再次响应中断造成出错。将再次响应中断造成出错。将再次响应中断造成出错。l l当当当当ITl=1ITl=1时,外部中断时,外部中断时,外部中断时,外部中断1 1为为为为边沿触发方式边沿触发方式边沿触发方式边沿触发方式。n n若在连续两个机器周期采样到若在连续两个机器周期采样到若在连续两个机器周期采样到若在连续两个机器周期采样到先高电平后低电平先高电平后低电平先高电平后低电平先高电平后低电平,则认为,则认为,则认为,则认为有中断有中

87、断有中断有中断申请申请申请申请,硬件自动使,硬件自动使,硬件自动使,硬件自动使IElIEl置置置置1 1,此标志一直保持到,此标志一直保持到,此标志一直保持到,此标志一直保持到CPUCPU响应中断时,响应中断时,响应中断时,响应中断时,才由硬件自动清才由硬件自动清才由硬件自动清才由硬件自动清0 0。 注意:注意:注意:注意:为保证为保证为保证为保证CPUCPU在两个机器周期内检测到先高后低的负跳变,在两个机器周期内检测到先高后低的负跳变,在两个机器周期内检测到先高后低的负跳变,在两个机器周期内检测到先高后低的负跳变,输入高低电平的持续时间输入高低电平的持续时间输入高低电平的持续时间输入高低电平

88、的持续时间至少要保持至少要保持至少要保持至少要保持1212个时钟周期个时钟周期个时钟周期个时钟周期。定时器控制寄存器定时器控制寄存器TCONIE0(TCON.1)IE0(TCON.1):外部中断:外部中断:外部中断:外部中断0 0请求标志位。其功能同请求标志位。其功能同请求标志位。其功能同请求标志位。其功能同IE1IE1。IT0(TCON.0)IT0(TCON.0):外部中断:外部中断:外部中断:外部中断0 0触发方式选择位。其功能同触发方式选择位。其功能同触发方式选择位。其功能同触发方式选择位。其功能同IT1IT1。 中断允许寄存器中断允许寄存器IEuu中断允许寄存器中断允许寄存器中断允许寄

89、存器中断允许寄存器IEIE的作用是控制的作用是控制的作用是控制的作用是控制CPUCPU对中断的开放或屏蔽对中断的开放或屏蔽对中断的开放或屏蔽对中断的开放或屏蔽以及每个中断源是否允许中断。以及每个中断源是否允许中断。以及每个中断源是否允许中断。以及每个中断源是否允许中断。uuIEIE的格式:的格式:的格式:的格式: IE AFH ACH ABH AAH A9H A8HIE AFH ACH ABH AAH A9H A8H (A8H) (A8H)EAEAESESET1ET1EX1EX1ET0ET0EX0EX0ort-zc/ scnzf lknzg 0838mlj 5sbj light-ks jnxr

90、t topbrightness hd8go hd88go oemgc 189288 hzp580 yjoem oemdg xcdnpx skfjk oemdg zhongtezc yanjigz zg-nsk skf- nsk-zt fag-zt zhongtezc ntn-zt 189286 xcdnpx dgxcdn dgxcpx xcwxpx xunchi-px oemfy 0759mz lczx188 189287 nizifn mynzf mynzf mynzg mynzg mynzg mljsgf mljnzf 0838mlj中断允许寄存器中断允许寄存器IEuu功能说明:功能说明

91、:功能说明:功能说明:EA(IE.7)EA(IE.7):CPUCPU中断总允许位。中断总允许位。中断总允许位。中断总允许位。n nEA=1EA=1,CPUCPU开放中断。每个中断源是被允许还是被禁止,分别开放中断。每个中断源是被允许还是被禁止,分别开放中断。每个中断源是被允许还是被禁止,分别开放中断。每个中断源是被允许还是被禁止,分别由各中断源的中断允许位确定;由各中断源的中断允许位确定;由各中断源的中断允许位确定;由各中断源的中断允许位确定;n nEA=0EA=0,CPUCPU屏蔽所有的中断要求,称为关中断。屏蔽所有的中断要求,称为关中断。屏蔽所有的中断要求,称为关中断。屏蔽所有的中断要求,

92、称为关中断。ES(IE.4)ES(IE.4):串行口中断允许位。:串行口中断允许位。:串行口中断允许位。:串行口中断允许位。 ES=1 ES=1,允许串行口中断;,允许串行口中断;,允许串行口中断;,允许串行口中断;ES=0ES=0,禁止串行口中断。,禁止串行口中断。,禁止串行口中断。,禁止串行口中断。ET1(IE.3)ET1(IE.3):定时器:定时器:定时器:定时器1 1中断允许位。中断允许位。中断允许位。中断允许位。 ET1=1ET1=1,允许定时器,允许定时器,允许定时器,允许定时器1 1中断;中断;中断;中断;ETl=0ETl=0,禁止定时器,禁止定时器,禁止定时器,禁止定时器1 1

93、中断。中断。中断。中断。EX1(IE.2)EX1(IE.2):外部中断:外部中断:外部中断:外部中断1 1中断允许位。中断允许位。中断允许位。中断允许位。 EX1=1EX1=1,允许外部中断,允许外部中断,允许外部中断,允许外部中断1 1中断;中断;中断;中断;EX1=0EX1=0,禁止外部中断,禁止外部中断,禁止外部中断,禁止外部中断1 1中断。中断。中断。中断。ET0(IE.1)ET0(IE.1):定时器:定时器:定时器:定时器0 0中断允许位。中断允许位。中断允许位。中断允许位。 ET0=1ET0=1,允许定时器,允许定时器,允许定时器,允许定时器0 0中断;中断;中断;中断;ET0=0

94、ET0=0,禁止定时器,禁止定时器,禁止定时器,禁止定时器0 0中断。中断。中断。中断。EX0(IE.0)EX0(IE.0):外部中断:外部中断:外部中断:外部中断0 0中断允许位。中断允许位。中断允许位。中断允许位。 EX0=1EX0=1,允许外部中断,允许外部中断,允许外部中断,允许外部中断0 0中断;中断;中断;中断;EX0=0EX0=0,禁止外部中断,禁止外部中断,禁止外部中断,禁止外部中断0 0中断。中断。中断。中断。 ort-zc/ scnzf lknzg 0838mlj 5sbj light-ks jnxrt topbrightness hd8go hd88go oemgc 1

95、89288 hzp580 yjoem oemdg xcdnpx skfjk oemdg zhongtezc yanjigz zg-nsk skf- nsk-zt fag-zt zhongtezc ntn-zt 189286 xcdnpx dgxcdn dgxcpx xcwxpx xunchi-px oemfy 0759mz lczx188 189287 nizifn mynzf mynzf mynzg mynzg mynzg mljsgf mljnzf 0838mlj中断优先级寄存器中断优先级寄存器IPu中断优先级寄存器中断优先级寄存器中断优先级寄存器中断优先级寄存器IPIP的作用是设定各中断

96、源的优的作用是设定各中断源的优的作用是设定各中断源的优的作用是设定各中断源的优先级别。先级别。先级别。先级别。uIPIP的格式:的格式:的格式:的格式: IP BCH BBH BAH B9H B8HIP BCH BBH BAH B9H B8H (B8H) (B8H)PSPSPT1PT1PX1PX1PT0PT0PX0PX0ort-zc/ scnzf lknzg 0838mlj 5sbj light-ks jnxrt topbrightness hd8go hd88go oemgc 189288 hzp580 yjoem oemdg xcdnpx skfjk oemdg zhongtezc ya

97、njigz zg-nsk skf- nsk-zt fag-zt zhongtezc ntn-zt 189286 xcdnpx dgxcdn dgxcpx xcwxpx xunchi-px oemfy 0759mz lczx188 189287 nizifn mynzf mynzf mynzg mynzg mynzg mljsgf mljnzf 0838mlj中断优先级寄存器中断优先级寄存器IPuu功能说明:功能说明:功能说明:功能说明:PS(IP.4)PS(IP.4):串行口中断优先级控制位。:串行口中断优先级控制位。:串行口中断优先级控制位。:串行口中断优先级控制位。 PS=1PS=1,串行

98、口为高优先级中断;,串行口为高优先级中断;,串行口为高优先级中断;,串行口为高优先级中断;PS=0PS=0,串行口为低优先级中断。,串行口为低优先级中断。,串行口为低优先级中断。,串行口为低优先级中断。PT1(IP.3)PT1(IP.3):定时器:定时器:定时器:定时器1 1中断优先级控制位。中断优先级控制位。中断优先级控制位。中断优先级控制位。 PT1=1PT1=1,定时器,定时器,定时器,定时器1 1为高优先级中断;为高优先级中断;为高优先级中断;为高优先级中断;PTl=0PTl=0,定时器,定时器,定时器,定时器1 1为低优先级为低优先级为低优先级为低优先级中断。中断。中断。中断。PX1

99、(IP.2)PX1(IP.2):外部中断:外部中断:外部中断:外部中断1 1中断优先级控制位。中断优先级控制位。中断优先级控制位。中断优先级控制位。 PX1=1PX1=1,外部中断,外部中断,外部中断,外部中断1 1为高优先级中断;为高优先级中断;为高优先级中断;为高优先级中断;PXl=0PXl=0,外部中断,外部中断,外部中断,外部中断1 1为低优为低优为低优为低优先级中断。先级中断。先级中断。先级中断。PT0(IP.1)PT0(IP.1):定时器:定时器:定时器:定时器0 0中断优先级控制位。中断优先级控制位。中断优先级控制位。中断优先级控制位。 PT0=1PT0=1,定时器,定时器,定时

100、器,定时器T0T0为高优先级中断;为高优先级中断;为高优先级中断;为高优先级中断;PT0=0PT0=0,定时器,定时器,定时器,定时器0 0为低优先为低优先为低优先为低优先级中断。级中断。级中断。级中断。PX0(IP.0)PX0(IP.0):外部中断:外部中断:外部中断:外部中断0 0中断优先级控制位。中断优先级控制位。中断优先级控制位。中断优先级控制位。 PX0=1PX0=1,外部中断,外部中断,外部中断,外部中断0 0为高优先级中断;为高优先级中断;为高优先级中断;为高优先级中断;PX0=0PX0=0,外部中断,外部中断,外部中断,外部中断0 0为低优为低优为低优为低优先级中断。先级中断。

101、先级中断。先级中断。中断处理过程中断处理过程 u中断响应中断响应中断响应中断响应 u中断处理中断处理中断处理中断处理 u中断返回中断返回中断返回中断返回 中断响应中断响应uCPUCPU的中断响应条件的中断响应条件的中断响应条件的中断响应条件 CPU CPU响应中断必须首先响应中断必须首先响应中断必须首先响应中断必须首先满足以下三个基本条件满足以下三个基本条件满足以下三个基本条件满足以下三个基本条件。有中断源发出中断请求。有中断源发出中断请求。有中断源发出中断请求。有中断源发出中断请求。中断总允许位中断总允许位中断总允许位中断总允许位EA=1EA=1。请求中断的中断源的中断允许位为请求中断的中断

102、源的中断允许位为请求中断的中断源的中断允许位为请求中断的中断源的中断允许位为1 1。u在满足以上条件的基础上,在满足以上条件的基础上,在满足以上条件的基础上,在满足以上条件的基础上,若有下列任何一种情若有下列任何一种情若有下列任何一种情若有下列任何一种情况存在,中断响应都会受到阻断况存在,中断响应都会受到阻断况存在,中断响应都会受到阻断况存在,中断响应都会受到阻断。CPUCPU正在执行一个同级或高优先级的中断服务程序。正在执行一个同级或高优先级的中断服务程序。正在执行一个同级或高优先级的中断服务程序。正在执行一个同级或高优先级的中断服务程序。正在执行的指令尚未执行完。正在执行的指令尚未执行完。

103、正在执行的指令尚未执行完。正在执行的指令尚未执行完。正在执行中断返回指令正在执行中断返回指令正在执行中断返回指令正在执行中断返回指令 RETIRETI或者对专用寄存器或者对专用寄存器或者对专用寄存器或者对专用寄存器IEIE、IPIP进行读进行读进行读进行读/ /写的指令。写的指令。写的指令。写的指令。CPUCPU在执行完上述指令之后,要再在执行完上述指令之后,要再在执行完上述指令之后,要再在执行完上述指令之后,要再执行一条指令,才能响应中断请求。执行一条指令,才能响应中断请求。执行一条指令,才能响应中断请求。执行一条指令,才能响应中断请求。中断响应中断响应uu中断优先级的判定中断优先级的判定中

104、断优先级的判定中断优先级的判定中断源的优先级别分为高级和低级。中断源的优先级别分为高级和低级。中断源的优先级别分为高级和低级。中断源的优先级别分为高级和低级。 几个同一优先级别的中断源同时向几个同一优先级别的中断源同时向几个同一优先级别的中断源同时向几个同一优先级别的中断源同时向CPUCPU请求中断,首先响应自然请求中断,首先响应自然请求中断,首先响应自然请求中断,首先响应自然优先级较高的中断源的中断请求。优先级较高的中断源的中断请求。优先级较高的中断源的中断请求。优先级较高的中断源的中断请求。中断可实现两级中断嵌套。高优先级中断源可中断正在执行的低中断可实现两级中断嵌套。高优先级中断源可中断

105、正在执行的低中断可实现两级中断嵌套。高优先级中断源可中断正在执行的低中断可实现两级中断嵌套。高优先级中断源可中断正在执行的低优先级中断服务程序。优先级中断服务程序。优先级中断服务程序。优先级中断服务程序。同级或低优先级的中断不能中断正在执行的中断服务程序。同级或低优先级的中断不能中断正在执行的中断服务程序。同级或低优先级的中断不能中断正在执行的中断服务程序。同级或低优先级的中断不能中断正在执行的中断服务程序。中断响应中断响应uu中断响应过程中断响应过程中断响应过程中断响应过程首先,将相应的优先级状态触发器置首先,将相应的优先级状态触发器置首先,将相应的优先级状态触发器置首先,将相应的优先级状态

106、触发器置1 1,以屏蔽同级别中断源的,以屏蔽同级别中断源的,以屏蔽同级别中断源的,以屏蔽同级别中断源的中断请求;中断请求;中断请求;中断请求;其次,硬件自动生成长调用指令其次,硬件自动生成长调用指令其次,硬件自动生成长调用指令其次,硬件自动生成长调用指令(LCALL)(LCALL),把断点地址压入堆,把断点地址压入堆,把断点地址压入堆,把断点地址压入堆栈保护栈保护栈保护栈保护( (但不保护状态寄存器但不保护状态寄存器但不保护状态寄存器但不保护状态寄存器PSWPSW及其他寄存器内容及其他寄存器内容及其他寄存器内容及其他寄存器内容) );然后将中断源对应的中断入口地址装入程序计数器然后将中断源对应

107、的中断入口地址装入程序计数器然后将中断源对应的中断入口地址装入程序计数器然后将中断源对应的中断入口地址装入程序计数器PCPC中,使程中,使程中,使程中,使程序转向该中断入口地址,并执行中断服务程序。序转向该中断入口地址,并执行中断服务程序。序转向该中断入口地址,并执行中断服务程序。序转向该中断入口地址,并执行中断服务程序。中中中中 断断断断 源源源源中断入口地址中断入口地址中断入口地址中断入口地址外部中断外部中断外部中断外部中断0 00003H0003H定时器定时器定时器定时器T0T0中断中断中断中断000BH000BH外部中断外部中断外部中断外部中断1 10013H0013H定时器定时器定时

108、器定时器T1T1中断中断中断中断001BH001BH串行口中断串行口中断串行口中断串行口中断0023H0023H中断处理中断处理 uu中断处理就是执行中断服务程序,从中断入口地址开始执中断处理就是执行中断服务程序,从中断入口地址开始执中断处理就是执行中断服务程序,从中断入口地址开始执中断处理就是执行中断服务程序,从中断入口地址开始执行,直到返回指令行,直到返回指令行,直到返回指令行,直到返回指令(RETI)(RETI)为止。此过程一般包括三部分内为止。此过程一般包括三部分内为止。此过程一般包括三部分内为止。此过程一般包括三部分内容:容:容:容:一是保护现场;一是保护现场;一是保护现场;一是保护

109、现场;二是处理中断源的请求;二是处理中断源的请求;二是处理中断源的请求;二是处理中断源的请求;三是恢复现场。三是恢复现场。三是恢复现场。三是恢复现场。uu主程序和中断服务程序都会用到累加器主程序和中断服务程序都会用到累加器主程序和中断服务程序都会用到累加器主程序和中断服务程序都会用到累加器A A、状态寄存器、状态寄存器、状态寄存器、状态寄存器PSWPSW及其他一些寄存器。在执行中断服务程序时,及其他一些寄存器。在执行中断服务程序时,及其他一些寄存器。在执行中断服务程序时,及其他一些寄存器。在执行中断服务程序时,CPUCPU若用到上述寄存器,就会破坏原先存在这些寄存器中的若用到上述寄存器,就会破

110、坏原先存在这些寄存器中的若用到上述寄存器,就会破坏原先存在这些寄存器中的若用到上述寄存器,就会破坏原先存在这些寄存器中的内容,中断返回,将会造成主程序的混乱内容,中断返回,将会造成主程序的混乱内容,中断返回,将会造成主程序的混乱内容,中断返回,将会造成主程序的混乱。因此,在进。因此,在进。因此,在进。因此,在进入中断服务程序后,一般要先保护现场,然后再执行中入中断服务程序后,一般要先保护现场,然后再执行中入中断服务程序后,一般要先保护现场,然后再执行中入中断服务程序后,一般要先保护现场,然后再执行中断处理程序,在返回主程序以前,再恢复现场。断处理程序,在返回主程序以前,再恢复现场。断处理程序,

111、在返回主程序以前,再恢复现场。断处理程序,在返回主程序以前,再恢复现场。ort-zc/ scnzf lknzg 0838mlj 5sbj light-ks jnxrt topbrightness hd8go hd88go oemgc 189288 hzp580 yjoem oemdg xcdnpx skfjk oemdg zhongtezc yanjigz zg-nsk skf- nsk-zt fag-zt zhongtezc ntn-zt 189286 xcdnpx dgxcdn dgxcpx xcwxpx xunchi-px oemfy 0759mz lczx188 189287 niz

112、ifn mynzf mynzf mynzg mynzg mynzg mljsgf mljnzf 0838mlj中断处理中断处理 u在编写中断服务程序时要注意以下几个方面。在编写中断服务程序时要注意以下几个方面。在编写中断服务程序时要注意以下几个方面。在编写中断服务程序时要注意以下几个方面。在中断入口地址区存放在中断入口地址区存放在中断入口地址区存放在中断入口地址区存放一条无条件转移指令一条无条件转移指令一条无条件转移指令一条无条件转移指令,转向中,转向中,转向中,转向中断服务程序的起始地址。断服务程序的起始地址。断服务程序的起始地址。断服务程序的起始地址。 若要求若要求若要求若要求禁止更高优先

113、级中断源的中断请求禁止更高优先级中断源的中断请求禁止更高优先级中断源的中断请求禁止更高优先级中断源的中断请求,应先,应先,应先,应先用软用软用软用软件关闭件关闭件关闭件关闭CPUCPU中断或屏蔽更高级中断源的中断中断或屏蔽更高级中断源的中断中断或屏蔽更高级中断源的中断中断或屏蔽更高级中断源的中断,在中断,在中断,在中断,在中断返回前再开放被关闭或被屏蔽的中断。返回前再开放被关闭或被屏蔽的中断。返回前再开放被关闭或被屏蔽的中断。返回前再开放被关闭或被屏蔽的中断。在保护现场和恢复现场时,在保护现场和恢复现场时,在保护现场和恢复现场时,在保护现场和恢复现场时,为了不使现场数据受到破为了不使现场数据受

114、到破为了不使现场数据受到破为了不使现场数据受到破坏而造成混乱坏而造成混乱坏而造成混乱坏而造成混乱,在保护现场之前要关中断,在保护现,在保护现场之前要关中断,在保护现,在保护现场之前要关中断,在保护现,在保护现场之前要关中断,在保护现场之后再开中断;在恢复现场之前关中断,在恢复现场之后再开中断;在恢复现场之前关中断,在恢复现场之后再开中断;在恢复现场之前关中断,在恢复现场之后再开中断;在恢复现场之前关中断,在恢复现场之后再开中断。场之后再开中断。场之后再开中断。场之后再开中断。ort-zc/ scnzf lknzg 0838mlj 5sbj light-ks jnxrt topbrightnes

115、s hd8go hd88go oemgc 189288 hzp580 yjoem oemdg xcdnpx skfjk oemdg zhongtezc yanjigz zg-nsk skf- nsk-zt fag-zt zhongtezc ntn-zt 189286 xcdnpx dgxcdn dgxcpx xcwxpx xunchi-px oemfy 0759mz lczx188 189287 nizifn mynzf mynzf mynzg mynzg mynzg mljsgf mljnzf 0838mlj中断处理中断处理 u在编写中断服务程序时要注意以下几个方面。在编写中断服务程序时要

116、注意以下几个方面。在编写中断服务程序时要注意以下几个方面。在编写中断服务程序时要注意以下几个方面。在中断入口地址区存放在中断入口地址区存放在中断入口地址区存放在中断入口地址区存放一条无条件转移指令一条无条件转移指令一条无条件转移指令一条无条件转移指令,转向中,转向中,转向中,转向中断服务程序的起始地址。断服务程序的起始地址。断服务程序的起始地址。断服务程序的起始地址。 若要求若要求若要求若要求禁止更高优先级中断源的中断请求禁止更高优先级中断源的中断请求禁止更高优先级中断源的中断请求禁止更高优先级中断源的中断请求,应先,应先,应先,应先用软用软用软用软件关闭件关闭件关闭件关闭CPUCPU中断或屏

117、蔽更高级中断源的中断中断或屏蔽更高级中断源的中断中断或屏蔽更高级中断源的中断中断或屏蔽更高级中断源的中断,在中断,在中断,在中断,在中断返回前再开放被关闭或被屏蔽的中断。返回前再开放被关闭或被屏蔽的中断。返回前再开放被关闭或被屏蔽的中断。返回前再开放被关闭或被屏蔽的中断。在保护现场和恢复现场时,在保护现场和恢复现场时,在保护现场和恢复现场时,在保护现场和恢复现场时,为了不使现场数据受到破为了不使现场数据受到破为了不使现场数据受到破为了不使现场数据受到破坏而造成混乱坏而造成混乱坏而造成混乱坏而造成混乱,在保护现场之前要关中断,在保护现,在保护现场之前要关中断,在保护现,在保护现场之前要关中断,在

118、保护现,在保护现场之前要关中断,在保护现场之后再开中断;在恢复现场之前关中断,在恢复现场之后再开中断;在恢复现场之前关中断,在恢复现场之后再开中断;在恢复现场之前关中断,在恢复现场之后再开中断;在恢复现场之前关中断,在恢复现场之后再开中断。场之后再开中断。场之后再开中断。场之后再开中断。中断返回中断返回 uu中断返回是指中断服务完成后,中断返回是指中断服务完成后,中断返回是指中断服务完成后,中断返回是指中断服务完成后,CPUCPU返回到原程序的断返回到原程序的断返回到原程序的断返回到原程序的断点点点点( (即原来断开的位置即原来断开的位置即原来断开的位置即原来断开的位置) ),继续执行原来的程

119、序。,继续执行原来的程序。,继续执行原来的程序。,继续执行原来的程序。uu中断返回通过执行中断返回指令中断返回通过执行中断返回指令中断返回通过执行中断返回指令中断返回通过执行中断返回指令RETIRETI来实现,该指令的来实现,该指令的来实现,该指令的来实现,该指令的功能功能功能功能是首先将相应的优先级状态触发器置是首先将相应的优先级状态触发器置是首先将相应的优先级状态触发器置是首先将相应的优先级状态触发器置0 0,以开放同,以开放同,以开放同,以开放同级别中断源的中断请求;其次,从堆栈区把断点地址取级别中断源的中断请求;其次,从堆栈区把断点地址取级别中断源的中断请求;其次,从堆栈区把断点地址取

120、级别中断源的中断请求;其次,从堆栈区把断点地址取出,送回到程序计数器出,送回到程序计数器出,送回到程序计数器出,送回到程序计数器PCPC中。因此,不能用中。因此,不能用中。因此,不能用中。因此,不能用RETRET指令指令指令指令代替代替代替代替RETIRETI指令。指令。指令。指令。 中断请求的撤除中断请求的撤除uuCPUCPU响应某中断请求后,在中断返回前,应该撤消该中断响应某中断请求后,在中断返回前,应该撤消该中断响应某中断请求后,在中断返回前,应该撤消该中断响应某中断请求后,在中断返回前,应该撤消该中断请求,否则会引起另一次中断。不同中断源中断请求的撤请求,否则会引起另一次中断。不同中断

121、源中断请求的撤请求,否则会引起另一次中断。不同中断源中断请求的撤请求,否则会引起另一次中断。不同中断源中断请求的撤除方法是不一样的。除方法是不一样的。除方法是不一样的。除方法是不一样的。定时器溢出中断请求的撤除定时器溢出中断请求的撤除定时器溢出中断请求的撤除定时器溢出中断请求的撤除 CPUCPU在响应中断后,硬件会自动清除中断请求标志在响应中断后,硬件会自动清除中断请求标志在响应中断后,硬件会自动清除中断请求标志在响应中断后,硬件会自动清除中断请求标志TF0TF0或或或或TFlTFl。串行口中断的撤除串行口中断的撤除串行口中断的撤除串行口中断的撤除 在在在在CPUCPU响应中断后,硬件不能清除

122、中断请求标志响应中断后,硬件不能清除中断请求标志响应中断后,硬件不能清除中断请求标志响应中断后,硬件不能清除中断请求标志TITI和和和和RIRI,而要由软,而要由软,而要由软,而要由软件来清除相应的标志。件来清除相应的标志。件来清除相应的标志。件来清除相应的标志。外部中断的撤除外部中断的撤除uu外部中断为边沿触发方式时,外部中断为边沿触发方式时,外部中断为边沿触发方式时,外部中断为边沿触发方式时,CPUCPU响应中断后,硬件会自响应中断后,硬件会自响应中断后,硬件会自响应中断后,硬件会自动清除中断请求标志动清除中断请求标志动清除中断请求标志动清除中断请求标志IE0IE0或或或或IElIEl。u

123、u外部中断为电平触发方式时,外部中断为电平触发方式时,外部中断为电平触发方式时,外部中断为电平触发方式时,CPUCPU响应中断后,硬件会自响应中断后,硬件会自响应中断后,硬件会自响应中断后,硬件会自动清除中断请求标志动清除中断请求标志动清除中断请求标志动清除中断请求标志IE0IE0或或或或IElIEl,但由于加到,但由于加到,但由于加到,但由于加到INT0INT0或或或或INT1INT1引引引引脚的外部中断请求信号并未撤除,中断请求标志脚的外部中断请求信号并未撤除,中断请求标志脚的外部中断请求信号并未撤除,中断请求标志脚的外部中断请求信号并未撤除,中断请求标志IE0IE0或或或或IElIEl会

124、会会会再次被置再次被置再次被置再次被置1 1,所以在,所以在,所以在,所以在CPUCPU响应中断后应立即撤除响应中断后应立即撤除响应中断后应立即撤除响应中断后应立即撤除INT0INT0或或或或INT1INT1引脚上的低电平。一般采用加一个引脚上的低电平。一般采用加一个引脚上的低电平。一般采用加一个引脚上的低电平。一般采用加一个D D触发器和几条指令触发器和几条指令触发器和几条指令触发器和几条指令的方法来解决这个问题。的方法来解决这个问题。的方法来解决这个问题。的方法来解决这个问题。 ort-zc/ scnzf lknzg 0838mlj 5sbj light-ks jnxrt topbrigh

125、tness hd8go hd88go oemgc 189288 hzp580 yjoem oemdg xcdnpx skfjk oemdg zhongtezc yanjigz zg-nsk skf- nsk-zt fag-zt zhongtezc ntn-zt 189286 xcdnpx dgxcdn dgxcpx xcwxpx xunchi-px oemfy 0759mz lczx188 189287 nizifn mynzf mynzf mynzg mynzg mynzg mljsgf mljnzf 0838mlj外部中断的撤除电路外部中断的撤除电路uu由下图可知,外部中断请求信号直接加

126、到由下图可知,外部中断请求信号直接加到由下图可知,外部中断请求信号直接加到由下图可知,外部中断请求信号直接加到D D触发器的触发器的触发器的触发器的CPCP端,端,端,端,当外部中断请求的低电平脉冲信号出现在当外部中断请求的低电平脉冲信号出现在当外部中断请求的低电平脉冲信号出现在当外部中断请求的低电平脉冲信号出现在CPCP端时,端时,端时,端时,D D触发触发触发触发器的器的器的器的QQ端置端置端置端置0 0,INT0INT0或或或或INT1INT1引脚为低电平,发出中断请求。引脚为低电平,发出中断请求。引脚为低电平,发出中断请求。引脚为低电平,发出中断请求。在中断服务程序中开始的三条指令可先

127、在在中断服务程序中开始的三条指令可先在在中断服务程序中开始的三条指令可先在在中断服务程序中开始的三条指令可先在P1.0P1.0输出一个宽输出一个宽输出一个宽输出一个宽度为度为度为度为2 2个机器周期的负脉冲,使个机器周期的负脉冲,使个机器周期的负脉冲,使个机器周期的负脉冲,使D D触发器的触发器的触发器的触发器的QQ端置端置端置端置1 1,然后由,然后由,然后由,然后由软件来清除中断请求标志软件来清除中断请求标志软件来清除中断请求标志软件来清除中断请求标志IE0IE0或或或或IElIEl。 中断系统的初始化步骤中断系统的初始化步骤uu开放开放开放开放CPUCPU中断和有关中断源的中断允许,设置

128、中断允许中断和有关中断源的中断允许,设置中断允许中断和有关中断源的中断允许,设置中断允许中断和有关中断源的中断允许,设置中断允许寄存器寄存器寄存器寄存器IEIE中相应的位。中相应的位。中相应的位。中相应的位。uu根据需要确定各中断源的优先级别,设置中断优先级寄存根据需要确定各中断源的优先级别,设置中断优先级寄存根据需要确定各中断源的优先级别,设置中断优先级寄存根据需要确定各中断源的优先级别,设置中断优先级寄存器器器器IPIP中相应的位。中相应的位。中相应的位。中相应的位。uu根据需要确定外部中断的触发方式,设置定时器控制寄存根据需要确定外部中断的触发方式,设置定时器控制寄存根据需要确定外部中断

129、的触发方式,设置定时器控制寄存根据需要确定外部中断的触发方式,设置定时器控制寄存器器器器TCONTCON中相应的位。中相应的位。中相应的位。中相应的位。 中断系统中断系统C语言编程语言编程uu定义中断服务函数定义中断服务函数定义中断服务函数定义中断服务函数函数类型函数类型函数类型函数类型 函数名函数名函数名函数名 (形式参数)(形式参数)(形式参数)(形式参数)interrupt n using minterrupt n using mn: n: 中断编号中断编号中断编号中断编号 m: m: 寄存器组号寄存器组号寄存器组号寄存器组号 例:例:例:例:void intersvr0 (void)

130、interrupt 0 using 1void intersvr0 (void) interrupt 0 using 1中断编号中断编号中断编号中断编号中断源中断源中断源中断源0 0外部中断外部中断外部中断外部中断0 01 1定时定时定时定时/ /计数计数计数计数0 0溢出中断溢出中断溢出中断溢出中断2 2外部中断外部中断外部中断外部中断1 13 3定时定时定时定时/ /计数计数计数计数1 1溢出中断溢出中断溢出中断溢出中断4 4串行口中断串行口中断串行口中断串行口中断ort-zc/ scnzf lknzg 0838mlj 5sbj light-ks jnxrt topbrightness h

131、d8go hd88go oemgc 189288 hzp580 yjoem oemdg xcdnpx skfjk oemdg zhongtezc yanjigz zg-nsk skf- nsk-zt fag-zt zhongtezc ntn-zt 189286 xcdnpx dgxcdn dgxcpx xcwxpx xunchi-px oemfy 0759mz lczx188 189287 nizifn mynzf mynzf mynzg mynzg mynzg mljsgf mljnzf 0838mlj实例:实例:2个外部中断个外部中断1.1.void main (void)void ma

132、in (void)2.2. 3.3. P1=0xff; P1=0xff;4.4. EA=1; EA=1;5.5. IT0=1;EX0=1; IT0=1;EX0=1;6.6. IT1=1;EX1=1; IT1=1;EX1=1;7.7. while(1) while(1)8.8. 9.9. delays(); delays();10.10. 11.11. 1.1.void intersvr0 (void) interrupt 0 using 1void intersvr0 (void) interrupt 0 using 12.2. 3.3. LED0= !LED0; LED0= !LED0;4.

133、4. 5.5.void intersvr1 (void) interrupt 2 using 1void intersvr1 (void) interrupt 2 using 16.6. 7.7. LED1= !LED1; LED1= !LED1;8.8. n n试一试用汇编完成试一试用汇编完成试一试用汇编完成试一试用汇编完成ort-zc/ scnzf lknzg 0838mlj 5sbj light-ks jnxrt topbrightness hd8go hd88go oemgc 189288 hzp580 yjoem oemdg xcdnpx skfjk oemdg zhongtezc yanjigz zg-nsk skf- nsk-zt fag-zt zhongtezc ntn-zt 189286 xcdnpx dgxcdn dgxcpx xcwxpx xunchi-px oemfy 0759mz lczx188 189287 nizifn mynzf mynzf mynzg mynzg mynzg mljsgf mljnzf 0838mlj技能拓展技能拓展外部中断源的扩展外部中断源的扩展 n利用外部中断利用外部中断0扩展扩展4个外部中断个外部中断

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号