单片机总复习二_第1页
单片机总复习二_第2页
单片机总复习二_第3页
单片机总复习二_第4页
单片机总复习二_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

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

文档简介

11第5章目录5.1AT89C51中断技术概述5.2AT89C51中断系统结构

5.2.1中断请求源

5.2.2中断请求标志寄存器5.3中断允许与中断优先级的控制

5.3.1中断允许寄存器IE

5.3.2中断优先级寄存器IP5.4响应中断请求的条件5.5外部中断的响应时间25.6外部中断的触发方式选择

5.6.1电平触发方式

5.6.2跳沿触发方式5.7中断请求的撤销5.8中断服务子程序的设计5.9多外部中断源系统设计3单片机外部或内部发生重要事件,需要CPU暂停当前工作,转向处理该事件服务程序,之后继续原来被暂停的工作,该过程称为中断。89C51有5个中断源,具有两个中断优先级,可实现两级中断嵌套。456中断请求中断撤销:定时/计数器中断撤销自动

外部中断

跳沿方式:自动

电平放式:手动强制将引脚置为高电平

串口中断:

手动,软件方法外部中断触发方式:电平触发、跳沿触发外部中断响应时间:3~8个机器周期之间。7中断框架结构:ORG 0000H

LJMPMAIN

ORG

X1X2X3X4H;X1X2X3X4H为某中断源的中断入口 LJMP

INT ;INT为某中断源的中断入口标号 ……

ORGY1Y2Y3Y4H

;Y1Y2Y3Y4H为主程序入口MAIN:

主程序INT:

中断服务子程序8多外部中断源系统设计:9假设图5-10中的4个外设中有一个外设提出高电平有效的中断请求信号,则中断请求通过4个集电极开路OC门的输出公共点,即

脚的电平就会变低。究竟是哪个外设提出的请求,要通过程序查询P1.0~P1.3引脚上的逻辑电平来确定。本例假设某一时刻只能有一个外设提出中断请求,并设IR1~IR4这4个中断请求源的高电平可由相应的中断服务子程序清“0”,则中断服务子程序如下:910ORG 0013H ;

INT1*的中断入口LJMP INT1 ……ORG 0100HINT1: PUSH PSW ;保护现场 PUSH Acc JB P1.0,IR1 ;如P1.0为高,则IR1有请求, ;跳IR1处理 JB P1.1,IR2 ;如P1.1为高,则IR2有请求, ;跳IR2处理 JB P1.2,IR3 ;如P1.2为高,则IR3有请求, ;跳IR3处理 JB P1.3,IR4 ;如P1.3为高,则IR4有请求, ;跳IR4处理1011IR1:

AJMP INTIR

;IR1处理完,跳INTIR处执行IR2:

AJMP INTIR ;IR2处理完,跳INTIR处执行IR3:

AJMP INTIR ;IR3处理完,跳INTIR处执行IR4:

AJMP INTIR ;IR4处理完,跳INTIR处执行11IR1的中断处理子程序IR2的中断处理子程序IR3的中断处理子程序IR4的中断处理子程序INTIR:POP Acc ;恢复现场 POP PSW RETI ;中断返回12习题:1.若(IP)=00010100B,则优先级最高者位(INT1)最低者为(T1)2.判断89C51对外部中断请求源响应最快的响应时间为3个机器周期()3.下列说法正确的是()A各中断源发出的中断请求信号,都会标记在89C51中的IE寄存器中。B各中断源发出的中断请求信号,都会标记在89C51中的IP寄存器中。C各中断源发出的中断请求信号,都会标记在89C51中的TMOD寄存器中。D各中断源发出的中断请求信号,都会标记在89C51中的SCON寄存器中。134.在89C51的中断请求源中,需要外加电路实现中断撤销的是()A电平方式的外部中断。B脉冲方式的外部中断C外部串行中断D定时中断5.中断服务子程序与普通子程序有哪些相同和不同之处?1414第6章目录6.1定时器/计数器的结构

6.1.1工作方式控制寄存器TMOD

6.1.2定时器/计数器控制寄存器TCON6.2定时器/计数器的4种工作方式

6.2.1方式0

6.2.2方式1

6.2.3方式2

6.2.4方式36.3对外部输入的计数信号的要求156.4定时器/计数器的编程和应用

6.4.1方式1的应用

6.4.2方式2的应用

6.4.3方式3的应用

6.4.4门控制位GATEx的应用—测量脉冲宽度

6.4.5实时时钟的设计16计数寄存器:TH0,TL0TH1,TL1控制寄存器:TMOD,TCON17工作方式0工作方式1工作方式2工作方式318对外部输入的计数信号的要求外部输入的计数脉冲的最高频率为系统振荡器频率的1/24。定时器/计数器编程和应用选择合适工作方式:方式0最长可定时16.384ms;

最大计数值2.13方式1最长可定时131.072ms;最大计数值2.16方式2最长可定时512

s。

最大计数值2.819计数初值计算:(最大计数值-X)*机器周期=时间要求程序框架: ORG 0000H AJMP IINI ;跳到初始化程序 ORG 000BH AJMP IT0P ;跳到外中断处理程序20IINI: MOV TMOD,#06H ;设置T0为方式2 MOVTL0,#0FFH ;设T0初值

MOVTH0,#0FFH

SETBET0 ;允许T0中断

SETBEA ;总中断允许

SETB TR0 ;启动T0 ……IT0P:定时中断处理程序段216.4.4门控制位GATEx的应用—测量脉冲宽度介绍门控制位GATE的具体应用,测量

(P3.3)引脚上正脉冲的宽度。【例6-7】门控位GATE1可使T1的启动计数受的控制,当GATE1

=

1,TR1=1时,只有

INT1*引脚输入高电平时,T1才被允许计数。可测量

引脚(P3.3)上正脉冲的宽度。其方法如图6-16所示。

21图6-16利用GATE位测量正脉冲的宽度22参考程序:

ORG 0000HRESET:AJMPMAIN ;复位入口转主程序

ORG0100H

;主程序入口MAIN:

MOV SP,#60H MOV TMOD,#90H ;向TMOD写控制字,T1为方 ;式1定时,GATE1

=

1 MOV TL1,#00H MOV TH1,#00HLOOP0:JB P3.3,LOOP0 ;等待

SETBTR1 ;如

为低,启动T12223LOOP1:JNBP3.3,LOOP1;等待

升高LOOP2:JBP3.3,LOOP2;为高,此时计数器计数, ;等待

降低

CLRTR1;停止T1计数 MOV A,TL1;T1计数值送A ;将T1计数值送显示器

…… END执行以上程序,使

引脚上出现的正脉冲宽度以机器周期数的形式显示在显示器上。23将A中的T1计数值送到显示器显示24作为外部中断源的使用方法:TH0TL0初值置0FFH读运行中的计数器计数值:先读THx后读TLx再读THx,若两次读得一致则正确;否则重复再读。习题:1用作定时器时,其计数脉冲由谁提供?定时时间与哪些因素有关?6.66.102525第7章目录7.1串行口的结构

7.1.1串行口控制寄存器SCON

7.1.2特殊功能寄存器PCON7.2串行口的4种工作方式

7.2.1方式0

7.2.2方式1

7.2.3方式2

7.2.4方式37.3多机通信0267.4波特率的制定方法

7.4.1波特率的定义

7.4.2定时器T1产生波特率的计算27两个控制寄存器SCONPCON28工作方式0工作方式1工作方式2、329多机通信的工作过程:(1)各从机初始化程序允许从机的串行口中断,将串行口编程为方式2或方式3接收,即9位异步通信方式,且SM2和REN位置“1”,使从机处于多机通信且只接收地址帧的状态。(2)在主机和某个从机通信之前,先将从机地址(即准备接收数据的从机)发送给各个从机,接着才传送数据(或命令),主机发出的地址帧信息的第9位为1,数据(或命令)帧的第9位为0。当主机向各从机发送地址帧时,各从机的串行口接收到的第9位信息RB8为1,且由于各从机的SM2=1,则RI置“1”,各从机响应中断,在中断服务子程序中,判断主机送来的地址是否和本机地址相符合,若为本机地址,则该从机SM2位清“0”,准备接收主机的数据或命令;若地址不相符,则保持SM2

=

1。30(3)接着主机发送数据(或命令)帧,数据帧的第9位为0。此时各从机接收到的RB8

=

0。只有与前面地址相符合的从机(即SM2位已清“0”的从机)才能激活中断标志位RI,从而进入中断服务程序,接收主机发来的数据(或命令);与主机发来的地址不相符的从机,由于SM2保持为1,又RB8

=

0,因此不能激活中断标志RI,就不能接受主机发来的数据帧。从而保证主机与从机间通信的正确性。317.4.2定时器T1产生波特率的计算和串行口的工作方式有关。(1)方式0时,波特率固定为时钟频率fosc的1/12,不受SMOD位值的影响。若fosc

=

12MHz,波特率为1Mbit/s。(2)方式2时,波特率仅与SMOD位的值有关。

方式2波特率

=

fosc若fosc

=

12MHz:

SMOD

=

0,波特率

=

187.5kbit/s;SMOD

=

1,波特率

为375kbit/s。(3)方式1或方式3定时,常用T1作为波特率发生器,其关系式为3132波特率

=

定时器T1的溢出率

(7-1)由式(7-1)见,T1溢出率和SMOD的值共同决定波特率。在实际设定波特率时,T1常设置为方式2定时(自动装初值),即TL1作为8位计数器,TH1存放备用初值。这种方式操作方便,也避免因软件重装初值带来的定时误差。设定时器T1方式2的初值为X,则有

定时器T1的溢出率

=

(7-2)3233习题:1帧格式为:1个起始位,8个数据位和1个停止位的异步通信是方式()2串行口工作方式1的波特率是:A固定的,为fosc/32B固定的,为fosc/16C可变的,通过定时器T1溢出率设定D固定的,为fosc/643简述利用串行口进行多级通信原理。34第八章单片机扩展存储器设计系统扩展结构总线:地址、数据、控制存储器地址空间分配:线选法译码法74LS13874LS373EX8-1EX8-4PIC8-20PIC8-13PIC8-14PIC8-18PIC8-1935习题1单片机存储器的主要功能是存储()和()2假设外部数据存储器2000H单元的内容为80H,0020H单元内容为50H,片内数据存储器20H单元内容为30H,执行玩下列指令后累加器A中的内容为()MOVP2,#20HMOVR0,#00HMOVXA,@R0363编写程序,将外部数据存储其中的4000H~40FFH单元全部清“0”。4在89C51中,PC和DPTR都用于提供地址,但PC是为访问()存储器提供地址,而DPTR是为访问()存储器提供地址。511条地址线可选()个存储单元,16KB存储单元需要()条地址线。37第九章

扩展I/O接口的设计I/O端口编制方式:I/O数据传送方式:3839PIC9-10习题:82C55的方式控制字和PC口按位置位/复位控制字都可以写入82C55的同一控制寄存器,82C55是如何来区分这两个控制字的?40PC口分两部分,随PA口称为A组,随PB口称为B组。其中PA口可工作于方式0、1和2,而PB口只能工作在方式0和1。【例9-1】

AT89S51向82C55的控制字寄存器写入工作方式控制字95H,根据图9-3,将82C55编程设置为:PA口方式0输入,PB口方式1输出,PC口的上半部分(PC7~PC4)输出,PC口的下半部分(PC3~PC0)输入。MOV DPTR,#××××H ;控制字寄存器端口地址

;××××H送DPTRMOV A,#95H ;方式控制字83H送AMOVX @DPTR,A ;控制字83H送控制字寄存器40412.PC口按位置位/复位控制字为另一控制字。即PC口中任何一位,可用一个写入82C55控制口的置位/复位控制字来对PC口按位置“1”或清“0”。用于位控。格式如图9-4所示。【例9-2】AT89S51向82C55的控制字寄存器写入工作方式控制字07H,则PC3置1;08H写入控制口,则PC4清0。程序段如下:MOV DPTR,#××××H ;控制寄存器端口地址

;××××H送DPTRMOV A,#07H ;方式控制字83H送A4142【例9-3】

假设82C55的控制字寄存器端口地址为FF7FH,令PA口和PC口的高4位为方式0输出,PB口和PC口的低4位为方式0输入,初始化程序:MOV DPTR,#0FF7FH ;端口地址#0FF7F送DPTRMOV A,#83H ;方式控制字83H送AMOVX @DPTR,A ;控制字83H送控制字寄存器42433.软件编程在实际设计中,须根据外设的类型选择82C55的操作方式,并在初始化程序中把相应控制字写入控制口。下面根据图9-10,介绍对82C55进行操作的编程。【例9-4】要求82C55工作在方式0,且PA口作为输入,PB口、PC口作为输出,程序如下:MOV A,#90H ;控制字送AMOV DPTR,#0FF7FH;控制寄存器地址FF7FH→DPTR4344MOVX @DPTR,A ;方式控制字→控制寄存器MOV DPTR,#0FF7CH ;PA口地址FF7CH→DPTRMOVX A,@DPTR ;从PA口读入数据→AMOV DPTR,#0FF7DH ;PB口地址FF7DH→DPTRMOV A,#data1 ;要输出的数据#data1→AMOVX @DPTR,A ;将#data1送PB口输出MOV DPTR,#0FF7EH ;PC口地址→DPTRMOV A,#data2 ;数据#data2→AMOVX @DPTR,A ;将数据#data2送PC口输出4445第十一章单片机和D/AA/D转换器的接口PIC11-4EX11-146现举例说明单缓冲方式下DAC0832的应用。【例11-1】

DAC0832用作波形发生器。试根据图11-3,分别写出产生锯齿波、三角波和矩形波的程序。在图11-3中,运算放大器A输出端Vout直接反馈到Rfb,故这种接线产生的模拟输出电压是单极性的。产生上述三种波形的参考程序如下。①锯齿波的产生

ORG 2000HSTART: MOV R0,#0FEH ;DAC地址FEH→R0 MOV A,#00H ;数字量→A4647LOOP: MOVX @R0,A ;数字量→D/A转换器 INC A ;数字量逐次加1 SJMP LOOP当输入数字量从0开始,逐次加1进行D/A转换,模拟量与其成正比输出。当A

=

FFH时,再加1则溢出清0,模拟输出又为

温馨提示

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

评论

0/150

提交评论