




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 项目项目5 5 按键识别的设计按键识别的设计 知识目标:1 1了解单片机的定义、类型和应用领域;了解单片机的定义、类型和应用领域;2 2掌握掌握AT89S51AT89S51单片机的封装形式、实物外形及各个引脚的功能;单片机的封装形式、实物外形及各个引脚的功能;3. 3. 掌握掌握AT89S51AT89S51单片机最小系统的组成及相关电路的工作原理;单片机最小系统的组成及相关电路的工作原理;4. 4. 掌握掌握AT89S51AT89S51单片机基本接口电路的组成及电路功能。单片机基本接口电路的组成及电路功能。 能力目标
2、:1. 1. 认识认识AT89S51AT89S51单片机、晶体振荡器、单片机、晶体振荡器、RS-232RS-232串口端及电阻、电容串口端及电阻、电容 等元器件。等元器件。2. 2. 会搭建单片机最小系统应用电路;会搭建单片机最小系统应用电路;3. 3. 了解单片机应用系统的开发过程。了解单片机应用系统的开发过程。 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务1 1 单键控制单键控制LEDLED的设计的设计 在单片机应用系统中,键盘主要用于向计算机输入数据、传送命令等,是人工干预计算机的主要手段。键盘要通过接口与单片机相连,分为编码键盘和非编码键盘两类。
3、 键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘。而靠软件编程来识别的称为非编码键盘,在单片机组成的各种系统中,使用最广泛的是非编码键盘。当然,也有用到编码键盘的。 非编码键盘有分为:独立键盘和行列式(又称为矩阵式)键盘。 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务1 1 单键控制单键控制LEDLED的设计的设计 用单键(即独立键盘中的按键)实现对LED进行控制,每按一次按键时,LED显示方式变化一次,用以表示按键控制的结果。1 1提出任务提出任务 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永
4、格 何乃味主编 任务任务1 1 单键控制单键控制LEDLED的设计的设计 (1)硬件电路设计 以AT89S51单片机作为控制电路,按键连接至单片机的P1.0引脚,另一端接地,P2口外接8个采用共阳极连接方式的发光二极管(LED)和8个限流电阻,硬件电路原理图所示。2 2任务分析任务分析XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0
5、/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89S51R8510R7510R6510R5510R4510R3510R2510R1510D1D2D3D4D5D6D7D8KX1CRYSTALC122pC222pR91kC310uF 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务1 1 单键控制单键
6、控制LEDLED的设计的设计 (2)独立式按键的软件设计 在单片机应用系统中主程序一般是循环结构,键盘程序作为子程序供主程序调用。单片机按键控制系统的主程序结构图所示。 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务1 1 单键控制单键控制LEDLED的设计的设计 上电初始化后便循环调用键盘程序、显示程序、功能处理程序等。在循环的过程中还可能因中断而执行中断服务程序。 另外,在键盘的软件设计中还要注意按键的去抖动问题。由于按键一般是由机械式触点构成的,在按键按下和断开的瞬间均有一个抖动过程,时间大约为5ms10ms,可能会造成单片机对按键的误识别。 单片机
7、单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务1 1 单键控制单键控制LEDLED的设计的设计物理按键抖动波形图物理按键抖动波形图 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务1 1 单键控制单键控制LEDLED的设计的设计 按键消抖一般有两种方法,即硬件消抖和软件消抖。硬件消抖方法硬件消抖方法 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务1 1 单键控制单键控制LEDLED的设计的设计在软件设计中,当单片机检测到有键按下时,可以先延时一段时间越过抖动过程再对按键识别。实际应用中,一
8、般希望按键一次按下单片机只处理一次,但由于单片机执行程序的速度很快,按键一次按下可能被单片机多次处理。为避免此问题,可在按键第一次按下时延时10ms之后再次检测按键是否按下,如果此时按键仍然按下,则确定有按键输入。这样便可以避免按键的重复处理。 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务1 1 单键控制单键控制LEDLED的设计的设计软件消抖流程图软件消抖流程图 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务1 1 单键控制单键控制LEDLED的设计的设计3 3源程序编写源程序编写 /* 文件名:xm5-1.c *
9、 / #include / 包含头文件 sbit key1=P10; / 按键定义 void delay10ms(void) / 延时10ms 子函数 unsigned char i,k; / 变量定义 for(i=20;i0;i-) / for语句循环体 for(k=250;k0;k-); 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务1 1 单键控制单键控制LEDLED的设计的设计3 3源程序编写源程序编写void main(void) / 主函数 char i=0 xfe; P2=i; /置P2.0引脚为低电平 while(1) if(key1= =
10、0) /判断按键key1是否按下 delay10ms(); if(key1=0) /去抖动 if(i&0 x80)=0) i=i1; else i=(i1)+1; P2=i; while(key1=0); 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务2 2 多路按键状态指示的设计多路按键状态指示的设计 用AT89S51单片机及LED数码管实现对键盘键值的实现。当按下键盘中不同按键时,LED数码管上显示不同的键值。1 1提出任务提出任务 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务2 2 多路按键状态指示的设
11、计多路按键状态指示的设计2 2任务分析任务分析 (1)硬件电路设计 本设计采用AT89S51单片机最小系统,P3口外接矩阵式键盘接口电路,P1口外接共阴型七段数码管,如图5.2.1所示。电路中共有16个按键,按44的矩阵式排列,键号依次为0F。单片机的P3.0P3.3为输出口,连接4条列线;P3.4P3.7为输入口,连接4条行线。 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务2 2 多路按键状态指示的设计多路按键状态指示的设计XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0
12、.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C5123456781RP1RESPACK-70123456789BCDEFAX1CRYSTALC2
13、22pC322pR11kC110uF键盘键值显示电路图键盘键值显示电路图 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务2 2 多路按键状态指示的设计多路按键状态指示的设计 (2)软件设计思路 矩阵式按键的软件设计与独立式按键不同的只是按键的识别方法不同。在矩阵式按键的扫描程序中,要对按键逐行逐列地扫描,得到按下键的行列信息,然后还要转换成键号,以便据此转到相应的键处理程序。 按键扫描子函数中,先对4条行线送高电平,当判断有按键按下之后,延时30ms之后再判断该按键是否按下。若仍然有按键按下,则能知道被按下按键所处的行编码。之后再在判断被按下按键所处列编码
14、,综合行、列编码得到按键位置,从而判断出键值。 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务2 2 多路按键状态指示的设计多路按键状态指示的设计程序流程图程序流程图 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务2 2 多路按键状态指示的设计多路按键状态指示的设计3 3源程序编写源程序编写/文件名xm5-2.c#include #define uchar unsigned char#define uint unsigned intuchar key;unsigned char code disp_code=0 x3f
15、,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71;unsigned char code key_code=0 xee,0 xed,0 xeb,0 xe7,0 xde,0 xdd,0 xdb,0 xd7, 0 xbe,0 xbd,0 xbb,0 xb7,0 x7e,0 x7d,0 x7b,0 x77 ; 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务2 2 多路按键状态指示的设计多路按键状态指示的设计3 3源程序编写源程序编写v
16、oid delayms(uint ms) uchar t; while(ms-) for(t = 0; t 120; t+); 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务2 2 多路按键状态指示的设计多路按键状态指示的设计3 3源程序编写源程序编写uchar keyscan() /键盘扫描程序 uchar scan1,scan2,keycode,j; P3=0 xf0; scan1=P3; if(scan1&0 xf0)!=0 xf0) /判键是否按下 delayms(30); /延时30ms scan1=P3; if(scan1&0
17、xf0)!=0 xf0) /二次判键是否按下 P3=0 x0f; scan2=P3; keycode=scan1|scan2; /组合成键编码 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务2 2 多路按键状态指示的设计多路按键状态指示的设计for(j=0;j=15;j+) if(keycode= key_codej) /查表得键值 key=j; return(key); else P3=0 xff; return (16); 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务2 2 多路按键状态指示的设计多路按键状态指示
18、的设计void keydown() /判断是否有键按下 P3=0 x0f; if(P3&0 x0f)!=0 x0f) keyscan(); P0=disp_codekey; /在数码管上显示键值 main() P0 = 0 xbf; /数码管显示- P3 = 0 xff; while(1) keydown(); 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务2 2 多路按键状态指示的设计多路按键状态指示的设计 思考:思考: 矩阵键盘中,如果有两个按键同时按下,能否识别? 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任
19、务任务2 2 多路按键状态指示的设计多路按键状态指示的设计 知识链接知识链接 一、矩阵式键盘 1结构和工作原理 当输入部分有多个按键时,若仍然采用独立键盘,必然会占用大量的I/O口,采用矩阵键盘是一种比较节省资源的方法。矩阵式键盘又称行列式键盘,往往用于按键数量较多的场合。矩阵式键盘的按键设置在行与列的交点上。 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务2 2 多路按键状态指示的设计多路按键状态指示的设计一般矩阵键盘的连接示意图一般矩阵键盘的连接示意图 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务2 2 多路按键
20、状态指示的设计多路按键状态指示的设计2 2任务分析任务分析 (1)硬件电路设计 本设计采用AT89S51单片机最小系统,P3口外接矩阵式键盘接口电路,P1口外接共阴型七段数码管,如图5.2.1所示。电路中共有16个按键,按44的矩阵式排列,键号依次为0F。单片机的P3.0P3.3为输出口,连接4条列线;P3.4P3.7为输入口,连接4条行线。 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务2 2 多路按键状态指示的设计多路按键状态指示的设计 2按键的识别 确定键盘上哪一个键被按下可以采用逐行扫描或逐列扫描的方法,称为行(列)扫描法。 (1)先将全部列线置为
21、低电平,然后通过行线接口读取行线电平,判断键盘中是否有按键被按下。 (2)判断闭合键的具体位置。在确认键盘中有按键被按下后,依次将列线置为低电平,再逐行检测各行的电平状态。若某行为低电平,则该行与置为低电平的列线相交处的按键即为闭合按键。 (3)综合上述两步的结果,即可确定出闭合键所在的行和列,从而识别出所按下的键。 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务2 2 多路按键状态指示的设计多路按键状态指示的设计 3矩阵式键盘的软件设计 矩阵式键盘的扫描常用编程扫描方式、定时扫描方式或中断扫描方式,无论采用哪种方式,都要编制相应的键盘扫描程序。在键盘扫描
22、程序中一般要完成以下几个功能: (1)判断键盘上有无按键按下; (2)去键的机械抖动影响; (3)求所按键的键号; (4)转向键处理程序。 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务2 2 多路按键状态指示的设计多路按键状态指示的设计 在编程扫描方式中,只有当单片机空闲时,才执行键盘扫描任务。一般是把键盘扫描程序编成子程序,在主程序循环执行时调用。在主程序执行任务太多或执行时间太长时,按键的反应速度会变慢。 在定时扫描方式中单片机可以定时对键盘进行扫描,方法是利用单片机内部定时器,每隔一定的时间就产生定时中断,CPU响应中断后对键盘进行扫描,并在有按键
23、按下时进行处理。 在中断扫描方式中,当键盘上有按键被按下时产生中断申请,单片机响应中断后,在中断服务程序中完成键扫描、识别键号并进行键功能处理。 以上几种键盘扫描方式只是转入键盘扫描程序的方式不同,而键盘扫描程序的设计方法是类似的。 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务2 2 多路按键状态指示的设计多路按键状态指示的设计二、函数的返回值 函数的值是指函数被调用之后,执行函数体中的程序段所取得的并返回给主调函数的值。对函数返回值有以下一些说明: 函数的值只能通过return语句返回主调函数。 return 语句的一般形式为: return 表达式;
24、 或者为: return (表达式); 该语句的功能是计算表达式的值,并返回给主调函数。在函数中允许有多个return语句,但每次调用只能有一个return 语句被执行,因此只能返回一个函数值。 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务2 2 多路按键状态指示的设计多路按键状态指示的设计函数值的类型和函数定义中函数的类型应保持一致。如果两者不一致,则以函数类型为准,自动进行类型转换。 如函数值为整型,在函数定义时可以省去类型说明。 不返回函数值的函数,可以明确定义为“空类型”,类型说明符为“void”。如: void s(int n) 一旦函数被定义
25、为空类型后,就不能在主调函数中使用被调函数的函数值了。为了使程序有良好的可读性并减少出错,凡不要求返回值的函数都应定义为空类型。 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务3 3 采用外中断控制的彩灯设计采用外中断控制的彩灯设计利用独立按键(采用外部中断方式)控制彩灯的运行。通过按动按键,使得彩灯在三种闪亮方式(左移、右移、自定义花样)之间切换。1 1提出任务提出任务 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务3 3 采用外中断控制的彩灯设计采用外中断控制的彩灯设计一般来说,按键处理方式有以下两种:第一种方法是
26、不断地查询按键,有按键按下时进行消抖处理,再判断是否真的有按键按下。这种方法在按键查询期间不能做任何其他操作。第二种方法是每隔一段时间,抽样检测一次,对键值进行判别处理。利用按键对单片机输出进行控制的基本方式在任务1和任务2中已介绍,分别实现了单键、多键对单片机输出的控制。但是,任务1和任务2中的对按键处理的方式还存在不够完善之处。为了解决这个问题,本任务中采用单片机的外部中断方式来实现对按键输入的处理。为了实现外部中断对单片机的输出的控制,需要将按键连接在外部中断所对应的引脚上。2.2.任务分析任务分析 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务3
27、3 采用外中断控制的彩灯设计采用外中断控制的彩灯设计XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/
28、A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89S51R8510R7510R6510R5510R4510R3510R2510R1510D1D2D3D4D5D6D7D8KX1CRYSTALC122pC222pR91kC310uF中断控制LED电路图 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务3 3 采用外中断控制的彩灯设计采用外中断控制的彩灯设计由于中断函数与主函数之间的运行相当于两个程序并行运行,而将一个任务分为两个部分处理的具体分解方法有多种,因此用中断函数控制彩灯的显示,具体实现方法和实现程序也是多种多样的。3 3
29、程序设计分析程序设计分析 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务3 3 采用外中断控制的彩灯设计采用外中断控制的彩灯设计(a a)主函数流程图)主函数流程图 b b)中断函数流程图)中断函数流程图 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务3 3 采用外中断控制的彩灯设计采用外中断控制的彩灯设计 /文件名xm5-3.c#include #define uchar unsigned charuchar light,a,b;void delay05s() /延时0.5s子函数uchar i,j,k;for(i=
30、5;i0;i-) for(j=200;j0;j-)for(k=250;k0;k-);4源程序编写 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务3 3 采用外中断控制的彩灯设计采用外中断控制的彩灯设计void delay10ms()uchar i,k;for(i=20;i0;i-) for(k=250;k0;k-); void left() /左移点亮LEDlight=light1;if(light= =0) light=0 x01;P2=light;4源程序编写 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务3 3
31、采用外中断控制的彩灯设计采用外中断控制的彩灯设计void assum() /用户自定义LED点亮方式uchar code dispcode8=0 xff,0 x7e,0 xbd,0 xdb,0 xe7,0 xdb,0 xbd,0 x7e;if(b= =7)b=0;else b+;P2=dispcodeb;4源程序编写 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务3 3 采用外中断控制的彩灯设计采用外中断控制的彩灯设计void main()IT0=1; /设置INT0为下降沿触发EX0=1; /局部开中断,即允许INT0中断EA=1; /全局开中断a=1;
32、light=0 x01;b=0;while(1)switch(a)case 1:left();break;case 2:right();break;case 3:assum();break;delay05s();4源程序编写 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务3 3 采用外中断控制的彩灯设计采用外中断控制的彩灯设计void int_0() interrupt 0 / 中断子函数delay10ms();if(INT0= =0)a+;if(a3)a=1;4源程序编写 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任
33、务3 3 采用外中断控制的彩灯设计采用外中断控制的彩灯设计 知识链接知识链接 1.中断有关概念 所谓中断就是利用硬件配合,根据某种需要断开正在执行的程序而转向另一专门程序,结束后再返回到原断开处继续执行被中止的程序,这个过程称为中断。 中断后转向执行的程序叫中断服务程序或中断处理程序。原程序被断开的位置(地址)叫作断点。 发出中断信号的设备称为中断源。中断源要求中断服务所发出的标志信号称为中断请示或中断申请。 中断源向CPU发出中断申请,CPU经过判断认为满足条件,则对中断源作出答复,这叫中断响应。中断响应后就去处理中断源的有关请求,即转去执行中断服务程序。 对于计算机控制系统而言,中断源是多
34、种多样的。不同的机器中断源也有所不同。一般情况,中断包括:外部设备如键盘、打印机等,还有内部定时器、故障源以及根据需要人为设置的中断源等。 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务3 3 采用外中断控制的彩灯设计采用外中断控制的彩灯设计2. 引入中断的主要优点(1)提高CPU工作效率CPU工作速度快,外设工作速度慢,形成CPU等待,效率降低。设置中断后,CPU不必花费大量时间等待和查询外设工作。(2)实现实时处理功能中断源根据外界信息变化可以随时向CPU发出中断请求,若条件满足,CPU会马上响应,对中断要求及时处理。若用查询方式往往不能及时处理。(3
35、)实现分时操作单片机应用系统通常需要控制多个外设同时工作。例如键盘、打印机、显示器、A/D转换器、D/A转换器等。这些设备工作有些是随机的,有些是定时的,对于一些定时工作的外设,可以利用定时器,到一定时间产生中断,在中断服务程序中控制这些外设荼。例如动态扫描显示,每隔一定时间,更换显示字位码和字段码。 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务3 3 采用外中断控制的彩灯设计采用外中断控制的彩灯设计3. AT89S51中断源AT89S51单片机共有5个中断源。它们分别是:2个外部中断,即。和)3 . 3(P1INT)2 . 3(0TPIN3个片内中断,
36、即定时器T0的溢出中断、定时器T1的溢出中断和串行口中断;这5个中断源,可以根据需要随时向CPU发出中断申请。当外部中断源超过两个,还可以通过一定的方法扩充。 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务3 3 采用外中断控制的彩灯设计采用外中断控制的彩灯设计(1)外部中断源外部中断是由外部信号引起的,请求有两种信号触发方式,即低电平触发和下降沿触发。外部中断请求的这两种信号方式,可通过设置寄存器TCON中的IT0和IT1位状态的值来设定。TCOND7D6D5D4D3D2D1D0位符号TF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8D
37、H8CH8BH8AH89H88H寄存器寄存器TCONTCON的内容及位地址的内容及位地址 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务3 3 采用外中断控制的彩灯设计采用外中断控制的彩灯设计其中各位的含义如下: IT0和IT1 :外部中断请求触发方式控制位 IE0和IE1 :外中断请求标志位。 TF0和TF1 :定时/计数器溢出中断请求标志位 TR0(TR1):定时/计数器的运行控制位 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务3 3 采用外中断控制的彩灯设计采用外中断控制的彩灯设计(2)定时器溢出中断源定时/计
38、数器中断由单片机内部定时器产生,属于内部中断。AT89S51内部有两个16位的定时器/计数器T0和T1,它们以计数的方法来实现定时或计数的。当它作为定时器使用时,其计数信号来自于CPU内部的机器周期脉冲,当它作为计数器使用时,其计数信号来自于CPU的T0(P3.4)、T1(P3.5)引脚。在启动定时/计数器后,每来一个机器周期或在对应的引脚上每检测到一个脉冲信号时,定时/计数器就加1一次,当计数器的值从全1变为全0时,就去置位一个溢出标志位,CPU查询到后就知道有定时/计数器的溢出中断的申请。(3)串行中断源串行口中断请求是在单片机芯片内部自动发生的,不需在芯片上设置引入端。串行口中断源分为串
39、行口发送中断和串行口接收中断两种。串行中断是为串行数据传送的需要而设置的。每当串行口发送完一组串行数据时,就会使串行口控制寄存器SCON中的串行发送中断标志位TX置1,每当串行口接收完一组串行数据时,就会使寄存器SCON中的串行接收中断标志位RX置1,作为串行口中断请求标志,产生一个中断请求。 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务3 3 采用外中断控制的彩灯设计采用外中断控制的彩灯设计SCOND7D6D5D4D3D2D1D0位符号SM0SM1SM2RENTB8RB8TIRI位地址9FH9EH9DH9CH9BH9AH99H98H寄存器寄存器SCON
40、SCON的内容及位地址的内容及位地址其中与中断请求标志有关的位如下:TI:串行口发送中断请求标志位RI:串行口接收中断请求标志位 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务3 3 采用外中断控制的彩灯设计采用外中断控制的彩灯设计4中断控制51系列单片机中断系统的硬件结构如下图所示。对中断信号进行锁存、屏蔽、优先级控制是通过设置一些特殊功能寄存器,如寄存器TCON、SCON、IE和IP来进行的。EX0EAPX001ET0PT001EX1PX101ET1PT101ESPS011RITISCONTCONIE0TF0IE1TF110101IT0IT1INT0I
41、NT1T0T1RXTXIEIP111111110硬件查询自然优先级自然优先级中断入口中断入口高级低级中断源中断源 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务3 3 采用外中断控制的彩灯设计采用外中断控制的彩灯设计IED7D6D5D4D3D2D1D0位符号EA-ESET1EX1ETOEX0位地址AFHAEHADHACHABHAAHA9HA8H寄存器寄存器IEIE的内容及位地址的内容及位地址 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务3 3 采用外中断控制的彩灯设计采用外中断控制的彩灯设计其中各位的含义如下:EA:
42、中断允许/禁止位,它是中断请求的总开关。0为禁止,1为允许。当EA=O时,将屏蔽所有中断请求。ES:允许禁止串行口中断,当ES位为0时,禁止串行口中断。当ES位为时,允许串行口中断。ETl:允许禁止定时器T1中断,当ETl位为0时,禁止定时计数器Tl中断,当ETl位为时,允许定时计数器Tl中断。EXl:允许/禁止 中断,当EXl位为0时,禁止 中断,当EXl位为0时,禁止 中断。ET0:允许禁止定时器T0中断,当ET0位为0时,禁止定时/计数器T0中断,当ET0位为时,允许定时/计数器T0中断EX0:允许/禁止 中断,当EX0位为0时,禁止 中断,当EX0位为时,允许 中断。 AT89S51单
43、片机复位后,将IE寄存器清零,单片机处于关中断状态。若要开放中断,必须使EA=l且响应中断允许位也为1。开中断既可使用置位指令,也可使用字节操作指令实现。INT1INT1INT1INT0INT0INT0 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务3 3 采用外中断控制的彩灯设计采用外中断控制的彩灯设计(2)中断优先级控制寄存器IP单片机的中断系统通常允许多个中断源,当几个中断源同时向CPU发出中断请求时,就存在CPU优先响应哪一个中断源请求的问题。AT89S51单片机只有两个中断优先级,即低优先级和高优先级,对于所有的中断源均可由软件设置为高优先级中断
44、或低优先级中断,当寄存器IP中相应位的值为0时表示该中断源为低优先级,为l时表示为高优先级。高优先级中断源可以中断一个正在执行的低优先级中断源的中断服务程序,即可实现两级中断嵌套,但同级或低优先级中断源不能中断正在执行的中断服务程序。IPD7D6D5D4D3D2D1D0位符号-PSPT1PX1PTOPX0位地址BFHBEHBDHBCHBBHBAHB9HB8H寄存器寄存器IPIP的内容及位地址的内容及位地址 单片机单片机C C语言应用技术与实践语言应用技术与实践 张永格 何乃味主编 任务任务3 3 采用外中断控制的彩灯设计采用外中断控制的彩灯设计各位含义如下:PS:串行口中断优先级控制位。若PS
45、=1,则串行口指定为高优先级,否则为低优先级。PTl:定时/计数器T1中断优先级控制位。若PTl=1,则定时/计数器T1指定为高优先级,否则为低优先级。PXl:外部中断1中断优先级控制位。若PXl=1,则外部中断1指定为高优先级,否则为低优先级。PT0:定时/计数器T0中断优先级控制位。若PT0=1,则定时/计数器T0指定为高优先级,否则为低优先级。PX0:外部中断0中断优先级控制位。若PX0=1,则外部中断0指定为高优先级,否则为低优先级。AT89S51单片机中,当几个同级的中断源提出中断请求,CPU同时收到几个同一优先级的中断请求时,哪一个的请求能够得到服务取决于单片机内部的硬件查询顺序,其硬件查询顺序便形成了中断的自然优先级,CPU将按照自然优先级的顺序确定该响应哪个中断请求,自然优先级是按照外部中断0、定时/计数器0、外部中断1、定时/计数器1、串行口的顺序依次来响应中断请求。 单片机单片机C C语言应用技术与实践语言应用技术与实践
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 华东交通大学《财经基础知识》2023-2024学年第二学期期末试卷
- 辽宁沈阳市郊联体2025届高中毕业班质量检测试题生物试题含解析
- 重庆机电职业技术大学《建筑与装饰工程计量与计价》2023-2024学年第一学期期末试卷
- 内蒙古化工职业学院《热能工程导论》2023-2024学年第二学期期末试卷
- 重庆市南川市2025届小升初考试数学试卷含解析
- 潜水装备在海洋污染治理的应用考核试卷
- 矿山环境保护法规执行与监督考核试卷
- 电子运动比赛装备市场需求分析预测考核试卷
- 日用化工设备技术创新与研发考核试卷
- 社交平台发展与社区经济模式考核试卷
- 2025年中国坡莫合金磁芯行业市场发展现状及投资战略咨询报告
- 教育培训公司的成本控制
- 四川成都历年中考作文题与审题指导(2005-2024)
- 北京市网球运动管理中心2024年下半年公开招聘工作人员笔试历年典型考题及考点剖析附带答案详解
- 2025-2030中国全自动洗鞋机行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 期货交易基础知识单选题100道及答案
- 高二生物-2025-2025学年高二年级下册期中生物试卷
- 第19课 清朝君主专制的强化-2024-2025学年七年级历史下册互动课堂教学设计宝典
- 2 含有两级的混合运算(教学设计)-2023-2024学年二年级下册数学人教版
- 天然气工程施工组织设计方案
- 电机与电气控制技术(第3版)(微课版)(AR版)授课计划
评论
0/150
提交评论