微机原理总复习.ppt_第1页
微机原理总复习.ppt_第2页
微机原理总复习.ppt_第3页
微机原理总复习.ppt_第4页
微机原理总复习.ppt_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第 1 章 复 习,2,1.1 8051单片机的特点与基本结构,8051系列,无片内ROM型,带片内ROM型,片内EPROM型,:87C51,4k,片内EEROM型,:89C51,4k, flash,片内掩膜ROM型,:8051,4k一次编程,:8031,8051单片机的基本组成包括:,中央处理器CPU,它是单片机的核心,用于产生各种控制信号,并完成对数据的算术逻辑运算和传送; 内部数据存储器RAM,用以存放可以读写的数据; 内部程序存储器ROM,用以存放程序指令或某些常数表格; 4个8位的并行I/O接口P0, P1, P2和P3,每个口都可以用做输入或者输出; 内部时钟,但晶体和微调电容需要外接,振荡频率可以高达40M HZ.,3,4,5,中中央处理器CPU包含运算器和控制器两大部分。,1运算器,运算器以算术逻辑单元ALU为核心,加上累加器ACC、寄存器B 、暂存寄存器TMP和程序状态字寄存器PSW等所组成。,ALU主要用于完成二进制数据的算术和逻辑运算。,累加器ACC工作最为繁忙,因为在进行算术逻辑运算时,ALU的输入多为ACC的输出,而大多数运算结果也需要送到ACC中。,B寄存器,在作乘除运算时用来存放一个操作数,它也用来存放乘除运算后的一部分结果 。,程序状态字寄存器PSW,用于存放运算结果的一些特征,进位标志,辅助进位标志,用户标志,工作寄存器组选择,溢出标志,奇偶校验标志,6,2控制器,控制器包括定时控制逻辑、指令寄存器、指令译码器、程序计数器PC、数据指针DPTR 、堆栈指针SP、地址寄存器和地址缓冲器等。,它的功能是对逐条指令进行译码,并通过定时和控制电路在规定的时刻发出各种操作所需的内部和外部控制信号,协调各部分的工作。,程序计数器PC:用于存放下一条将要执行指令的地址。当一条指令按PC所指向的地址从程序存储器中取出之后,PC的值会自动增加,即指向下一条指令。PC不属于特殊功能寄存器,不能被访问。,堆栈指针SP:用来指示堆栈的起始地址。,指令译码器:当指令送入指令译码器后,由译码器对该指令进行译码,即把指令转变成为所需要的电平信号,CPU根据译码器输出的电平信号使定时控制电路产生执行该指令所需要的各种控制信号。,7,1.2 8051单片机的存储器结构,8051单片机在物理上它有4个存储器空间:片内程序存储器(4k)和片外程序存储器;片内数据存储器和片外数据存储器。,图1.5 8051单片机存储器结构,8,8051单片机通过不同的信号来选通ROM或RAM。当从外部ROM中取指令时,用选通信号PSEN,而从外部RAM中读写数据时则采用读写信号RD或WR来选通,因此不会因地址重叠而发生混乱。,8051系列单片机的片内数据存储器RAM 有256个字节,其中00H-7FH地址空间是直 接寻址区,该区域内00H-1FH地址为工作寄 存器区,安排了4组工作寄存器,每组占用8 个地址单元,记为R0-R7,在某一时刻,CPU只能使用其中任意一组工作寄存器,究竟选择哪一组工作寄存器由程序状态字寄存器PSW中RS0和RS1的状态决定。,片内RAM的20H-2FH地址单元为位寻址区,共16个字节,每个字节的每一位都规定了位地址,该区域内每个地址单元除了可以进行字节操作之外,还可进行位操作,右图所示为片内RAM的位地址分配。,9,P0.0-P0.7 (39-32):双向I/O口P0。其第二功能是在访问外部存储器时,可分时用做低8位地址和8位数据线。P0口能以吸收电流的方式驱动8个LS型TTL负载。,P1.0-P1.7 (1-8):双向I/O口P1。 P1口能驱动(吸收或输出电流)4个LS型TTL负载。,P2.0-P2.7 (21-28):双向I/O口P2。P2口可以驱动(吸收或输出电流)4个LS型TTL负载。其第二功能是在访问外部存储器时,输出高8位地址。,P3.0-P3.7 (10-17):双向I/O口P3。P3口能驱动(吸收或输出电流)4个LS型TTL负载。P3口的每条引脚都有各自的第二功能。,第 3 章 指令系统复习,11,2414 ADD A, #14H ; 累加器A中的内容与14H相加,3.1 指令助记符和字节数,指令本身是一组二进制数代码,助记符一般采用有关英文单词的缩写 。,740A MOV A, #0AH ;将十六进制数0AH放入累加器A中,指令,助记符,一条指令通常由两部分组成:操作码和操作数。,操作码用来规定这条指令完成什么操作。操作数则表示这条指令所完成的操作对象,即是对谁进行操作。,操作码,操作数,12,在8051单片机中,对于不同的指令,指令的字节数不相同。8051单片机有单字节,双字节或三字节指令。,1、 单字节指令:指令只有一个字节,操作码和操作数同在一个字节中。在80C51系列的指令系统中,共有49条单字节指令。,操作码+地址码,如 MOV A,Rn 指令机器码为单字节 ,其中rrr可表示为000111,分别代表R0R7,(1)单字节指令中既包含操作码信息,也包含操作数信息。,例如数据指针加1指令:INC DPTR,由于操作的内容和对象都很明确,故不必再加操作数字节,其指令码为:,(2)用一个字节中的几位来表示操作数或操作数所在的位置。,11101rrr,10100011,13,例如 把8位二进制数传送到累加器A的指令: MOV A, #data 其中#data表示8位二进制数,也叫立即数,这就是双节指令,其指令码为:,01110100,#data,2 双字节指令:其中一个字节为操作码,另一个字节是操作数。,操作码,数据或地址码,在80C51系列的指令系统中,共有45条双字节指令。,14,3.三字节指令则是一个字节的操作码,两个字节的操作数。操作数可以是数据,也可以是地址,因此,可能有四种情况:,操作码,立即数,立即数,操作码,操作码,操作码,地 址,立即数,立即数,地 址,地 址,地 址,8051单片机共有17条三字节指令,只占全部指令的15%。一般而言,指令的字节数越则其执行速度越快,从这个角度来说,8051单片机的指令系统是比较合理的。,ANL direct, #data,MOV DPTR, #1234H,15,3.2 寻址方式,所谓寻址,就是寻找操作数据的地址。 例如:MOV A, R0,所谓寻址方式就是通过确定操作数据所在的地址把操作数据提取出来的方法。,在8051单片机中,有7种寻址方式: 1寄存器寻址 2直接寻址 3立即寻址 4寄存器间接寻址 5变址寻址 6相对寻址 7位寻址,目的字节,源字节,16,3.3指令分类详解,算术运算类指令(24条); 逻辑运算类指令(25条) ; 数据传送类指令(28条) ; 控制转移类指令(17 条); 布尔操作(位)类指令(17条)。,8051单片机共有111条指令,按指令功能可分为算术运算指令、逻辑运算指令、数据传送指令、控制转移指令及位操作指令等5大类。,17,3.3.1算术运算指令,算术运算指令包括加、减、乘、除法指令,加法指令又分为普通加法指令、带进位加法指令和加1指令。,1普通加法指令,ADD A, Rn ;Rn(n=0-7)为工作寄存器,指令意义 (A)+(Rn)(A) ADD A, #data ;#data为立即数,指令意义 (A)+ data (A),这组指令的功能是将累加器A的内容与第二操作数的内容相加,结果送回到累加器A中。,在执行加法的过程中,如果位7有进位,则置“1”进位标志CY,否则清“0” CY。如果位3有进位,则置“1”辅助进位标志AC。如果位6有进位而位7没有进位,或者位7有进位而位6没有进位,则置“1”溢出标志OV,否则清“0” OV。,18,2带进位加法指令,ADDC A, Rn ; 指令意义 (A)+(Rn)+(CY)(A) ADDC A, direct ;direct为直接地址单元 ADDC A, #data ;#data为立即数,这组指令的功能与普通加法指令类似,唯一的不同之处是在执行加法时,还要将上一次进位标志CY的内容也一起加进去。对于标志位的影响与普通加法指令相同。,例:设(A)C3H,(R0)AAH,(CY)1。 执行指令:ADDC A,R0 1 1 0 0 0 0 1 1 + 1 0 1 0 1 0 1 0 + 1 (CY) 0 1 1 0 1 1 1 0 执行结果:(A)6EH,(CY)1,(OV)l, (AC)0。,19,3加1指令,INC A 不影响任何标志。,5带进位减法指令,SUBB A, Rn ;Rn(n=0-7)。指令意义 (A)(Rn)(CY)(A),6减1指令,DEC A,7单字节乘法指令 MUL AB,8单字节除法指令 DIV AB,乘积的低8位存放在累加器A中,高8位存放在寄存器B中。,商的整数部分存放在累加器A中,余数部分存放在寄存器B中,20,3.3.2逻辑运算指令,逻辑运算指令分为简单逻辑操作指令、逻辑与指令、逻辑或指令以及逻辑异或指令。,1简单逻辑指令,CLR A;对累加器A清“0”,不影响标志位。,SWAP A;将A的高半字节(A.7-A.4)与低半字节(A.3-A.0)交换,CPL A;对进行累加器的内容逐位取反,结果仍存在A中。,RL A;累加器A的内容向左环移一位 RLC A;累加器A的内容带进位位CY向左环移一位 RR A;累加器A的内容向右环移一位 RRC;累加器A的内容带进位位CY向右环移一位,2逻辑与指令 ANL A, Rn,3逻辑或指令 ORL A, Rn,4逻辑异或指令 XRL A, Rn,21,2逻辑与指令,ANL A, Rn ;(A) (Rn) A, n=0-7 ANL A, direct ;(A) (direct) A ANL A,Ri ;(A)( (Ri) A, i=0或1 ANL A, #data ;(A) #data A,例:设(A)A3H(1010 0011B), (R0)AAH(1010 1010B)。 执行指令 :ANL A,Rn 执行结果为(A) A2H(1010 0010B)。,ANL direct, #data ;(direct)#data direct,这条指令的功能是将两个操作数的内容按位进行逻辑与运算,结果送入由direct所指出的内部RAM单元。,22,ORL A, Rn ;(A)V(Rn) A, n=0-7 ORL A, direct ;(A)V(direct) A ORL A, #data ;(A) V#data A ORL direct, A ;(direct) V (A) direct ORL direct, #data ;(direct) V #data direct,3逻辑或指令,这组指令的功能是将两个操作数的内容按位进行逻辑或运算,结果送入累加器A或由direct所指出的内部RAM单元。,4逻辑异或指令,XRL A, Rn ;(A) (Rn) A, n=0-7 XRL A, direct ;(A) (direct ) A XRL A, Ri ;(A) (Ri) ) A, i=0或1,例:设(A)A3H(10100011B), (R0)45H(0100 0101B)。 执行指令:ORL A,R0 执行结果:(A)E7H(1110 0111B)。,00=0 , 11=0 01=1 , 10=1,23,3.3.3数据传送指令,8051单片机的存储器区域可分为如下3个部分,即: 程序存储器 0000H-FFFFH 内部RAM 00H-FFH 外部RAM/IO区 0000H-FFFFH,对于程序存储器ROM,只能通过变址寻址方式采用MOVC指令访问。,外部数据存储器RAM只能通过间接寻址方式用MOVX指令访问。,1数据传送到累加器A的指令,MOV A, Rn ;n=0-7 MOV A, direct MOV A, Ri ;i=0或1 MOV A, #data,这组指令的功能是把源操作数的内容送入累加器A。,24,4堆栈操作指令,PUSH direct;进栈 POP direct;出栈,在8051单片机的特殊功能寄存器中有一个堆栈指针寄存器SP,进栈(PUSH)指令的功能是首先将堆栈指针SP的内容加1,然后将直接地址所指出的内容送入SP指出的内部RAM单元。,5累加器A与外部数据存储器RAM之间的数据传送指令,MOVX A, DPTR ;(DPTR) A,6查表指令,MOVC A, A+PC MOVC A, A+DPTR,7字节交换指令,XCH A, Rn ;n=0-7,8半字节交换指令,XCHD A, Ri ;i=0或1,将累加器A的低4位内容和R (i) 的低4位内容相互交换。,25,3.3.4控制转移指令,1无条件短跳转指令,AJMP addrll,这是2K字节范围内的无条件跳转指令。,2相对转移指令,SJMP rel,执行时跳转至(PC)+ rel+2。因此转移的目标地址可以在这条指令前128个字节到后127个字节之间。,3长跳转指令,LJMP addr16,4散转指令,JMP A+DPTR,26,5条件转移指令,JZ rel ;(A)=0时转移 JNZ rel ;(A)#0时转移 JC rel ;CY=1时转移 JNC rel ;CY=0时转移 JB bit,rel ;(bit)=1时转移 JNB bit,rel ;(bit)=0时转移 JBC bit,rel ;(bit)=1时转移,并清“0“ bit位,6比较不相等转移指令: CJNE A, direct, rel,这组指令的功能是比较前面两个操作数的大小,如果它们的值不相等则转移。,影响进位标志:如果第一操作数(无符号整数)小于第二操作数(无符号整数),则置“1”进位标志CY。,7减1不为0转移指令,DJNZ Rn, rel ;n=0-7,这组指令把源操作数(Rn, direct)的内容减1,并将结果回送到源操作数中去。如果相减的结果不为0则转移。,27,8短调用指令,ACALL addrll,这是一条2K字节范围内的子程序调用指令。,9长调用指令,LCALL addr16,这条指令无条件地调用位于16位地址addr16处的子程序。,10子程序返回指令,RET,这条指令的功能是从堆栈中弹出PC的高8位和低8位字节,同时把SP的值减2,并从PC指向的地址开始继续执行程序。,11中断返回指令,RETI,这条指令的功能与RET指令相似,不同的是它还清“0”单片机的内部中断状态标志。,12空操作指令,NOP ;这条指令只完成(PC) +1,而不执行任何其他操作。,28,3.3.5位操作指令,程序状态字寄存器PSW,用于存放运算结果的一些特征,进位标志,辅助进位标志,用户标志,工作寄存器组选择,溢出标志,奇偶校验标志,8051单片机内部RAM中有一个位寻址区,还有一些特殊功能寄存器也可以位寻址。,简化:CY=C,1位数据传送指令,MOV C, bit MOV bit, C,这组指令的功能是把由源操作数指出的位变量送到目的操作数指定的位单元去,29,2位变量修改指令,CLR C ;0CY CLR bit ;0bit CPL C ;对CY的内容取反 CPL bit ;对bit位取反 SETB C ; “1” CY SETB bit ; “1” bit,3位变量逻辑与指令,ANL C, bit ANL C,/bit,这组指令的功能是将进位标志与指定的位变量(或位变量的取反值)相“与”,结果送到进位标志,不影响别的标志。,4位变量逻辑或指令,ORL C, bit ORL C, /bit,这组指令的功能是将进位标志与指定的位变量(或位变量的取反值)相“或”,结果送到进位标志,不影响别的标志。,30,3.4 汇编语言程序格式与伪指令,1设置起始地址ORG,一般格式:ORG nnnn,其中,nnnn为4位十六进制数,表示程序的起始地址。,2定义字节DB,3定义字DW,4保留程序存储器空间DS,5为标号赋值EQU,6源程序结束END,7. BIT 位定义伪指令,用于给字符名称赋予位地址。,例:ABC BIT P3.1,31,例3-2若单片机的晶振为6 MHz,则一个机器周期为2us。子程序的入口条件为:(R0)=延时毫秒数,(R1) =10ms(预定值)。出口条件为:定时时间到,返回。,ORG 1000H 机器周期数 DELAY:MOV R0,#10 ;延时10ms值R0 1 DL2: MOV R1,#MT ;10ms预定值 R1 1 DL1: NOP ;延时1个机器周期 1 NOP ;延时1个机器周期 1 DJNZ R1,DL1 ;1ms延时循环 2 DJNZ R0,DL2 ;10ms延时循环 2 RET ;延时结束,返回 2,这是一个双重循环程序,预定值MT需要计算。预定延时时间也已经给定 ( 10ms ),故MT的值可以这样确定:,(1+1+2) 2 MT 1010 1000 ( us ),所以: MT1257DH,第四章 中断系统复习,33,4.1中断的概念,中断过程:,程序执行过程中,允许外部或内部事件通过硬件打断程序的执行,,使其转向中断服务程序中去;完成中断服务程序后,,CPU继续原来被打断的程序,这样的过程称为中断。,34,中断响应 :CPU暂停当前的工作转去处理中断源事件。,中断系统:单片机中实现中断功能的部件,也是中断管理系统。,中断源:产生中断的请求的外部或内部事件。,中断申请:中断源向CPU发出的请求。,优点:,中断方式的一个重要应用领域是实时控制。能将从现场采集到的数据及时传送给CPU,经过处理后就可立即作出响应,实现现场控制。,中断方式完全消除了CPU在查询方式中的等待现象,大大提高了CPU的工作效率。,35,2中断的排队,如果有若干个中断申请同时发生,就需要决定先对哪一个中断申请进行响应。,3中断的响应,单片机在响应了中断源的申请时,应使CPU从主程序转去执行中断服务子程序,同时要把断点地址送入堆栈进行保护,中断系统还要能确定各个被响应中断源的中断服务子程序的入口。,4中断的撤除,8051单片机中断系统的任务:,1开中断或关中断,中断的开放或关闭可以通过指令对相关特殊功能寄存器的操作来实现,只有在开中断的情况下,才有可能接受中断源的申请。,36,8051中有5个中断源:,两个外部中断源/INT0和/INT1;,4.2 中断系统结构与中断控制,三个内部中断源为:T0和T1的定时/计数溢出中断源(2个);和串行口发送或接收中断源(1个)。,外部中断请求信号可以是电平触发方式和负边沿触发方式。若是电平触发方式,只要在INT0或INT 1引脚有低电平信号即为有效的中断申请。,37,图4.2中断系统结构,定时器控制寄存器,中断允许寄存器,中断优先级寄存器,串行口控制寄存器,38,INT0,INT1,T0 及 T1的中断标志存放在 TCON(定时器计数器控制寄存器)中; TCON字节地址为88H,其格式如下:,中断控制系统,INT0 、INT1的中断触发方式控制位。为0选择电位触发,为1选择跳变触发。由软件设置。,外部中断0、1申请中断标志。为1表示有外部中断申请。,T0、T1计数溢出标志;为1表示溢出,由硬件置位、响应中断硬件复位。不用中断用软件清0。,1. 中断标志,39,串行口的中断标志存放在 SCON(串行口控制寄存器)中。SCON字节地址为98H,其格式如下:,串行口发送中断标志。发送完一帧,由硬件置位。响应中断后,必须用软件清 0。,串行口接收中断标志。接收完一帧,由硬件置位。响应中断后,必须用软件清0。,40,中断允许和禁止由中断允许寄存器IE(A8H)控制。 IE中各位设置:为0时,禁止中断;为 1时,允许中断。,中断允许位。当EA1,允许所有中断开放;当EA0时,屏蔽所有中断。,串行口中断允许位。,T0、T1中断允许位。,外部中断0、外部中断1中断允许位。,2. 中断允许控制,41,中断优先级寄存器IP(B8H)的格式如下,IP中各位设置:为0时,为低优先级;为1时,设为高优先级。,在中断执行过程中,高中断优先级可以中断低中断优先级的中断过程(即中断嵌套)。,当CPU同时接收到两个不同优先级的中断请求时,先响应高优先级的中断,串口,定时器1,外部中断0,3. 中断优先级,42,在同一优先级内有一个由内部查询序列确定的优先级结构。其排列如下:,中断源 中断优先级 最高 外部中断0 定时器T0中断 外部中断1 定时器T1中断 串行口中断 最低,中断嵌套:,优先级高的事件可以中断CPU正在处理的低级的中断服务程序,待完成了高级中断服务程序之后,再继续被打断的低级中断服务程序。这是中断嵌套问题。,43,表4.1 8051单片机的中断源及中断矢量,1.单片机在接收到中断申请以后,先把这些申请锁定在各自的中断标志位中,然后在下一个机器周期按优先级分别来查询这些标志。,2.CPU在下一个机器周期响应中断,完成两件工作:一是把当前程序计数器PC的内容送入堆栈保护,另一个是根据中断的不同来源把程序的执行转移到相应的中断服务子程序的入口。,中断响应过程,3.当某个中断请求得到响应之后,相应的中断标志位应该予以清除(即复“0”) 。,44,1必须没有同级或更高级别的中断正在得到响应,如果有的话,则必须等CPU为它们服务完毕,返回主程序并执行一条指令之后才能响应新的中断申请。 2必须要等当前正在执行的指令执行完毕以后,CPU才能响应新的中断申请。 3若正在执行的指令是RETI(中断返回),则必须要在执行完该指令以及紧随其后的另外一条指令之后才可以响应新的中断申请。,中断响应的条件:,中断标志的清除:,1.由硬件自动使标志位复“0”(即撤除),它们是:,定时器0或1的中断请求标志TF0或TF1 ; 外部中断0或1的中断请求标志IE0或IE1。,2. 中断系统不予以自动撤除,它们是:,串行口的中断请求标志TI和RI 。,45,在8051中,实现中断需要用软件对以下5个内容进行初始化设置: 中断服务程序入口地址的设定。 CPU开中断与关中断。 某一中断源中断请求的允许与禁止。 各中断源优先级别的设定。 对于外部中断请求,还需进行触发方式的设定。,中断服务程序的设计,中断程序一般包含中断控制程序和中断服务程序两部分。,中断控制程序即中断初始化程序,一般不独立编写,而是包含在主程序中,根据上述的5点通过编写几条指令来实现。,中断服务程序是一种为中断源的特定事态要求服务的独立程序段,以中断返回指令RETI结束。,第5章 定时器/计数器 复习,47,定时器/计数器的作用:1) 产生一个时间很长的定时信号,可实现定时控制;2)可以测量外部脉冲信号的个数及频率。,1软件法,常用生产定时信号的方法:,假设单片机使用12MHz晶振,一个机器周期是1us。要编一个延时50ms的程序。,DEL: MOV R7, #200 DEL1:MOV R6, #125 DEL2: DJNZ R6, DEL2 DJNZ R7, DEL1,单条指令执行时间2us,总时间:212520050000us,缺点:1)占用CPU时间;2)定时有时不准。,48,2. 采用定时器计数器,最大特点是:可以通过软件设置来实现定时长短,通过中断方法来完成定时。,原理: 计数器就象一个容器,来1个脉冲加1粒颗粒,对进入的脉冲信号进行“加1”计数,低位满了向高位进位,当所有的位都满了就产生溢出,在TCON中产生计数器溢出标志。,定时器计数器还要解决的问题:,1. 实现定时器与计数器功能转换。,2. 在计数寄存器中装入初值。,3. 改变计数寄存器的总位数。,4. 定时器计数器何时及如何启动?,49,计数寄存器,方式寄存器,控制寄存器,输入引脚,时钟分频器,定时器计数器T0、T1原理示意图:,50, T0、T1 的方式寄存器TMOD,D7 D6 D5 D4 D3 D2 D1 D0,T1,T0,门控位:为0时仅由TR1置位来启动定时器T1。为1时由外部中断引脚、和TR1共同来启动定时器。,定时器计数器方式选择位,为0时为定时器。,工作方式选择位,可以有四种工作方式。,5.1 定时器计数器的工作方式与控制字,51,M1、M0工作方式选择位。 由于有M1和M0两位,可以有四种工作方式,如下表所示。,52,控制寄存器TCON是一个逐位定义的8位寄存器,字节地址为88H,位寻址的地址为88H8FH。其格式如下:, T0、T1 的运行控制寄存器TCON,T1的溢出标志,T1的运行控制位置 1时,启动 T1,清 0时,停止 T1 。,外部中断1申请中断位,外部中断0触发类型选择位,53,根据对TMOD寄存器中M1和M0的设定,T0可选择四种不同的工作方式,而T1只具有三种工作方式(即方式0、方式1和方式2)。 方式0:13位定时器/计数器 当M10、M00时,选定方式0工作。,非,或,与,为1时闭合,定时器计数器T0、T1 的工作方式:,54,门控位GATE可用作对INTx引脚上的高电平时间进行计量。当GATE0时,A点为高电平,定时器计数器的启动停止由 TRx决定。TRx1,定时器计数器启动;TRx0,定时器计数器停止。 当GATE1时,A点的电位由INTx决定,因而B点的电位就由TRx和INTx决定,即定时器计数器的启动停止由TRx和INTx两个条件决定。,非,或,与,为1时闭合,55, 方式1:16位定时器/计数器 当TMOD中的M10、M0l时,选定方式1工作。 方式1时,T0、T1的逻辑结构如图所示。这种方式下,计数寄存器由16位组成,THx高8位和TLx的低8位。 计数时,TLx溢出后向THx进位,THx溢出后将TFx置位,如果中断允许,CPU响应中断并转入中断服务程序,由内部硬件清TFx。TFx也可以由程序查询和清零。,56, 方式2:定时常数自动重装载的8位定时器/计数器 当TMOD中的M11、M00时,选定方式2工作。这种方式是将16位计数寄存器分为两个8位寄存器,组成一个可重载的8位计数寄存器。方式2时定时器/计数器T0、T1的逻辑结构如下图所示。,当TLx计数溢出时,将THx的内容重新装入TLx中,继续计数。,方式2适合于作为串行口波特率发生器使用。,57, 方式3 当TMOD中的M1l、M01时,选定方式3工作。, 工作方式3下的定时器/计数器T0,方式3时,这种方式是将T0分为一个8位定时器计数器和一个 8位定时器,TL0用于 8位定时器计数器,TH0用于8位定时器。,58,5.2定时器计数器应用举例,8051单片机定时器计数器的初始化编程包括如下几个步骤:,1确定工作方式,即给方式控制寄存器TMOD写入控制字。 2计算定时器计数器初值,并将初值写入寄存器TL和TH 。 3根据需要对中断控制寄存器IE置初值,决定是否开放定时器中断。 4使运行控制寄存器TCON中的TR0或TR1置“1“,启动定时器计数器。,计数初始值X确定:,假设计数器的最大计数值为M(根据不同工作方式,M可以是213、216或28),则计算初值X的公式如下:,计数方式:X=M要求的计数值 (5-1),定时方式:XM 要求的定时值(12/fosc) (5-2),机器周期,59,例 5.5 要求在 P1.0引脚上产生周期为2 ms的方波输出。,已知晶体振荡器的频率为fosc=6MHz。可使用T0作定时器,设为方式0,设定 lms的定时,每隔1ms使P1.0引脚上的电平变反,(1) 解:定时常数计算 振荡器的频率fosc6MHz,机器周期为2s,方式0计数器长度13,定时时间 t1ms0.001s,方式0最大计数值为M=213,因此定时器的初值应为: X=213(1 10-3)(12/ (6106) =7692D,60,( 2) 编 程 (中断法) ORG 0000H AJMP MAIN ORG 000BH;T0中断矢量 AJMP INQP ORG 0030H MAIN:MOV TMOD,00H ;写控制字, ;设T0为定时器方式0 MOV TH0,0F0H ;写定时常数(定时1ms) MOV TL0,0CH SETB TR0 ;启动 T0,SETB ET0 ;允许T0中断 SETB EA ;开放CPU中断 AJMP $ ;定时中断等待 ORG XXXX H ;T0中断服务程序 INQP:MOV TH0,0F0H ;重写定时常数 MOV TL0,0CH CPL P10 ;变反输出 RETI ;中断返回,第6章 单片机的串行口 原理及应用复习,62, 并行通信方式与串行通信方式, 并行通信,在数据传输时,如果一个数据编码字符的所有各位都同时发送、并排传输,又同时被接收,则将这种传送方式称为并行传送方式。,特点:传送速度快、效率高。数据线多,成本高。, 串行通信,在数据传输时,数据编码字符的所有各位不是同时发送,而是按一定顺序,一位接着一位在信道中被发送和接收,则将这种传送方式称为串行传送方式。,特点:成本低,但速度慢。,6.1串行通信方式,63,2 异步传输和同步传输 异步传输,异步传输以一个字(或称字符)为单位进行数据传输,每个字符都用起始位、停止位包装起来,在字符间允许有长短不一的间隙(空闲位)。,一个字符由四个部分组成:起始位、数据位、奇偶校验位和停止位。起始位为“0”信号, 起始位后面紧跟着的是数据位,它一般是8位,奇偶校验位只占一位, 停止位用来表征字符的结束,它一定是“1” ,停止位可以是1位或2位。,64,3. 波特率 波特率表示串行通信时每秒钟传送”位” 的数目,比如1s传送1bit,就是1波特。即1波特1bit/s (位/秒),串行通信常用的标准波特率在RS-232C标准中已有规定,如波特率为600、1200、2400、4800、9600、19200等等。,假若数据传送速率为120字符/s,而每一个字符帧已规定为10个数据位,则传输速率为120101200bit/s,即波特率为1200。, 同步传输 同步传输用来对数据块进行传输,一个数据块中包含着许多连续的字符,在字符之间没有空闲。,65,4 单工方式、半双工方式、全双工方式, 单工方式 信号(不包括联络信号) 在信道中只能沿一个方向传送,而不能沿相反方向传送的工作方式称为单工方式。 半双工方式 通信的双方均具有发送和接收信息的能力,信道也具有双向传输性能,但是,通信的任何一方都不能同时既发送信息又接收信息,即在指定的时刻,只能沿某一个方向传送信息。这样的传送方式称为半双工方式。半双工方式大多采用双线制。 全双工方式 若信号在通信双方之间沿两个方向同时传送,任何一方在同一时刻既能发送又能接收信息,这样的方式称为全双工方式。,66,8051通过RXD(P30)引脚、TXD(P31)引脚输入、输出,与外界通信。内部有一个通用异步接收发送器(UART),及波特率发生器。,UART由同步移位寄存器、接收缓冲器(SBUF)和发送缓冲器(SBUF)组成它主要完成把数据进行串、并行的转换。,8051串行口基本结构主要由两大部分组成。, 波特率发生器:,主要由T1及内部的一些控制开关和分频器所组成。它提供串行口的时钟信号为 TXCLOCK(发送时钟)和 XCLOCK(接收时钟)。, 串行口的内部,6.2串行口的工作方式与控制,67,8051串行口结构图,UART,68, 串行口状态控制寄存器 SCON,寄存器SCON既可字节寻址也可位寻址,字节地址为98H,位地址为98H9FH。其格式如下:,工作方式选择位,允许方式2、3中的多处理机通信位,允许串行接收位,方式2和方式3中要发送、接收的第9位数据,发送、接收中断标志位,69, SM0,SM1串行口工作方式选择位,其功能见表。,SM2(SCON.5)允许方式2、3中的多处理机通信位。,方式0时,SM20。 方式1时,若SM2l,只有接收到有效的停止位,接收中断RI才置1。 方式2和方式3时,若SM21,则只有当接收到的第9位数据(RB8)为1时,才将接收到的前8位数据送入缓冲器SBUF中,并把RI置1、同时向CPU申请中断;如果接收到的第9位数据(RB8)为0,RI置0,将接收到的前8位数据丢弃。 而当SM20时,则不论接收到的笫九位数据是0 或1 ,都将前8位数据装入SBUF中,并申请中断。,70, 电源控制寄存器 PCON 其中最高位SMOD与串行口控制有关,其它位与掉电方式有关。其格式如下:,SMOD(PCON.7)串行通信波特率系数控制位。 当SMOD1时,使波特率加倍。复位后,SMOD0。, 串行数据寄存器SBUF 包含在物理上是隔离的两个8位寄存器:发

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论