微机接口原理课件第8章 可编程接口芯片及其应用_第1页
微机接口原理课件第8章 可编程接口芯片及其应用_第2页
微机接口原理课件第8章 可编程接口芯片及其应用_第3页
微机接口原理课件第8章 可编程接口芯片及其应用_第4页
微机接口原理课件第8章 可编程接口芯片及其应用_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

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

文档简介

可编程接口芯片及应用

第八章2概述:可编程并行接口芯片8255A可编程定时器/计数器8254可编程串行通信接口芯片8251A模拟信号接口8.1概述3计算机接口框图接口1CPUD0—D7译码器A0—A15操纵对象1接口2操纵对象2D0—D748.2可编程并行接口芯片8255A图:8255A与CPU的连接例子计算机控制对象5

对比:不可编程接口设计

无条件传送接口——透明的输入接口输出接口8.2.18255A的工作原理8255A由以下几个部分组成:数据端口A、B、C(其口被分成上下两部分)A组和B组控制逻辑数据总线缓冲器和读/写控制逻辑。678255A的内部结构

88255A的基本操作

注:请将书上260页表8-1修改一下98255A的工作方式及初始化8255A具有3种基本的工作方式方式0——基本输入输出方式方式1——选通输入输出方式方式2——双向总线I/0方式********通过初始化确定某个工作方式*********当系统复位时,8255A的RESET输入端为高电平,使8255A复位,所有的数据端口都被置成输入方式(方式0的一种)(无条件接口)(有条件接口)10控制字1:方式选择控制字此字送入控制寄存器

11例1:设8255芯片的地址为80H,81H,82H,83H.对8255初始化,使其达到下列功能:全工作于方式0,A口为输入,B口为输出,C口为输出。解:MOVAL,10010000BOUT83H,AL例2:如上题,全工作于方式0,A口、B口和C口的高4位为输出,C口的低4位为输入。解:MOVAL,10000001BOUT83H,AL12例1:设8255芯片的地址为80H,81H,82H,83H.电路如右图所示。试编程序使开关K0-K7相应控制发光管LED0-LED7。要求开关合上时相应的发光管熄灭,开关打开时相应的发光管点亮。解:MOVAL,10010000BOUT83H,ALNOPINAL,80HOUT81H,AL作业:电路不变,要求:开关动作与相应发光管的亮暗变化相反,试编程。13控制字2:C口置位/复位控制字端口C很特别,可以位操作,可以通过置位/复位控制字使端口C的任意一个引脚的输出单独置1或置0。在基于控制的应用中,经常希望在某一位上产生一个TTL电平的控制信号,利用端口C的这个特点,只需要用简单的程序就能形成这样的信号,从而简化了编程。14控制字2:C口置位/复位控制字例:

设一片8255A的口地址为60H~63H,要求从PC5的引脚输出一个正脉冲。15解:

可以用程序先将PC5置0,再值1输出一个高电平(脉冲前沿),再把PC5清0,输出一个低电平(脉冲后沿),结果,PC5引脚上便可输出一个正脉冲。实现这个功能的程序段如下:

MOVAL,00001010BOUT63H,AL;置PC5为低电平

MOVAL,00001011BOUT63H,AL;置PC5为高电平

NOP;合理设置脉宽

NOPMOVAL,00001010BOUT63H,AL;置PC5为低电平作业:让PC1产生一个正脉冲。168255工作方式1:选通输入/输出

8255A具有3种工作方式方式0——基本输入输出方式(无条件I/O)方式1——选通输入输出方式(有条件I/O)方式2——双向总线I/0方式(不讲)178255工作方式1:选通输入/输出

选通输入:STB选通信号IBF缓冲器满信号INTR中断请求信号INTE中断允许,

A口用PC4控制

B口用PC2控制注:请修改书上图8-8的INTRA的剪头方向18选通输入方式工作时序图例此8255芯片地址为80H、81H、82H、83H,选通输入,允许产生中断请求INTRa,初始化芯片(A组)解:Moval,10110000bOut83H,al;PA口置为选通输入方式Moval,00001001b;PC4位置1,允许产生INTRaOut83H,al作业此8255芯片地址为80H、81H、82H、83H,选通输入允许产生INTRb,初始化芯片(B组)198255工作方式1:选通输入/输出

选通输出:OBF输出缓冲器满信号

ACK外设的回答信号INTR中断请求信号INTE中断允许,

A口用PC6控制

B口用PC2控制注:请修改265页图8-1020选通输出方式工作时序图例此8255芯片地址为80H、81H、82H、83H,选通输出,允许产生中断请求INTRa,初始化芯片(A组)解:Moval,10100000bOut83H,al;PA口置为选通输出方式Moval,00001101b;PC6位置1,允许产生INTRaOut83H,al作业此8255芯片地址为80H、81H、82H、83H,选通输出,允许产生INTRb,初始化芯片(B组)实验八8255并行接口应用实验信号线寄存器编址IOY3A口60HB口61HC口62H控制寄存器63H228.3可编程定时器/计数器

8254应用例子:验钞机计数器CLKGATEOUT238.3.18254的工作原理一、8254的基本结构和功能①有3个独立的16位计数器;(充分体现了“集成”)②每个计数器可按二进制或十进制(BCD)计数;(单位问题,注意BCD数和16进制数格式一样)③每个计数器可编程工作于6种不同工作方式;④每个计数器允许的最高计数频率为10MHz;⑤8254有读回命令(8253没有),除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容。24二、8254的内部结构和外部引脚

1、内部结构初值寄存器+减1寄存器;减到0时OUT输出一信号,同时减1寄存器重新开始,由初值寄存器负责重装(方式0不重装!)能控制减1寄存器立即停止工作(GNTE0=0)计数器CLKGATEOUT252、外部引脚26三、8254的工作方式

8254的3个计数器均有6种工作方式,6种工作方式的主要区别在于输出波形不同、启动触发方式不同和计数过程中门控信号GATE对计数操作的影响不同。工作于任何一种方式,都必须先写控制字至控制字寄存器,以选择所需方式;对二进制形式计数为0000H~FFFFH,其中0000H为最大值,代表65536;对十进制(BCD码)计数为0000~9999,其中。0000为最大值,代表10000。(共同点:最高位看不到)27地址分配286种工作方式(模式)方式命令字【写入控制字寄存器内】29方式命令字注:对8283定时器,D7D6为1、1无意义,但对8284定时器有定义,见下页。看定时器结构30读出控制字:

D7D6D5D4D3D2D1D0

11CNT2

CNT1CNT00锁存当前计数值锁存当前计数器状态

工作方式选择

注:因用的很少,不讲此控制字。311.方式0:

方式0计数减到0输出正跃变信号方式(OutSignalonEndofCount(=0))。它是典型的事件计数用法,当计数单元为全零时,OUT信号由低变高,一般作为中断请求信号使用。方式0的基本功能是:当写入控制字后,OUT信号变为低电平,并维持低电平,直到计数内容减到零时,OUT信号立即变为高电平,并维持高电平直到再次写入新的计数值或重新写入控制字。门控信号GATE用于开放或禁止计数,GATE为1允许计数,为0则停止计数。32

方式0波型图:如GATE恒为高电平,且不再写入新初值,则OUT将一直维持高电平。计数器CLKGATEOUT332.方式1:不学343.方式2:分频方式方式2的特点是计数器有“初值自动重装”的功能,即计数值减到0后,原计数初值会自动地重新装入计数器,同时OUT端输出一个脉冲,所以能够输出固定频率的脉冲,即有分频功能。如果初始值为4,则输出频率将是输入脉冲频率的1/4。

计数器CLKGATEOUT35方式2波形图:364.方式3:方波发生器方式3称为方波发生器(SquareWaveOutput)方式。它的典型用法是作为波特率发生器。方式3有初值自动重装的功能。其工作特点如下:①写入控制字后,OUT输出为低电平。写入计数初值n后,如果GATE为高电平,则在下一个CLK脉冲下降沿时,OUT跳变为高电平,同时计数器开始计数。②当计数初值为偶数的时候,每来—个CLK脉冲,计数值减2;当计数值减到0的时候输出端改变极性,内部完成初值自动重装,继续计数。因此,输出端为1:1的方波,正脉冲和负脉冲的宽度均为n/2的CLK周期。③当计数初值为奇数的时候,负脉冲比正脉冲窄1个CLK脉冲宽度。如计数初值为9,则正脉冲宽度为5个CLK脉宽,而负脉冲宽度为4个CLK脉宽。37方式3波形图:388254的编程

8254复位后,3个计数器的OUT引脚均为低电平,8254内所有寄存器状态未知。和所有的可编程接口芯片一样,要让8254工作,首先必须对8254进行初始化。39

初始化编程:

8254的初始化编程包括两方面:一是向控制字寄存器写入方式控制字,如3个都用要写3次(1个地址)。二是向所使用的计数器写入计数初值。如3个都用要写3次(3个地址)。注意:每个计数器在使用前,都要向控制字寄存器中为该计数器写入一个方式控制字。例如:某8254的地址为40~43H则:计数器0:40H计数器1:41H计数器2:42H控制字:43H40例:

计数器CLKGATEOUT+5V

方波10MHz5kHz试使用8254的计数器0做成一个频率为5kHz的方波发生器,设8254的端口地址为40H~43H,时钟fclk0=10MHz。解:根据8254的工作方式,计数器0应工作于方式3。计数初值=fclk0÷fout0=10MHz÷5kHz=2000。

41初始化程序:

MOVAL,00110110BOUT43H,AL;写控制字,定义计数器0;使用16位二进制计数

;工作于方式3,MOVAX,2000OUT40H,AL;为计数器0送计数初值;先送低8位MOVAL,AHOUT40H,AL;为计数器0送计数初值高8位至此时刻起,OUT0开始输出所要求的方波。428.3.28254在微机中的应用PC系列机的定时系统由独立的两部分组成。一部分是控制时序产生电路,主要用于CPU内部指令的执行过程:指令时钟。另一部分主要用于CPU的外围接口芯片,这部分定时电路可按不同的接口芯片产生不同的时序脉冲信号。8254主要应用于后—种43PC系列机定时系统结构图8255A地址60~63H61H为B口地址。DMA请求刷新中断号为8产生方波频率:1.1931816MHz输出方波频率(系统时钟用):18.2Hz(周期约55ms)返回扬声器门注意:书284页图有错TATE2改为GATE244定时器的应用思路1.如何应用于电脑时钟计数器CLKGATEOUTIRQ01.1931816MHz18.2Hz方波(周期约55ms)8259ACPU中断请求+5V2.如何应用于实现电脑歌曲计数器CLKGATEOUT1.1931816MHz+5V

方波452.如何应用于实现电脑歌曲计数器CLKGATEOUT1.1931816MHz+5V

方波名曲:12311231345—345—4.65.4314.65.431151—151—简谱:1234567262286311349392440494HZ男中音123---493Hz,男高音164---698Hz女中音123---493Hz,女高音220---1.1KHz

46计数器0作用——系统计时器:PC系列微机系统中,计数器0是一个产生时钟信号的系统计时器。系统主要利用它完成秒、分、时、天、月、年的计数。计数器的地址为40h--43h,初始化程序如下:MOVAL,00110110B;计算器0控制字,;方式3,16位2进制计数OUT43H,ALMOVAL,0;初值为0000H=65536OUT40H,AL;产生方波频率为1.1931816MHz÷65536=18.2HzOUT40H,AL;周期为1/18.2=54.925ms(近似为55ms)

注:54.925×18=988.25ms,此11.75ms的误差是专门为18次中断引起的小延时预留的。47计数器1作用——动态存储器定时刷新控制:PC系列微机系统中,计数器1专门用做动态存储器刷新的定时控制。初始化程序如下:MOVAL,01010100B;方式2,分频方式OUT43H,ALMOVAL,18;OUT输出信号频率为1.1931816MHz÷18=66287HzOUT41H,AL;OUT输出信号周期为1/66287=15.08us,每15.08us刷新用一次48

计数器2作用———扬声器音频发生器:计数器2用于为系统机箱内的扬声器发声提供音频信号。系统利用扬声器发声进行开机提示和故障报警(如内存条不存在和显卡故障等);此外,应用程序还可对计数器2初始化编程,用于乐曲演奏等。计数器CLKGATEOUT+5V

方波49作业:

8254计数器的端口地址为30H,31H,32H,33H,3个通道使用同一个输入时钟,频率=1MHZ,要求如下:(1)用计数器0,计数10次后申请中断。(2)用计数器1作为分频器,输出频率为1KHZ。(3)用计数器2作方波发生器,输出方波频率为2KHZ。请编写该8253的初始化程序。(均采用2进制式)50518.4可编程串行通信接口芯片8251A电脑电脑52并行通信与串行通信图1、2并行通信与串行通信538.4可编程串行通信接口芯片8251A做实验用的芯片及电路54异步通信与同步通信

(均属串行通信)1、异步通信起时位结束位有效信息间隙期全155

异步通信与同步通信

(均属串行通信)2、同步通信

外同步自同步56

串行通信的波特率

每秒传送的位数,单位是bps。国际上固定了标准波特率系列:

110,300,600,1200,1800,2400,4800,9600,19200

如:串行打印机工作在110波特。近距离串行通信工作在9600波特。注意:在同样波特率下,在同一个时间段内同步方式比异步方式能传送更多的信息。例如:异步通信,设每个字符对应一个起始位,8个信息位,一个停止位,波特率为1200bps。则每秒的最大字符数为1200/10=120,所含的8位信息个数为:

120个。用同步通信,用2个8位同步字符作为信息帧头部,也按

1200波特率,则每秒能传送的8位字符个数为:

1200/8=150,减去2个非信息的8位同步字符,既每秒能传送8位信息的个数:148

57

串行通信的波特率系数

同步方式时,波特率系数等于1;异步方式时,波特率系数等于1,16,32,64。

通常取16

既传送时所用时钟的频率是波特率的16倍。如波特率:1200则需要时钟频率为:19200Hz

588251A的基本性能1、8251A通过编程,可以工作在同步方式,也可以工作在异步方式。同步方式下,波特率为0~64Kbps,异步方式下,波特率为0~19.2Kbps。2、8251A在异步方式下能自动为每个数据增加一个启动位,并能根据编程为每个数据增加1个、1.5个或2个停止位。

两种方式均可实现奇偶校验。即自动在每个数据后加上奇偶校验位59从功能上看,8251A芯片有下面7个模块组成:(发送时钟信号)

(发送准备好指示)

(发送器空指示)

(接收准备好指示)

(接收时钟信号)

(同步信号检测到指示)

60发送时加上包装接收时自动去掉包装异步通信618251A作为远程通信调制解调器MODEM的接口

C/D=0:传送数据地址C/D=1:控制口地址和读状态地址SYNDET同步检测信号TxRDY发送器准备好信号。

RxRDY接收器准备好信号。TxD:发信息端RxD:收信息端TxD发RxD收串行发送快慢控制(波特率)远程传输628251A对特殊外设——调制解调器MODEM

所设置的联络信号TxD发信息RxD收信息

远程传输调制器直接短距离通信63

从右图看出:如将8251A作同步串行口用,则要向该芯片写入模式字、同步字符、控制字等。

8251A如何与CPU的总线相连哪?尤其是如何与地址总线相连。?8251A提供的地址端口有:

CSC/D

8251A的编程模式字格式控制字格式初始化举例控制字复位向1地址送复位字向1地址送模式字向1地址送控制字向0地址送数据64控制字格式,写入地址:C/D=1返回返回举例处返回79复位字:40H65模式字格式写入地址:C/D=1返回返回举例处返回7966MOVAL,40H;内部复位命令

OUT41H,ALMOVAL,0FAH;装模式字:异步模式,波特率因子=16,7个数据位,

;1个偶校验位,2个停止位.OUT41H,AL;送8251A,C/D=1MOVAL,37H;装控制字:使发送启动,使接收启动,并设置有关

;信息。

OUT41H,AL;送8251A,C/D=1

异步模式下的初始化程序片段假定8251A的地址为:40H,41H.按8251初始化流程图编初始化程序67状态字读出地址:C/D=1

MOVDX,41H(C/D=1

控制和状态口地址)INAL,DXTESTAL,2;接收到数据了吗?问状态字………….TESTAL,38H;接收数据的有问题吗?问状态字………….MOVDX,40H(C/D=0数据口地址)INAL,DX;若接收数据无问题,则读数据到AL寄存器。返79返8068例:两台计算机串行通信,第一台计算机8251A的数据口和控制口地址分别为1F0H和1F2H,两台电脑之间采用查询方法、异步传送、半双工通信。实际电路如下页。设第一台计算机要求发送的数据存放在以BUFF_T为初始址(偏移量)的内存单元中,发送数据个数为COUNT_T;第一台计算机接收数据存放到以BUFF_R为初始址的内存单元中,接收数据的个数为COUNT_R。请编写第一台计算机的串行通信发送程序。第一台计算机第二台计算机第一台第二台1F0HlF2HTxDRxDGND69异步串行近距离通信的硬件电路:P300工作于方式3f=16×波特率70分析:发送端将数据送到端口发送缓冲器后,CPU不断查询TxRDY的状态是否为有效的高电平,若为高,表示已发送完从而发送缓冲器变空,可用OUT指令向8251A输出下一个数据字节进行发送,直至发送完COUNT_T字节数据

。接收数据时,CPU不断检测RxRDY是否为有效的高电平,若为高则表示字符的全部位已接收完,CPU可用IN指令从8251A取走一个完整的字符数据,用同样方法接收下一个数据,直至接收完COUNT_R字节数据。第一台计算机第二台计算机71BET-T:MOVDX,1F2H;控制口1F2HMOVAL,40H;向控制口写入控制字40H,OUTDX,AL

;使系统先夏位MOVAL,7AH;方式宇:异步方式,7个数据位,1个停止位;偶校验、波特率系数为16OUTDX,AL

MOVCX,02H;延时D1:LOOPD1;注意:改正书上错误P301MOVAL,11H;控制字

OUTDX,AL;清除错误标志,允许发送

MOVCX,02H;延时D2:LOOPD2MOVDI,BUFF_T;发送数据的缓冲区首地址

MOVCX,COUNT_T;发送数据个数NEXT_T:movdx,1f2h控制口1F2HINAL,DX;读入状态

TESTAL,1

;TxRDY有效吗? 注意:改正书上错误P301JZNEXT_T;无效,则等待

MOVDX,1F0H;数据口地址送DX数据口1F0H控制口1F2HMOVAL,[DI];从缓冲区取一个数据

OUTDX,AL;向8251A输出一个数据(送发送缓冲单元)进行发

INCDI;修改缓冲区指针

LOOPNEXT_T;没送完则继续

……;送完

发送数据的编程部分数据口地址1F0H

控制口地址1F2H

72

……;使系统复位BEG_R:MOVDX,1F2H;控制口

MOVAL,7AHOUTDX,AL;送出方式字,同发送部分

MOVCX,02H;延时D3:LOOPD3MOVAL,14HOUTDX,AL;输出命令字,清错误标志,允许接收

MOVCX,02H;延时D4:LOOPD4MOVDI,BUFF_R;接收数据缓冲区地址

MOVCX,BOUNT_R;接收数据个数NEXT_R:movdx,1f2hINAL,DX

;读入状态字注意:改正书上错误P302TESTAL,02H;RxRDY有效吗?

JZNEXT_R;否,循环等待

TESTAL,38H;是,检查是否有错

JNZERROR;有错,则转出错处理程序

MOVDX,1F0H;无错送数据口地址

INAL,DX;读入一个数据并开始一位一位的发

MOV[DI],AL;输入数据到缓冲区

INCDI;修改缓冲区指针

LOOPNEXT_R;数据没有完成则继续

.......;完成ERROR:.......;出错处理接收数据的编程部分73计算机总线计算机接口芯片总汇74758.5模拟信号接口计算机系统数字信号数字信号模拟信号???温度?大气压?风速?768.5模拟信号接口计算机系统数字信号???模拟信号???模拟信号778.5.1D/A转换器(DAC)数字量模拟量040801201602002402552V4V5V781.DAC的基本原理[权电阻DAC网络

]V0I0=Vref/(8R)I1=Vref/(4R)I2=Vref/(2R)I3=Vref/(1R)V0=-(I0D0+I1D1+I2D2+I3D3)RfV0=-((D0/8+D1/4+D2/2+D3)Rf*Vref)/R位控电子开关:0:断;1:闭合79T型电阻(R-2R)电阻网络作业:自己推导V0与二进制数的关系V080DAC0832DAC0832是8位D/A转换器,是DAC0800系列的一种。DAC0832与微机接口方便,转换控制容易,且价格便宜,因此在实际中得到了广泛的应用。3.典型DAC器件81(1)DAC0832内部逻辑功能示意图

三种工作方式:①双缓冲方式②单缓冲方式③直通方式

DAC的参数指标:(1)转换精度(2)转换速率(3)线性误差DAC的输出方案

电流型82用DAC0832可产生各种波形的接口电路(3)DAC0832应用举例

设8255A的端口地址分别为3F0H、3F1H、3F2H、3F3H。通过编程,改变DAC0832的输入数字量,在V0端获得各种输出电压波形

83MOVDX,3F3H;8255A控制口地址MOVAL,80H;设置8255A方式字OUTDX,AL;A,B,C口均为方式0输出MOVDX,3F2H;8255A的C口地址MOVAL,10H;置DAC0832为直通方式OUTDX,ALMOVDX,3F0H;8255A口地址MOVAL,00H;输出数据初值LOP:OUTDX,AL;锯齿波输出

INCAL;修改数据

JMPLOP;锯齿波循环

产生锯齿波的硬件和软件硬件:将DAC0832接成直通型;软件:利用8255的A口以一定速度给0832

送:0、1、2……255、0、1、2……8255A的端口地址分为:3F0H、3F1H、3F2H、3F3H。845.17858.5.2A/D转换器(ADC)A/D是D/A的逆过程,它把模拟信号转换成数字信号。

A/D转换器的主要参数

(1)转换速率

(2)分辨率868.5.2A/D转换器(ADC)转换方法之一:逐次逼近式ADCD/A转换87转换方法之二:双积分式ADC

被测信号反积分电压思路:先给Vi定时积分:

再用反电压(大小已知)积分:根

温馨提示

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

评论

0/150

提交评论