第8章可编程接口芯片及应用(6h+4h)_第1页
第8章可编程接口芯片及应用(6h+4h)_第2页
第8章可编程接口芯片及应用(6h+4h)_第3页
第8章可编程接口芯片及应用(6h+4h)_第4页
第8章可编程接口芯片及应用(6h+4h)_第5页
已阅读5页,还剩106页未读 继续免费阅读

下载本文档

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

文档简介

1、西邮计算机学院西邮计算机学院第8章 可编程接口芯片及应用主要内容l为了实现人机交互和各种形式的输入为了实现人机交互和各种形式的输入/ /输出操作,微机系统输出操作,微机系统中使用了各种各样的中使用了各种各样的I/OI/O设备。这些设备。这些I/OI/O设备在工作原理、设备在工作原理、驱动方式、信息格式以及工作速度等方面均存在很大差异驱动方式、信息格式以及工作速度等方面均存在很大差异,在处理速度上也比,在处理速度上也比CPUCPU慢得多,所以,必须通过接口电慢得多,所以,必须通过接口电路(介于主机和外设之间的一种缓冲电路)把它们与主机路(介于主机和外设之间的一种缓冲电路)把它们与主机系统连接起来

2、。系统连接起来。l随着微型计算机技术的发展,与其配套的各种接口芯片大随着微型计算机技术的发展,与其配套的各种接口芯片大量出现,不同系列的微处理器都有其标准化、系列化的接量出现,不同系列的微处理器都有其标准化、系列化的接口芯片可供选用。口芯片可供选用。l本章仅介绍本章仅介绍80 x8680 x86系列微处理器配套使用的通用可编程接口系列微处理器配套使用的通用可编程接口芯片,例如:芯片,例如:8253/82548253/8254、82558255等等。1234章节安排可编程定时器可编程定时器/ /计数器芯片计数器芯片8253/82548253/8254可编程并行接口芯片可编程并行接口芯片8255A

3、8255A串行通信及可编程接口芯片串行通信及可编程接口芯片8251A8251A模模/ /数与数数与数/ /模转换技术及其接口模转换技术及其接口8.1 可编程定时器/计数器芯片8253/8254l定时信号的产生定时信号的产生l1. 1.软件定时软件定时l方法:根据所需时间常数设计一个延迟子程序。方法:根据所需时间常数设计一个延迟子程序。l优点:节省硬件。优点:节省硬件。l缺点:执行延时程序期间缺点:执行延时程序期间CPUCPU一直被占用,降低了一直被占用,降低了CPUCPU效率,不易提供多作业环境。效率,不易提供多作业环境。l适用:延时时间较短、重复次数有限的情况。适用:延时时间较短、重复次数有

4、限的情况。8.1 可编程定时器/计数器芯片8253/8254(续)l2. 2.硬件定时硬件定时l方法:利用专门的定时方法:利用专门的定时/ /计数器作为主要硬件,在简单计数器作为主要硬件,在简单软件控制下,产生准确时间延迟。软件控制下,产生准确时间延迟。l优点:定时优点:定时/ /计数器与计数器与CPUCPU并行工作,不占并行工作,不占CPUCPU时间,利时间,利用定时用定时/ /计数器产生中断信号,可以建立多作业环境,计数器产生中断信号,可以建立多作业环境,大大提高了大大提高了CPUCPU利用率。利用率。l适用:广泛应用。适用:广泛应用。l8253825382548254是是IntelInt

5、el公司生产的一种通用的计数定公司生产的一种通用的计数定时器时器CTCCTC,也称为可编程序间隔定时器,也称为可编程序间隔定时器PITPIT,它是,它是采用采用NMOSNMOS工艺由单一工艺由单一+5V+5V电源供电的双列直插式电源供电的双列直插式封装封装2424引脚芯片。引脚芯片。l8253825382548254芯片两者的外形引脚及功能都是兼容的芯片两者的外形引脚及功能都是兼容的,仅是工作的最高频率有所不同,以满足不同的,仅是工作的最高频率有所不同,以满足不同的接口要求。例如:接口要求。例如:l8253 (2MHz)8253 (2MHz)、 8253-5 (5MHz )8253-5 (5M

6、Hz ),l8254 (8MHz)8254 (8MHz)、 8254-5 (5MHz )8254-5 (5MHz )、 8254-2 (10MHz)8254-2 (10MHz)。8.1 可编程定时器/计数器芯片8253/8254(续)8.1.1 8253的结构及功能l1 82531 8253的引脚的引脚图图8.1 82538.1 8253引脚及功能结构引脚及功能结构 8253124223322421520619718817916101511141213D7CLK0OUT0GATE0GNDOUT1VCCA1CLK2OUT2GATE2CLK1GATE1D6D5D4D3D2D1D0WRRDCSA0

7、0#8253D7D0A0CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2WRRDA1CS 1# 2#8.1.1 8253的结构及功能(续)l2 82532 8253内部结构内部结构8.1.1 8253的结构及功能(续)l(1) (1) 数据总线缓冲器数据总线缓冲器l82538253用于和用于和CPUCPU数据总线连接的数据总线连接的8 8位、双向、三态缓冲器,位、双向、三态缓冲器,CPUCPU读写读写82538253的所有数据都经过该缓冲器。的所有数据都经过该缓冲器。lCPUCPU用输出指令向用输出指令向82538253写入方式控制字至控制寄存器、写写入方式控制字

8、至控制寄存器、写入计数值至某个计数器,都是经数据总线缓冲器和入计数值至某个计数器,都是经数据总线缓冲器和82538253内内部总线传送的。部总线传送的。lCPUCPU用输入指令读某个计数器值时,该计数器的现行计数用输入指令读某个计数器值时,该计数器的现行计数值经值经82538253内部总线和数据总线缓冲器传送到系统数据总线内部总线和数据总线缓冲器传送到系统数据总线上,读入上,读入CPUCPU。8.1.1 8253的结构及功能(续)l(2) (2) 读写逻辑读写逻辑l82538253内部操作的控制部件内部操作的控制部件l接收系统总线输入信号,转换成接收系统总线输入信号,转换成82538253内部

9、操作的各种控制内部操作的各种控制信号信号l选择读写操作的对象(某计数器或控制寄存器选择读写操作的对象(某计数器或控制寄存器由由A0A0、A1A1决定)决定)l决定内部总线上数据的传送方向(输入还是输出由决定内部总线上数据的传送方向(输入还是输出由WRWR、RDRD决定)决定)l82538253端口地址及内部操作端口地址及内部操作8.1.1 8253的结构及功能(续)l(3) (3) 控制寄存器控制寄存器l82538253初始化时接收初始化时接收CPUCPU写入的控制字写入的控制字l控制字指定计数器的工作方式,选择以二进制或控制字指定计数器的工作方式,选择以二进制或二二十进制计数等十进制计数等l

10、该寄存器为该寄存器为只写只写寄存器寄存器8.1.1 8253的结构及功能(续)l(4) (4) 计数器计数器0 0、计数器、计数器1 1、计数器、计数器2 2l三个计数器结构完全相同、操作完全独立三个计数器结构完全相同、操作完全独立l每个计数器内部包含:一个每个计数器内部包含:一个1616位计数初值寄存器(位计数初值寄存器(CRCR)、)、计数执行部件(计数执行部件(CECE)、一个)、一个1616位输出锁存器(位输出锁存器(OLOL)和一个)和一个控制寄存器控制寄存器l每个计数器外部有两个输入端(每个计数器外部有两个输入端(CLKCLK、GATEGATE)和一个输)和一个输出端(出端(OUT

11、OUT)8.1.1 8253的结构及功能(续)l3 3 计数器的内部结构计数器的内部结构计数器 0控制寄存器计数初值寄存器(CR)减1计数器(CE)输出锁存寄存器(OL) CRHCEHOLHCRLCELOLL8.1.1 8253的结构及功能(续)l4 82534 8253的工作过程的工作过程由由CPUCPU向向控制寄存器控制寄存器写入控制字,以确定工作方式;写入控制字,以确定工作方式;由由CPUCPU向向计数器寄存器计数器寄存器写入计数初值或定时常数;写入计数初值或定时常数;计数单元计数单元从计数器寄存器中获得初值,在从计数器寄存器中获得初值,在CLKCLK端输入端输入的计数脉冲控制下进行的计

12、数脉冲控制下进行减减1 1计数计数(CLK(CLK决定计数速率决定计数速率) );8.1.1 8253的结构及功能(续)l4 82534 8253的工作过程的工作过程8.1.1 8253的结构及功能(续)8.1.2 8253的编程l82538253在工作之前,用户首先要为某一计数器在工作之前,用户首先要为某一计数器( (计数计数器器0 0 2) 2)写入控制字以确定其工作方式;写入定时写入控制字以确定其工作方式;写入定时/ /计数初值;在定时计数初值;在定时/ /计数工作过程中,有时还需要计数工作过程中,有时还需要读取某计数器当前的计数值。读取某计数器当前的计数值。l1. 82531. 825

13、3的控制字格式的控制字格式l82538253的控制字格式如下图所示。的控制字格式如下图所示。0 二进制计数1 十进制计数00 将减1计数器CE中的数据 锁存到OL中(锁存功能)000 方式0D7D6计数器选择读写格式工作方式数制00 选择计数器001 选择计数器110 选择计数器211 非法01 对计数器的低8位读或写10 对计数器的高8位读或写11 计数器16位操作(先低8 位,后高8位读或写)001 方式110 方式211 方式3100 方式4101 方式5D5D4D3D1D2D0SC1RL1M1M0M2BCDSC0RL08.1.2 8253的编程(续)l2 82532 8253的读的读/

14、 /写操作写操作l对对82538253的读的读/ /写操作不仅要用到写操作不仅要用到RDRD和和WRWR控制信号,还要根控制信号,还要根据计数据计数/ /定时工作的要求利用门控信号定时工作的要求利用门控信号GATEGATE和锁存功能来和锁存功能来控制控制82538253的读的读/ /写操作。写操作。l 读操作:是指读出计数器的计数值至读操作:是指读出计数器的计数值至CPUCPU中。中。l直接读出直接读出( (停读停读) ):l直接用输入指令读取所选择的端口计数器值。直接用输入指令读取所选择的端口计数器值。l锁存读出锁存读出( (飞读飞读) ):l锁存计数值以供读取,是专为在计数过程中读数据而设

15、计的。锁存计数值以供读取,是专为在计数过程中读数据而设计的。l(2) (2) 写操作:是指写操作:是指CPUCPU对对82538253写入控制字或计数初值。写入控制字或计数初值。8.1.2 8253的编程(续)l3. 3. 初始化编程初始化编程l82538253投入工作之前,投入工作之前,CPUCPU要对它进行初始化编程。初始化要对它进行初始化编程。初始化编程的步骤为:编程的步骤为:l 写入计数器的控制字,规定其工作方式及相应功能;写入计数器的控制字,规定其工作方式及相应功能;l 写入计数初值。写入计数初值。例如:设例如:设82538253端口地址为端口地址为4040 43H43H。 若若选择

16、选择0 0计数器,工作在方式计数器,工作在方式3 3,计数初值为,计数初值为2354H2354H,十进制计数方式,十进制计数方式; 或或选择选择l l计数器,工作在方式计数器,工作在方式2 2,计数初值为,计数初值为18H18H,二进制计数方式二进制计数方式。 根据根据上述各计数器的功能,其初始化编程如下:上述各计数器的功能,其初始化编程如下: 0 0计数器的控制字为:计数器的控制字为:37H37H 1 1计数器的控制字为:计数器的控制字为:54H54H SC1RL1M1M0M2BCDSC0RL08.1.2 8253的编程(续)l对对0 0计数器初始化编程:计数器初始化编程: MOVMOVAL

17、AL, 37H 37H ;对;对0 0计数器送控制字。计数器送控制字。 OUT OUT 43H43H, ALAL MOV MOV ALAL, 54H 54H ;送初值的低;送初值的低8 8位。位。 OUT OUT 40H40H, ALAL MOV MOV ALAL, 23H 23H ;送初值的高;送初值的高8 8位。位。 OUT OUT 40H40H, ALALl对对1 1计数器初始化编程:计数器初始化编程: MOV MOV AL,AL,01010100B 01010100B ;对;对1 1计数器送控制字。计数器送控制字。 OUT OUT 43H43H, ALAL MOV MOVALAL, 1

18、8H 18H ;计数初值送低;计数初值送低8 8位。位。 OUTOUT41H41H, ALAL8.1.2 8253的编程(续)l当采用当采用“飞读飞读”的方法读取的方法读取1 1计数器的计数值时,可采用计数器的计数值时,可采用如下程序片段:如下程序片段: MOV MOV ALAL, 010100000100100B 0B ;对;对1 1计数器送锁存控制字。计数器送锁存控制字。 OUT OUT 43H43H, ALAL IN IN ALAL, 41H 41H ;读低;读低8 8位。位。 MOV MOV CLCL, AL AL ;读取的计数值存于;读取的计数值存于CLCL中。中。l当计数值为当计数

19、值为1616位时,则位时,则“飞读飞读”时还应读取高时还应读取高8 8位锁存器中位锁存器中的计数值。即:的计数值。即: IN IN ALAL, 41H 41H ;读低;读低8 8位。位。 MOV MOV CLCL, ALAL IN IN ALAL, 41H 41H ;读高;读高8 8位。位。 MOV MOV CHCH, ALAL8.1.3 8253的工作方式及时序图l82538253定时器计数器的每个计数器都有六种可编程选择的定时器计数器的每个计数器都有六种可编程选择的工作方式。工作方式。l对于每一种工作方式,由时钟输入信号对于每一种工作方式,由时钟输入信号CLKCLK确定计数器递确定计数器递

20、减的速率。减的速率。l门控信号门控信号GATEGATE用于允许或禁止用于允许或禁止CLKCLK信号进入计数器,或信号进入计数器,或者根据工作方式用作计数器的启动信号。者根据工作方式用作计数器的启动信号。l计数结束时,在输出线计数结束时,在输出线OUTOUT上产生一个标志信号,该信号上产生一个标志信号,该信号可编程定义为脉冲、恒定电位或周期信号。可编程定义为脉冲、恒定电位或周期信号。l区分六种工作方式的主要标志有三点:区分六种工作方式的主要标志有三点:输出波形不同;输出波形不同;启动的触发方式不同;启动的触发方式不同;计数过程中门控信号计数过程中门控信号CATECATE对计数操作的影响不同。对计

21、数操作的影响不同。l现在分别讨论不同工作方式的特点。现在分别讨论不同工作方式的特点。8.1.3 8253的工作方式及时序图(续)1. 1.方式方式0 0 计数结束产生中断方式计数结束产生中断方式8.1.3 8253的工作方式及时序图(续)322201CLKGATEOUTWRCWN31. 1.方式方式0 0 计数结束产生中断方式计数结束产生中断方式8.1.3 8253的工作方式及时序图(续)12120CLKGATEOUTWRCWN2图图8.7 8.7 方式方式1 1的波形的波形 2. 2.方式方式1 1 可编程单次脉冲可编程单次脉冲8.1.3 8253的工作方式及时序图(续)CLKGATEOUT

22、WRCWN3TOUTN*TCLK1321233图图8.8 8.8 方式方式2 2的波形的波形 3. 3.方式方式2 2 分频工作方式分频工作方式8.1.3 8253的工作方式及时序图(续)2143342CLKGATEOUTWRCWN4TOUTN*TCLK图图8.9 8.9 方式方式3 3的波形的波形 4. 4.方式方式3 3 方波发生器方波发生器8.1.3 8253的工作方式及时序图(续)21034CLKGATEOUTWRCWN45. 5.方式方式4 4 软件触发选通软件触发选通8.1.3 8253的工作方式及时序图(续)04312CLKGATEOUTWRCWN46. 6.方式方式5 5 硬件

23、触发选通硬件触发选通8.1.3 8253的工作方式及时序图(续)8253工作方式小结l输出端输出端OUTOUT的初始状态的初始状态l只有方式只有方式0 0是在写入控制字后输出为低,其他均为高是在写入控制字后输出为低,其他均为高l计数值的设置计数值的设置l任一种方式,只有在写入计数值之后才能开始计数,方任一种方式,只有在写入计数值之后才能开始计数,方式式0 0、2 2、3 3、4 4在写入计数值之后,计数自动开始,方式在写入计数值之后,计数自动开始,方式1 1、5 5需要外部触发才开始计数需要外部触发才开始计数计数值N与输出波形的关系方式方式功能功能N N与输出波形的关系与输出波形的关系0 0计

24、完最后一个数中断计完最后一个数中断写入计数值写入计数值N N后,经过后,经过N N+1+1个个CLKCLK脉冲输出变高脉冲输出变高1 1硬件再触发单拍脉冲硬件再触发单拍脉冲单拍负脉冲的宽度为单拍负脉冲的宽度为N N个个CLKCLK脉冲脉冲2 2速率发生器(分频)速率发生器(分频)N N个个CLKCLK脉冲,输出宽度为一个脉冲,输出宽度为一个CLKCLK周期的负脉冲周期的负脉冲3 3方波发生器方波发生器写入写入N N后,输出后,输出N/2N/2个个CLKCLK高电平,高电平,N/2N/2个个CLKCLK低电低电平(平(N N为偶数);(为偶数);(N+1N+1)/2/2个个CLKCLK高电平,(

25、高电平,(N-1N-1)/2/2个个CLKCLK低电平(低电平(N N为奇数)为奇数)4 4软件触发选通软件触发选通写入写入N N后,经过后,经过N+1N+1个个CLKCLK,输出宽度为一个,输出宽度为一个CLKCLK的负脉冲的负脉冲5 5硬件触发选通硬件触发选通门控触发后经过门控触发后经过N+1N+1个个CLKCLK,输出宽度为一个,输出宽度为一个CLKCLK的负脉冲的负脉冲门控信号的作用lGATEGATE输入总是在输入总是在CLKCLK输入时钟的上升沿被采样。输入时钟的上升沿被采样。l在方式在方式0 0、2 2、3 3、4 4中,中,GATEGATE输入是电平起作用。输入是电平起作用。l在

26、方式在方式1 1、2 2、3 3、5 5中,中,GATEGATE输入是上升沿起作用。输入是上升沿起作用。方式方式功能功能GATEGATE低或变为低低或变为低上升沿上升沿高高0 计完最后一个数中断 禁止计数 允许计数1 硬件再触发单拍脉冲 启动计数 下一个CLK脉冲使输出变低2 速率发生器(分频) 禁止计数 立即使输出为高 重新装入计数值 启动计数 允许计数3 方波发生器 禁止计数 立即使输出为高 启动计数 允许计数4 软件触发选通 禁止计数 允许计数5 硬件触发选通 启动计数在计数过程中改变计数值l说明:说明:“立即有效立即有效”是指写入计数值后的下一个是指写入计数值后的下一个CLKCLK脉冲

27、后,新的计数值开始起作用。脉冲后,新的计数值开始起作用。方式方式功能功能改变计数值改变计数值0 0计完最后一个数中断计完最后一个数中断立即有效立即有效1 1硬件再触发单拍脉冲硬件再触发单拍脉冲外部触发后有效外部触发后有效2 2速率发生器(分频)速率发生器(分频)计数到计数到1 1后有效后有效3 3方波发生器方波发生器外部触发后有效外部触发后有效计数到计数到0 0后有效后有效4 4软件触发选通软件触发选通立即有效立即有效5 5硬件触发选通硬件触发选通外部触发后有效外部触发后有效8.1.4 8254与8253的区别l82548254是是82538253的改进型,它们的引脚定义与排列、硬件组成的改进

28、型,它们的引脚定义与排列、硬件组成等基本上是相同的。因此等基本上是相同的。因此82548254的编程方式与的编程方式与82538253是兼容的是兼容的,凡是使用,凡是使用82538253的地方均可用的地方均可用82548254代替。代替。l 允许最高计数脉冲允许最高计数脉冲(CLK)(CLK)的频率不同。的频率不同。82538253的最高频率的最高频率为为2 MHz2 MHz,而,而82548254允许的最高计数脉冲频率可达允许的最高计数脉冲频率可达10 10 MHz(8254MHz(8254为为8 MHz8 MHz,8254282542为为10 MHz)10 MHz)。l 8254 8254

29、每个计数器内部都有一个状态寄存器和状态锁存器每个计数器内部都有一个状态寄存器和状态锁存器,而,而82538253没有。没有。l 82548254有一个读回命令字,用于读出当前减有一个读回命令字,用于读出当前减1 1计数器计数器CECE的的内容和状态寄存器的内容,而内容和状态寄存器的内容,而82538253没有此读回命令字。没有此读回命令字。 8.1.5 8253应用举例l例例8.2 8.2 使用使用82538253计数器计数器2 2产生频率为产生频率为40 kHz40 kHz的方波,的方波,设设82538253的端口地址为的端口地址为0040H0040H 0043H0043H,已知时钟端,已知

30、时钟端CLKCLK2 2输入信号的频率为输入信号的频率为2 MHz2 MHz。试设计。试设计82538253与与80888088总线的接口电路,并编写产生方波的程序。总线的接口电路,并编写产生方波的程序。8253与8088总线的接口电路图& 74LS138ABC8253D0A0CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2D7D7D0RDWRA1CS0Y1G2BG2AG1&A0A1A2A3A4A5A6A7A8A9A15WRRDIOM2MHz40kHz8.1.5 8253应用举例(续)l1 1 工作方式控制字工作方式控制字l2 2 计数初值:计数初

31、值:l计数初值计数初值= =输入频率输入频率/ /输出频率输出频率 =2000000Hz/40000Hz =2000000Hz/40000Hz =50 =50 =0032H =0032HD7D6D5D4D3D2D1D0SC1RL1M1M0M2BCDSC0RL0111101108.1.5 8253应用举例(续)l根据上述要求根据上述要求2 2计数器应设置成方式计数器应设置成方式3 3工作状态,工作状态,按双字节传送的按双字节传送的5050分频计数值应为分频计数值应为0032H0032H。此时,。此时,2 2计数器的初始化程序如下:计数器的初始化程序如下:MOV MOV ALAL, 1111011

32、0B 11110110B ;对;对2 2计数器送控制字。计数器送控制字。OUT OUT 43H43H, ALALMOV MOV ALAL, 32H 32H ;送低;送低8 8位计数值位计数值32H32H。OUT OUT 42H42H, AL AL XOR XOR ALAL, AL AL ;送高;送高8 8位计数值位计数值00H00H。OUT OUT 42H42H, ALALl例:用例:用82538253产生各种定时波形。要求:产生各种定时波形。要求:OUT0OUT0输出频率宽度为输出频率宽度为2KHz2KHz的方波的方波OUT1OUT1产生宽度为产生宽度为1ms1ms的负脉冲的负脉冲OUT2O

33、UT2以硬件触发方式,输出单脉冲,时间常数为以硬件触发方式,输出单脉冲,时间常数为2626已知:已知:82538253基地址为基地址为310H310H,3 3个计数器所用的时钟脉个计数器所用的时钟脉冲频率为冲频率为1MHz1MHz。l分析:分析:l计数器计数器0 0工作于方式工作于方式3 3,门控信号,门控信号GATE0GATE0接接+5v+5v,计数初值,计数初值N0=1MHz/2KHz=500N0=1MHz/2KHz=500;l计数器计数器1 1工作于方式工作于方式1 1,由门控信号,由门控信号GATE1GATE1的正跳变触发,的正跳变触发,O U T 1O U T 1 的 宽 度 为 时

34、 常 , 单 次 触 发 , 计 数 初 值的 宽 度 为 时 常 , 单 次 触 发 , 计 数 初 值N1=1ms/0.001ms=1000N1=1ms/0.001ms=1000;l计数器计数器2 2工作于方式工作于方式5 5,由门控信号,由门控信号GATE2GATE2的正跳变触发,的正跳变触发,可连续触发,计数初值为可连续触发,计数初值为N2=26N2=26。l计数器的初始化程序:计数器的初始化程序:MOVMOVDX,DX,316H316HMOVMOVAL,AL,37H37HOUTOUTDX,DX,ALALMOVMOVDX,DX,310H310HMOVMOVAL,AL,00H00HOUT

35、OUTDX,DX,ALALMOVMOVAL,AL,05H05HOUTOUTDX,DX,ALALl计数器计数器1 1的初始化程序:的初始化程序:MOVMOVDX,DX,316H316HMOVMOVAL,AL,73H73HOUTOUTDX,DX,ALALMOVMOVDX,DX,312H312HMOVMOVAL,AL,00H00HOUTOUTDX,DX,ALALMOVMOVAL,AL,10H10HOUTOUTDX,DX,ALALl计数器计数器2 2的初始化程序:的初始化程序:MOVMOVDX,DX,316H316HMOVMOVAL,AL,9BH9BHOUTOUTDX,DX,ALALMOVMOVDX,

36、DX,314H314HMOVMOVAL,AL,26H26HOUTOUTDX,DX,ALALl例:例:82538253作为定时作为定时/ /计数器,其端口地址为计数器,其端口地址为0120H 0120H 0123H0123H,输入,输入82538253的时钟频率是的时钟频率是2MHz2MHz,要求:,要求:lCNT0CNT0每每10ms10ms输出一个输出一个CLKCLK周期宽的负脉冲周期宽的负脉冲lCNT1CNT1输出输出10KHz10KHz的连续方波信号的连续方波信号lCNT2CNT2在定时在定时5ms5ms后输出高电平后输出高电平l画出线路连接图,并编写初始化程序。画出线路连接图,并编写初

37、始化程序。l分析:分析:l计算计数初值:计算计数初值:lCNT0CNT0:10ms/0.510ms/0.5 s = 20000s = 20000lCNT1CNT1:2MHz/10KHz = 2002MHz/10KHz = 200 lCNT2CNT2:5ms/0.55ms/0.5 s = 10000s = 10000l确定控制字:确定控制字:lCNT0CNT0:方式:方式2 2,1616位计数值位计数值 0011010000110100,34H34HlCNT1CNT1:方式:方式3 3,低,低8 8位计数值位计数值 0101011001010110,56H56HlCNT2CNT2:方式:方式0

38、0,1616位计数值位计数值 1011000010110000,B0HB0H计数器计数器0 0的初始化的初始化MOVDX,0123HMOVAL,34HOUTDX,ALMOVDX,0120HMOVAX,20000OUTDX,ALMOVAL,AHOUTDX, AL计数器计数器1 1的初始化的初始化MOVDX,0123HMOVAL,56HOUTDX,ALMOVDX,0121HMOVAL,200OUTDX,AL计数器计数器2 2的初始化的初始化MOVDX,0123HMOVAL,0B0HOUTDX,ALMOVDX,0122HMOVAX,10000OUTDX,ALMOVAL,AHOUTDX, ALl例:例

39、:82538253控制控制LEDLED。要求。要求LEDLED点亮点亮1010秒,熄灭秒,熄灭1010秒秒l分析:分析:l假设假设82538253的数据线与的数据线与CPUCPU的高的高8 8位数据线位数据线D8D15D8D15相连,相连,82538253各端口的地址为各端口的地址为81H81H、83H83H、85H85H、87H87HlOUT1OUT1输出占空比为输出占空比为1:11:1的方波,的方波,82538253端口端口1 1 工作在方式工作在方式3 3l时钟频率为时钟频率为2MHz2MHz时,时,1616位计数通道的最大定时时间为位计数通道的最大定时时间为:0.50.5 s s* *

40、65536=32.768ms65536=32.768msl级连:级连:OUT0OUT0输出输出400Hz400Hz脉冲(计数初值为脉冲(计数初值为50005000),),OUT2OUT2输出输出0.05Hz0.05Hz方波(计数初值为方波(计数初值为80008000)计数器计数器0 0的初始化的初始化MOVAL,35HOUT87H,ALMOVAL,00HOUT81H,ALMOVAL,50HOUT81H, AL计数器计数器1 1的初始化的初始化MOVAL,77HOUT87H,ALMOVAL,00HOUT83H,ALMOVAL,80HOUT83H, ALl例:用例:用82538253设计一个自动计

41、数系统(计数设计一个自动计数系统(计数500500向向CPUCPU提出中断申请)。已知提出中断申请)。已知82538253的端口地址为:的端口地址为:F0HF0H,F2HF2H,F4HF4H,F6HF6H。l分析:分析:l82538253的计数器的计数器1 1工作于方式工作于方式0 0,按十进制计数,先读写低,按十进制计数,先读写低字节,后读写高字节。字节,后读写高字节。l初始化代码:初始化代码:MOVMOVAL,AL,71H71HOUTOUT0F6H,0F6H,ALALMOVMOVAL,AL,99H99HOUTOUT0F2H,0F2H,ALALMOVMOVAL,AL,04H04HOUTOUT

42、0F2H,0F2H,ALALl当前计数值的读取:当前计数值的读取:l利用门控信号利用门控信号GATE1GATE1使计数器停止计数。这种方式干扰使计数器停止计数。这种方式干扰了计数过程,需要硬件电路配合了计数过程,需要硬件电路配合l利用计数器锁存命令锁存现行计数值,就可以从相应的利用计数器锁存命令锁存现行计数值,就可以从相应的锁存器锁存器OL1OL1中读取计数值。中读取计数值。l读计数器读计数器1 1计数值的程序:计数值的程序:MOVMOVAL,AL,40H40HOUTOUT0F6H,0F6H,ALALININAL,AL,0F2H0F2HMOVMOVAH, AH, ALALININAL,AL,0

43、F2H0F2HXCHGXCHGAH,AH,ALALl例:如下页图所示为一自动计数系统。当工件例:如下页图所示为一自动计数系统。当工件从光源与光敏电阻之间通过时,从光源与光敏电阻之间通过时,CLK0CLK0端即可接端即可接收到一个脉冲信号,由计数器收到一个脉冲信号,由计数器0 0计数。每当有计数。每当有5050个工件通过后,由输出端个工件通过后,由输出端OUT0OUT0输出一个负脉冲输出一个负脉冲作为中断请求信号通知作为中断请求信号通知CPUCPU。CPUCPU在处理该中断在处理该中断的中断服务程序中启动计数器的中断服务程序中启动计数器1 1,由,由OUT1OUT1产生产生2KHz2KHz的方波

44、驱动蜂鸣器发声,提示工件已满的方波驱动蜂鸣器发声,提示工件已满5050个,个,5 5秒后扬声器停止发声。秒后扬声器停止发声。l分析:分析:l计数器计数器0 0工作于方式工作于方式2 2,计数初值为,计数初值为5050;l计数器计数器1 1工作于方式工作于方式3 3,其计数初值为,其计数初值为 2.5MHz/2KHz = 12502.5MHz/2KHz = 1250,其门控信号,其门控信号GATE1GATE1由由8255A8255A的的PA0PA0控制,输出方波信号经控制,输出方波信号经驱动、滤波后送扬声器;驱动、滤波后送扬声器;l设:端口设:端口0 0的地址为的地址为4040H H,端口端口1

45、 1的地址为的地址为4141H H,控制口地址控制口地址为为4343H H,8255A8255A的端口地址为的端口地址为8080H H。主程序为:MOVAL,15HOUT43H,ALMOVAL,50HOUT40H,ALSTILP:HLTJMPLP中断服务程序为:MOVAL,01HOUT80H,ALMOVAL,77HOUT43H,ALMOVAL,50HOUT41H,ALMOVAL,12HOUT41H,ALCALLDL5SMOVAL,00HOUT80H,ALIRET8.2 可编程并行接口芯片8255Al8.2.1 8255A8.2.1 8255A的引脚与结构的引脚与结构l1 18255A8255A

46、的引脚的引脚l8255A8255A是可编程的并行输入输出接口芯片,它具有三个是可编程的并行输入输出接口芯片,它具有三个8 8位位并行端口并行端口(A(A口、口、B B口和口和C C口口) ),具有,具有4040个引脚,双列直插式封个引脚,双列直插式封装,由装,由+5V+5V供电,其引脚与功能示意图如图供电,其引脚与功能示意图如图8.148.14所示。所示。 8255A12345678910111213141516171819202524232221262728293031323334353738394036A组8255AA口C口C口B口B组图图8.14 8255A引脚及功能引脚及功能示意图示意

47、图 (a) 引脚;引脚;(b) 功能示意图功能示意图 8.2.1 8255A的引脚与结构(续)lA A口、口、 B B口、口、 C C口:口:8 8位数据输入锁存器和位数据输入锁存器和8 8位数据输出锁存位数据输出锁存器缓冲器。器缓冲器。lD D0 0 D D7 7: : 数据线,三态双向数据线,三态双向8 8位缓冲器。位缓冲器。lRESETRESET:复位信号,高电平有效。:复位信号,高电平有效。8255A8255A复位后,所有复位后,所有I IO O均处于输入状态。均处于输入状态。lCSCS:片选端,低电平有效。:片选端,低电平有效。lA A0 0 A A1 1:地址线,用于选择端口。:地

48、址线,用于选择端口。lRDRD:读控制线,低电平有效。:读控制线,低电平有效。lWRWR:写控制线,低电平有效。:写控制线,低电平有效。8.2.1 8255A的引脚与结构(续)l2 8255A2 8255A的内部结构的内部结构l8255A8255A的内部结构框图如图的内部结构框图如图8.158.15所示,其内部由以下四部分所示,其内部由以下四部分组成。组成。 l1) 1) 端口端口A A、端口、端口B B和端口和端口C Cl端口端口A A、端口、端口B B和端口和端口C C都是都是8 8位端口,可以选择作为输入或位端口,可以选择作为输入或输出。还可以将端口输出。还可以将端口C C的高的高4 4

49、位和低位和低4 4位分开使用,分别作为位分开使用,分别作为输入或输出。当端口输入或输出。当端口A A和端口和端口B B作为选通输入或输出的数据作为选通输入或输出的数据端口时,端口端口时,端口C C的指定位与端口的指定位与端口A A和端口和端口B B配合使用,用做配合使用,用做控制信号或状态信号。控制信号或状态信号。 B 组控制部件内部 DB (8)数据总线缓冲器读/写控制逻辑RESETA0A组端口A(8)A组端口C(高4位)B组端口C(低4位)B组端口B(8)A 组控制部件PA7PA0PC7PC4PC3PC0PB7PB0D7D0CSA1RDWR图图8.15 8255A8.15 8255A内部结

50、构框图内部结构框图 l2) A2) A组控制和组控制和B B组控制部件组控制部件l这两组控制部件有两个功能:这两组控制部件有两个功能:接收来自芯片内部数据总线上的控制字;接收来自芯片内部数据总线上的控制字;接收来自读写控制逻辑电路的读写命令,以此来决定两组端口接收来自读写控制逻辑电路的读写命令,以此来决定两组端口的工作方式和读写操作。的工作方式和读写操作。l3) 3)数据总线缓冲器数据总线缓冲器l它是一个双向三态的它是一个双向三态的8 8位数据缓冲器位数据缓冲器,8255A,8255A正是通过它与系正是通过它与系统数据总线相连。统数据总线相连。l输入数据、输出数据、输入数据、输出数据、CPUC

51、PU发给发给8255A8255A的控制字都是通过该的控制字都是通过该部件传递的。部件传递的。8.2.1 8255A的引脚与结构(续)l4) 4) 读写控制逻辑电路读写控制逻辑电路l读读/ /写控制逻辑电路的功能是负责管理写控制逻辑电路的功能是负责管理8255A8255A的数据传输过的数据传输过程。它接收程。它接收CSCS及来自地址总线的信号及来自地址总线的信号A A1 1、A A0 0( (在在80868086总线中总线中为为A A2 2、A A1 1) )和控制总线的信号和控制总线的信号RESETRESET、WRWR、RDRD,将它们组,将它们组合后,得到对合后,得到对A A组控制部件和组控

52、制部件和B B组控制部件的控制命令,并组控制部件的控制命令,并将命令送给这两个部件,再由它们完成对数据信息,状态将命令送给这两个部件,再由它们完成对数据信息,状态信息和控制信息的传输。信息和控制信息的传输。8.2.1 8255A的引脚与结构(续)l3 3、8255A8255A寻址方式寻址方式l8255A8255A内部有内部有3 3个个I IO O端口和一个控制字端口,通过地址线端口和一个控制字端口,通过地址线A A0 0、A A1 1,读写控制线,读写控制线RDRD、WRWR与片选端与片选端CSCS进行寻址并实现进行寻址并实现相应的操作。相应的操作。l表表 8.18.1是是8255A8255A

53、的寻址与相应操作。的寻址与相应操作。8.2.1 8255A的引脚与结构(续)表表8.1 8255A8.1 8255A各端口读各端口读/ /写操作时的信号关系写操作时的信号关系 CSRDWRA1A0操作01000写端口A01001写端口B01010写端口C01011写控制寄存器00100读端口A00101读端口B00110读端口C00111无操作8.2.2 8255A的工作方式与控制字l1 18255A8255A的工作方式的工作方式l8255A8255A在使用前要先写入一个工作方式控制字,以指定在使用前要先写入一个工作方式控制字,以指定A A、B B、C C三个端口各自的工作方式。三个端口各自的

54、工作方式。l8255A8255A共有三种工作方式:共有三种工作方式:方式方式0 0基本输入输出方式:基本输入输出方式:l即无须联络就可以直接进行即无须联络就可以直接进行8255A8255A与外设之间的数据与外设之间的数据输入或输出操作,数据输出有锁存,输入不能锁存。输入或输出操作,数据输出有锁存,输入不能锁存。lA A口、口、B B口、口、C C口的高口的高4 4位和低位和低4 4位均可设置为方式位均可设置为方式0 0。 方式方式0 0适用于适用于无条件无条件数据传送,也可以把数据传送,也可以把C C口的某一位作为状态口的某一位作为状态位,实现查询方式的位,实现查询方式的数据传送。数据传送。选

55、通8255AA口PC1输出设备准备好准备好清除PC7PC6PC0B口输入设备8.2.2 8255A的工作方式与控制字(续)8.2.2 8255A的工作方式与控制字(续)l例如,要求例如,要求8255A8255A的的A A口和口和B B口均工作于方式口均工作于方式0, 0, A A口口和下和下C C口作输入口口作输入口, , B B口和上口和上C C口作输出口口作输出口, ,设设82558255A A各端口地址为各端口地址为6 60 0H63HH63H:MOVMOV AL AL,91H91H;方式控制字方式控制字1001000110010001B B ALALOUTOUT 63H 63H,ALA

56、L;方式控制字送控制寄存器方式控制字送控制寄存器 方式方式1 1选通输入输出方式:选通输入输出方式:l此时此时8255A8255A的的A A口和口和B B口与外设之间进行输入或输出操作口与外设之间进行输入或输出操作时,这两个时,这两个8 8位数据口的输入、输出数据都能锁存,但位数据口的输入、输出数据都能锁存,但必须在联络信号的控制下完成必须在联络信号的控制下完成I/OI/O操作,操作,端口端口C C的部分引的部分引脚用来产生或接收这些联络信号。脚用来产生或接收这些联络信号。l只有只有A A口和口和B B口可工作于方式口可工作于方式1 1。 8.2.2 8255A的工作方式与控制字(续)选通输入

57、方式l此时此时PC35 PC35 和和PC02PC02分别用作分别用作A A口和口和B B口的状态和控制线口的状态和控制线, , PC6PC6和和PC7PC7用作用作I/OI/O线线。PA7PA08PC4STBAPC5IBFAPC3INTRAPC6PC7I/O线&INTEAoRD方式方式1(A口口)PB7PB08PC2STBBPC1IBFBPC0INTRB&INTEBoRD方式方式1(B口口)IBF输入缓冲器满信号,高电平有效,由8255A输出的状态信号,表示输入缓冲器已满,向外设指明不能再送入数据。INTE 中断允许信号。是控制8255A能否向CPU发中断请求信号,它没有外部

58、引脚,INTEA、INTEB是由用户对PC4、PC2按位置位实现的。PA7PA08PC4STBAPC5IBFAPC3INTRAPC6PC7I/O线&INTEAoRD方式1 (A口)各控制联络信号的意义 STB数据选通输入信号,低电平有效,由外设输入;INTR中断请求信号,高电平有效。是8255A向CPU发出的请求中断信号,要求CPU服务。当 IBF =1、STB =1且 INTE =1时,INTR =1。选通输出方式这时PC3、PC6和PC7作A口的应答信号,PC0、PC1和PC2作B口的应答信号。余下的PC4和PC5可作输入或输出线。PA7PA08PC6ACKAOBFAPC3INTR

59、APC4PC5I/O线&INTEAoWR方式方式1输出输出 (A口口)PC7PB7PB08PC2ACKBPC1OBFBPC0INTRB&INTEBoWR方式方式1输出输出 (B口口)ACK外设的回答信号,低电平有效,由外设送给8255A。表示CPU送到指定端口的数据已被外设接受。各应答信号的意义OBF输出缓冲器满信号,输出,低电平有效。表示CPU已输出数据到指定端口。INTE中断允许信号。 INTEA、INTEB是由用户对PC6、PC2按位置位实现的。PA7PA08PC6ACKAPC7OBFAPC3INTRAPC4PC5I/O线&INTEAoWR方式1输出 (A口)IN

60、TR中断请求信号,高电平有效。当 ACK =1、OBF =1且 INTE =1时,INTR =1。方式方式2 2选通双向输入输出方式:选通双向输入输出方式:l即同一端口的即同一端口的I/OI/O线既可以输入也可以输出,只有线既可以输入也可以输出,只有A A口可口可工作于方式工作于方式2 2,此种方式下需要,此种方式下需要C C口的部分口的部分I/OI/O线提供联线提供联络信号。络信号。 l这时这时PA7PA0PA7PA0作为双向数据总线,作为双向数据总线,PC3 PC7PC3 PC7用作用作A A口的口的联络控制信号。联络控制信号。PC2PC0PC2PC0可用作可用作B B口的应答信号线口的应答信号线,或或作作I/OI/O线。线。8.2.2 8255A的工作方式与

温馨提示

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

评论

0/150

提交评论