微机原理与接口技术原理第7章_第1页
微机原理与接口技术原理第7章_第2页
微机原理与接口技术原理第7章_第3页
微机原理与接口技术原理第7章_第4页
微机原理与接口技术原理第7章_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

1可编程定时/计数器8253可编程并行接口8255A串行通讯基本概念第7章计算机接口技术27.1定时/计数器8253芯片常用定时方法:软件定时:采用软件编程来实现定时和计数要求,通用灵活,但占用CPU时间;硬件定时:采用专用的硬件电路来实现。定时/计数器从计数方式上分为加法计数器和减法计数器。计数器启动后与CPU并行工作,不占CPU时间。如可编程定时/计数器8253芯片;3D0D7~数据总线缓冲器读/写逻辑控制寄存器计数器0计数器1计数器2片内总线RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2

可编程定时器8253的内部结构图4D0~D7:8位双向数据线;CS:芯片选择;RD、WR:读写控制信号;A1,A0:地址线;A1A0=00 计数器0A1A0=01 计数器1A1A0=10 计数器2A1A0=11 控制寄存器CLK:计数器的时钟信号输入端,最高计数频率2MHz;GATE:门控信号;控制计数器的启动和停止;OUT:计数器输出信号;8253的引线及功能58253的功能:具有三个功能完全相同的独立的16位减法计数器;每个计数器都包括一个16位的初值寄存器、一个计数执行单元和一个输出锁存器;每个计数器的计数时钟频率最高为:2MHZ每个计数器可以按十进制数或二进制数预置初值;每个计数器有六种工作方式,可通过编程设定或改变;每个计数器的计数定时值,可由CPU随时读取;68253的工作原理当置入初值后,计数执行单元开始对输入脉冲CLK进行减1计数,减到0时从OUT端输出一个信号;整个过程可以重复进行;7计数器的启动的方法软启动:由程序指令启动。CPU用输出指令向计数器写入初值后,如果GATE为1,就启动计数;计数初值也叫时间常数;硬件启动:由外部信号启动。写入初值后并不启动计数,门控信号GATE由低变高电平后,在CLK的下降沿开始计数;8计数器的工作方式计数器启动的方法、OUT端输出波形、是否自动重复计数、GATE的控制作用、新写入计数初值对计数过程的影响等等的组合,构成8253的工作方式;8253一共有6种工作方式;在多数工作方式下,计数器每启动一次只工作一个周期;有两种工作方式可以进行自动重复计数;97.2.28253的工作方式方式0:计数结束中断软件启动、不自动重复计数方式;计数结束后,OUT端输出为高电平,可以作为中断请求信号使用;1.只计数一个周期;2.在计数过程中GATE变为低电平,则暂停计数;3.在计数过程中,可以随时修改计数初值;WRCLKGATEOUTCWN=44321010方式1:可重复触发的单稳态触发器硬件启动、不自动重复的工作方式;当写入控制字后,OUT端输出高电平。写入计数初值后计数器并不开始工作;当GATE端由低到高触发后,在下一个CLK脉冲的下降沿开始计数,OUT端立刻由高到低,计数结束后OUT端输出高电平;4321011方式1的特点:GATE的上升沿触发计数器,计数过程中GATE即使变低也不影响计数;可重复触发;OUT端的负脉冲宽度=计数初值N×TCLK计数器0CLKGATEOUT如果CLK=2MHz,则:fc=2MHzTc=1/fc=0.5x10-6

,如果时间常数N=1000,则OUT端的负脉冲宽度=NxTc=1000x0.5x10-6=500us4321012方式2:频率发生器也叫分频器;可以软件启动,也可以硬件启动,计数器自动重复工作。在写入控制字和计数初值期间GATE一直为高电平,则在下一个CLK开始计数,既软启动;若写入计数初值时GATE为低电平,则要等到GATE由低到高时才启动,即硬件启动;一旦计数器启动,计数器可以自动重复工作;GATE为低,停止计数;WRCLKGATEOUTCWN=332132113写入控制字后,OUT为高电平。如果GATE为高,写入初值后开始减1计数。当计数值减到1时,OUT输出变为低电平,再经过一个CLK之后计数值减为0,OUT变为高电平,接着自动重新装入初值,计数器重复工作。WRCLKGATEOUTCWN=332132114在OUT端连续输出一个宽度为TCLK的负脉冲信号,其脉冲周期为:To=N×TCLK

脉冲频率:fo=fc/N N也叫分频系数:N=fc/fo15例如:利用计数器1作频率发生器,给定CLK1为2MHz,要求产生频率为1KHz的脉冲。计数器1工作在方式2:0111X100B时间常数N=fc/fo=2×106/(1×103)=2000程序设计如下:

MOVAL,01110100B;

OUT83H,AL MOVAX,2000;先写入低字节计数值,

OUT81H,AL MOVAL,AH ;后写入高字节计数值

OUT81H,AL … ;OUT输出脉冲周期为1ms16可以软启动,也可以硬件启动,计数器自动重复工作;写入控制字后,OUT为高电平。如果GATE为高,写入初值后开始减1计数。当计数值减到N/2时,OUT输出变为低电平,直到计数值减为0;接着自动重新装入初值,OUT变为高电平,计数器自动重复工作。OUT输出对称方波:若计数初值为奇数,OUT输出非对称方波:GATE由高变低,停止计数。N/2(N+1)/2方式3-方波发生器17例如:利用计数器2作脉冲发生器,给定CLK2为1MHz,要求产生周期为20ms的方波。计数器2工作在方式3:1011X110B计数初值N=fc/fo=1×106×20×10-3=20000=4E20H程序设计如下:

MOVAL,10110110B;#2,方式3,二进制

OUT83H,AL MOVAL,20H:先写入低字节计数值

OUT82H,AL MOVAL,4EH;后写入高字节计数值

OUT82H,AL … ;OUT输出周期为20ms的方波

18方式4:软件触发选通软件启动、不自动重复计数方式;写入控制字后,OUT为高电平,计数器装入初值后即启动计数,计数结束时OUT输出宽度为TCLK的负脉冲,如下:WRCLKGATEOUTCWN=443210GATE为低,停止计数。432119方式5:硬件触发选通硬件启动、不自动重复的工作方式。GATE的上升沿触发计数器;计数结束时,在OUT端输出一个脉冲宽度为TCLK的负脉冲信号:

WRCLKGATEOUTCWN=543210GATE的上升沿,将重新计数。20SC1SC0RL1RL0M2M1M0BCD数制选择:0二进制1BCD码方式选择:000-方式0001-方式1X10-方式2X11-方式3100-方式4101-方式5计数初值长度选择:00-计数器中的数据锁存于缓冲器01-只读/写低8位,高8 位默认为010-只读/写高8位,低8 位默认为011-先读/写低8位后读/写高8位计数器选择:00-选计数器001-选计数器110-选计数器211-无效7.2.38253的控制字二进制计数范围:0000~65535;初值=0000,为最大计数值十进制计数范围:0000~9999;初值=0000,为最大计数值;218253与系统的连接D0D7~A1A0IORIOWD0D7~RDWRA1A08253GATE0GATE1GATE2OUT0OUT1OUT2CLK0CLK1CLK2CS&&≥1GG2AG2BCBAY0IOWIORA3A4A5A6A7A2A8A9A10A11A12A13A14A15系统总线信号74LS13822例7-2写出8253的初始化程序。其3个计数器的时钟频率均为2MHz,计数器0在定时100us后产生中断请求;计数器1用于产生周期为10us的对称方波,计数器2每1ms产生一个负脉冲,BCD码计数。计数器0:方式0,时间常数=100us/0.5us=200

控制字为:00110000B计数器1:方式3,输出方波信号, 时间常数=10us/0.5us=20

控制字为:01110110B计数器2:方式2, 时间常数为=1ms/0.5us=2000

控制字为:10110101B23 MOVDX,0FF07H;

MOVAL,30H OUTDX,AL MOVAL,76H OUTDX,AL MOVAL,0B5H OUTDX,AL MOVDX,0FF04H ;计数器0 MOVAX,200;先写入低字节计数值,

OUTDX,AL MOVAL,AH OUTDX,AL8253的编程24

MOVDX,0FF05H ;计数器1 MOVAX,20 OUTDX,AL MOVAL,AH OUTDX,AL MOVDX,0FF06H ;计数器2,BCD码计数

MOVAL,00H OUTDX,AL MOVAL,20H OUTDX,AL258253的编程例7-1IBM-PC/XT中使用了一片8253,其3个计数器的输入时钟频率均为1.19MHz。计数器0(CNT0)为系统的电子钟提供时间基准,它的输出作为系统的中断源,接到8259的IR0端。计数器1(CNT1)用于DRAM的定时刷新;计数器2(CNT2)作为扬声器的音频信号源,输出不同频率的方波信号。8253的端口地址设为40H,41H,42H,43H26分析计数器0:方式3,输出方波信号,时间常数=65536,置入0000H,1.19MHz/65536=18.2Hz,每秒产生18.2次中断请求;计数器1:方式2,分频系数为18,OUT1的输出脉冲频率为1.19/18,即DRAM的定时刷新周期为15us;计数器2:方式3,控制扬声器发出1KHz的声音,时间常数为:1.19MHz/1KHz=1190=04A6H27CNT0: MOVAL,00110110B OUT43H,AL MOVAL,00H OUT40H,AL OUT40H,ALCNT1:MOVAL,01010100B OUT43H,AL MOVAL,18 OUT41H,AL CNT2:MOVAL,10110110B OUT43H,AL MOVAL,A6H OUT42H,AL MOVAL,04H OUT42H,AL …287.3可编程并行接口芯片8255CPU与外设的数据交换,有并行和串行传送方式。接口可分为并行接口和串行接口。8255A是通用8位可编程并行输入输出接口芯片;2912345678910111213141516171819204039383736353433323130292827262524232221PA3PA2PA1PA0RDCSGNDA0A1PC7PC6PC5PC4PC0PC1PC2PC3PB0PB1PB2PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VCCPB7PB6PB5PB4PB3引脚及功能:40引脚,单一+5V电源,双列直插式;D7~D0:数据信号线;CS:片选信号;A0A1口地址选择信号;WR:写信号;RD:读信号线;Reset复位信号高电平有效;

8255复位后,各端口都被预置为输入状态。PA0~PA7:端口A的8条输入输出线PB0~PB7:端口B的8条输入或输出线PC0

~PC7:端口C的8条输入或输出线,也可以用作控制信号的输出或状态信号的输入线;30内部结构PA7~PA0PC7~PC4PB7~PB0PC3~PC0A组端口AA组控制电路缓冲器B组控制电路读/写控制逻辑A组端口C高4位B组端口C低4位B组端口B内部逻辑外设接口RDWRA1A0RESETCSD7~D0I/OI/OI/OI/O31端口地址8255A包含A口、B口、C口三个独立的数据端口,及一个控制端口。各端口地址如下:A1A0=00 A口A1A0=01 B口A1A0=10 C口A1A0=11 控制端口32数据端口的特点A口、B口、C口可以作为三个独立的数据输入输出通道(端口)单独使用;也可以将A口、B口作为数据输入输出口,C口输出控制信号或输入状态信号;A口----具有数据输入输出功能,且能锁存;B口----具有数据输入输出功能,且能锁存;C口----具有数据输入输出功能,输出时可以锁存;C口的主要特点是可以按位进行操作;可以分为2个4位的端口;既可以传送数据也可以用来输出控制信号或输入状态信号;338255与系统的连接示意图系统总线信号IORIOW

A0

A1D0~D7

A0

A2

A15●●●

A1D0~D7CS

A口

B口

C口外设译码WRRD348255的工作方式8255有三种工作方式:方式0、方式1、方式2;方式0,基本输入输出方式适合于三个端口;作为输出口时它具有锁存功能,作为输入时不能锁存;A口、C口的高4位、B口以及C口的低四位可分别定义为输入或输出,各端口相互独立,故共有16种组合。C口可以按位进行置位和复位。35方式0最适用于无条件传送方式;也能用于查询工作方式,这时常将C口的高4位定义为输入口,输入外设的状态信号,而将C口的低四位定义为输出口,输出控制信息;这时可用A、B口传送数据;方式0不能工作在中断方式;36方式1:选通输入输出方式:A口、B口作为数据的输入口或输出口,但数据的输入输出要在控制信号的控制下,控制信号由C口的某些位来提供;方式1适用于程序查询和中断控制方式,它不能工作在无条件传送方式下;37方式1下A口、B口均为输出C口的6条线作为选通控制信号:PC3、PC6、PC7配合A口,PC0、PC1、PC2配合B口;接8259OBF:输出缓冲器满信号;ACK:外设收到数据的应答信号;INTE:中断允许状态;INTR:中断请求信号;INTEAPC7PC6PC3&PA7~PA0PC4PC5IOWOBFAACKAINTRAIOWOBFINTRACK输出38IOWOBFINTRACK输出INTEBPC1PC2PC0&PB7~PB0IOWOBFBACKBINTRB接825939方式1下A口、B口均为输入STBAIBFASTB:输入选通信号;外设用它将数据锁存于输入数据缓冲器中;IBF:数据输入缓冲器满,STB的应答信号;INTR:中断请求信号INTR;INTE:中断允许信号;INTEAPC4PC5PC3PA7~PA0PC6PC7IORINTRA&INTEBPC2PC1PC0PB7~PB0IORSTBBIBFBINTRB&40方式2:双向传输方式,只有A口可以工作在这种方式下。既能发送数据,又能接收数据;它还要利用C口的5条线作为控制信号线;A口的输入输出均具有数据锁存能力,数据的输入输出均可以引起中断;方式2适用于程序查询和中断控制方式。它不能工作在无条件传送方式下。这时B口可以工作在方式0或方式1,C口剩余的3条线可以作为输入输出线或方式1下的控制线。41控制字76543210功能控制0:位操作1:方式选择A组方式选择00:方式001:方式11X:方式2控制A口8位0:输出1:输入控制C口高4位0:输出1:输入B组方式选择0:方式01:方式1控制B口8位0:输出1:输入控制C口低4位0:输出1:输入方式选择控制字:42方式选择控制字例A口、B口工作在方式0下:A口输出、B口输入则:10000010A口工作在方式0、B口工作在方式1下:A口输出、B口输入则:10000110A口工作在方式1、B口工作在方式0下:A口输入、B口输出则:1011000043按位操作控制字76543210置位/复位0:复位1:置位C口的位选择000 PC0001 PC1010 PC2011 PC3100 PC4101 PC5110 PC6111 PC7无关0设置PC0为置位,则:00000001设置PC4为复位,则:00001000设置PC3为置位,则:00000111设控制端口的地址为:FFF7H,则:MOVDX,0FFF7HMOVAL,08HOUTDX,ALMOVAL,07HOUTDX,AL44例题:8255A的PA0~PA7端接有开关K0~K7,PB0~PB7接有8支LED发光管。端口A、B均工作在方式0下,根据开关状态控制LED灯的显示。1.请确定8255A的各端口地址,写出控制字;2.编程控制:当K全闭合时,8支灯亮;当有一个以上K断开时,8支灯灭。45CSA1A0WRRDPA0PA7PB0PB1PB73:8ABCG1G2AG2BWRA7A6A5A4A3A2A1A0Y4…..+5V+5V…..IO/MRDK0K7D0~D7地址:84H,85H,86H,87H方式控制字:10010000=90H46编程:START: MOVAL,90H OUT87H,ALSTATES: INAL,84H ANDAL,0FFH JZHIGH ;当K全闭合时,8支灯亮; MOVAL,0FFH ;有一个以上K断开,

OUT85H,AL ;8支灯灭; JMPDONEHIGH: MOVAL,0 OUT85H,ALDONE: JMPSTATES47另:测试开关状态,控制相应的灯亮或灭;START: MOVAL,90H OUT87H,ALAGAIN: INAL,84H OUT85H,AL JMPAGAIN488255的应用A2A3A4IORIOWA10A12A13A14A15A5A6A7A8A9A11IORIOWA1A0RESETG1G2AG2BCBAY074LS138RDWRA1A0CS8255RESETA口B口C口D0D7~D0D7~PA0PA7~PC0PC7~PB0PB7~&≥1&49例:利用8255控制打印机,通过它打印字符串,字符串长度存在DS段的COUNT单元中,字符串存在DATA单元开始的数据区中;508255控制打印机D0~D7A0A1A2A3A4A5A6A7A8A9A10A11A12A13A14A15IOWIORIOWIORRESET≥1&74LS138ABCG2AG1G2BY0&&A0A1WRRDRESETD0|D7PA0|PA7PC6PC1CS8255D0|D7STROBEBUSYFBC0HFBC1HFBC2HFBC3H51数据STROBEBUSYACK52INT: MOVDX,0FBC3H MOVAL,10000001B OUTDX,AL MOVAL,00001101B OUTDX,AL ;初始化结束

MOVCX,COUNT MOVSI,OFFSETDATAGOON: MOVDX,OFBC2H INAL,DX ANDAL,02H ;测试忙信号

JNZGOON ;忙,等待

53 MOVAL,[SI] MOVDX,0FBC0H OUTDX,AL ;数据锁存在A口

MOVDX,OFBC2H MOVAL,0 OUTDX,AL MOVAL,40H OUTDX,AL INCSI LOOPGOON HLTMOVDX,OFBC3HMOVAL,00001100BOUTDX,ALMOVAL,00001101BOUTDX,AL54用8255实现键盘接口CPU总线8255PC7PC6PC5PC4PC3PC1PC2PC0行3行2行1行0列0列1列2列3KR×4R×4+5V

矩阵式键盘接口电路原理图55扫描法逐行输出0,然后读入列值,检查有无为0的位;具体步骤:PC7~PC4输出全0,从PC3~PC0读入,若读入的数据有一位为0,表明有键按下;延时20ms去抖动,重复第一步动作,若还有键闭合,则认为确实有键闭合;否则返回第一步;查找被确认的键;从第0行开始逐行输出0,然后读入列值,检查有无为0的位;若无,键值加4,转下一行;56反转法将PC7~PC4设定为输出,PC3~PC0设定为输入。然后PC7~PC4输出全0,从PC3~PC0读入列值,若读入的数据有一位为0,表明该列有键按下,保存列值;将PC7~PC4设定为输入,PC3~PC0设定为输出。把保存的列值从PC3~PC0输出,从PC7~PC4读入行值,读入的数据必有一位为0,保存行值。将行值和列值组合在一起,用查表的方法得到按键的键值。57编程:设8255的端口地址为40H、41H、42H、43HSTART: MOVAL,10000001B;方式0,C口高4位输出,低4位输入

OUT43H,AL MOVAL,0 OUT42H,ALWAIT1: INAL,42H ANDAL,0FH ;取低4位

CMPAL,0FH JZWALT1 MOVAH,AL MOVAL,10001000B;方式0,C口高4位输入,低4位输出

OUT43H,AL MOVAL,AH OUT42H,AL INAL,42H ANDAL,0F0H ;取高4位

ORAL,AH … ;查表求出按键的键号587.4串行通信7.4.1串行通讯的基本概念CPU与外设之间的信息交换,在每一个时间单位仅传送一位信息,信息的所有位按顺序一位一位地传送,称为串行通信。1.串行通信的传送方式 单工:单方向传送半双工:采用分时传送的办法全双工:发送和接收同时进行A发送器B接收器单工发送器接收器发送器接收器半双工发送器接收器发送器接收器全双工592.调制与解调计算机远距离的通信可以借助电话电缆来传输信息。发送:把数字信号调制在载波信号。接收:把载波信号解调成数字信号。3种调制方法:调频、调幅、调相。调频是把数字“1”与“0”调制成两个频率不同的模拟信号;调幅是把数字“1”与“0”调制成不同幅度的模拟信号,频率保持不变;调相是把数字“1”与“0”调制成不同相位的模拟信号,频率和幅度保持不变;603.同步通信和异步通信串行通信中有同步通信和异步通信两种基本方式。同步通信及规程:定义:由若干个字符组成一个信息组,字符间无间隔,称为帧。发送端和接收端的时钟信号频率和相位始终保持一致。数据格式:单、双同步格式、SDLC同步数据链路控制规程、HDLC高级数据链路控制规程;传送速率:可达几百K波特

同步信息 数据 校验信息CRC1数据NCRC2数据2……数据1SYN2SYN1CRC1数据NCRC2数据3……数据2数据1SYN161异步通信方式及规程定义:一个字符作为一个独立的信息单元,称为帧;字符间的间隔时间不固定,字符内位和位的间隔时间固定;格式:起始位、数据位、奇偶校验位、停止位;传送速率:用波特率表示bps奇偶校验位停止位空闲位起始位起始位数据位5~8高位低位011001110000162波特率是指每秒传送信息的位数。异步通信波特率:75-19200波特,分为10级;75,110,150,300,600,1200,2400,4800,9600,19200如:每秒传送120个字符(1个起始位、7个数据位、1个奇偶校验、1个停止位,共计10位)波特率=10位×120字符/秒=1200位/秒637.4.2串行通信的接口标准RS-232-C标准 是EIA电子工业协会推荐的串行通信接口标准,接口的两端称为DTE和DCE,25芯。特点:信号线少;多种传送速率50、75,110,150,300,600,1200,2400,4800,9600,19.2K,33.6K,56K;传送距离远;基带传输30~50M负逻辑:1 -5~-15V 0 +5~+15V2 TXD发送3 RXD接受7 GND64计算机MODEMMODEM计算机电话网DTEDCEDTEDCERS-232-C657

温馨提示

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

评论

0/150

提交评论