《单片机第7章.ppt》由会员分享,可在线阅读,更多相关《单片机第7章.ppt(66页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第七章并行I/O接口本章主要内容:本章主要内容:I/OI/O接口的作用接口的作用MCS-51MCS-51对外设的编址对外设的编址I/OI/O传送方式及其特点传送方式及其特点MCS-51MCS-51并行并行I/OI/O接口及其作用接口及其作用定时定时/计数器及使用计数器及使用7.1概述问题的提出问题的提出:外设信号各式各样,外设信号各式各样,CPUCPU如何与其连接?如何与其连接?单片机实用系统:单片机实用系统:7.1.1I/O接口的作用作用:让CPU与外部设备实现信息的交换接口的三个功能:实现速度匹配实现速度匹配改变数据传送方式改变数据传送方式变换数据信号电平变换数据信号电平7.1.2外设的编
2、址在计算机系统中,对各个设备的操作都针对对应设备地址来进行。外设也不例外,因此每个外设有其独一的地址,称为接口地址。两个概念:两个概念:接口接口:实现实现CPUCPU与外设间信号交换的电路与外设间信号交换的电路(通常(通常一个外设占用一个接口一个外设占用一个接口)端口端口:接口中有着固定作用的寄存器或缓冲器接口中有着固定作用的寄存器或缓冲器(用地址表示,通常(用地址表示,通常一个接口可有若干个端口一个接口可有若干个端口)端口一般有三类:端口一般有三类:数据端口数据端口(数据口)(数据口)传送数据传送数据状态端口状态端口(状态口)(状态口)保存接口状态保存接口状态控制端口控制端口(控制口)(控制
3、口)设置接口工作状态设置接口工作状态对外设的编址有两种:独立编址独立编址(如(如Z80CPUZ80CPU)外设地址不占用内存(外设地址不占用内存(RAMRAM)空间地址)空间地址 要求要求CPUCPU有有/IORQ/IORQ和和/MREQ/MREQ控制线控制线 并有专用的并有专用的I/OI/O操作指令(操作指令(ININ、OUTOUT指令)指令)统一编址统一编址(如单片机)(如单片机)外外RAMDRAMD的的64K64K空间中规划出一部分作为外设地址空间中规划出一部分作为外设地址 对外设的操作与对外对外设的操作与对外RAMRAM的操作相同(共用的操作相同(共用MOVXMOVX指令,但外指令,但
4、外RAMRAM可用空间减少了)可用空间减少了)7.1.3I/O数据的四种传送方式1 1同步传送(无条件传送)方式同步传送(无条件传送)方式传送时传送时CPUCPU总认为外设已经准备好,不问状态直接进行总认为外设已经准备好,不问状态直接进行传送传送接口接口只需要一个数据端口只需要一个数据端口如如输入接口只需一个缓冲器输入接口只需一个缓冲器输出接口只需一个锁存器输出接口只需一个锁存器下图为一接口地址为下图为一接口地址为0FF00H0FF00H的无的无条件输入接口条件输入接口只要执行只要执行MOV DPTRMOV DPTR,#0FF00H#0FF00HMOVX AMOVX A,DPTRDPTR就可以
5、取得就可以取得1#8#1#8#油开关的状态油开关的状态特点是接口简单,但容易出错特点是接口简单,但容易出错(当输入时油开关没及时提供状当输入时油开关没及时提供状态时态时)2异步传送(条件传送)方式传送时CPU先问接口状态后决定是否传送接口应有两个端口(状态口、数据口)如某打印机接口(条件输出接口):其操作流程如(如某打印机接口(条件输出接口):其操作流程如()图)图特点是接口较复杂,特点是接口较复杂,CPUCPU的效率较低,但不易出错的效率较低,但不易出错3中断传送方式利用中断功能实现数据交换利用中断功能实现数据交换通过中断请求与响应来实现数据传送。通过中断请求与响应来实现数据传送。如某打印机
6、接口如下:如某打印机接口如下:这里打印机准备好时发出中断申请,这里打印机准备好时发出中断申请,CPUCPU响应中断时输响应中断时输出数据出数据特点是特点是CPUCPU的效率得以提高,但接口应具有中断功能的效率得以提高,但接口应具有中断功能4DMA传送方式利用DMA控制器直接与CPU交换数据特点是速度最快,但要求CPU具有/BUSRQ控制线(单片机无此控制线)不同传送方式各有特点:DMADMA传送速度最快传送速度最快中断传送工作效率最高中断传送工作效率最高无条件传送结构最简单无条件传送结构最简单条件传送效率较低条件传送效率较低7.1.4I/O口的类型1串行口2并行口7.2MCS-51内部并行I/
7、O端口及其使用7.2.1MCS-51内部的并行I/O口 四个并行四个并行I/OI/O口:口:P0P0、P1P1、P2P2、P3P3P0口:标准双向口(具有三态输出功能的标准双向口(具有三态输出功能的I/OI/O口)口)当当MUXMUX接通上側时作为数据总线及低接通上側时作为数据总线及低8 8位地址输出位地址输出当当MUXMUX接通下側时作为具有三态输出接通下側时作为具有三态输出/输入并行口输入并行口P1口:准双向口(无三态功能的I/O口)输出端只有一个输出端只有一个MOSMOS管并有一上拉电阻,因此无三态功能管并有一上拉电阻,因此无三态功能P2口:准双向口(无三态功能的I/O口)与与P0P0口
8、一样带有口一样带有MUXMUX开关,接通上側作地址输出,接通下开关,接通上側作地址输出,接通下側作一般側作一般I/OI/O口口输出端只有一个输出端只有一个MOSMOS管并有一上拉电阻,因此无三态功能管并有一上拉电阻,因此无三态功能 P3口:准双向口(无三态功能的I/O口)与与P1P1口类似但由于具有第二功能,因此有第二功能控制电口类似但由于具有第二功能,因此有第二功能控制电路路 总结四个口的结构有:1.由于四个口在一般使用时功能不同,因此内由于四个口在一般使用时功能不同,因此内部结构略有不同部结构略有不同2.P0P0口常作外数据口常作外数据/地址低地址低8 8位总线使用,因此位总线使用,因此有
9、总线有总线/一般口控制开关并具有三态输出一般口控制开关并具有三态输出3.P2P2口常作外地址高口常作外地址高8 8位总线使用,因此也有总位总线使用,因此也有总线线/一般口控制开关电路一般口控制开关电路4.P3P3口由于有第二功能,因此有第二功能控制口由于有第二功能,因此有第二功能控制电路电路5.P0P0、P1P1、P2P2、P3P3的输入电路结构相同的输入电路结构相同7.2.2MCS-51内部并行I/O口的应用1 1直接用作一般输入直接用作一般输入/输出端口输出端口1.1.读端口数据读端口数据-得到的是端口锁存器的内容(非端口得到的是端口锁存器的内容(非端口线上的状态)线上的状态)2.2.写端
10、口数据写端口数据-数据将经锁存器输出到端口线上数据将经锁存器输出到端口线上3.3.读端口线状态读端口线状态-先对端口输出(写)全先对端口输出(写)全“1”1”(控制(控制关断关断MOSMOS管),后读端口管),后读端口换句话说:换句话说:作为一般输出口时作为一般输出口时-直接对端口进行写操作直接对端口进行写操作而作为输入口时却分为读锁存器和读引脚两种情况而作为输入口时却分为读锁存器和读引脚两种情况例例7.17.1如图所示,当如图所示,当K3K3闭合时根据闭合时根据K0K0、K1K1的状的状态使态使LEDLED亮或灭亮或灭,逻辑关系如(逻辑关系如(a a)所示)所示 参考程序如下:28位并行端口
11、改装为非8位并行端口实际使用中可能需要用到若干个非8位的端口,为了充分利用资源常将8位端口通过软件的“屏蔽”和“组装”办法虚拟成非8位端口使用例例7.27.2将将P1P1、P2P2口改装成三个口改装成三个5 5位输出虚口位输出虚口P1P1、P2P2口共有口共有2*8=162*8=16位,三个位,三个5 5位口有位口有3*5=153*5=15位显然是可行的位显然是可行的办法是:办法是:将要输出的值将要输出的值X X、Y Y、Z Z组装成符合组装成符合P1P1、P2P2的结构如下:的结构如下:对应程序:3MCS-51对外部三态门和锁存器的接口实际的控制系统往往使用较简单的接口结构来与实际的控制系统
12、往往使用较简单的接口结构来与外设实现信息的交换,这时接口电路根据输入设外设实现信息的交换,这时接口电路根据输入设备的电路结构不同而各有区别备的电路结构不同而各有区别当输入设备带有锁存器时当输入设备带有锁存器时,其输入接口可以用,其输入接口可以用一个三态门电路来代替(为什么?)一个三态门电路来代替(为什么?)当输入设备不带锁存器时当输入设备不带锁存器时,其输入接口应是一,其输入接口应是一个带有三态输出的锁存器(为什么?)个带有三态输出的锁存器(为什么?)当输入设备带有锁存器时当输入设备带有锁存器时,其输入接口可以用,其输入接口可以用一个三态门电路来代替一个三态门电路来代替例如下图:例如下图:图中
13、使用图中使用74LS24474LS244构成一个无条件输入口构成一个无条件输入口74LS244的输入端接数据总线,输出端接输入设备的锁存器输出74LS244控制端由/RD结合高位地址译码输出控制(这里直接用P27)端口地址为-7FFFH(只要P27=0就选中74LS244)操作时只要执行下述两个指令:MOVMOVDPTRDPTR,#7FFFH#7FFFH;DPTRDPTR指向指向74LS24474LS244MOVX AMOVX A,DPTRDPTR;输入数据;输入数据输入设备不带锁存器其输入接口应由一个带有三态输出的锁存器(如74LS373)构成,下述是一个使用中断的输入口:工作过程工作过程关
14、于使用三态门和锁存器作为输出口与输入口类似,不再重关于使用三态门和锁存器作为输出口与输入口类似,不再重复复。简单的说:1任一接口与数据总线连接必须经由三态门电路(没被选中时脱离总线)2通常作输出口,使用带三态输入的锁存器(锁存数据总线送来的信息)3作输入口,可使用三态门(输入设备常自 身具有输出信号保存功能)74MCS-51并行I/O口的扩展当系统需要的并行当系统需要的并行I/OI/O口较多时,应该对并行口较多时,应该对并行I/OI/O口口进行扩展进行扩展n n办法有:办法有:1 1使用通用可编程接口芯片扩展(将在接口技术使用通用可编程接口芯片扩展(将在接口技术中介绍)中介绍)2 2使用一般三
15、态门和锁存器进行扩展使用一般三态门和锁存器进行扩展但无论如何但无论如何必须先扩展出外部三总线必须先扩展出外部三总线(如何扩展(如何扩展外部三总线?)外部三总线?)扩展出的接口都扩展出的接口都使用外部使用外部RAMRAM的部分地址的部分地址,对扩,对扩展接口的操作与对外展接口的操作与对外RAMRAM操作相同操作相同方法是:在外RAM的64K空间内规划出一块空间作外扩展的并行I/O口地址利用MOVX指令即可对其进行读写操作关键是:高位地址线的译码分配,必须体现所规划的I/O地址例例7.57.5设外设外RAMRAM只需不到只需不到256256单元单元则打印机端口与外则打印机端口与外RAMRAM合用此
16、合用此256256单元(单元(00FFH00FFH)8 8位地址线中高位地址线中高4 4位经位经416416译码器产生译码器产生Y0Y15Y0Y15个高电平个高电平输出控制端输出控制端(将(将256256单元分成单元分成16*1616*16块,外块,外RAMRAM用低用低1515块,打印机块,打印机用最高一块)用最高一块)其中其中RAMRAM用用Y15Y15作作/CS/CS控制(控制(Y151Y151即即00EFH00EFH选中选中RAMRAM)/RD=1/RD=1且且Y15=1Y15=1向打印机输出数据向打印机输出数据(对外(对外RAMRAM的操作的操作/RD=1/RD=1即即“写写”、Y1
17、5=1Y15=1即打印机地即打印机地址址0F0H0FFH0F0H0FFH)其结构如后图:其结构如后图:采用如下指令将A中数据输出到打印机:MOV R0MOV R0,#0F0H#0F0HMOVX R0MOVX R0,A A完整的程序如右:问题:1.1./EA为何接地?(全部采用外部ROM)2.2.该打印机接口采用何传送方式?(条件传送)3.3.其中的状态口在哪?(P1口的P1.0一个位)4.4.要将该打印机接口改为中断传送,如何改?(/ACK接到/INT0话/INT1)75MCS-51对LED/键盘的接口实用的单片机系统多采用LED做显示输出非编码键盘作参数输入7.5.1MCS-51对LED的接
18、口1LED显示原理LED的结构如下:显示原理显示原理:二级管流过电流对应段发光,不同段发光构成不同的字形二级管流过电流对应段发光,不同段发光构成不同的字形要做的两件事要做的两件事:显示什么字形?显示在哪个位?显示什么字形?显示在哪个位?对应两个接口对应两个接口:字形口(锁存字形口(锁存CPUCPU送来要显示的字形编码)送来要显示的字形编码)字位口(锁存字位口(锁存CPUCPU送来指定显示位的编码)送来指定显示位的编码)显示方式有显示方式有:静态显示静态显示动态显示动态显示 LED的字形编码 1 1静态显示静态显示一位一位LEDLED固定有一个字形口,数位固定有一个字形口,数位LEDLED共用一
19、个字位口,共用一个字位口,下图为下图为LEDLED是共阴极使用是共阴极使用P1P1口为显示口的四位静态显示口为显示口的四位静态显示电路电路3 3动态显示动态显示数位数位LEDLED共用一个字形口和一个字位口,应用视觉暂留原理,共用一个字形口和一个字位口,应用视觉暂留原理,动态扫描显示各位动态扫描显示各位LEDLED出现显示。出现显示。下图为下图为LEDLED是共阴极使用是共阴极使用74LS374Z74LS374Z作显示口的六位动态显示作显示口的六位动态显示电路电路动态显示过程扫描执行下面两过程扫描执行下面两过程1.1.输出字形码输出字形码2.2.输出字位码输出字位码如要在最末位显示如要在最末位
20、显示“8”8”,字形码为,字形码为“7FH”7FH”,字位码为,字位码为“01H”01H”,显示程序如下:,显示程序如下:MOVMOVDPTRDPTR,#8004H#8004HMOVMOVA A,7FH7FHMOVXMOVXDPTRDPTR,A AMOVMOVDPTRDPTR,#8002H#8002HMOVMOVA A,01H01HMOVXMOVXDPTRDPTR,A An n动态显示硬件结构简单,显示软件较复杂n n静态显示硬件结构较复杂,显示软件简单7.5.3MCS-51对非编码键盘的接口非编码键盘电路的结构有两种1.独立联接式独立联接式-每个键彼此独立占用一条输每个键彼此独立占用一条输入
21、入数据线数据线(N(N个按键占个按键占N N位输入线位输入线)2.行列联接式行列联接式-把按键排列成行列矩阵电路把按键排列成行列矩阵电路(一个一个NMNM键盘只需键盘只需M+NM+N根输入线根输入线)1MCS-51对独立式键盘的接口n n右图为一个使用右图为一个使用P1P1口口作输入口的独立式键作输入口的独立式键盘盘其中其中8 8个电阻为上拉电个电阻为上拉电阻阻8 8位数据线分别连接位数据线分别连接8 8个个按键按键按下按键对应位值为按下按键对应位值为”0”0”相应程序见相应程序见P282P2822行列式键盘的接口下图是一个下图是一个4 4行行8 8列列3232个键的接口电路个键的接口电路占用
22、两个端口(行口、列口)占用两个端口(行口、列口)软件通过输出列值全软件通过输出列值全“0”0”,读入行值分析得到对应按键,读入行值分析得到对应按键 n n独立式键盘较简单,多用于键数较少场合n n行列式键盘分析软件较复杂,多用于键数较多场合7.6 MCS-51内部定时器/计数器1 1数量数量:2 2(3 3)个)个T0T0、T1T1(T2T2)2 2加加1 1计数计数工作(工作(Z80CTCZ80CTC为减为减1 1计数工作。加计数工作。加1 1和和减减1 1工作的区别?)工作的区别?)3 3两种工作模式两种工作模式:定时器模式定时器模式-对机器周期计数对机器周期计数(机器周期对应的(机器周期
23、对应的时间?)时间?)计数器模式计数器模式-对对T0T0、T1T1引脚信号计数引脚信号计数(T0T0、T1T1在在哪?)哪?)4 4计数归计数归“0”0”时产生中断申请时产生中断申请5 5涉及两个涉及两个SFRSFR:(TCON(TCON、TMODTMOD)6 6四种工作方式:在串行通信中通常将在串行通信中通常将T1T1作为波特率发生器作为波特率发生器(只要其溢出率只要其溢出率,不不需中断需中断,这时的这时的T0T0可设定为方式可设定为方式3)3)7.6.17.6.1MCS-51MCS-51对内部定时对内部定时/计数器的控制计数器的控制体现在体现在TCONTCON、TMODTMOD各位的设定状
24、态各位的设定状态1 1定时器定时器/计数器控制寄存器计数器控制寄存器TCONTCON2定时器/计数器方式寄存器TMOD3 3定时器定时器/计数器控制逻辑计数器控制逻辑(以(以T0T0为例如下)为例如下)n n作定时器使用时,作定时器使用时,对机器周期计数对机器周期计数n n作计数器使用时,作计数器使用时,对引脚对引脚T0T0计数计数n nK1K1接通时开始计数接通时开始计数n n计数溢出时计数溢出时TF0TF0有效,并当开中断时产生中断申请有效,并当开中断时产生中断申请4 4让定时器让定时器/计数器工作计数器工作设定工作方式设定工作方式-设定设定TMODTMOD对应位状态对应位状态设定常数设定
25、常数-定时定时/计数值计数值两种启动控制(见图两种启动控制(见图7-457-45)内控内控内控内控(当当GATE=0GATE=0时时):):TR0TR0(TR1TR1)=1=1即启动计数即启动计数TR0TR0(TR1TR1)=0=0即停止计数即停止计数外控外控外控外控(当当GATE=1GATE=1时时):):TR0TR0(TR1TR1)=1=1且且/INT0/INT0(/INT1/INT1)有效才启动计数)有效才启动计数TR0TR0(TR1TR1)=0=0或或/INT0/INT0(/INT1/INT1)无效停止计数)无效停止计数7 76 63 3MCS-51MCS-51对内部定时器对内部定时器
26、/计数器的初始化计数器的初始化让定时器让定时器/计数器按要求工作称为对定时器计数器按要求工作称为对定时器/计数计数器初始化器初始化1 1初始化过程及步骤初始化过程及步骤:设定模式及工作方式设定模式及工作方式-TMOD-TMOD对应位设定对应位设定设定初值设定初值-计数初值装入定时器计数初值装入定时器/计数计数器器设定中断(需要的话)设定中断(需要的话)-IE-IE、IPIP对应位设定对应位设定启动工作启动工作-TCON-TCON中中TR0TR0(TR1TR1)的)的位值位值2计数器初值的确定按下式确定计数器初值:(减按下式确定计数器初值:(减1 1计数!)计数!)TC=MTC=MC C其中其中
27、:TC-TC-计数器初值计数器初值M-M-为计数器模值为计数器模值(2 21313、2 21616、2 28 8视四种方式而定)视四种方式而定)C-C-实际需要的计数值实际需要的计数值3定时器初值的确定TC=MTC=MT/TT/T机器周期机器周期其中其中:TC-TC-定时器初值定时器初值M-M-为计数器模值(为计数器模值(2 21313、2 21616、2 28 8视四种视四种方式而定)方式而定)T-T-实际需要的定时时间实际需要的定时时间T T机器周期机器周期-单片机一个机器周期对应的时间单片机一个机器周期对应的时间式中式中T T、T T机器周期机器周期的单位必须相同的单位必须相同例7.10
28、设单片机时钟频率为12MHZ,采用T0定时2 ms的常数计算如下:方式方式1 1:TC=2TC=216162ms/1s2ms/1s=65536=6553620002000=63536=0F830H=63536=0F830H这时这时:F8HF8HTH0TH030H30HTL0TL0方式方式0 0:TC=2TC=213132ms/1s2ms/1s=8192=819220002000=6192=1830H=6192=1830H这时常数应分拆组合为:这时常数应分拆组合为:n n 即即C1HC1HTH0 TH0 10H10HTL0TL07.6.4应用举例例例7.117.11设设80318031的时钟频率
29、为的时钟频率为12MHZ12MHZ,利用,利用T0T0在在 P10P10上输出上输出2 2秒方波信号的程序秒方波信号的程序解:解:T0T0初始化为定时器工作初始化为定时器工作定时时间为方波的半周期(定时时间为方波的半周期(1 1秒)秒)定时到(定时到(1 1秒)让秒)让P10P10反相反相由于定时器最大定时时间只有由于定时器最大定时时间只有2 21616*1s=65.536 ms*1s=65.536 ms因此必须结合软件计数才能实现因此必须结合软件计数才能实现1 1秒延时秒延时办法是:办法是:将将T0T0的定时时间设定为某个整数值的定时时间设定为某个整数值(50ms)(50ms)定时中定时中断
30、,在中断中计数中断次数断,在中断中计数中断次数(50ms(50ms的个数的个数),到所,到所需时间需时间(20(20次次50ms50ms就是就是1 1秒秒)P1.0)P1.0反相反相据上述知:据上述知:T0T0设为方式设为方式1 1定时内控工作定时内控工作-TMOD=XXXX0001B-TMOD=XXXX0001B允许允许T0T0中断中断(其它中断源不管其它中断源不管)-IE=1XXXXX1XB)-IE=1XXXXX1XB T0 T0的常数为的常数为2 2161650*1000/1=15536=3CB0H50*1000/1=15536=3CB0H即即3CH3CHTH0TH0、B0HB0HTL0
31、TL0软件计数器用软件计数器用R0R0,计数值为,计数值为2020n n主程序主程序 T0T0初始化、中断系统初始化、计数初始化、等待中断初始化、中断系统初始化、计数初始化、等待中断中断服务程序中断服务程序入口在入口在000BH000BH判计数判计数2020次到否?到取反次到否?到取反P10P10、重置常数重置常数返回返回 不到不到重置常数重置常数返回返回(方式方式0 0、方式、方式1 1每次必须重置参数!每次必须重置参数!)必须指出的是:由于由于CPUCPU执行程序需要一定时间,而执行程序需要一定时间,而CPUCPU从响从响应中断到完成再次对应中断到完成再次对T0T0的常数设定这段时间的常数
32、设定这段时间T0T0并不停止工作,所以在要求精确计时的场合必并不停止工作,所以在要求精确计时的场合必须对定时常数进行相应的修正(增加一定常数须对定时常数进行相应的修正(增加一定常数来妳补这一段时间),修正多少视实际情况决来妳补这一段时间),修正多少视实际情况决定(见定(见P296P296)例(思考题例(思考题7 72929改)改)设设80318031的时钟为的时钟为12MHZ12MHZ,编制程序利用,编制程序利用T1T1的定时在的定时在P11P11引脚输出引脚输出3 ms3 ms的矩形波信号。的矩形波信号。要求占空比为要求占空比为1 1:2 2(即高电平(即高电平1ms1ms、低电平、低电平2
33、 ms2 ms)解:解:这里由于高低电平的时间不同,所以应区别设定常数。办法之一这里由于高低电平的时间不同,所以应区别设定常数。办法之一是是建立一个标志(如高电平为建立一个标志(如高电平为1 1、低电平为、低电平为0 0),中断服务中根据标志),中断服务中根据标志设定计数常数并取反设定计数常数并取反P11P11T1T1设为方式设为方式1 1定时内控工作定时内控工作-TMOD=-TMOD=00010001XXXXBXXXXB允许允许T1T1中断中断(其它中断源不管其它中断源不管)-IE=)-IE=1 1XXXXXX1 1XXXBXXXBT1T1的常数为的常数为 高电平高电平2 216161*1000/1=64535=1*1000/1=64535=0FC18H0FC18H 低电平低电平2 216162*1000/1=63535=2*1000/1=63535=0F830H0F830H标志用位地址标志用位地址20H20H(程序自己根据例程序自己根据例7.117.11修改修改)习题与思考题(P298):7 71 1、7 72 2、7 73 3、7 74 4、7 75 5、7 76 6、7 77 77 71313、7 71818、7 71919、7 72828、7 72929作业:7 71 1、7 72 2、7 73 3、7 74 4、7 75 5、7 76 6、7 72929