第一范文网 - 专业文章范例文档资料分享平台

单片机原理与接口技术实验指导(c语言版) (7)

来源:用户分享 时间:2020-06-23 本文由一枚小可爱 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

PT1:T1中断优先级控制位。 PX1:外部中断1优先级控制位。 PT0:T0中断优先级控制位。 PX0:外部中断0优先级控制位。

当某几个中断源在IP寄存器相应位同时为1或0,有内部查询确定优先级,优先级先响应先查询的中断请求。CPU查询的顺序是:

INT0—>T0—>INT1—>T1—>TI/RI—>T2

中断优先原则:(概括为四句话) 1)、低级不打断高级 2)、高级不睬低级 3)、同级不能打断 4)、同级、同时中断,事先约定。

例:设有如下要求,将T0、外中断1设为高优先级,其它为低优先级,求IP的值。

IP的首3位没用,可任意取值,设为000,后面根据要求写就可以了 PS PT1 PX1 PT0 PX0 — — — 0 0 0 0 0 1 1 0 因此,最终,IP的值就是06H。

例:在上例中,如果5个中断请求同时发生,求中断响应的次序。

响应次序:定时器0->外中断1->外中断0->实时器1->串行中断

3. 中断处理过程

(1) 中断请求

中断请求是由是有硬件完成的,当又中断请求时,中断请求标志位会硬件自动置1,系统就会检测到这个请求信息。

(2) 中断响应

1) 中断响应的条件:

中断响应是CPU对中断请求响应的过程,包括保护断点和将程序转向中断服务的入口地址。必须满足的条件是: ①中断源发出中断请求 ②终端总允许位EA=1 ③申请中断的中断源允许 2) 中断响应过程:

首先,中断系统通过硬件自动生成长调用指令,该指令将自动把断点地址压入堆栈保护。然后,将对应的中断入口地址装入程序计数器PC(有硬件自动执行),使程序转向该中断的入口地址,执行中断服务程序。

MCS-51系列单片机各中断源的入口地址由硬件事先设定,使用时,通

常在者些中断入口地址存放一条绝对调转指令,使程序跳转到用户安排的中断服务程序的其实地址中。

(3) 中断处理

中断处理就是执行中断服务程序。中断服务程序从中断入口地址开始执行,到返回指令RETI为止,一般包括两个部分:一是保护现场,二是完成中断源请求的服务。 需要注意的问题:

1) 各个中断源的入口地址之间只相隔8个字节,不可能放得下中断服

务程序,故在中断入口地址单元通常存放一条无条件转移指令,可将中断服务程序存放在存储器的其它空间。

2) 若要在只执行当前中断服务程序是禁止其它更高优先级中断,需要

软件禁止相应优先级高的中断,在中断返回后再开放中断。 3) 中断服务程序中用到的寄存器要进行保护。

(4) 中断返回

中断返回是指中断服务完成之后,计算机返回原来的断开位置(即断点),

继续执行原来的程序。中断返回由返回指令RETI来实现。该指令的功能是把断点地址从堆栈中弹出,送回到程序计数器PC,此外,还要通知通知中断系统已经完成中断处理,并同时清楚优先级状态触发器。

需要注意的是不能用“RET”来代替“RETI”。

总结起来,整个中断处理的过程就是四个阶段:中断请求、中断响应、中断处理、中断返回。CPU相应中断后,在3—8个机器周期内就会执行用户的中断服务程序,程序员在中断服务程序中实现所需要的中断处理,处理完成后返回到原程序继续执行。

实验7 定时器实验

1、实验目的

1.全面掌握定时器及中断的运用 2.了解时钟的工作原理和编程方法 2、实验原理

在工业检测、控制中,很多场合都要用到计数或者定时功能。例如对外部脉冲进行计数、产生精确的定时时间、作串行口的波特率发声器等。MCS-51 单片机内部有两个可编程的定时器/计数器,以满足这方面的需要。

它们具有两种工作模数(计数器模式、 定时器模式)和四种工作方式(方式0、方式1、方式2、方式3),其控制字均在相应的特殊功能寄存器(SFR)中,通过对它的SFR 的编程,可以方便的选择工作模数和工作方式。

80C51 单片机内部设有两个16 位的可编程定时器/计数器。可编程的意思是指其功能(如工作方式、定时时间、量程、启动方式等)均可由指令来确定和改变。在定时器/计数器中除了有两个16 位的计数器之外,还有两个特殊功能寄存器(控制寄存器和方式寄存器)。

1) 定时/计数器T0、T1工作原理

定时/计数器实质上是一个加1计数器,它可以工作在定时方式,也可以工作在计数方式,两种工作方式实际上都是对脉冲计数,只不过所计脉冲的来源不一样。

·定时方式

定时方式,计数器的计数脉冲来自自振荡器的12分频后的脉冲(Fosc/12),及对系统机器周期计数。每过一个机器周期,计数器TH0、TL0、(TH1、TL1)加1,直至计满预设的个数,TH0、TL0、(TH1、TL1)回零,定时/计数器溢出中断标志位TF0(TF1)被置位,产生溢出中断。

·计数方式

计数器T0、T1的计数脉冲分别来自引脚T0(P3.4)或引脚T1(P3.5)上的外部脉冲。计数器对外部能充的下降沿进行加1计数,直至计满,则回零,定时/计数器的中断标志位置1,产生中断。由于检测一个人由1到0的跳变需要2个机器周期,故计数脉冲的频率不能超过Fosc/24。

2)定时器/计数器的方式寄存器TMOD

定时器方式控制寄存器TMOD 在特殊功能寄存器中,字节地址为89H,无位地址。TMOD 的格式如下图所示。

D7 D6 D5 D4 D3 D2 D1 D0 GATE C/T M1 M0 GATE C/T M1 M0

由图可见,TMOD 的高4 位用于T1,低4 使用于T0。4 种符号的含义如下:

GATE:门控制位。GATE 和软件控制位TR、外部引脚信号INT 的状态,共同控制定时器/计数器的打开或关闭。

GATE=1 时,T0、T1 是否计数要受到外部引脚输入电平的控制,INT0 引脚控制T0、INT1 引脚控制T1。可用于测量在INT0 和INT1 引脚出现的正脉冲的宽度。若GATE=0,即不使能门控功能,定时计数器的运行不受外部输入引脚INT0、INT1 的控制。

C/T:定时器/计数器选择位。C/T=1,为计数器方式;C/T=0,为定时器方式。 当为定时器模式时,内部计数器对晶振脉冲12 分频后的脉冲计数,该脉冲周期等于机器周期,所以可以理解为对机器周期进行计数。从计数值可以求得计数的时间,所以称为定时器模式。在计数器模式时,计数器对外部输入引脚T0(P3.4)或T1(P3.5)的外部脉冲(负跳变)计数,允许的最高计数频率为晶振频率的1/24。

M1M0:工作方式选择位,定时器/计数器的4 种工作方式由M1M0 设定。 M1/M0 工作方式 0 0 工作方式0(13位方式) 0 1 工作方式1(16位方式) 1 0 工作方式2(8位自动装入计数初值方式) 1 1 工作方式3(T0为2 个8位方式)

例如:设置T0工作于定时、自启动、方式2,设置语句为:MOV TMOD,#02H 3)定时器/计数器控制寄存器TCON

TCON 在特殊功能寄存器中,字节地址为88H,位地址(由低位到高位)为88H~8FH,由于有位地址,十分便于进行位操作。

TCON 的作用是控制定时器的启停,标志定时器溢出和中断情况。TCON 的格式如下图所示。

D7 D6 D5 D4 D3 D2 D1 D0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

其中,TFl、TRl、TF0 和TR0 位用于定时器/计数器;IE、ITl、IE0 和IT0 位用于中断系统。

各位定义如下:

TF1:定时器1 溢出标志位。当计时器1 计满溢出时,由硬件使TF1 置“1”,并且申请中断。进入中断服务程序后,由硬件自动清“0”,在查询方式下用软件清“0”。

TR1: 定时器1 运行控制位。由软件清“0”关闭定时器1。当GATE=1,且INT1 为高电平时,TR1 置“1”启动定时器1;当GATE=0,TR1 置“1”启动定时器1。

TF0: 定时器0 溢出标志。其功能及操作情况同TF1。 TR0: 定时器0 运行控制位。其功能及操作情况同TR1。 IE1: 外部中断1 请求标志。

IT1: 外部中断1 触发方式选择位。 IE0: 外部中断0 请求标志。

IT0: 外部中断0 触发方式选择位。 4)定时器/计数器的初始化

由于定时器/计数器的功能是由软件编程确定的,所以一般在使用定时/计数器前都要对其进行初始化,使其按设定的功能工作。初始化的步骤一般如下:

1、确定工作方式( 即对TMOD 赋值); 2、预置定时或计数的初值;

定时/计数器的工作方式不同,其最大计数值也不同,即其模值不同,由于采样加1

计数,为了是计数满后回零,计数初值应该为负。计算机中的负值用补码表示,求补码的方法是用模减去该负数的绝对值。

·计数器初值求法

计数负数:计数初值=模—X(其中X为要计的脉冲的个数)

定时方式:计数初值=【t/MC】补=模—[t/MC] (其中t为预定时间,MC为单片机

的机器周期,MC=12/Fosc)

例如:要计50个脉冲的计数初值

方式0:C=(32H)补=2000H—32H=1FCEH

方式1:C=(32H)补=10000H—32H=1F9CH 方式2:C=(32H)补=100H—32H=CEH

·初值装入方法

方式0是13位的,计数初值的高8位装入TH0(TH1),低5位装入TL0(TL1)

的低5位。对于上面的例子按如下方式进行:

1FCEH=00011111110 01110 TH0 TL0 (其中高三位无效)

方式1为16位,只需将初值的低8位给TL0(TL1),高8位给TH0(TH1)。

方式2为8位自动装入初值方式,初值既要装入TH0(TH1),也要装入TL0(TL1)。但是当计数溢出产生中断之后,在终端服务程序中,用户不需要在人为的软件装入初值,它会自动装入初值。

3、根据需要开放定时器/计数器的中断(直接对IE位赋值);

4、启动定时器/计数器(若已规定用软件启动,则可把TR0或TR1置“1”;若已规定由外中断引脚电平启动,则需给外引脚加启动电平。)当实现了启动要求后,定时器即按规定的工作方式和初值开始计数或定时。

3、实验内容

使用定时器T0,控制一个LED灯的亮灭。灯的闪烁频率为40ms。 4 实验步骤

(1)新建工程timer

(2)在keil集成开发环境下,编写并输入程序,保存为timer.asm(timer.c); (3)在工程源文件中添加文件light.asm(timer.c); (3)编译、连接并生成目标文件;

(4)进入调试状态,单步运行程序,查看片内片外存储器对应单元的数据变化情况。 (5)全速运行程序,观察运行结果。 4 实验参考程序 //端口定义

sbit ledport=P1^0; //============================================

//函 数 名: main()

//功能描述: 利用定时器T0实现时钟功能 //输入参数: 无 //输出参数: 无

//=========================================== void main(void) { TMOD=0x01; //T0定时器工作方式1 TH0=0x63; TL0=0xC0; //40MS中断

ET0=1; //开定时器T0中断 EA=1; //开总中断 TR0=1; //启动定时器T0 while(1);

}

//============================================== //函 数 名: ISR_T0() //功能描述: T0中断函数

//输入参数: 无 //输出参数: 无

//============================================== void ISR_T0(void) interrupt 1 {

TH0=0x63; TL0=0xC0; //重装20MS中断 if(ledport==1)ledport=0; else ledport=1; }

实验8 流水灯控制实验

1 实验目的

(1)熟悉并行接口P0~P3的内部结构 (2)掌握I/O口的基本控制。 2实验原理

(1)8051单片机有4个并行双向I/O口P0、P1、P2、P3,外设可以直接连接在这几个接口

上,每个端口可以按字节输入输出,也可以按位进行输入输出。下面对P0~P3接口的功能进行描述。

P0口:①可以作输入输出口,外接输入输出设备。

需要用户注意的是在作为输入口时,应先对该口写“1”,再进行读操作。 ②在有外接存储器和I/O接口时常作为低8位地址/数据总线,即低8位地址与

数据线分时使用P0口。此时低8位地址由ALE信号的下跳沿使它锁存到外部地址锁存器中,然后,P0口出现数据信息。

P1口:只有单一的输入输出接口功能。和P0口相同,P1口在作为输入口的时候,也

要先进行写“1”,操作,才能读。具体的操作与P0口相同,不再赘述。

P2口:①可作为输入输出口使用。

②在有外接存储器和I/O接口时,作为高8位的地址总线,与P0口低8位地址

一起组成16位地址总线。对于片内无程序存储器的单片机来说,P2口只作为地址总线使用,而不作为I/O口。

P3口:①可作为输入输出口,其操作方法和P2口相同 ②据用第二功能。每一位功能定义如表4.1: 端口引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 第二功能 RXD(串行输入线) TXD (串行输出线) INT0(外部中断0输入线) INT1(外部中断1输入线) T0(定时器0外部计数脉冲输入) T1(定时器1外部计数脉冲输入) WR(外部数据存储器写选通信号输出) RD(外部数据存储器读选通信号输出) 由LED电路可看出要使该灯亮,就必须将其对应的发光二极管负端拉低。而由跳线电路可见发光二极管的负端是与P1口对应的,如要是LED1亮,则需P1.0置“0”,即完成给

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新高中教育单片机原理与接口技术实验指导(c语言版) (7)全文阅读和word下载服务。

单片机原理与接口技术实验指导(c语言版) (7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1098995.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top