版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微机原理及应用微机原理及应用(第(第4、5、6章)章)电力学院电力学院 王克英王克英MCS-51单片机原理及应用单片机原理及应用 第第2章章 MCS-51单片机的结构和原理单片机的结构和原理 第第3章章 MCS-51的寻址方式和指令系统的寻址方式和指令系统 第第4章章 汇编语言程序设计汇编语言程序设计 第第5章章 MCS-51的中断系统的中断系统 第第6章章 MCS-51的定时器的定时器/计数器计数器 第第1章章 单片机概述单片机概述MCS-51单片机原理及应用单片机原理及应用 第第2章章 MCS-51单片机的结构和原理单片机的结构和原理 第第3章章 MCS-51的寻址方式和指令系统的寻址方式
2、和指令系统 第第4章章 汇编语言程序设计汇编语言程序设计 第第5章章 MCS-51的中断系统的中断系统 第第6章章 MCS-51的定时器的定时器/计数器计数器 第第1章章 单片机概述单片机概述第第4章内容:章内容:4.1 概述4.2 程序的设计步骤与方法4.3 源程序汇编及模拟运行 4.1 概述概述4.1.1 计算机常用的编程语言计算机常用的编程语言 程序设计语言:计算机能理解和执行的语程序设计语言:计算机能理解和执行的语言称计算机程序设计语言。言称计算机程序设计语言。 程序设计语言的分类:机器语言、汇编语程序设计语言的分类:机器语言、汇编语言、高级语言言、高级语言 4.1.1 计算机常用的编
3、程语言计算机常用的编程语言 (1)机器语言()机器语言(Machine Language) 用二进制代码用二进制代码0和和1表示指令和数据的最原始的程表示指令和数据的最原始的程序设计语言。序设计语言。(2)汇编语言)汇编语言(Assembly Language) 指令用助记符表示,地址、操作数可用标号、符指令用助记符表示,地址、操作数可用标号、符号地址及字符等形式来描述。号地址及字符等形式来描述。(3)高级语言)高级语言 (High-Level Language) 接近于人的自然语言,面向过程而独立于机器的接近于人的自然语言,面向过程而独立于机器的通用语言。通用语言。4.1.2 汇编语言源程序
4、的格式汇编语言源程序的格式汇编语言源程序是由汇编语句(指令)组成的。汇编语言源程序是由汇编语句(指令)组成的。汇编语言的语句最多由四部分(字段)组成:汇编语言的语句最多由四部分(字段)组成:【标号:】操作码【标号:】操作码【操作数】【;注释【操作数】【;注释】 START:MOVA,30H;A(30H) 标号之后用冒号标号之后用冒号“:”与操作码隔开与操作码隔开 操作码之后用空格操作码之后用空格“ ”与操作数隔开与操作数隔开 两操作数之间用逗号两操作数之间用逗号“,”隔开隔开 注释之前用分号注释之前用分号“;”与操作数隔开与操作数隔开4.1.2 汇编语言源程序的格式汇编语言源程序的格式关于标号
5、关于标号n标号标号-是指令的符号地址。是指令的符号地址。n标号的值是该指令代码第一个字节的地址标号的值是该指令代码第一个字节的地址n在程序的其它地方可以引用这个标号以代表在程序的其它地方可以引用这个标号以代表这个特定的地址。这个特定的地址。n不是每条指令都采用标号不是每条指令都采用标号4.1.2 汇编语言源程序的格式汇编语言源程序的格式标号的使用规定标号的使用规定(1)标号由英文字母开头,后跟)标号由英文字母开头,后跟18个字个字母或数字。最后必须以冒号母或数字。最后必须以冒号“:”结束。结束。(2)不能使用指令助记符、)不能使用指令助记符、CPU的寄存器的寄存器名以及伪指令等作为标号。名以及
6、伪指令等作为标号。(3)同一程序内,标号必须互不相同。)同一程序内,标号必须互不相同。(4)为便于阅读程序,最好使标号字符有)为便于阅读程序,最好使标号字符有一定含义。一定含义。 4.1.3 伪指令伪指令MCS-51单片机汇编语言,包含两类不同单片机汇编语言,包含两类不同性质的指令。性质的指令。(1)基本指令:即指令系统中的指令。它)基本指令:即指令系统中的指令。它们都是机器能够执行的指令,每一条指令们都是机器能够执行的指令,每一条指令都有对应的机器码。都有对应的机器码。(2)伪指令:汇编时用于控制汇编的指令。)伪指令:汇编时用于控制汇编的指令。它们都是机器不能执行的指令,无机器码。它们都是机
7、器不能执行的指令,无机器码。(1)、起始地址伪指令、起始地址伪指令ORG 格式:格式: ORG 16位地址或标号位地址或标号功能:功能: 用在一段源程序或数据块的前面,说明用在一段源程序或数据块的前面,说明紧随在后的程序段或数据块的起始地址。紧随在后的程序段或数据块的起始地址。例如:例如: ORG 2000H START: MOV A,#64H END(2)、汇编结束伪指令、汇编结束伪指令END 格式:格式: 标号:标号: END 表达式表达式功能:功能: 用在汇编语言源程序的最后,是用在汇编语言源程序的最后,是源程序的结束标志。在机器汇编时,当汇源程序的结束标志。在机器汇编时,当汇编程序检测
8、到该语句时,它就确认汇编语编程序检测到该语句时,它就确认汇编语言源程序已经结束,对言源程序已经结束,对END后面指令都不后面指令都不予汇编予汇编(3)、赋值伪指令、赋值伪指令EQU 格式:格式: 字符名称字符名称 EQU 表达式表达式功能:功能: 汇编程序自动把汇编程序自动把EQU右边的右边的“表达式表达式(8位或位或16位)位)”的值赋给左边的的值赋给左边的“字符名称字符名称”。“字符名称字符名称”必须先赋值后使用。必须先赋值后使用。EQU伪指令伪指令与存储单元无关。与存储单元无关。 在程序中,一旦用在程序中,一旦用EQU伪指令对某字符名称赋伪指令对某字符名称赋值之后,就不能再用值之后,就不
9、能再用EQU伪指令来改变其值,伪指令来改变其值,其值在整个程序中是固定的。这里其值在整个程序中是固定的。这里“字符名称字符名称”不同于标号,因此不加冒号。不同于标号,因此不加冒号。(4)、定义字节伪指令、定义字节伪指令 DB 格式:格式: 标号:标号: DB X1,X2,Xn功能:把右边的功能:把右边的Xi(i=1n)字节依次存)字节依次存放到以左边标号为起始地址的连续的存储放到以左边标号为起始地址的连续的存储单元中。其中单元中。其中Xi为为8位二进制数据(或十位二进制数据(或十进制、十六进制、表达式、进制、十六进制、表达式、ASCII码等多码等多种形式)。通常用于定义常数表种形式)。通常用于
10、定义常数表 .例:例: ORG 1200HTAB: DB 50H,10001100B,100,2*5,-4TAB1: DB D,2,#,ABC1200H50H8CH64H0AHFCH1205H44H32H23H41H42H120AH43H负数用补码存入负数用补码存入字符字符以以ASCII码存码存入入(5)、定义字伪指令、定义字伪指令DW 格式:格式: 标号:标号: DW X1,X2,Xn功能:功能: DW与与DB功能相似,区别在于功能相似,区别在于DB定定义的是字节,义的是字节,DW定义的是字(两个字定义的是字(两个字节),所以节),所以Xi是是16位的数据或标号,但该位的数据或标号,但该标号
11、必须事先赋值。标号必须事先赋值。汇编时一个字数据占用两个连续的存汇编时一个字数据占用两个连续的存储单元。储单元。 (6)、定义存储空间伪指令、定义存储空间伪指令DS 格式:格式:标号:标号: DS 表达式表达式功能:功能:指示汇编程序从指示汇编程序从DS伪指令的伪指令的“标号标号”开始,预留一定数量的存储单元,以备程开始,预留一定数量的存储单元,以备程序执行时使用。预留单元数量由序执行时使用。预留单元数量由DS语句语句中中“表达式表达式”的值决定,的值决定,“表达式表达式”可以可以是数值也可以是数学表达式是数值也可以是数学表达式 (7)定义位地址符号伪指令)定义位地址符号伪指令BIT 格式:字
12、符名称格式:字符名称 BIT 位地址位地址功能:把功能:把BIT右边的位地址赋给它左边的右边的位地址赋给它左边的“字字符名称符名称”例:例: ORG 1000HB1 BIT 01HB2 BIT P2.0MOV C,B1MOV B2,C END4.2.1 程序设计的一般步骤:程序设计的一般步骤:1分析问题:对设计任务进行调查研究,收集必分析问题:对设计任务进行调查研究,收集必要的现场数据。要的现场数据。 2确定算法:因实际问题往往不是单纯的算术、确定算法:因实际问题往往不是单纯的算术、逻辑运算所能描述的,把控制系统的计算任务逻辑运算所能描述的,把控制系统的计算任务或控制对象的物理过程演化为计算机
13、可以处理或控制对象的物理过程演化为计算机可以处理的形式,并提出具体的算法和步骤。的形式,并提出具体的算法和步骤。3绘制程序流程图:以图解形式表达程序的设计绘制程序流程图:以图解形式表达程序的设计思路,称为流程图(又称程序框图)。思路,称为流程图(又称程序框图)。4.2 程序的设计步骤与方法程序的设计步骤与方法4.2.1 程序设计的一般步骤:程序设计的一般步骤:4分配存储空间及工作单元:完成了程序的结构分配存储空间及工作单元:完成了程序的结构性设计后,就可以开始分配系统的资源(主要性设计后,就可以开始分配系统的资源(主要是内部是内部RAM的分配的分配 ),列一详细分配清单,供),列一详细分配清单
14、,供编程使用。编程使用。5编写源程序:根据流程图编写程序(用汇编语编写源程序:根据流程图编写程序(用汇编语言指令实现流程图中每个框的要求),这就是言指令实现流程图中每个框的要求),这就是源程序设计。源程序设计。 4.2 程序的设计步骤与方法程序的设计步骤与方法4.2.1 程序设计的一般步骤:程序设计的一般步骤:6上机调试:必须通过上机调试得到正确的结果,上机调试:必须通过上机调试得到正确的结果,才能认为是正确的程序。才能认为是正确的程序。判断程序质量的三个标准:判断程序质量的三个标准:1 1、程序的执行时间短、程序的执行时间短2 2、占用的内存单元数少、占用的内存单元数少3 3、程序的语句行数
15、少、程序的语句行数少4.2 程序的设计步骤与方法程序的设计步骤与方法特特点:是一点:是一种按种按指令书写顺序从头至尾逐指令书写顺序从头至尾逐条执行的程条执行的程序。序。例:拆字程序例:拆字程序设内部设内部RAM的的20H单元中存有两位单元中存有两位BCD码,请编程把它拆成两段,十位码,请编程把它拆成两段,十位BCD数存入数存入21H的低的低4位,个位位,个位BCD数存数存入入22H的低的低4位。位。21H,22H单元的高单元的高4位位置置0 ,要求程序从,要求程序从1000H单元开始。单元开始。 4.2.2 顺序程序(简单程序顺序程序(简单程序) ORG 1000HSTART:MOV R0,#
16、20H;源数据指针MOV R1,#22H;目的数据指针MOV A,R0;取源数据送AANL A,#0FH;分离出个位BCD数MOV R1,A;个位BCD数存22H单元MOV A,R0;重新取数ANL A,#0F0H;分离出十位BCD数SWAP A;十位BCD数换到低4位DEC R1;调整目的数据指针MOV R1,A ;十位BCD数存21H单元SJMP $END特特点点:在实际问题中,顺序程序是不多的。通常:在实际问题中,顺序程序是不多的。通常需要计算机对某种情况作出判断,根据判断结需要计算机对某种情况作出判断,根据判断结果作出相应的处理,而分支程序就充分体现了果作出相应的处理,而分支程序就充分
17、体现了计算机的这种分析判断能力。【条件转移指令计算机的这种分析判断能力。【条件转移指令】分支程序的基本结构:1.单重分支2.多重分支(多重嵌套 )3.散转结构(多路分支)4.2.3 分支程序分支程序分支程序的结构:1、单重分支 2、多重分支3、散转结构在程序设计中,有时要求对多个条件进行判断,根据判断结果可能有多个分支要进行处理,散转结构就用于多路分支。多重分支举例:【例44】:符号函数 X-存在片内RAM的30H单元Y-存在片内RAM的40H单元解:变量X以补码存放。先对符号进行判断。当X0,则令Y=0;当X0,若小于0,则令Y= -1(FFH);否则就令Y=1 。流程图流程图 ORG 20
18、00HSTART:MOV A,30H;取数(取数(A)X JZ DONE;若若X=0,则转,则转DONE JB ACC.7,LOOP;若若X0,则转,则转LOOP MOV A,#01H;若若X0,则则(A)1 SJMP DONELOOP:MOV A,#0FFH;若若X0 ,则则(A) -1DONE:MOV 40H,A;存;存Y值值 SJMP $ END查表查表: 根据变量根据变量x,在表格中找到,在表格中找到y,使,使y =f(x)。通过查表可以完成数据补偿、计算、转换通过查表可以完成数据补偿、计算、转换等功能,查表程序具有编程简单、执行速等功能,查表程序具有编程简单、执行速度快等特点。度快等
19、特点。 数据表格存放在程序存储器中,编程时可数据表格存放在程序存储器中,编程时可通过通过DB指令把表格存入指令把表格存入ROM。4.2.4 查表程序查表程序查表指令: 1、MOVC A,A+DPTR 2、MOVC A,A+PC 用DPTR作基地址,分三步:所查表格的首地址DPTR所查表的项数(数据在表中的位置)A执行 MOVC A,A+DPTR 读数,查表结果A【例4-6】将A中的一位BCD码。通过查表转换为相应的七段显示码,存入B中。方法1ORGMOVMOVCMOVSJMP2000HDPTR, #TABA, A+DPTRB , A$TAB:DB 40H,79H,24H,30H,19HDB 1
20、2H,02H,78H,00H,18HEND使用PC作基地址,分三步:将所查表的项数送A。执行MOVC A,A+PC之前,先执行ADD A,#data(偏移量)data偏离量(小于256)=表格首地址-(MOVC指令所在地址+1)。执行MOVC A,A+PC进行查表,结果A 方法2ORG ADDMOVCMOVSJMP2000HA, #04HA, A+PC(单字节)B, A (双字节)$ (双字节)TAB:DB 40H,79H,24H,30H,19HDB 12H,02H,78H,00H,18HEND顺序程序中:所有的指令仅被执行一次;顺序程序中:所有的指令仅被执行一次;分支程序中:有的指令被执行一
21、次,而有的可能分支程序中:有的指令被执行一次,而有的可能一次也未被执行。一次也未被执行。实际应用中有时需要反复执行某种操作,而每次实际应用中有时需要反复执行某种操作,而每次完成这些操作都是执行同样的程序,只是处理完成这些操作都是执行同样的程序,只是处理的数据不同,这时就可以采用循环程序结构的数据不同,这时就可以采用循环程序结构 循环程序的特点:循环程序的特点:使源程序大大缩短,同时也节省了内存空间,但不能节省执行时间。4.2.5 循环程序循环程序【例4-7】 负数取补程序:外部RAM地址为3000H的数据块中有100个补码,要求逐一检查,若为负数则取补后放回,正数则不变。 ORG 1000HS
22、TART: MOV DPTR,#3000H;置地址指针MOV R7,#64H;置计数初值LOOP1: MOVX A,DPTR;取数JNB ACC.7,LOOP2;若正数转LOOP2CPL AINC A;负数取补MOVX DPTR,A;负数取补后送回LOOP2: INC DPTR;修改地址指针DJNZ R7,LOOP1;100个数未完继续END循环程序的结构包括四个部分:(1)初始化部分:为循环做准备。(2)处理部分(循环体部分):实际数据处理部分,是重复执行的程序段部分,是循环程序的主体。(3)控制部分:控制循环的进行和结束。两个内容:1、修改循环参数为下一次循环做准备;2、判断是否满足结束条
23、件,若不满足则转去继续执行循环体部分,满足则退出循环。(4)结束部分:存放所得结果,恢复某些工作单元的初值。 【例【例4-8】 编写程序,将内部编写程序,将内部RAM 30H单元开始的单元开始的10个无符号数累加,结果存个无符号数累加,结果存入入R2、R3(低字节)(低字节)中中ORG 2000HMAIN: MOVR0, #30H MOV R2, #00H MOV R3, #00H MOV R7, #10NEXT: MOV A, R0 ;书上;书上NEXT位置不正确位置不正确 ADD A , R3 MOV R3, A MOV A, R2 ADDCA, #00H MOV R2, A INC R0
24、 DJNZR7, NEXT SJMP$ END 【例4-9】将内部RAM 30H为起始地址的数据块传送到外部RAM 1000H开始的连续区域,直到发现“$”字符为止。分析:由于数据块的数目无法确定,因此把字符“$”作为循环结束的条件。“$”的ASCII码是“24H”。ORG 2000HMOV R0, #30HMOV DPTR, #1000H NEXT: MOV A, R0 CJNE A, #24H,LOOP SJMP DONE LOOP: MOVX DPTR, A INC R0 INC DPTR SJMP NEXT DONE: SJMP $ END【例4-10】设计50ms延时程序1msDEL
25、AY1:MOV R6, #2 ;1个机器周期个机器周期DEL2:MOV R7, #248 ;1个机器周期个机器周期DEL3: DJNZ R7, DEL3 ;2个机器周期个机器周期 DJNZ R6, DEL2 ;2个机器周期个机器周期 RET ;2个机器周期个机器周期延时时间为:延时时间为:1 + 1+2248 +22 + 2 = 1001个机器周期个机器周期当采用当采用12MHz晶振时,一个机器周期为晶振时,一个机器周期为1us,延时时间为延时时间为1001us4.3 源程序汇编及模拟运行源程序汇编及模拟运行本节教材内容过于陈旧本节教材内容过于陈旧n 源程序汇编方式:手工汇编源程序汇编方式:手
26、工汇编/机器汇编机器汇编n 源程序模拟运行:源程序模拟运行:DOS下下DEBUG命令行命令行实际应用中实际应用中集成开发环境集成开发环境Keiln 与与VB、VC程序开发环境类似程序开发环境类似n 源程序编辑、汇编(编译)、调试(运行)源程序编辑、汇编(编译)、调试(运行)一体化一体化n 汇编语言、汇编语言、C语言兼容语言兼容MCS-51单片机原理及应用单片机原理及应用 第第2章章 MCS-51单片机的结构和原理单片机的结构和原理 第第3章章 MCS-51的寻址方式和指令系统的寻址方式和指令系统 第第4章章 汇编语言程序设计汇编语言程序设计 第第5章章 MCS-51的中断系统的中断系统 第第6
27、章章 MCS-51的定时器的定时器/计数器计数器 第第1章章 单片机概述单片机概述第第5章内容:章内容:5.1 中断的基本概念5.2 MCS-51的中断源及中断优先级5.3 中断控制及响应过程5.4 中断技术的应用举例5.1 中断的基本概念中断的基本概念在在CPU与外设交换信息时,存在着一个快与外设交换信息时,存在着一个快速的速的CPU与慢速的外设之间的矛盾,解决与慢速的外设之间的矛盾,解决方法主要有方法主要有4种种n无条件方式无条件方式n条件方式(查询方式)条件方式(查询方式)n中断方式中断方式nDMA方式方式中断的定义中断的定义nCPU正常运行时,如果外界或内部发生了紧正常运行时,如果外界
28、或内部发生了紧急事件,要求急事件,要求CPU暂停正在处理的工作转去暂停正在处理的工作转去处理这个紧急事件,处理完以后再回到原来处理这个紧急事件,处理完以后再回到原来被中断的地方,继续执行原来被中断了的程被中断的地方,继续执行原来被中断了的程序,这个过程称为中断序,这个过程称为中断 5.1 中断的基本概念中断的基本概念5.1 中断的基本概念中断的基本概念主程序、中断、中断服务主程序、中断、中断服务主程序主程序初始化初始化循环程序循环程序中断服务程序中断服务程序中断服务中断服务响应中断请求响应中断请求5.1 中断的基本概念中断的基本概念中断的作用中断的作用(1)同步工作。计算机可以通过分时操作启)
29、同步工作。计算机可以通过分时操作启动多个外设同时工作,并对它们进行统一管动多个外设同时工作,并对它们进行统一管理。理。(2)实时处理。在检测系统中,现场的各种)实时处理。在检测系统中,现场的各种参数可以在任意时刻发出中断请求,计算机参数可以在任意时刻发出中断请求,计算机可以及时处理。可以及时处理。(3)故障处理。计算机在运行过程中,若出)故障处理。计算机在运行过程中,若出现掉电、运算溢出等故障,计算机可利用中现掉电、运算溢出等故障,计算机可利用中断系统自行处理。断系统自行处理。5.1 中断的基本概念中断的基本概念中断源中断源产生中断请求的外部和内部事件称为中断源。产生中断请求的外部和内部事件称
30、为中断源。允许有多种中断源:允许有多种中断源:n外部输入输出设备外部输入输出设备n数据通讯设备数据通讯设备n控制系统中的控制对象控制系统中的控制对象n故障源故障源n实时时钟实时时钟n调试程序设置的软件中断(设置断点或单步)调试程序设置的软件中断(设置断点或单步)5.1 中断的基本概念中断的基本概念中断系统的功能中断系统的功能计算机中实现中断功能的电路计算机中实现中断功能的电路中断系统中断系统n实现中断响应及中断返回实现中断响应及中断返回n实现中断优先级排队实现中断优先级排队多个中断源按重要多个中断源按重要程度安排的处理顺序。优先级越高越先处理程度安排的处理顺序。优先级越高越先处理n实现中断嵌套
31、实现中断嵌套高级中断源能中断低级中高级中断源能中断低级中断源的中断处理规则断源的中断处理规则中断嵌套的示意图中断嵌套的示意图主程序主程序响应中断请求响应中断请求1中断中断服务服务程序程序1响应中断请求响应中断请求2中断中断服务服务程序程序2RETI返回返回RETI返回返回5.2 MCS-51的中断源及中断优先级的中断源及中断优先级8051/52单片机有单片机有5/6个中断源,分为个中断源,分为2大类大类1外部中断源外部中断源nINT0:由:由P3.2端口线引入,低电平或下降沿引起端口线引入,低电平或下降沿引起nINT1:由:由P3.3端口线引入,低电平或下降沿引起端口线引入,低电平或下降沿引起
32、2内部中断源内部中断源nT0:定时:定时/计数器计数器0中断,由中断,由T0溢出溢出TF0引起引起nT1:定时:定时/计数器计数器1中断,由中断,由T1溢出溢出TF1引起引起nTI / RI:串行口中断,完成一帧字符发送:串行口中断,完成一帧字符发送/接收引起接收引起中断源的中断标志中断源的中断标志中断源中断源中断标志中断标志外部中断INT0 IE0定时器T0 TF0外部中断INT1 IE1定时器T1 TF1串行口TI/RI TI 或或 RI中断源的中断优先级中断源的中断优先级中断源中断源同级优先级顺序同级优先级顺序外部中断INT0 高高 低低定时器T0外部中断INT1定时器T1串行口TI/R
33、I中断服务程序入口地址中断服务程序入口地址中断源中断源入口地址入口地址外部中断INT0 0003H定时器T0 000BH外部中断INT1 0013H定时器T1 001BH串行口TI/RI 0023H5.3 中断控制及响应过程中断控制及响应过程中断控制中断控制主要由主要由4个特殊功能寄存器个特殊功能寄存器实现:实现: n定时器控制寄存器定时器控制寄存器TCONn串行口控制寄存器串行口控制寄存器SCONn中断允许寄存器中断允许寄存器IEn中断优先级寄存器中断优先级寄存器IP通过对以上通过对以上4个寄存器有关各位状态的操作,个寄存器有关各位状态的操作,可实现各种中断控制功能可实现各种中断控制功能MC
34、S-51中断系统的结构框图中断系统的结构框图中断请求标志中断请求标志当中断源请求中断时,分别由定时器控制当中断源请求中断时,分别由定时器控制寄存器寄存器TCON和串行口控制寄存器和串行口控制寄存器SCON中的相应位来锁存,作为发生中断的标志中的相应位来锁存,作为发生中断的标志TCON中的中断标志中的中断标志(可位寻址可位寻址)TCON是定时器是定时器/计数器计数器T0和和T1的控制寄的控制寄存器,同时用于锁存存器,同时用于锁存T0和和T1的溢出中断的溢出中断标志以及外部中断标志以及外部中断INT0和和INT1的中断标的中断标志志TCONTF1TR1TF0TR0IE1IT1IE0IT0定时器控制
35、定时器控制外部中断控制外部中断控制T1控制控制T0控制控制INT1控制控制 INT0控制控制TCON中的中断标志中的中断标志(可位寻址可位寻址)TF1定时器定时器/计数器计数器T1溢出中断请求标志位溢出中断请求标志位nT1溢出时,由硬件置位,同时向溢出时,由硬件置位,同时向CPU发出中断请求发出中断请求n中断响应后由硬件复位中断响应后由硬件复位TF0定时器定时器/计数器计数器T0溢出中断请求标志位溢出中断请求标志位n用法同用法同TF1TR1定时器定时器/计数器计数器T1的启动停止控制位,的启动停止控制位,由软件设定由软件设定nTR1=1,T1开始计数开始计数nTR1=0,T1停止计数停止计数T
36、R0定时器定时器/计数器计数器T0的启动停止控制位的启动停止控制位n用法同用法同TR1TCON中的中断标志中的中断标志(可位寻址可位寻址)IE1外部中断外部中断INT1的中断请求标志位的中断请求标志位n有中断请求时,由硬件置位有中断请求时,由硬件置位n中断响应后由硬件复位中断响应后由硬件复位IE0外部中断外部中断INT0的中断请求标志位的中断请求标志位n用法同用法同IE1IT1外部中断外部中断INT1的中断触发方式控制位,的中断触发方式控制位,由软件设定由软件设定nIT1=1,下降沿触发中断,下降沿触发中断nIT1=0,低电平触发中断,低电平触发中断IT0外部中断外部中断INT0的中断触发方式
37、控制位的中断触发方式控制位n用法同用法同IT1SCON中的中断标志中的中断标志(可位寻址可位寻址)SCON是串行口的控制寄存器,同时用于是串行口的控制寄存器,同时用于锁存串行口的中断标志锁存串行口的中断标志nTI串行口发送中断请求标志,发送一帧串行口发送中断请求标志,发送一帧数据后硬件置位数据后硬件置位TI,响应中断后必须用软件,响应中断后必须用软件清清0nRI串行口接收中断请求标志,收到一帧串行口接收中断请求标志,收到一帧数据后硬件置位数据后硬件置位RI,响应中断后必须用软件,响应中断后必须用软件清清0SCONSM0 SM1 SM2 RENTB8RB8TIRICPU响应中断后对中断标志的处理
38、方式响应中断后对中断标志的处理方式(1) 硬件自动清硬件自动清0定时器溢出中断标志定时器溢出中断标志TF0、TF1;边沿触发方式下的外部中断;边沿触发方式下的外部中断标志标志IE0、IE1(2) 用户软件清用户软件清0串行口发送接收中断标串行口发送接收中断标志志TI、RI(3) 用户硬件干预用户硬件干预电平触发方式下的部电平触发方式下的部中断标志中断标志IE0、IE1中断允许控制寄存器中断允许控制寄存器IE IE控制控制CPU对中断源总的开放或禁止以及对中断源总的开放或禁止以及每个中断源是否允许中断每个中断源是否允许中断EA: 中断允许总控制位中断允许总控制位n1允许中断允许中断n0禁止中断禁
39、止中断ES: 串行口中断允许控制位串行口中断允许控制位IEEA-ESET1EX1ET0EX0中断允许控制寄存器中断允许控制寄存器IE IE控制控制CPU对中断源总的开放或禁止以及对中断源总的开放或禁止以及每个中断源是否允许中断每个中断源是否允许中断ET1: 定时器定时器T1溢出中断允许控制位溢出中断允许控制位ET0: 定时器定时器T0溢出中断允许控制位溢出中断允许控制位EX1: 外部中断外部中断INT1中断允许控制位中断允许控制位EX0: 外部中断外部中断INT0中断允许控制位中断允许控制位IEEA-ESET1EX1ET0EX0中断允许控制寄存器中断允许控制寄存器IE 复位后复位后IE寄存器为
40、寄存器为0,因此应用中断时必,因此应用中断时必须用软件设置须用软件设置IE例如应用外部中断例如应用外部中断INT0n 字节操作方式字节操作方式 MOV IE, #81Hn位操作方式位操作方式SETB EASETB EX0中断优先级控制寄存器中断优先级控制寄存器IP IP用来设置各中断源的优先级,只有两级:用来设置各中断源的优先级,只有两级:高级、低级高级、低级PS: 串行口中断优先级控制位串行口中断优先级控制位n 1高级中断高级中断n0低级中断低级中断IP-PSPT1PX1PT0PX0中断优先级控制寄存器中断优先级控制寄存器IP IP用来设置各中断源的优先级,只有两级:用来设置各中断源的优先级
41、,只有两级:高级、低级高级、低级PT1: 定时器定时器T1溢出中断优先级控制位溢出中断优先级控制位PT0: 定时器定时器T0溢出中断优先级控制位溢出中断优先级控制位PX1: 外部中断外部中断INT1中断优先级控制位中断优先级控制位PX0: 外部中断外部中断INT0中断优先级控制位中断优先级控制位IP-PSPT1PX1PT0PX0复位时复位时IE、IP被清被清0低级中断正在被响应的情况下,高级中断低级中断正在被响应的情况下,高级中断申请可以中断它而被优先响应,但同样级申请可以中断它而被优先响应,但同样级别的中断申请就不能中断它。别的中断申请就不能中断它。在同级同时申请中断的情况下,由内部的在同级
42、同时申请中断的情况下,由内部的硬件查询次序确定响应顺序,首先相应优硬件查询次序确定响应顺序,首先相应优先级最高的中断请求。先级最高的中断请求。1、中断源有中断请求、中断源有中断请求2、IE中相应的位置中相应的位置“1”且且CPU开中断开中断3、无同级或高级中断正在处理、无同级或高级中断正在处理4、当前指令周期结束、当前指令周期结束5、如果当前正在执行的指令是、如果当前正在执行的指令是RETI或对或对IE、IP寄存器进行读寄存器进行读/写指令,执行这些写指令,执行这些指令后下一条指令执行完成指令后下一条指令执行完成置位相应的置位相应的“优先级有效触发器优先级有效触发器” 执行一个硬件调用指令(两
43、个机器周期)执行一个硬件调用指令(两个机器周期)n清除中断请求标志(清除中断请求标志(TI和和RI除外)除外)n把断点地址(把断点地址(PC内容)压入堆栈内容)压入堆栈n所响应中断的服务程序的入口地址送所响应中断的服务程序的入口地址送PC,从,从而控制程序转移到中断服务程序。而控制程序转移到中断服务程序。【以上过程由中断系统自动完成【以上过程由中断系统自动完成】执行中断服务程序,直至遇到执行中断服务程序,直至遇到RETI指令指令RETI指令功能:指令功能:n清清0相应的相应的“优先级有效触发器优先级有效触发器” n从堆栈弹出断点地址到从堆栈弹出断点地址到PCMCS-51单片机原理及应用单片机原
44、理及应用 第第2章章 MCS-51单片机的结构和原理单片机的结构和原理 第第3章章 MCS-51的寻址方式和指令系统的寻址方式和指令系统 第第4章章 汇编语言程序设计汇编语言程序设计 第第5章章 MCS-51的中断系统的中断系统 第第6章章 MCS-51的定时器的定时器/计数器计数器 第第1章章 单片机概述单片机概述第第6章内容:章内容:6.1 定时/计数器的结构6.2 有关的特殊功能寄存器6.3 定时器的4种工作模式6.4 定时/计数器的应用举例6.1 定时定时/计数器的结构计数器的结构单片机通常具有单片机通常具有24个定时个定时/计数器计数器n内部电路为二进制计数器内部电路为二进制计数器n
45、从单片机引脚输入时钟从单片机引脚输入时钟计数器,用于累计数器,用于累计外部输入的脉冲个数,如果输入时钟周期计外部输入的脉冲个数,如果输入时钟周期固定,也可以用于定时固定,也可以用于定时n从单片机内部振荡器输入时钟从单片机内部振荡器输入时钟定时器,定时器,用于精确地确定某一段时间间隔用于精确地确定某一段时间间隔6.1 定时定时/计数器的结构计数器的结构定时器定时器/计数器的基本概念计数器的基本概念CPOVF0000 0000 0 10 10 10 1000100100011010001010110011110001001101010111100110111101111内部时钟内部时钟外部时钟外部
46、时钟MCS-51单片机有单片机有2个个16位的可编程定时位的可编程定时/计计数器数器n定时器定时器0(T0)n定时器定时器1(T1)它们既可用做定时器、又可用做计数器它们既可用做定时器、又可用做计数器用于定时控制、延时、对外部事件计数和用于定时控制、延时、对外部事件计数和检测等场合。检测等场合。6.1 定时定时/计数器的结构计数器的结构微微处处理理器器TH1TL17 0 7 0P3.5(T1)或内部或内部时钟时钟TH0TL07 0 7 0P3.4(T0)或内部或内部时钟时钟TMODTCON16位计数器位计数器T1T06.2 有关的特殊功能寄存器有关的特殊功能寄存器T0的计数寄存器的计数寄存器
47、TH0、TL0;T1的计数寄存器的计数寄存器 TH1、TL1;与与T0、T1有关的有关的SFR除除TH0、TL0、TH1、TL1外,还有外,还有2个:个:nTMOD 工作模式寄存器:定义工作模式寄存器:定义T0、T1的工的工作模式及有关功能作模式及有关功能 nTCON 控制寄存器:存放控制寄存器:存放T0、T1的启、停、的启、停、溢出标志和中断标志溢出标志和中断标志TMOD 工作模式寄存器(89H)M1、M0控制的控制的4种模式种模式M1 M0 模式模式说明说明00013位计数器位计数器 01116位计数器位计数器 102自动装入自动装入8位计数器位计数器 113T0:分成两个分成两个8位计数
48、器位计数器T1 :置方式置方式3时停止工作时停止工作 例:设T1为定时方式,按模式2工作设T0为计数方式,按模式1工作请确定模式寄存器TMOD的值:u定义模式寄存器TMOD的指令为: MOV TMOD, #25Hu TMOD不能位寻址,只能用字节传送指令00100101TCON 控制寄存器(88H)T1溢出标志位溢出标志位当当T1计满溢出时,硬件自计满溢出时,硬件自动使动使TF1置置1,并且申请中,并且申请中断。断。当当CPU进入中断服务程序进入中断服务程序后,后,TF1由硬件自动清由硬件自动清0;在在查询方式下用软件清查询方式下用软件清0 T1运行控制位运行控制位当当GATE=0时,时,TR
49、1置置1即启动定时器即启动定时器T1当当GATE=1,且,且INT1为为高电平时,高电平时,TR1置置1启动定启动定时器时器T1由软件清由软件清0关闭定时器关闭定时器T16.3 定时器的四种工作模式定时器的四种工作模式定时器定时器/计数器有计数器有4种工作模式,由种工作模式,由TMOD控制。工作模式的特点和用法如下:控制。工作模式的特点和用法如下:模式模式0n当当M1M000时,为模式时,为模式0。此时,。此时,16位计数位计数器只用了器只用了13位位n以以T1为例,由为例,由TH1的的8位和位和TL1的低的低5位组成位组成一个一个13位计数器,位计数器,TL1高三位未用高三位未用TH1TL1
50、T1 T1 模式模式0 0逻辑电路结构逻辑电路结构 定时时间t的计算v定时时间t:从初值开始计数到计满溢出的时间。v计数初值x:当工作模式和定时时间确定后,由软件预置。 v对于模式0,计数初值为x,时钟频率为fosc,则定时时间t为: t=(213x)12/ fosc(us) 模式1模式模式1 1与模式与模式0 0工作原理工作原理完全相同,唯一的区别完全相同,唯一的区别是模式是模式1 1是把是把T1T1设置成设置成1616位计数器,由位计数器,由TH1TH1的的8 8位和位和TL1TL1的的8 8位组成一个位组成一个1616位计数器位计数器模式2定时定时/ /计数器计数器T0T0工作模式工作模
51、式3 3模式模式3 3使得单片机增加了一个独立的计数器使得单片机增加了一个独立的计数器把把T T0 0分成由分成由THTH0 0和和TLTL0 0两个独立的两个独立的8 8位计数器位计数器6.4 定时定时/计数器的应用举例计数器的应用举例使用定时器使用定时器/计数器前都要对其初始化,计数器前都要对其初始化,主要是设置主要是设置4个个SFR:nTMOD设置工作方式(定时或计数)、设置工作方式(定时或计数)、工作模式等工作模式等 nTH1 TL1(TH0 TL0 )设置计数初值)设置计数初值n TCON启动工作启动工作 若开放定时器的中断,还要设置:若开放定时器的中断,还要设置:nIE、IP设置定
52、时器中断的开放设置定时器中断的开放/禁止、优先禁止、优先级级定时定时/计数器初值的计算计数器初值的计算 6.4.1 初始化程序举例初始化程序举例 例例: 设时钟振荡频率设时钟振荡频率fosc=6MHz。T1作定作定时器,以模式时器,以模式1工作,定时时间为工作,定时时间为10ms;T0作计数器,以模式作计数器,以模式2工作,收到一个外工作,收到一个外部脉冲就溢出中断。部脉冲就溢出中断。故故 TMOD=16H6.4.1 初始化程序举例初始化程序举例确定初值确定初值x:T1:定时,模式:定时,模式1,定时,定时10ms, fosc=6MHzt =10ms =(216x)12/fosc =(216x
53、)2(us)x =60536= EC 78H(TH1=0ECH,TL1=78H)T0:计数,模式:计数,模式2,计数,计数1次次x + 1 = 28 x = 28 - 1 = 255 = FFHTH0=TL0=0FFH6.4.1 初始化程序举例初始化程序举例 MOV TMOD,#16H MOV TL1 ,#78H MOV TH1 ,#0ECHMOV TL0 ,#0FFH MOV TH0 ,#0FFH SETB TR1 ;启动;启动T1SETB TR0;启动;启动T0MOV IE , #82H ;CPU开中断,允许开中断,允许T0中断中断 p.99【例【例6-1】若】若MSC-51振荡频率为振荡频率为12MHz,要求定时,要求定时100s ,试计算不,试计算不同模式时的计数初值。同模式时的计数初值。以模式以模式2(8位)为例:位)为例:t=(28x)12/ fosc100s =(256x)12/12(s)x =(256100)1569CH6.4.2 模式模式0的应用的应用【例【例6-2】:选择】:选择T0工作于模式工作于模式0,用于定,用于定
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 城市排水办公楼施工合同
- 纺织品采购招标法律培训
- 市政工程电力招投标技术规范本
- 通信网络监理管理规程
- 地铁换乘站隧洞施工合同
- 纺织维修工具管理办法
- 建筑行业电力工程安装合同
- 公交站点候车亭设施维修
- 科研实验中心建设合同
- 设备租赁合同:摄影器材
- 电解车间技术、安全及设备维护保养手册
- 中医西医的比较之我见中西结合
- 中国航天发展史模板
- 骨科学研究生复试真题汇总版
- 初中信息技术人教八年级上册 综合实践活动第2节 制作视频类数字故事
- 小学综合实践六年级上册第4单元《主题活动三:校园文化活动我参与》教案
- 人教PEP小学三年级英语下册教学计划及进度表
- 铁路产品认证中心(CRCC)认证的铁路产品目录及标准
- 《新疆维吾尔自治区建筑安装工程费用定额》2010年
- 《职业发展与就业指导》全书教案全套教学单元设计
- DB32-T 3916-2020建筑地基基础检测规程-(高清现行)
评论
0/150
提交评论