第4章51单片机内部功能模块及其应用单片机.docx
《第4章51单片机内部功能模块及其应用单片机.docx》由会员分享,可在线阅读,更多相关《第4章51单片机内部功能模块及其应用单片机.docx(79页珍藏版)》请在三一文库上搜索。
1、第4章51系列单片机的功能模块及其应用本章介绍51内部接口的应用。51系列单片机内部集成了: CPUUI条指令 ROM0K4K8K (可扩为 64KB) 内 RAM128/256 B (可扩外部 64KB) 定时/计数器接口2个/3个16位定时/计数器TO、TK T2 全双工异步串行通信接口一 并行接口提供4个8位并行端口 中断控制器一可以管理5个/6个中断源接口电路(InterfaCe) 简称“接口”,是连接CPU总线和外设的桥梁。接口卡=适配器(Adapter)复杂接口电路,仅仅一片IC还不够,需要以某种核心IC芯片搭配外围元器件构造成一个 电路板。比如:网卡、声卡、显卡、数据采集卡、图像
2、采集卡等。端口 (Port)简称“巴是指接口电路中的寄存器,硬件连线决定了每 个寄存器的I/O地址,对接口电路的编程实质是对接口寄存器的编程。CPU控制外设的实质就是控制接口电路,控制接口电路的实质就是控制接口寄存器。4.0中断系统4.0.1中断概念(教材第2章第5节)中断是针对“条件I/O”的外设而设置的一种I/O工作方式(另一种方式是查询)。与查询方 式相比,中断方式减少了 CPU的负担,是计算机系统中重要概念和必不可少的内容。举例:把人看成CPU,手表和电话看成是外设,访问这两个外设就是两种I/O类型:手表一无条件I/O的典型,随时可以访问,自然也不涉及查询和中断方式的选择。电话条件I/
3、O的典型,可以设计成查询方式,也可以设计成中断方式。显然,查询方式用 在这里很“愚蠢”!而采用中断方式就很自如。实现中断工作方式的几个条件: 外设能够产生中断申请信号; CPU支持中断工作方式CPU能够接受外设的中断申请并做出响应; 有一个独立于CPU的中断控制电路一能够区分多路中断源,进行中断允许和优先权设置。正确使用中断需要搞清:中断屏蔽、优先权、响应过程、激活方法、中服调用和返回等。4.0.2 51单片机的中断系统51单片机内部集成了一个中断接口电路(中断控制电路)。1 .中断源51子系列的中断接口电路可以连接5路中断信号(中断源),分别为:INTO、INTK定时器0、 定时器1、串口。
4、前2个是用户可以随意安排使用的,后3个已经固定连接到内部接口电路。图中凡是开关就是控制环节,每个控制环节的通过控制寄存器的设置来实现。硬件查询52子系列的中断系统:比51子系列多了 1个中断源T2。INTOTFOINTlTFl埼RTF2 EXF2ES IO-ET2 I oooEA中金开放中断开放IP寄存器高级中断请求中断查询 k顺序C级中断请求图2-IS 89C52中断系统结构外部中断源INTO、INTl 内部中断源3个定时器中断TFO、TF1 TF2+EXF2 1个串口中断RI+TI2 .中断控制寄存器51单片机的中断控制寄存器有2个(IE和IP),以及TCON的低4位。中断允许寄存器IE
5、A8H) : 1允O禁EAET2ESETlEXlETO EXOEA:总允许位,EA=O禁止一切中断,EA=I总体允许;ET2:定时器2中断允许位,EXl = I允许,EXl=O禁止;ES:串行口中断允许位,ES=I允许,ES=O禁止;ET1:定时器1中断允许位,ETl = I允许,ETl=O禁止;EX1:外部中断1允许位,EXl = I允许,EXl=O禁止;ETO:定时器0中断允许位,ETO=I允许,ETO=O禁止;EXO:外部中断0允许位,EXO=I允许,EXo=O禁止。中断优先级寄存器IP(B8H) : 1高O低XXPT2PSPTlPXlPTOPXO中断源有一个固定的查询顺序,称为内部辅
6、助优先级(同级隐含优先级)。(见上图)定时器电路有一个TCoN中的寄存器,其高4位是关于定时器的控制,而低4位则是关于外部中断INTl和INTO的控制。(后面具体介绍!)TFlTRlTFOTROIElITlIEOITO3 .中断优先级的作用:两个中断同时申请,高优先级的中断申请先被响应;高优先级的申请可以中断低级的响应(中断嵌套),同级不可中断;内部辅助优先级:同级中断同时申请,由内部固定的查询顺序决定响应顺序;中断受阻三情况:同级或高级中断正在服务;当前执行的指令没有结束;正执行RETI指令,则返回后至少再执行一条指令才响应中断。4 .中断响应过程(单片机在每个机器周期的S5P2期间对5个中
7、断源检测一次,所以任何中断申请都可以在1 个机器周期内被CPU发现) 中断源发出中断申请,单片机检测到某个中断请求,等待当前指令执行完毕(可能是1、2、 4个机器周期的指令),从下一个机器周期的Sl开始响应中断; 优先级激活触发器置位,阻断同级和低级中断,清除中断请求标志; 硬件实现当前PC值入栈(为中断返回做准备); 5个特定中断入口地址(中断矢量)之一近入PC, (PSW不会自动入栈); 中服结尾RETl (优先级激活触发器清0,栈顶2字节弹给PC)。5 .中断请求的撤除一个中断申请信号在中断被响应之后应该立即撤消,否则会引起重复中断。内部定时器的TO、Tl的中断(TFK TFO)可以自动
8、撤除;内部定时器的T2中断(TF2和EXF2)不会自动撤除,需要程序撤除;串行通信的中断(TI、RD不会自动撤除,需要编程时软件撤除,由于这些中断信号都是内部 寄存器的某一位,只需在中服中增加对该位的清零指令就可以撤除该项中断申请;外中断在沿触发时也是自动撤除(本来就维持不住,IEX是自动撤除的);只有外中断采用电 平触发时需要自己从硬件上考虑撤除方案。6 .外部中断响应时间毫不受阻的情况下,从提出申请到被响应需要3个机器周期。如果受阻,除了正在执行高级或 同级中断服务程序时间无法确定以外,另外两种受阻的最长等待时间为5个机器周期,合计8个 机器周期。4.0.3外部中断触发方式选择1.外部中断
9、两种激活方式中断请求信号必须有一定形式,51单片的三个内部中断都是在控制寄存器中有相应的中断位 (TRK TRO, TK RI),事件出现则置位,可以看出是属于电平触发方式。内部中断触发信号(3 个定时器和串口)是设计单片机的时候统一设计的,所以信号固定、可靠。对于两个外部中断INTl 和INTO,是由用户连接某种外部端口产生的中断申请,中断申请信号的形式不确定,当然不外乎 电平信号或脉冲信号。为此51单片机设计成对两种外部中断信号的形式都会识别。寄存器TCON的低4位就是与外部中断触发方式有关。TFlTRlTFOTROIElITlIEOITOIE1:如果外中断1连接的是脉冲信号而不是电平信号
10、这叫沿触发,确切说是下降沿触发), 用此位实现中断挂号,来一个中断脉冲(在下降沿时)此位自动置位,响应中断后自动清除。IT1:外中断1的触发方式设置,ITl=O是低电平触发,ITI=I是下降沿触发。注意这种设置是 被动的,取决于外设中断触发信号的类型。如果中断源是脉冲信号,则必须设为下降沿触发。如 果中断源是电平信号,就应该设成电平触发。IE0:外中断0为下降沿触发时的中断挂号。ITO:外中断0的触发方式设置。采用什么触发方式,取决于外设的性质。沿触发时,由于信号无法持久,所以用IEX协助记录 触发(挂号),或者说沿触发通过IEX转化为电平。电平触发要求电平一直保持到中断被响应,一 旦响应要
11、在响应结束前撤除触发电平,否则会引起第二次中断。4.0.4中断的应用51单片机系统中是否启用中断由编程决定。编程两个内容:主程序中进行中断允许、中断优先级的设置(中断初始化); 编写相应的中断服务程序(包括入口地址的设置)。例如:一个51单片机系统,需要启用INTO中断和Tl中断,并且Tl中断为高优先级,INTO 中断为低优先级而且是沿触发。程序相关指令和结构如下:ORG 0000HLJMP STARTORG0003H;LJMP INT_WOORGOOlBH;LJMPINT_T1ORGOlOOHSTART:MOVIE, #10001001BMOVIP, #00001000BSETBITO;中断
12、服务程序 INT_WO: RETIINT_T1:RETI这2句是INTO的中服入口设置这2句是Tl的中服入口设置;设置总允许和INTo允许、Tl允许(可以用位操作实现) ;设置Tl位高优先级(可以用位操作);设置INTO为沿触发(下降沿触发)SETB EA -SETB EXO ,等效于 MOV IE, #89HSETB ETlSETB PTl 等效于 MOV IP, #08H两种指令的效果区别:位操作只改变指定位,不影响其他位。这在程序中 间进行某个中断的变化时比较常用。字节操作影响全部中断,初始化的时候常用。仿照这个例题,考虑5个中断都启用的程序写法。4.1 51内部的并行端口及其应用51系
13、列单片机内部集成了一个并行接口芯片,使用户得到了 4个8位的并行I/O端口,记作 PO、PK P2和P3,共32条I/O 口线,可以用这些口线连接输入设备(开关、按键、传感器等) 或输出设备(LED、蜂鸣器、数码管、液晶屏等)。这4个并行口的内部分别对应一个寄存器,名称也是PO、Pl、P2和P3,每个寄存器可以字节 寻址也可以位寻址。讨论单片机系统硬件连接的时候,凡是说Pl 口连接XX、P2 口连接YY,显 然说的是口线,而在程序中表示向口输出、从P2 口输入则是针对寄存器。PO. PK P2和P3这4个并行口除了最本职的I/O功能以外,多数兼有第2功能,这就导致了 这些口线在电路结构和功能特
14、性上是基本相同的,但又各具特点,使用方法也略有差异。并口寄存器P0、Pl P2、P3属于SFR,只能直接寻址(程序中使用P0、PK P2、P3仅仅是 用代号表达了直接地址,实际等效于直接使用80H、90H、A0H. BOo教材P.31)。几个概念:任何用于输出的端口 (Port)都应该具有锁存功能端口能够记住总线的瞬间数据; 任何用于输入的端口 (Port)应该具有缓冲功能一一外来的输入不能随便进入总线; 51单片机的四个并行I/O端口 (PO. PK P2和P3)都是8位双向口(可入可出),所以 电路必需同时具有输入缓冲和输出锁存的功能。这就导致了每根口线电路结构的复杂性。单纯完成I/O功能
15、所需要的电路结构:(这是1根口线的电路)注意上图左侧的4条水平引线的文字说明:内部总线通向CPU,无论是输出还是输入,数据 都要经过内部总线;读锁存器、写锁存器、读引脚是3个控制信号,用于控制数据的3个走向。 在对I/O 口进行输入输出操作的时候,根据命令的不同将产生不同的控制信号,从而决定数据的传 输方向。输出数据用MOV指令向并口输出字节,指令译码的结果是写锁存器信号有效,数据 从内部总线传输到D触发器的D端(锁存),同时D触发器的/Q端输出一个相反的值控制驱动FETo 如果D=I贝Q=0, FET截止,引脚=1;如果D=O则/Q=l, FET饱和导通,引脚=0。读引脚(输入)一用MOV指
16、令读并口的字节,指令译码的结果是读引脚信号有效,打 开了引脚缓冲三态门,引脚数据经三态门进入内部总线。需要注意的是,读引脚的时候FET必须 处于截止状态,才能读到引脚的正确电平。如果FET处于饱和导通状态,相当于引脚接地,就不 能读到正确的结果。所以,读引脚之前,要先向锁存器写1。读锁存器一有一些对并口操作的指令,不是单纯的读或者写,而是先读入当前状态、进 行修改、再写出修改后的结果(简称:读-修改-写指令),这类指令译码的结果是读锁存器信号有 效,把Q端的值从内部总线读入,处理之后再写出到D触发器的D端。三类操作指令举例列表:类别指令举例指令功能操作输出指令MOV Pl, A向Pl 口输出A
17、中8位数据经内部总线写入Pl 口 8个锁存器读引脚指令MOV A, P2从P2 口读入P2 口 8个引脚的状态经过内部总线进入A读-修改-写 指令ANL Pl, A对Pl 口与操作以并口为目的数的指令,只要操作与并 口的原值相关,就是读-修改-写指令。ORL P3, A对Pl 口或操作XRL PO, A对Pl 口异或INC P2P2加1操作DEC PlPl减1操作DJNZ P3, XXXP3减1不为0跳CPL P1.0PLO求反位操作指令中,凡是改变并口某一位值 的操作,都是先把并口 8位整个读入,修 改某一位之后,再写出。SETB P3.3P3.3 置 1CLR P2.6P2.6 清 0JB
18、C P1.7, XXXP1.7为1则清0跳MOV P2.2, CP2.2赋值51并行口 Do功能的用法:图4-2: Pl 口的低4位接4只LED,高4位接了 4个开关。要求编程实现:读取开关状态, 送LED显示。例4.1用字节操作指令实现。KLA:MOV A, PlSWAP AORL A, #0F0HMOV Pl, ARET例4.2用位操作指令实现。KLB:MOV C, P1.4MOV P1.0, CMOV C, Pl.5MOV Pl.l, CMOV C, P1.6MOV Pl.2, CMOV C, P1.7MOV Pl.3, CRET补充题:8只LED显示按键次数P3.3接开关,人工控制产生
19、输入脉冲,Pl 口 LED按2进制显示开关次数。算法:不断检查开关状态并输出A值,用标志控制A是否加1。人工按键一次的时间单位是几十毫秒甚至几百毫秒,而程序读取一次端口的时间是几个微秒, 所以程序中如果没有避免重复加1的措施,每次按键程序会读成上千次。这是本算法的要点。没有考虑重复加1的程序解决了重复加1的程序ORG0000HORG0000HLJMPSTARTLJMPSTARTORG0200HORG0200HSTART:MOVA, #0FFHSTART:MOVA, #OFFHSETBP3.3SETBP3.3LOOP:MOVPl, ALOOP:MOVPl, AMOVC, P3. 3MOVC, P
20、3. 3JCNOADDJCNOADDDECAJBF0, NEXTNOADD:LJMPLOOPDECAENDSETBFOLJMPNEXTNOADD:CLRFONEXT:LJMPLOOPENDF面介绍51并行口的整体功能:4.1.1 Pl 口对于51子系列,Pl 口最单纯,8位都只有单一的I/O功能,只能用于I/O。对于52子系列,Pl 口的最低2位兼了第二功能(用于定时/计数器T2),高6位还是单纯的I/O 口。4.1.2 P3 口双功能口,8条线均有第二功能:(第一功能是什么?)口线名称/第二功能名称第二功能P3.0/RXD串行接口电路的串行输入端P3.1/TXD串行接口电路的串行输出端P3.
21、2/INT0外部中断O的中断申请输入端P3.3/INT1外部中断1的中断申请输入端P3.4/T0TO用于计数方式时,计数脉冲输入端P3.5/T1Tl用于计数方式时,计数脉冲输入端P3.6/WR读外部RAM时,读有效信号输出端P3.7/RD写外部RAM时,写有效信号输出端内部电路增加了一个与非门,解决作为第二功能的输出。作为第一功能使用的时候,性能与单纯I/O 口无异。4.1.3 P2 口外部扩展时,兼任地址总线高8位(负责输出高8位地址)。由于高8位地址不是来自内部总线,所以增加了单刀双掷开关进行切换。作为第一功能使用的时候,性能与单纯I/O 口无异。(教材上电路有误!)4.1.4 PO 口外
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 内部 功能模块 及其 应用
