单片机原理实用教程总复习_第1页
单片机原理实用教程总复习_第2页
单片机原理实用教程总复习_第3页
单片机原理实用教程总复习_第4页
单片机原理实用教程总复习_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

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

文档简介

1、第 1 章 复 习21.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,每个口都可以用做输入或者输出; 内部时钟,但晶体和微调电容需要外接,振荡频率可以高达

2、40M HZ.345 中中央处理器CPU包含运算器和控制器两大部分。1运算器 运算器以算术逻辑单元ALU为核心,加上累加器ACC、寄存器B 、暂存寄存器TMP和程序状态字寄存器PSW等所组成。 ALU主要用于完成二进制数据的算术和逻辑运算。 累加器ACC工作最为繁忙,因为在进行算术逻辑运算时,ALU的输入多为ACC的输出,而大多数运算结果也需要送到ACC中。 B寄存器,在作乘除运算时用来存放一个操作数,它也用来存放乘除运算后的一部分结果 。 程序状态字寄存器PSW,用于存放运算结果的一些特征 进位标志 辅助进位标志 用户标志 工作寄存器组选择 溢出标志 奇偶校验标志 62控制器 控制器包括定时

3、控制逻辑、指令寄存器、指令译码器、程序计数器PC、数据指针DPTR 、堆栈指针SP、地址寄存器和地址缓冲器等。 它的功能是对逐条指令进行译码,并通过定时和控制电路在规定的时刻发出各种操作所需的内部和外部控制信号,协调各部分的工作。 程序计数器PC:用于存放下一条将要执行指令的地址。当一条指令按PC所指向的地址从程序存储器中取出之后,PC的值会自动增加,即指向下一条指令。PC不属于特殊功能寄存器,不能被访问。堆栈指针SP:用来指示堆栈的起始地址。 指令译码器:当指令送入指令译码器后,由译码器对该指令进行译码,即把指令转变成为所需要的电平信号,CPU根据译码器输出的电平信号使定时控制电路产生执行该

4、指令所需要的各种控制信号。71.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,

5、在某一时刻,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负载。在8

6、052单片机中,还用作定时器2的计数触发输入端T2, 还用作定时器2的外部控制端T2EX。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口的每条引脚都有各自的第二功能。第 2 章 Proteus快速入门11 英国Labcenter公司推出的Proteus软件采用虚拟仿真技术,很好地解决了单片机及其外围电路的设计和协同仿真问题 。集成环境ISIS Proteus软件包提供一种界面

7、友好的人机交互式集成环境ISIS,其设计功能强大,使用方面。 该软件已有近20年的历史,它针对单片机应用,可以直接在虚拟模型上进行软件编程和虚拟仿真,配合虚拟示波器、逻辑分析仪等,用户能看到单片机系统运行后的输入输出效果。 ISIS在Windows环境下运行,它的主界面,由下拉菜单、快捷工具栏、预览窗口、原理图编辑窗口、元器件列表窗口等组成。File菜单:包括常用的文件功能,如创建一个新设计、打开己有设计、保存设计、导入导出文件、打印设计文档等。View菜单:包括是否显示网格、设置网格间距、缩放原理图、显示与隐藏各种工具栏等命令。Edit菜单:包括撤销恢复操作、查找与编辑、剪切、复制、粘贴元器

8、件、设置多个对象的层叠关系等命令。第 3 章 指令系统复习13 2414 ADD A, #14H ; 累加器A中的内容与14H相加 3.1 指令助记符和字节数 指令本身是一组二进制数代码,助记符一般采用有关英文单词的缩写 。 740A MOV A, #0AH ;将十六进制数0AH放入累加器A中 指令助记符 一条指令通常由两部分组成:操作码和操作数。 操作码用来规定这条指令完成什么操作。操作数则表示这条指令所完成的操作对象,即是对谁进行操作。 操作码操作数14 在8051单片机中,对于不同的指令,指令的字节数不相同。8051单片机有单字节,双字节或三字节指令。 1、 单字节指令:指令只有一个字节

9、,操作码和操作数同在一个字节中。在80C51系列的指令系统中,共有49条单字节指令。 操作码+地址码如 MOV A,Rn 指令机器码为单字节 ,其中rrr可表示为000111,分别代表R0R7 (1)单字节指令中既包含操作码信息,也包含操作数信息。 例如数据指针加1指令:INC DPTR,由于操作的内容和对象都很明确,故不必再加操作数字节,其指令码为: (2)用一个字节中的几位来表示操作数或操作数所在的位置。 11101rrr 1010001115 例如 把8位二进制数传送到累加器A的指令: MOV A, #data其中#data表示8位二进制数,也叫立即数,这就是双节指令,其指令码为:011

10、10100#data2 双字节指令:其中一个字节为操作码,另一个字节是操作数。操作码数据或地址码 在80C51系列的指令系统中,共有45条双字节指令。163.三字节指令则是一个字节的操作码,两个字节的操作数。操作数可以是数据,也可以是地址,因此,可能有四种情况:操作码立即数立即数操作码操作码操作码 地 址 立即数立即数 地 址 地 址 地 址 8051单片机共有17条三字节指令,只占全部指令的15%。一般而言,指令的字节数越则其执行速度越快,从这个角度来说,8051单片机的指令系统是比较合理的。ANL direct, #dataMOV DPTR, #1234H173.2 寻址方式 所谓寻址,就

11、是寻找操作数据的地址。 例如:MOV A, R0 所谓寻址方式就是通过确定操作数据所在的地址把操作数据提取出来的方法。 在8051单片机中,有7种寻址方式: 1寄存器寻址 2直接寻址 3立即寻址 4寄存器间接寻址 5变址寻址 6相对寻址 7位寻址目的字节源字节18指令分类详解 算术运算类指令(24条); 逻辑运算类指令(25条) ; 数据传送类指令(28条) ; 控制转移类指令(17 条); 布尔操作(位)类指令(17条)。 8051单片机共有111条指令,按指令功能可分为算术运算指令、逻辑运算指令、数据传送指令、控制转移指令及位操作指令等5大类。19算术运算指令 算术运算指令包括加、减、乘、

12、除法指令,加法指令又分为普通加法指令、带进位加法指令和加1指令。 1普通加法指令 ADD A, Rn ;Rn(n=0-7)为工作寄存器 ADD A, direct ;direct为直接地址单元 ADD A, Ri ;Ri(i=0-1)为工作寄存器 ADD A, #data ;#data为立即数 这组指令的功能是将累加器A的内容与第二操作数的内容相加,结果送回到累加器A中。 在执行加法的过程中,如果位7有进位,则置“1”进位标志CY,否则清“0” CY。如果位3有进位,则置“1”辅助进位标志AC。如果位6有进位而位7没有进位,或者位7有进位而位6没有进位,则置“1”溢出标志OV,否则清“0” O

13、V。202带进位加法指令 ADDC A, Rn ;Rn(n=0-7)为工作寄存器 3加1指令 INC A 不影响任何标志。4十进制调整指令 DA A5带进位减法指令 SUBB A, Rn ;Rn(n=0-7)。指令意义 (A)(Rn)(CY)(A)6减1指令DEC A 7单字节乘法指令 MUL AB8单字节除法指令 DIV AB 乘积的低8位存放在累加器A中,高8位存放在寄存器B中。 商的整数部分存放在累加器A中,余数部分存放在寄存器B中21逻辑运算指令 逻辑运算指令分为简单逻辑操作指令、逻辑与指令、逻辑或指令以及逻辑异或指令。1简单逻辑指令 CLR A;对累加器A清“0”,不影响标志位。 S

14、WAP 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 22数据传送指令 8051单片机的存储器区域可分为如下3个部分,即: 程序存储器 0000H-FFFFH 内部RAM 00H-FFH 外部RAM/IO区 0000H-FFFFH 对于程

15、序存储器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。 234堆栈操作指令 PUSH direct;进栈 POP direct;出栈 在8051单片机的特殊功能寄存器中有一个堆栈指针寄存器SP,进栈(PUSH)指令的功能是首先将堆栈指针SP的内容加1,然后将直接地址所指出的内容送入SP指出的内部RAM单元。5累加器A与外部数据存储器R

16、AM之间的数据传送指令MOVX A, DPTR ;(DPTR) A6查表指令MOVC A, A+PCMOVC A, A+DPTR7字节交换指令XCH A, Rn ;n=0-78半字节交换指令XCHD A, Ri ;i=0或1 将累加器A的低4位内容和R (i) 的低4位内容相互交换。24控制转移指令1无条件短跳转指令 AJMP addrll 这是2K字节范围内的无条件跳转指令。2相对转移指令SJMP rel 执行时跳转至(PC)+ rel+2。因此转移的目标地址可以在这条指令前128个字节到后127个字节之间。3长跳转指令 LJMP addr16 4散转指令 JMP A+DPTR 255条件转

17、移指令 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 这组指令把源操

18、作数(Rn, direct)的内容减1,并将结果回送到源操作数中去。如果相减的结果不为0则转移。26 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,而不执行任何其他操作。

19、27位操作指令 程序状态字寄存器PSW,用于存放运算结果的一些特征 进位标志 辅助进位标志 用户标志 工作寄存器组选择 溢出标志 奇偶校验标志 8051单片机内部RAM中有一个位寻址区,还有一些特殊功能寄存器也可以位寻址。 简化:CY=C1位数据传送指令 MOV C, bitMOV bit, C 这组指令的功能是把由源操作数指出的位变量送到目的操作数指定的位单元去 28 2位变量修改指令 CLR C ;0CY CLR bit ;0bit CPL C ;对CY的内容取反 CPL bit ;对bit位取反 SETB C ; “1” CY SETB bit ; “1” bit3位变量逻辑与指令ANL

20、 C, bitANL C,/bit 这组指令的功能是将进位标志与指定的位变量(或位变量的取反值)相“与”,结果送到进位标志,不影响别的标志。4位变量逻辑或指令 ORL C, bit ORL C, /bit 这组指令的功能是将进位标志与指定的位变量(或位变量的取反值)相“或”,结果送到进位标志,不影响别的标志。293.4 汇编语言程序格式与伪指令1设置起始地址ORG一般格式:ORG nnnn 其中,nnnn为4位十六进制数,表示程序的起始地址。 2定义字节DB3定义字DW4保留程序存储器空间DS5为标号赋值EQU6源程序结束END7. BIT 位定义伪指令 用于给字符名称赋予位地址。例:30例3

21、-2若单片机的晶振为6 MHz,则一个机器周期为2us。子程序的入口条件为:(R0)=延时毫秒数,(R1) =10ms(预定值)。出口条件为:定时时间到,返回。 ORG 1000H 机器周期数 DELAY:MOV R0,#10 ;延时10ms值R0 1DL2: MOV R1,#MT ;10ms预定值 R1 1DL1: NOP ;延时1个机器周期 1 NOP ;延时1个机器周期 1 DJNZ R1,DL1 ;1ms延时循环 2 DJNZ R0,DL2 ;10ms延时循环 2 RET ;延时结束,返回 2 这是一个双重循环程序,预定值MT需要计算。预定延时时间也已经给定 ( 10ms ),故MT的

22、值可以这样确定: (1+1+2) 2 MT 1010 1000 ( us ) 所以: MT1257DH第四章 中断系统复习32中断的概念 中断过程: 程序执行过程中,允许外部或内部事件通过硬件打断程序的执行,使其转向中断服务程序中去;完成中断服务程序后,CPU继续原来被打断的程序,这样的过程称为中断。33中断响应 :CPU暂停当前的工作转去处理中断源事件。中断系统:单片机中实现中断功能的部件,也是中断管理系统。中断源:产生中断的请求的外部或内部事件。中断申请:中断源向CPU发出的请求。优点: 中断方式的一个重要应用领域是实时控制。能将从现场采集到的数据及时传送给CPU,经过处理后就可立即作出响

23、应,实现现场控制。 中断方式完全消除了CPU在查询方式中的等待现象,大大提高了CPU的工作效率。342中断的排队 如果有若干个中断申请同时发生,就需要决定先对哪一个中断申请进行响应。3中断的响应 单片机在响应了中断源的申请时,应使CPU从主程序转去执行中断服务子程序,同时要把断点地址送入堆栈进行保护,中断系统还要能确定各个被响应中断源的中断服务子程序的入口。4中断的撤除 8051单片机中断系统的任务:1开中断或关中断 中断的开放或关闭可以通过指令对相关特殊功能寄存器的操作来实现,只有在开中断的情况下,才有可能接受中断源的申请。35 8051中有5个中断源: 两个外部中断源/INT0和/INT1

24、;4.2 中断系统结构与中断控制 三个内部中断源为:T0和T1的定时/计数溢出中断源(2个);和串行口发送或接收中断源(1个)。 外部中断请求信号可以是电平触发方式和负边沿触发方式。若是电平触发方式,只要在INT0或INT 1引脚有低电平信号即为有效的中断申请。36图中断系统结构定时器控制寄存器中断允许寄存器中断优先级寄存器 串行口控制寄存器 37 INT0,INT1,T0 及 T1的中断标志存放在 TCON(定时器计数器控制寄存器)中; TCON字节地址为88H,其格式如下:中断控制系统INT0 、INT1的中断触发方式控制位。为0选择电位触发,为1选择跳变触发。由软件设置。外部中断0、1申

25、请中断标志。为1表示有外部中断申请。T0、T1计数溢出标志;为1表示溢出,由硬件置位、响应中断硬件复位。不用中断用软件清0。1. 中断标志38串行口的中断标志存放在 SCON(串行口控制寄存器)中。SCON字节地址为98H,其格式如下:串行口发送中断标志。发送完一帧,由硬件置位。响应中断后,必须用软件清 0。串行口接收中断标志。接收完一帧,由硬件置位。响应中断后,必须用软件清0。39 中断允许和禁止由中断允许寄存器IE(A8H)控制。 IE中各位设置:为0时,禁止中断;为 1时,允许中断。中断允许位。当EA1,允许所有中断开放;当EA0时,屏蔽所有中断。串行口中断允许位。T0、T1中断允许位。

26、外部中断0、外部中断1中断允许位。2. 中断允许控制40 中断优先级寄存器IP(B8H)的格式如下,IP中各位设置:为0时,为低优先级;为1时,设为高优先级。 在中断执行过程中,高中断优先级可以中断低中断优先级的中断过程(即中断嵌套)。 当CPU同时接收到两个不同优先级的中断请求时,先响应高优先级的中断串口定时器1外部中断03. 中断优先级41 在同一优先级内有一个由内部查询序列确定的优先级结构。其排列如下: 中断源中断优先级 最高 外部中断0 定时器T0中断 外部中断1 定时器T1中断 串行口中断 最低中断嵌套: 优先级高的事件可以中断CPU正在处理的低级的中断服务程序,待完成了高级中断服务

27、程序之后,再继续被打断的低级中断服务程序。这是中断嵌套问题。42表4.1 8051单片机的中断源及中断矢量1.单片机在接收到中断申请以后,先把这些申请锁定在各自的中断标志位中,然后在下一个机器周期按优先级分别来查询这些标志。在下一个机器周期响应中断,完成两件工作:一是把当前程序计数器PC的内容送入堆栈保护,另一个是根据中断的不同来源把程序的执行转移到相应的中断服务子程序的入口。中断响应过程3.当某个中断请求得到响应之后,相应的中断标志位应该予以清除(即复“0”) 。43 1必须没有同级或更高级别的中断正在得到响应,如果有的话,则必须等CPU为它们服务完毕,返回主程序并执行一条指令之后才能响应新

28、的中断申请。 2必须要等当前正在执行的指令执行完毕以后,CPU才能响应新的中断申请。 3若正在执行的指令是RETI(中断返回),则必须要在执行完该指令以及紧随其后的另外一条指令之后才可以响应新的中断申请。中断响应的条件:中断标志的清除: 1.由硬件自动使标志位复“0”(即撤除),它们是: 定时器0或1的中断请求标志TF0或TF1 ; 外部中断0或1的中断请求标志IE0或IE1。2. 中断系统不予以自动撤除,它们是: 串行口的中断请求标志TI和RI 。44 在8051中,实现中断需要用软件对以下5个内容进行初始化设置: 中断服务程序入口地址的设定。 CPU开中断与关中断。 某一中断源中断请求的允

29、许与禁止。 各中断源优先级别的设定。 对于外部中断请求,还需进行触发方式的设定。中断服务程序的设计中断程序一般包含中断控制程序和中断服务程序两部分。 中断控制程序即中断初始化程序,一般不独立编写,而是包含在主程序中,根据上述的5点通过编写几条指令来实现。 中断服务程序是一种为中断源的特定事态要求服务的独立程序段,以中断返回指令RETI结束。第5章 定时器/计数器复习46 定时器/计数器的作用:1) 产生一个时间很长的定时信号,可实现定时控制;2)可以测量外部脉冲信号的个数及频率。 1软件法 常用生产定时信号的方法: 假设单片机使用12MHz晶振,一个机器周期是1us。要编一个延时50ms的程序

30、。DEL: MOV R7, #200DEL1:MOV R6, #125 DEL2: DJNZ R6, DEL2 DJNZ R7, DEL1单条指令执行时间2us总时间:212520050000us缺点:1)占用CPU时间;2)定时有时不准。472. 采用定时器计数器 最大特点是:可以通过软件设置来实现定时长短,通过中断方法来完成定时。原理: 计数器就象一个容器,来1个脉冲加1粒颗粒,对进入的脉冲信号进行“加1”计数,低位满了向高位进位,当所有的位都满了就产生溢出,在TCON中产生计数器溢出标志。定时器计数器还要解决的问题:1. 实现定时器与计数器功能转换。2. 在计数寄存器中装入初值。3. 改

31、变计数寄存器的总位数。4. 定时器计数器何时及如何启动?48计数寄存器方式寄存器控制寄存器输入引脚时钟分频器定时器计数器T0、T1原理示意图:49 T0、T1 的方式寄存器TMODD7 D6 D5 D4 D3 D2 D1 D0GATEC/TM1M0GATEC/TM1M0T1T0门控位:为0时仅由TR1置位来启动定时器T1。为1时由外部中断引脚、和TR1共同来启动定时器。定时器计数器方式选择位,为0时为定时器。工作方式选择位,可以有四种工作方式。5.1 定时器计数器的工作方式与控制字50M1、M0工作方式选择位。 由于有M1和M0两位,可以有四种工作方式,如下表所示。M1 M0工作方式 计数器配

32、置 0 0方式0 13位计数器 0 1方式1 16位计数器 1 0方式2 自动重装载的8位计数器 1 1方式3 T0分为2个8位计数器/定时器,T1分为1个8位计数器/定时器。51 控制寄存器TCON是一个逐位定义的8位寄存器,字节地址为88H,位寻址的地址为88H8FH。其格式如下:位地址 8FH 8EH8DH8CH8BH8AH89H88H位功能 TF1TR1TF0TR0IE1IT1IE0IT0 T0、T1 的运行控制寄存器TCONT1的溢出标志T1的运行控制位置 1时,启动 T1,清 0时,停止 T1 。外部中断1申请中断位外部中断0触发类型选择位52 根据对TMOD寄存器中M1和M0的设

33、定,T0可选择四种不同的工作方式,而T1只具有三种工作方式(即方式0、方式1和方式2)。 方式0:13位定时器/计数器当M10、M00时,选定方式0工作。非或与为1时闭合定时器计数器T0、T1 的工作方式:53 门控位GATE可用作对INTx引脚上的高电平时间进行计量。当GATE0时,A点为高电平,定时器计数器的启动停止由 TRx决定。TRx1,定时器计数器启动;TRx0,定时器计数器停止。 当GATE1时,A点的电位由INTx决定,因而B点的电位就由TRx和INTx决定,即定时器计数器的启动停止由TRx和INTx两个条件决定。 非或与为1时闭合54 方式1:16位定时器/计数器 当TMOD中

34、的M10、M0l时,选定方式1工作。方式1时,T0、T1的逻辑结构如图所示。这种方式下,计数寄存器由16位组成,THx高8位和TLx的低8位。 计数时,TLx溢出后向THx进位,THx溢出后将TFx置位,如果中断允许,CPU响应中断并转入中断服务程序,由内部硬件清TFx。TFx也可以由程序查询和清零。55 方式2:定时常数自动重装载的8位定时器/计数器 当TMOD中的M11、M00时,选定方式2工作。这种方式是将16位计数寄存器分为两个8位寄存器,组成一个可重载的8位计数寄存器。方式2时定时器/计数器T0、T1的逻辑结构如下图所示。当TLx计数溢出时,将THx的内容重新装入TLx中,继续计数。

35、 方式2适合于作为串行口波特率发生器使用。56 方式3 当TMOD中的M1l、M01时,选定方式3工作。 工作方式3下的定时器/计数器T0 方式3时,这种方式是将T0分为一个8位定时器计数器和一个 8位定时器,TL0用于 8位定时器计数器,TH0用于8位定时器。57定时器计数器应用举例 8051单片机定时器计数器的初始化编程包括如下几个步骤: 1确定工作方式,即给方式控制寄存器TMOD写入控制字。 2计算定时器计数器初值,并将初值写入寄存器TL和TH 。 3根据需要对中断控制寄存器IE置初值,决定是否开放定时器中断。 4使运行控制寄存器TCON中的TR0或TR1置“1,启动定时器计数器。计数初

36、始值X确定: 假设计数器的最大计数值为M(根据不同工作方式,M可以是213、216或28),则计算初值X的公式如下: 计数方式:X=M要求的计数值 (5-1)定时方式:XM 要求的定时值(12/fosc) (5-2)机器周期58例 5.5 要求在 引脚上产生周期为2 ms的方波输出。已知晶体振荡器的频率为fosc=6MHz。可使用T0作定时器,设为方式0,设定 lms的定时,每隔1ms使引脚上的电平变反(1) 解:定时常数计算 振荡器的频率fosc6MHz,机器周期为2s,方式0计数器长度13,定时时间 t1ms方式0最大计数值为M=213,因此定时器的初值应为: X=213(1 10-3)(

37、12/ (6106) =7692D59( 2) 编 程 (中断法) ORG 0000H AJMP MAIN ORG 000BH;T0中断矢量 AJMP INQP ORG 0030HMAIN:MOV TMOD,00H ;写控制字, ;设T0为定时器方式0 MOV TH0,0F0H ;写定时常数(定时1ms)MOV TL0,0CHSETB TR0 ;启动 T0 SETB ET0 ;允许T0中断 SETB EA ;开放CPU中断 AJMP $ ;定时中断等待 ORG XXXX H ;T0中断服务程序INQP:MOV TH0,0F0H ;重写定时常数 MOV TL0,0CHCPL P10 ;变反输出

38、RETI ;中断返回第6章单片机的串行口原理及应用复习 61问题 2什么叫波特率?它反映的是什么?它与时钟频率是相同的吗?3. 8051单片机的串行口有哪几种工作方式?各有什么特点和功能?1. 8051单片机与串行口相关的特殊功能寄存器有哪几个?说明它们各个位的功能意义。62 并行通信方式与串行通信方式 并行通信 在数据传输时,如果一个数据编码字符的所有各位都同时发送、并排传输,又同时被接收,则将这种传送方式称为并行传送方式。特点:传送速度快、效率高。数据线多,成本高。 串行通信 在数据传输时,数据编码字符的所有各位不是同时发送,而是按一定顺序,一位接着一位在信道中被发送和接收,则将这种传送方

39、式称为串行传送方式。特点:成本低,但速度慢。串行通信方式632 异步传输和同步传输 异步传输 异步传输以一个字(或称字符)为单位进行数据传输,每个字符都用起始位、停止位包装起来,在字符间允许有长短不一的间隙(空闲位)。 一个字符由四个部分组成:起始位、数据位、奇偶校验位和停止位。起始位为“0”信号, 起始位后面紧跟着的是数据位,它一般是8位,奇偶校验位只占一位, 停止位用来表征字符的结束,它一定是“1” ,停止位可以是1位或2位。643. 波特率 波特率表示串行通信时每秒钟传送”位” 的数目,比如1s传送1bit,就是1波特。即1波特1bit/s (位/秒) 串行通信常用的标准波特率在RS-2

40、32C标准中已有规定,如波特率为600、1200、2400、4800、9600、19200等等。 假若数据传送速率为120字符/s,而每一个字符帧已规定为10个数据位,则传输速率为120101200bit/s,即波特率为1200。 同步传输 同步传输用来对数据块进行传输,一个数据块中包含着许多连续的字符,在字符之间没有空闲。65 8051通过RXD(P30)引脚、TXD(P31)引脚输入、输出,与外界通信。内部有一个通用异步接收发送器(UART),及波特率发生器。 UART由同步移位寄存器、接收缓冲器(SBUF)和发送缓冲器(SBUF)组成它主要完成把数据进行串、并行的转换。8051串行口基本

41、结构主要由两大部分组成。 波特率发生器: 主要由T1及内部的一些控制开关和分频器所组成。它提供串行口的时钟信号为 TXCLOCK(发送时钟)和 XCLOCK(接收时钟)。 串行口的内部串行口的工作方式与控制66 8051串行口结构图 UART67 串行口状态控制寄存器 SCON位地址 9FH 9EH9DH9CH 9BH9AH 99H 98H位功能SM0SM1SM2REN TB8 RB8 TI RI 寄存器SCON既可字节寻址也可位寻址,字节地址为98H,位地址为98H9FH。其格式如下:工作方式选择位允许方式2、3中的多处理机通信位允许串行接收位方式2和方式3中要发送、接收的第9位数据发送、接

42、收中断标志位68 SM0,SM1串行口工作方式选择位,其功能见表。 SM0 SM1方式 特 点 波 特 率 0 0 方式0 8位移位寄存器 fosc/12 0 1 方式1 10位UART 可变 1 0 方式2 11位UART fosc/64或fosc/32 1 1 方式3 11位UART 可变SM2(SCON.5)允许方式2、3中的多处理机通信位。 方式0时,SM20。 方式1时,若SM2l,只有接收到有效的停止位,接收中断RI才置1。 方式2和方式3时,若SM21,则只有当接收到的第9位数据(RB8)为1时,才将接收到的前8位数据送入缓冲器SBUF中,并把RI置1、同时向CPU申请中断;如果

43、接收到的第9位数据(RB8)为0,RI置0,将接收到的前8位数据丢弃。 而当SM20时,则不论接收到的笫九位数据是0 或1 ,都将前8位数据装入SBUF中,并申请中断。 69 电源控制寄存器 PCON 其中最高位SMOD与串行口控制有关,其它位与掉电方式有关。其格式如下: D7 D6 D5 D4 D3 D2 D1 D0SMOD GF1 GF0 PD IDL SMOD(PCON.7)串行通信波特率系数控制位。 当SMOD1时,使波特率加倍。复位后,SMOD0。 串行数据寄存器SBUF 包含在物理上是隔离的两个8位寄存器:发送数据寄存器和接收数据寄存器,它们共用一个地址99H。其格式如下: D7

44、D6 D5 D4 D3 D2 D1 D0 SD7 SD6 SD5 SD4 SD3 SD2 SD1 SD0 读SBUF(MOVA,SBUF),访问接收数据寄存器;写SBUF(MOV SBUF,A),访问发送数据寄存器。 701 串行口方式0 同步移位寄存器方式 当SM00、SM10时,串行口选择方式0。这种工作方式实质上是一种同步移位寄器方式。 数据传输波特率固定为(112)fosc。 由RXD(P30)引脚输入或输出数据, 由TXD(P31)引脚输出同步移位时钟。接收发送的是8位数据,传输时低位在前。帧格式如下: D0D1D2D3D4D5D6D7传输方向71当 SM00、SM1l时,串行口选择

45、方式1。 数据传输波特率由T1的溢出决定,可用程序设定。采用T1作为串行口接收和发送的波特率发生器。由 TXD(P31)引脚发送数据。由 RXD(P30)引脚接收数据。 发送或接收一帧信息为10位:1位起始位(0)、8位数据位(低位在前)和l位停止位(1)。帧格式如下:起始D0 D1D2D3D4D5D6D7停止2.串行口方式172 当SM01、SM10时,串行口选择方式2;当SM11、SM01时,串行口选择方式3。 由TXD(P3l)引脚发送数据。由RXD(P30)引脚接收数据。 为11位:1位起始位(0)、8位数据位(低位在前) 、1位可编程位和1位停止位(l)。发送时可编程位TB8可设置为

46、1或0,接收时可编程位进入SCON寄存器的RB8位。 方式2的波特率是固定的,为振荡器频率的1/32或1/64。方式3的波特率则由T1和T2的溢出决定,可用程序设定。 帧格式如下: 起 始D0D1D2D3D4D5D6D7D8 停 止3 串行口方式2和3 9位UART738051单片机串行口四种工作方式对应着三种波特率。 对于方式0,波特率是固定的,为单片机振荡频率fosc的 1/12。 对于方式2,波特率由下式计算:式中,Smod为PCON寄存器中的D7位,fosc为单片机的振荡频率。 对于方式1和方式3,波特率都由定时器1的溢出率决定,计算公式如下:式中,Smod为PCON寄存器中的D7位,

47、fosc为单片机的振荡频率,k取决于定时器T1的工作方式: 定时器T1工作于方式0时,k=13; 定时器T1工作于方式1时,k=16; 定时器T1工作于方式2和方式3, k=8。(6-1)(6-2)74程序存储器扩展 P0口是地址和数据总线复用口,只能分时用作地址线。故P0口输出地址时必须用锁存器锁存。 锁存器的锁存控制信号为单片机ALE引脚输出的控制信号。在ALE的下降沿将P0口输出的地址A0A7锁存。 由于地址总线宽度为16位,故可寻址范围为64 KB。(1)地址总线(AB)75(2) 数据总线(DB) 由P0口提供,用D0D7表示,是系统中使用最为频繁的通道。所有单片机与外部交换的数据、

48、指令、信息,除少数可直接通过P1口外,全部通过P0口传送。(3)控制总线(CB)输出,用于读片外程序存储器(EPROM)中的数据。输入,用于选择片内外程序存储器,为0时只访问外部程序存储器,为1时先访问内部程序存储器。输出,用于片外数据存储器(RAM)的读、写控制。当执行片外数据存储器操作指令MOVX时,自动生成 /WR 、/RD控制信号。76(3)控制总线(CB) ALE:输出P0 口上地址与数据隔离信号,用于锁存P0口输出的低8位地址的控制线。通常,ALE信号的下降沿控制锁存器来锁存地址数据。连接在锁存器的锁存信号充许端,如74LS373的G端。当执行MOVX指令时,ALE会输出一个矩形波,先锁存由P0口输出的地址信号,然后再输出数据。ALEP0指令输入地址输出数据输入77地址锁存器的作用:锁存信号。 当ALE为高电平时,8D锁存器74LS373的输入和输出是透明的。当ALE为低电平时,8D锁存器74LS373的输入是不通的。当ALE出现下降沿后,8D锁存器74

温馨提示

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

评论

0/150

提交评论