《单片机接口技术(C51版)》-张道德-电子教案 第六章

上传人:E**** 文档编号:89401817 上传时间:2019-05-24 格式:PPT 页数:56 大小:239.50KB
返回 下载 相关 举报
《单片机接口技术(C51版)》-张道德-电子教案 第六章_第1页
第1页 / 共56页
《单片机接口技术(C51版)》-张道德-电子教案 第六章_第2页
第2页 / 共56页
《单片机接口技术(C51版)》-张道德-电子教案 第六章_第3页
第3页 / 共56页
《单片机接口技术(C51版)》-张道德-电子教案 第六章_第4页
第4页 / 共56页
《单片机接口技术(C51版)》-张道德-电子教案 第六章_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《《单片机接口技术(C51版)》-张道德-电子教案 第六章》由会员分享,可在线阅读,更多相关《《单片机接口技术(C51版)》-张道德-电子教案 第六章(56页珍藏版)》请在金锄头文库上搜索。

1、单片机接口技术(C51版),第六章 8051内部资源编程,内容概述,本章主要介绍8051单片机的内部资源的结构及使用方法。主要内容有并行输入输出(I/O)端口的结构及功能,定时/计数器结构、工作原理及使用,中断的概念、中断系统的结构与中断响应过程及相关程序设计,串行口的结构、工作方式与控制等。,教学目标,1了解并行输入输出(I/O)端口的结构及功能,关键是P0口的地址、数据分时复用、P2口的地址总线功能、P3口的第二功能,掌握P0、P1、P2、P3端口的操作方法。 2了解定时/计数器结构,理解其工作原理,领会定时器、计数器的本质区别在于计数的脉冲来源的不同。掌握定时/计数器的四种工作方式及TM

2、OD、TCON两个寄存器的控制作用,掌握定时/计数时间常数的计算方法,在此基础上进行定时/计数器的初始化与应用。 3. 了解中断的概念、8051单片机中断系统的结构,理解中断响应过程,掌握中断允许寄存器IE、中断优先级控制寄存器IP的控制方法,在此基础上实现中断服务程序的C51程序设计。 4了解了解单片机串行端口的结构、工作方式,掌握通信速率的概念,能根据通信速率bps设置定时器的时间常数,理解SCON寄存器中每一位的含义,能根据要求进行串行通信的初始化工作,完成简单的双机通信程序设计。,6.1 输入/输出(I/O)端口,MCS-51单片机有4个双向并行的8位I/O口P0P3,P0口为三态双向

3、口,可驱动8个TTL电路,P1、P2、P3口为准双向口(作为输入时,口线被拉成高电平,故称为准双向口),其负载能力为4个TTL电路。,6. 1.1 并行I/O口结构及功能,1. P0口的结构,关键理解P0口的作用,既可作普通I/O口,又用来作地址/数据总线,分时复用。,2.P1口结构,P1端口是单片机中唯一仅有单功能的I/O端口,输出信号锁存在端口上,故又称为通用静态端口。,3. P2口的结构,与P1口比较,P2口多了转换控制部分。P2口除了可以作普通I/O口使用,还可以作为地址总线的高8位。,4.P3口的结构,P3口的一位结构如图6-1-4所示。和P1口比较,P3口增加了一个与非门和一个缓冲

4、器,使其各端口线有两种功能选择。,6.1.2 应用实例,例6-1 在单片机P1.0P1.2三根口线上分别接有三个发光二极管,要求编程实现三个发光二极管循环依次闪亮。,源程序,#include void Delay(void); sbit P1_0=P10; sbit P1_1=P11; sbit P1_2=P12; void main(void) while(1) P1_1=0;P1_1=1;P1_2=1; /P1.0对应的LED亮 Delay(); P1_1=1;P1_1=0;P1_2=1; /P1.1对应的LED亮 Delay(); P1_1=1;P1_1=1;P1_2=0;/P1.2对应

5、的LED亮 Delay(); /延时子程序 void Delay(void) int i; for(i=0;i10000;i+); ,6.2 定时器/计数器,定时器/计数器简称定时器,8051系列单片机有2个16位的定时器/计数器:定时器0(T0)和定时器1(T1)。8052系列单片机增加了一个定时器T2。它们都有定时器或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。,.1 定时/计数器结构,T0由2个特殊功能寄存器TH0和TL0构成,T1则由TH1和TL1构成。 作定时器时,定时器计数8031片内振荡器输出经12分频后的脉冲,即每个机器周期使定时器(T0或T1)的寄存器自

6、动加1直至计满溢出。所以定时的分辨率是时钟振荡频率的1/12。 作计数器时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数,当输入脉冲信号从1到0的负跳变时,计数器就自动加1。计数的最高频率一般为振荡频率的1/24。 不论是定时或是计数工作方式,定时器T0或T1都不占用CPU时间,除非定时器/计数器溢出,才可能中断CPU的当前操作。由此可见,定时器是单片机中效率高而且工作灵活的部件。,.2 定时器/计数器工作方式,.2 定时器/计数器工作方式 除可选择定时或计数工作方式外,每个定时器/计数器还有4种工作模式。 模式0、1和2,T0和T1的工作模式相同,在模式3,两个定时器的模式不

7、同。,1 模式0,图6-2-1 定时/计数器T1(T0)工作模式0,由TL1的低5位和TH1的8位构成13位计数器。定时器启动后,定时或计数脉冲加到TL1,从预先设置的初值(时间常数)开始不断增1。TL1计满后向TH1进位,直至13位寄存器计满溢出。溢出时,13位寄存器清0。TF1置位并申请中断。如需进一步定时/计数,需用指令重置时间常数。模式0的结构如图6-2-1 。,2 模式1,模式1和模式0几乎完全相同,唯一的差别是:模式1中,定时器寄存器TH1和TL1组成16位计数器参与操作,从而比模式0有更大的定时/计数范围。模式1的结构见图6-2-2。,图6-2-2 定时/计数器T1(T0)工作模

8、式1,4 模式3,由于定时器T1无操作模式3。若将T0设置为模式3,TL0和TH0被分成为两个互相独立的8位计数器,如图6-2-4所示。,图6-2-4 定时/计数器T1(T0)工作模式3,6.2.定时/计数器的控制寄存器,定时器共有2个控制寄存器TMOD和TCON,由软件写入TMOD和TCON 两个8位寄存器,设置各个定时器的操作模式和控制功能。,1 工作模式控制寄存器TMOD(89H),TMOD在特殊功能寄存器中。TMOD的格式如图6-2-5所示。, 定时器控制寄存器TCON(88H),定时器控制寄存器除可字节寻址外,各位还可位寻址。,6.2.4 定时/计数常数的计算,1 初始化步骤 在使用

9、8051的定时器计数器前,应对它进行初始化编程,主要是对TCON和TMOD编程,计算和装载计数初值(也称做时间常数)。一般完成以下几个步骤: 1) 确定T/C的工作方式编程TMOD寄存器; 2) 计算T/C中的计数初值,并装载到THx和TLx; 3) T/C在中断方式工作时,须开CPU中断和源中断编程IE寄存器; 4) 启动定时器计数器编程TCON中TRl或TR0位。,2 计数初值的计算,定时器/计数器工作时必须给计数器设置计数器初值,这个计数器初值是送到TH(TH0/TH1)和TL(TL0/TL1)中的时间常数。 把计数器计满为零所需要的计数值(或脉冲个数)设定为C,计数初值设定为TC,由此

10、便可得到如下的计算公式: TC=M-C M为计数器模值,该值和计数器工作方式有关。在方式0时M为 ;在方式1时M为 ;在方式2和方式3时M为 。 也可以理解为TC为所需脉冲个数按位取反再加1,即 TC= +1,6.25 应用实例,例6-2-1:若单片机时钟频率为12MHZ,计算定时2ms所需的定时器初值。 解: 由于定时器工作在方式2和方式3下时的最大定时时间只有0.256ms,因此要想获得2ms的定时时间定时器必须工作在方式0或方式1。 T计数=12/12=1s 则定时所需脉冲个数为2ms/1s=2000个。 若采用方式0,则定时器的初值为: TC= -2000 =6192=1830H=11

11、00 0001 10000B 即: TH0应装C1H;TL0应装10H(TL1只用低5位,高3位填0)。 若采用方式1,则定时器的初值为: TC=216-2000 =63536=F830H 即: TH0应装F8H;TL0应装30H。,例6-2-2,在例6-2-1的基础上,要求从P1.1引脚输出周期为4ms的方波。 解:此处采用定时器0定时,通过查询TF0状态检查定时时间是否已到。由上例计算已知,定时器定时周期为2ms,TH0= F8H;TL=30H。,C51源程序,#include / 805I系列的寄存器头文件 sbit P1_1=P11; void main(void) TMOD=0x01

12、; /定时器0方式1 TH0=0xf8; TL0=0x30; /装入时间常数 TR0=1; /启动定时器 while(1) while(!TF0); /查询TF0状态,时间未到则空等待 P1_1=!P1_1; /P1.1取反 TH0=0xf8; TL0=0x30; /装入时间常数 ,63 中断,6.3.1 中断的基本概念 当CPU正在处理某件事情时,外部发生了某一事件(如定时器/计数器溢出,被监视电平突变等)请求CPU迅速去处理,于是CPU暂时中断当前的工作,转去处理所发生的事件;中断服务处理完成后,再回到原来被中断的地方,继续原来的工作。这一过程称为中断,如图6-3-1所示。,图6-3-1

13、中断流程,8051的中断系统,能处理中断的功能部件称为中断系统,能产生中断请求的源称为中断源。 8051单片机中断系统的基本特点是:有5个固定的中断源,3个在片内,2个在片外。它们在程序存储器中各有固定的中断入口地址,由此进入中断服务程序;5个中断源有两级中断优先级,可形成中断嵌套;2个特殊功能寄存器用于中断控制的编程。 对于8052单片机来说,则多一个中断源定时器T/C2。,8051的中断源,外部中断源: 由P3.2端口线引入,低电平或下降沿引起。 由P3.3端口线引入,低电平或下降沿引起。 这两个外部中断源和它们的触发方式控制位锁存在特殊功能寄存器TCON的低4位。 内部中断源: T0:定

14、时器/计数器0中断,由T0回零溢出引起。 T1:定时器/计数器1中断,由T1回零溢出引起。 TI/RI:串行I/O中断,串行端口完成一帧字符发送/接收后引起。 这3个内部中断源的控制位分别锁存在特殊功能寄存器TCON和SCON中。,6.3.2 中断系统的结构,6.3. 中断的控制,1 中断允许寄存器IE(A8H) IE在特殊功能寄存器中,字节地址A8H,位地址(由低位到高位)分别是A8HAFH。IE控制CPU对中断源总的开放或禁止以及每个中断源是否允许中断。,2 中断优先寄存器IP(B8H),IP在特殊功能寄存器中,字节地址为B8H,位地址(由低位到高位)分别是B8HBFH,IP用来锁存各中断

15、源优先级的控制位,即设定中断源属于两级中断中的哪一级(用户可用软件设定),中断优先级的响应,系统复位后,IP低5位全部清零,并将所有中断源设置为低优先级中断。 如果几个同优先级的中断源同时向CPU申请中断,哪一个申请得到服务,取决于它们在CPU内部登记排队的序号。CPU通过内部硬件查询登记序号,按自然优先级响应各个中断请求。其内部登记序号是由硬件形成的,先后顺序如下: T0 T1RI/TI,6.3. 中断响应过程及中断入口地址,下列任何一种情况存在时,中断申请将被封锁。 (1)CPU正在执行一个同级或高一级的中断服务程序; (2)当前正在执行的那条指令还未执行完; (3)当前正在执行的指令是R

16、ETI或对IE,IP寄存器进行读/写指令,执行这些指令后至少再执行一条指令才会响应中断。,中断入口地址,中断得到响应后,自动清除中断请求标志(对串行口中断请求标志,要用软件清除),由硬件自动将程序计数器PC内容(断点地址)压入堆栈保护,然后将对应的中断矢量装入程序计数器PC,使程序转向该中断矢量地址单元中,去执行相应的中断服务程序。 各个中断源在程序存储器中的中断入口地址如下: 中断源 入口地址 外部中断0 0003H 定时器0溢出 000BH 外部中断1 0013H 定时器1溢出 001BH 串行口 0023H,6.3.5 C51中断程序设计,C51编译器支持在C源程序中直接嵌入中断服务程序,C51提供的中断函数定义语法如下: 返回值类型 函数名 interrupt n n对应中断源的编号,Keil C51支持最大值为31。 void timer0(void) int

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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