汇编语言 与接口技术(第八章)_第1页
汇编语言 与接口技术(第八章)_第2页
汇编语言 与接口技术(第八章)_第3页
汇编语言 与接口技术(第八章)_第4页
汇编语言 与接口技术(第八章)_第5页
已阅读5页,还剩117页未读 继续免费阅读

下载本文档

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

文档简介

1、1汇编语言与接口技术汇编语言与接口技术 主讲教师主讲教师张玉琢张玉琢28 8.2 .28 8.3 .3可编程并行接口可编程并行接口8255A8255A可编程计数器可编程计数器/ /定时器定时器82538253串行通信与异步通信控制器串行通信与异步通信控制器82508250的应用的应用8 8. .1 138. 8. 1 1可编程计数器可编程计数器/ /定时器定时器82538253 IntelIntel系列的计数器系列的计数器/ /定时器电路为可编程序间定时器电路为可编程序间隔定时器隔定时器PIT(programmable interval timer)PIT(programmable inter

2、val timer),型,型号为号为82538253,改进型为,改进型为82548254。82538253具有具有3 3个独立的功能个独立的功能完全相同的完全相同的1616位计数器,每个计数器都有位计数器,每个计数器都有6 6种工作方种工作方式,这式,这6 6种工作方式都可以由其种工作方式都可以由其控制字控制字设定,因而能设定,因而能以以6 6种不同的工作方式满足不同的接口要求。种不同的工作方式满足不同的接口要求。CPUCPU还还可以随时更改它们的方式和计数值,并读取它们的计可以随时更改它们的方式和计数值,并读取它们的计数状态。数状态。482538253的内部结构:的内部结构:8.1.18.1

3、.1 82538253的组成与接口信号的组成与接口信号5 数据总线缓冲器是三态、双向、数据总线缓冲器是三态、双向、8 8位的缓冲器,用作位的缓冲器,用作系统总线和系统总线和82538253的接口,根据的接口,根据CPUCPU的输入或输出指令实的输入或输出指令实现数据传送。数据总线缓冲器具有下面现数据传送。数据总线缓冲器具有下面3 3个基本功能。个基本功能。 (1) CPU (1) CPU向向82538253所写的控制字写入控制字寄存器。所写的控制字写入控制字寄存器。 (2) CPU (2) CPU向某计数器所写的计数初值送到指定的计数器向某计数器所写的计数初值送到指定的计数器 (3) CPU

4、(3) CPU可读取某个计数器的现行值时,可读取某个计数器的现行值时,1. 1. 数据总线缓冲器数据总线缓冲器8. 8.1 .1 82538253的组成与接口信号的组成与接口信号6 读读/ /写逻辑接收系统总线的写逻辑接收系统总线的5 5个输入信号,根据个输入信号,根据这这5 5个信号产生个信号产生82538253操作的控制信号。操作的控制信号。片选信号片选信号CSCS来控制读来控制读/ /写逻辑的工作写逻辑的工作. .根据根据A A1 1A A0 0的输入选择的输入选择3 3个计数器和控制字寄存器个计数器和控制字寄存器. .通过通过RDRD或或WRWR完成指定的读或写操作。完成指定的读或写操

5、作。2. 2. 读读/ /写逻辑写逻辑8. 8.1 .1 82538253的组成与接口信号的组成与接口信号7 CSCS、RDRD、WRWR、A1A1和和A0A0组合起来所产生的选择与操组合起来所产生的选择与操作功能:作功能:8. 8.1 .1 82538253的组成与接口信号的组成与接口信号8 控制字寄存器存放数据总线缓冲器传送来的控制字寄存器存放数据总线缓冲器传送来的控制字。控制控制字。控制字字由由CPUCPU经过数据总线缓冲器写入经过数据总线缓冲器写入控制字寄存器有控制字寄存器有3 3个,个,都是都是8 8位的寄存器,分别对应于位的寄存器,分别对应于3 3个计个计数器。数器。不同的不同的控

6、制字控制字寄存器决定不同计数器的工作方式和所执行的寄存器决定不同计数器的工作方式和所执行的操作。操作。控制字寄存器只能写入,其值不能读出。控制字寄存器只能写入,其值不能读出。3. 3. 控制字寄存器控制字寄存器8. 8.1 .1 82538253的组成与接口信号的组成与接口信号9计数器计数器0 0、计数器、计数器1 1和计数器和计数器2 2是是3 3个独立的计数器,它个独立的计数器,它们的内部结构相同。们的内部结构相同。4.4.计数器计数器0 0、计数器、计数器1 1和计数器和计数器2 28. 8.1 .1 82538253的组成与接口信号的组成与接口信号10计数初值寄存器计数初值寄存器保存写

7、入计数器的初始值保存写入计数器的初始值减减1 1计数器计数器在在CLKCLK脉冲和脉冲和GATEGATE作用下,每来一个作用下,每来一个CLKCLK就进行递减计数,直至计数值为就进行递减计数,直至计数值为0 0,输出,输出OUTOUT信号信号。输出寄存器输出寄存器的值跟随减的值跟随减1 1计数器变化,仅当写入锁计数器变化,仅当写入锁存控制字时,减存控制字时,减1 1计数器的当前计数值被锁存计数器的当前计数值被锁存( (减减1 1计数器可继续计数计数器可继续计数) ),CPUCPU读取后,它自动解除锁读取后,它自动解除锁存状态。在计数过程中,存状态。在计数过程中,CPUCPU随时可用指令读取任随

8、时可用指令读取任一计数器的当前计数值,这一操作对计数没有影响一计数器的当前计数值,这一操作对计数没有影响。8. 8.1 .1 82538253的组成与接口信号的组成与接口信号计数器的输入计数器的输入CLKCLK与输出与输出OUTOUT以及门控信号以及门控信号GATEGATE之之间的关系,取决于计数器的工作方式。间的关系,取决于计数器的工作方式。1182538253的计数器有的计数器有6 6种工作方式:由方式控制字决定种工作方式:由方式控制字决定 (1) (1)方式方式0-0-计数结束中断计数结束中断 (2) (2)方式方式1-1-硬件触发单拍脉冲硬件触发单拍脉冲 (3) (3)方式方式2-2-

9、频率发生器频率发生器 (4) (4)方式方式3-3-方波发生器方波发生器 (5) (5)方式方式4-4-软件触发选通软件触发选通 (6) (6)方式方式5-5-硬件触发选通硬件触发选通8. 8.2 .2计数器的工作方式及其与输入输出的关系计数器的工作方式及其与输入输出的关系121.1.计数器的输出计数器的输出 OUTOUT6 6种工作方式的输出信号种工作方式的输出信号8. 8.2 .2计数器的工作方式及其与输入输出的关系计数器的工作方式及其与输入输出的关系13 只有方式只有方式0 0在写入控制字后在写入控制字后,out,out为低,其他为低,其他5 5种方式下种方式下,outout为高。为高。

10、方式方式2 2、4 4、5 5的输出波形是相同的,都是宽度为一个的输出波形是相同的,都是宽度为一个CLKCLK周期的负脉冲。但方式周期的负脉冲。但方式2 2是连续工作,方式是连续工作,方式4 4由软件由软件( (设置计数值设置计数值) )触发启动,而方式触发启动,而方式5 5由门控脉冲触发启动由门控脉冲触发启动。方式方式5 5与方式与方式1 1的工作方式基本相同,但输出波形不同的工作方式基本相同,但输出波形不同,方式,方式1 1的输出为宽度是的输出为宽度是N N个个CLKCLK脉冲的低电平脉冲脉冲的低电平脉冲( (计计数过程中输出为低数过程中输出为低) ),而方式,而方式5 5的输出为宽度是的

11、输出为宽度是1 1个个CLKCLK脉冲的负脉冲脉冲的负脉冲( (计数过程中输出为高计数过程中输出为高) )。8. 8.2 .2计数器的工作方式及其与输入输出的关系计数器的工作方式及其与输入输出的关系14 任一种方式,只有写入计数初值后才能开始计数任一种方式,只有写入计数初值后才能开始计数,方式,方式0 0、2 2、3 3和和4 4都是在写入计数值后,计数过程就都是在写入计数值后,计数过程就开始了,而方式开始了,而方式1 1和和5 5需要外部触发启动,才开始计数需要外部触发启动,才开始计数。 6 6种方式中,只有方式种方式中,只有方式2 2和和3 3是连续计数,其他是连续计数,其他4 4种种方式

12、都是一次计数,要继续计数需要再次编程输入初方式都是一次计数,要继续计数需要再次编程输入初始值;方式始值;方式0 0、4 4由写入计数值由写入计数值( (软件软件) )启动,方式启动,方式1 1、5 5要由外部信号要由外部信号( (硬件硬件) )启动。启动。2.2.计数器的工作与启动计数器的工作与启动8. 8.2 .2计数器的工作方式及其与输入输出的关系计数器的工作方式及其与输入输出的关系15 在方式在方式0 0和方式和方式4 4中,中,GATEGATE是电平起作用。计是电平起作用。计数过程受数过程受GATEGATE信号的控制,信号的控制,GATEGATE为高电平计数,低电为高电平计数,低电平停

13、止计数。平停止计数。 在方式在方式1 1和方式和方式5 5中,中,GATEGATE是上升沿起作用。在计是上升沿起作用。在计数过程中,只要数过程中,只要GATEGATE出现由低到高的跳变,计数的初出现由低到高的跳变,计数的初值就被装入减值就被装入减1 1 计数器,并从初值起继续计数。计数器,并从初值起继续计数。 在方式在方式2 2和方式和方式3 3中,中,GATEGATE信号的上升沿和电平均信号的上升沿和电平均起作用。高电平计数,低电平停止计数。上升沿则重起作用。高电平计数,低电平停止计数。上升沿则重新装入计数初值,继续计数新装入计数初值,继续计数。3.3.门控信号门控信号GATEGATE的作用

14、的作用8. 8.2 .2计数器的工作方式及其与输入输出的关系计数器的工作方式及其与输入输出的关系16方式GATE低电平或变低电平低电平或变低电平上升沿上升沿高电平高电平禁止计数禁止计数允许计数允许计数启动计数,下一个启动计数,下一个CLKCLK脉冲使输出为低脉冲使输出为低禁止计数,立即使输出为高禁止计数,立即使输出为高重新装入计数值,启动重新装入计数值,启动计数计数允许计数允许计数禁止计数,立即使输出为高禁止计数,立即使输出为高重新装入计数值,启动重新装入计数值,启动计数计数允许计数允许计数4 4禁止计数禁止计数允许计数允许计数5禁止计数禁止计数启动计数启动计数 门控信号门控信号GATEGAT

15、E的作用的作用17方式方式0,1,4,50,1,4,5的计数值无自动加载功能,要再次输入的计数值无自动加载功能,要再次输入初始值才开始新的计数方式初始值才开始新的计数方式0 0、4 4是立即有效是立即有效( (即即新的计数值写入减新的计数值写入减1 1计数器计数器) ),方式,方式1 1、5 5是外部触发是外部触发后有效,方式后有效,方式2 2、3 3具有计数器自动加载功能,输出具有计数器自动加载功能,输出连续的波形。连续的波形。4.4.在计数过程中改变计数值在计数过程中改变计数值8. 8.2 .2计数器的工作方式及其与输入输出的关系计数器的工作方式及其与输入输出的关系1882538253的控

16、制字的控制字8. 8.3 .382538253的控制字和初始化编程的控制字和初始化编程19 (1)(1)计数器选择计数器选择(D(D7 7、D D6 6) )。控制字的最高两位决定这个控制字是哪一个计数器控制字的最高两位决定这个控制字是哪一个计数器的控制字。的控制字。三个控制字都由同一地址三个控制字都由同一地址( (控制字寄存器地址控制字寄存器地址) )写入写入,因而由控制字的,因而由控制字的D D7 7、D D6 6两位来指定该控制字是哪个两位来指定该控制字是哪个计数器的控制字。计数器的控制字。8.1.38.1.382538253的控制字和初始化编程的控制字和初始化编程20 (2)(2)数据

17、读数据读/ /写格式写格式(D(D5 5、D D4 4) )。 CPU CPU向计数器写入初值和读取它们的当前值时,向计数器写入初值和读取它们的当前值时,有几种不同的格式。读有几种不同的格式。读/ /写数据时,写数据时,令令D D5 5D D4 4=01=01,只读,只读/ /写低写低8 8位,则高位,则高8 8位自动置位自动置0 0;D D5 5D D4 4=10=10,只读,只读/ /写高写高8 8位,低位,低8 8位就自动为位就自动为0 0;D D5 5D D4 4=11=11时,就先读时,就先读/ /写低写低8 8位,后读位,后读/ /写高写高8 8位。位。D D5 5D D4 4=0

18、0=00,则把计数器当前计数值锁存,以后再读取。,则把计数器当前计数值锁存,以后再读取。 8.1.38.1.382538253的控制字和初始化编程的控制字和初始化编程21 (3)(3)工作方式工作方式(D(D3 3、D D2 2、D D1 1) )。 8253 8253的每个计数器的的每个计数器的6 6种不同的工作方式,由这种不同的工作方式,由这3 3位决定。位决定。 (4) (4)数制选择数制选择(D(D0 0) )。 8253 8253的每个计数器有两种计数制:二进制的每个计数器有两种计数制:二进制(D(D0 0为为0)0)和十进制和十进制(D(D1 1为为1)1),。在二进制计数时,写入

19、的初,。在二进制计数时,写入的初值的范围为值的范围为0000H0000HFFFFHFFFFH,其中,其中0000H0000H是最大值是最大值,代,代表表6553665536。在十进制计数时,写入的初值的范围为。在十进制计数时,写入的初值的范围为0000H0000H9999H9999H,其中,其中0000H0000H是最大值是最大值,代表,代表1000010000。8.1.38.1.382538253的控制字和初始化编程的控制字和初始化编程2282538253必须首先进行初始化编程。必须首先进行初始化编程。初始化编程的步骤:先写入控制字,再把计数初值写初始化编程的步骤:先写入控制字,再把计数初值

20、写入计数器的。入计数器的。控制字和计数初值,通过两个不同的端口地址写入的控制字和计数初值,通过两个不同的端口地址写入的任一计数器的控制字都是写入控制字寄存器的端口任一计数器的控制字都是写入控制字寄存器的端口地址,由控制字中的地址,由控制字中的D D7 7、D D6 6来确定是哪一个计数器的来确定是哪一个计数器的控制字;控制字;而计数初值是由各个计数器的端口地址写入的。而计数初值是由各个计数器的端口地址写入的。问题:问题:一片一片82538253具有多少个端口地址?是哪几个端口地址?用什具有多少个端口地址?是哪几个端口地址?用什么来区分?么来区分?8.1.38.1.382538253的控制字和初

21、始化编程的控制字和初始化编程23 例如例如1 1:用计数器用计数器0 0,工作在方式,工作在方式1 1,按十进制计数,按十进制计数,计数值为计数值为50805080。若该片。若该片82538253的端口地址为的端口地址为388H388H38BH38BH,则初始化程序段为:,则初始化程序段为: MOV DX,38BH ;MOV DX,38BH ;控制端口地址送到控制端口地址送到DX DX MOV AL,33H ;MOV AL,33H ;控制字控制字OUT DX,ALOUT DX,AL;对;对82538253的控制字进行设置的控制字进行设置MOV DX,388H ;MOV DX,388H ;计数器

22、计数器0 0的端口地址的端口地址MOV AL,80HMOV AL,80HOUT DX,ALOUT DX,AL;低;低8 8位写入计数器的端口地址位写入计数器的端口地址MOV AL,50HMOV AL,50HOUT DX,ALOUT DX,AL ;高;高8 8位写入计数器的端口地址位写入计数器的端口地址写写82538253的控制字及计数器的控制字及计数器24 82538253任一计数器的计数值,任一计数器的计数值,CPUCPU可用指令读取。可用指令读取。CPUCPU读到的是执行读取指令瞬间计数器的现行值。但读到的是执行读取指令瞬间计数器的现行值。但82538253的计数器是的计数器是1616位的

23、,所以要分两次读至位的,所以要分两次读至CPUCPU,因,因此,若不设法锁存的话,则在读数过程中,计数值此,若不设法锁存的话,则在读数过程中,计数值可能已变化了。要可能已变化了。要锁存锁存有两种办法:有两种办法: (1) (1)利用利用GATEGATE信号使计数过程暂停。信号使计数过程暂停。 (2) (2)向向82538253输送一个控制字,令输送一个控制字,令82538253的计数值在输的计数值在输出寄存器时锁存。出寄存器时锁存。读读82538253计数器的值计数器的值25例如例如2 2:读取计数器读取计数器1 1的的1616位计数值,方式,存入位计数值,方式,存入CXCX中,其程序段为中,

24、其程序段为: : MOV DX,38BHMOV DX,38BH MOV AL,40H MOV AL,40H ;计数器;计数器1 1的锁存命令的锁存命令 OUT DX,ALOUT DX,AL ; ;以下从计数器以下从计数器1 1读读1616位计数值位计数值 MOV DX,389H MOV DX,389H IN AL,DX IN AL,DX ;先读低字节;先读低字节 MOV CL,AL MOV CL,AL IN AL,DX IN AL,DX ;再读高字节;再读高字节 MOV CH,AL MOV CH,AL8. 8.3 .382538253的控制字和初始化编程的控制字和初始化编程26 例例8.48.

25、4 8253 8253在在IBM PC XTIBM PC XT中的应用。中的应用。8. 8.4 .482538253的应用的应用IBM PC XTIBM PC XT微型计算机中微型计算机中82538253的部分线路的部分线路 27 由译码电路可知计数器和控制字寄存器的端口地址由译码电路可知计数器和控制字寄存器的端口地址为为40H40H5FH5FH,BIOSBIOS取为计数器取为计数器040H040H,计数器,计数器141H141H,计数器计数器242H242H,控制字寄存器,控制字寄存器43H43H。 3 3个计数器的输入时钟频率均为个计数器的输入时钟频率均为1.19MHz1.19MHz。计数

26、器计数器0 0产生基本时钟产生基本时钟 计数器计数器0 0输出作为输出作为18.2Hz18.2Hz方波发生器。用来输出方波方波发生器。用来输出方波作为中断控制器作为中断控制器82598259的第的第0 0号中断信号线号中断信号线(IRQ(IRQ0 0) )的输入。的输入。提供系统计时器的基本时钟,计数器提供系统计时器的基本时钟,计数器0 0的计数值为:的计数值为: 1.19M/18.2=65384=21.19M/18.2=65384=21616 即写入即写入1616位的位的0 0,故其控制字为,故其控制字为36H36H。8. 8.4 .482538253的应用的应用28对计数器对计数器0 0初

27、始化的程序段如下:初始化的程序段如下: MOV AL MOV AL,36H36H OUT 43H OUT 43H,AL ;AL ;控制字送端口地址控制字送端口地址36H.36H. MOV AL MOV AL,0 0 ;计数值为;计数值为 OUT 40H OUT 40H,AL AL ;写入低字节计数值;写入低字节计数值 OUT 40H OUT 40H,AL AL ;写入高字节计数值;写入高字节计数值29 计数器输出间隔为计数器输出间隔为15S15S的负脉冲。该脉冲的负脉冲。该脉冲的上升沿触发的上升沿触发D D触发器。触发器触发器。触发器Q Q端输出正电位信号,端输出正电位信号,该信号通过该信号通

28、过DMADMA控制器控制器82378237的的DRQDRQ0 0引线提出引线提出DMADMA请求,请求,82378237则依据这个请求信号对动态则依据这个请求信号对动态RAMRAM进行刷新。计进行刷新。计数器数器1 1的计数值为:的计数值为: 1.19 1.1910106 615151010-6-6 =18=18 故其控制字为故其控制字为54H54H。对计数器。对计数器1 1的初始化程序段为:的初始化程序段为: (2.)(2.)计数器控制计数器控制DRAMDRAM刷新刷新MOV ALMOV AL,54H 54H ; 计数器计数器1 1为方式为方式2 2,二进制计数,写低,二进制计数,写低8 8

29、位位 OUT 43HOUT 43H,ALALMOV ALMOV AL,1818OUT 41HOUT 41H,ALAL30 计数器计数器2 2输出不同频率的方波,经电流驱动输出不同频率的方波,经电流驱动器器7547775477放大,推动扬声器发出不同频率的声响。放大,推动扬声器发出不同频率的声响。作为机器的报警信号或者伴音信号。计数器作为机器的报警信号或者伴音信号。计数器2 2的计的计数值为可变值。随蜂鸣器声响频率的高低而变,数值为可变值。随蜂鸣器声响频率的高低而变,程序设计中让它的取值范围由程序设计中让它的取值范围由1 1到到6553565535,即,即1616位位二进制数,故其控制字为二进制

30、数,故其控制字为B6HB6H。、计数器控制扬声器、计数器控制扬声器 GATE GATE2 2接并行接口接并行接口PBPB0 0位,即位,即I/OI/O端口地址端口地址61H61H的的D0D0位;位;同时输出同时输出OUTOUT2 2经过一与门,这个与门受经过一与门,这个与门受PBPB1 1控制,控制,PB1PB1是是I/OI/O端口地址端口地址61H61H的的D1D1位;位;必须使必须使PB0PB0和和PB1PB1同时为同时为高电平,扬声器才能发出设定频率的声音。高电平,扬声器才能发出设定频率的声音。31计数器计数器2 2的鸣响子程序的鸣响子程序:beep procbeep procfarfa

31、r MOV AL MOV AL,0B6H 0B6H ;计数器;计数器2 2为方式为方式3 3,先低后高写入,先低后高写入1616位位计数值计数值 OUT 43H OUT 43H,ALAL MOV AX MOV AX,533H 533H ;设初值为;设初值为533h,533h,则产生则产生1000Hz1000Hz分频值。分频值。 OUT 42HOUT 42H,AL AL ;写入低;写入低8 8位计数值位计数值 MOV AL MOV AL,AHAH OUT 42H OUT 42H,AL AL ;写入高;写入高8 8位计数值位计数值 IN ALIN AL,61H 61H ;读取;读取61H61H端口

32、的原控制信息端口的原控制信息MOV AH,AL MOV AH,AL ; ;保存保存ALAL原来的值原来的值OR ALOR AL,3 3 ;将将PB1PB1和和PB0PB0修改为修改为1 1,32 OUT 61HOUT 61H,AL AL ;打开蜂鸣器,控制扬声器发声;打开蜂鸣器,控制扬声器发声 SUB CXSUB CX,CX CX ;设置等待;设置等待500ms500ms的常数值的常数值G7G7: LOOP G7LOOP G7 DEC BL DEC BL ;等;等0.5s0.5sBLBL JNZ G7 JNZ G7 MOV AL MOV AL,AH AH ;恢复;恢复61H61H端口的原来值,

33、让端口的原来值,让PBPB1 1PBPB0 0=0=0 OUT 61H OUT 61H,AL AL ;关蜂鸣器,控制扬声器闭音关蜂鸣器,控制扬声器闭音 ret retbeep endpbeep endp338. 8. 可编程并行接口可编程并行接口8255A8255A 8255 8255是是IntelIntel公司生产的具有可编程能力的公司生产的具有可编程能力的并行并行I/OI/O接口接口芯片。片内有芯片。片内有A A、B B、C C三个位数据端口,口三个位数据端口,口和口为两个数据端口,口可作数据端口,也可作和口为两个数据端口,口可作数据端口,也可作控制端口。控制端口。3482558255的内

34、部组成如图所示的内部组成如图所示8.2.1 82558.2.1 8255的组成与接口信号的组成与接口信号35 端口端口A(Port A)A(Port A)、端口、端口B(Port B)B(Port B)和端口和端口C(Port C)C(Port C)都是都是8 8位的输入或输出端口。位的输入或输出端口。l端口端口C C被分成高被分成高4 4位和低位和低4 4位,用作输入和输位,用作输入和输出出l通常端口通常端口A A和端口作为输入输出的数据口,和端口作为输入输出的数据口,而端口而端口C C作为作为控制和状态端口控制和状态端口。l端口端口C C可用来与端口可用来与端口A A和和B B配合工作,用

35、作控配合工作,用作控制信号输出或状态信号输入。制信号输出或状态信号输入。1. 1. 端口端口A A、端口、端口B B和端口和端口C C8.2.1 82558.2.1 8255的组成与接口信号的组成与接口信号36l其中的控制寄存器,接收其中的控制寄存器,接收CPUCPU输出的输出的方式命令字,方式命令字,从而控制从而控制82558255的工作方式。的工作方式。l根据根据CPUCPU的命令对端口的命令对端口C C的每一位实现按位复位或置的每一位实现按位复位或置位。位。 lA A组控制电路控制端口组控制电路控制端口A A和端口和端口C C的上半部的上半部(PC7(PC7PC4)PC4)。lB B组控

36、制电路控制端口组控制电路控制端口B B和端口和端口C C的下半部的下半部(PC3(PC3PC0)PC0)。2.A2.A组和组和B B组控制电路组控制电路8.2.1 82558.2.1 8255的组成与接口信号的组成与接口信号37 是一个三态、双向的是一个三态、双向的8 8位缓冲器,它是位缓冲器,它是82558255与与系统数据总线的接口。输入输出的数据以及系统数据总线的接口。输入输出的数据以及CPUCPU发发出的命令控制字和外设的状态信息,都是通过这出的命令控制字和外设的状态信息,都是通过这个缓冲器传送的。个缓冲器传送的。3. 3. 数据总线缓冲器数据总线缓冲器8.2.1 82558.2.1

37、8255的组成与接口信号的组成与接口信号38l控制把控制把CPUCPU的控制命令或输出数据送至相应的端口的控制命令或输出数据送至相应的端口, , l控制把外设的状态信息或输入数据通过相应的端口控制把外设的状态信息或输入数据通过相应的端口送至送至CPUCPU。4.4.读读/ /写控制逻辑写控制逻辑8. 8.1 8255.1 8255的组成与接口信号的组成与接口信号39 (1)A1 (1)A1、A0 A0 端口选择:用来选择端口选择:用来选择A A、B B、C 3C 3个端个端口和控制字寄存器。通常,它们与口和控制字寄存器。通常,它们与PCPC微机的地址线微机的地址线A1A1和和A0A0相连。相连

38、。 (2)CS (2)CS选片信号:低电平有效,由它启动选片信号:低电平有效,由它启动CPUCPU与与82558255之间的通信。通常,它与之间的通信。通常,它与PCPC微机地址线的译码微机地址线的译码电路的输出线相连,并由该译码电路的输出线来确电路的输出线相连,并由该译码电路的输出线来确定定82558255的端口地址。的端口地址。4.4.读读/ /写控制逻辑写控制逻辑8. 8.1 8255.1 8255的组成与接口信号的组成与接口信号40 (3)RD (3)RD读信号:低电平有效,它控制读信号:低电平有效,它控制82558255送出数送出数据或状态信息至系统数据总线。通常,它与据或状态信息至

39、系统数据总线。通常,它与PCPC微机微机的的IORIOR相连。相连。 (4)WR(4)WR写信号:低电平有效,它控制把写信号:低电平有效,它控制把CPUCPU输出输出到系统数据总线上的数据或命令写到到系统数据总线上的数据或命令写到82558255。通常,。通常,它与它与PCPC微机的微机的IOWIOW相连。相连。4.4.读读/ /写控制逻辑写控制逻辑8. 8.1 8255.1 8255的组成与接口信号的组成与接口信号41 (5)RESET (5)RESET 复位信号:高电平有效,它清除控制寄复位信号:高电平有效,它清除控制寄存器,并置存器,并置A A、B B、C 3C 3个端口为输入方式。个端

40、口为输入方式。 实验中常用的复位信号产生电路如图所示。实验中常用的复位信号产生电路如图所示。4.4.读读/ /写控制逻辑写控制逻辑8.2.1 82558.2.1 8255的组成与接口信号的组成与接口信号42 A A1 1,A A0 0和和CSCS,RDRD,WRWR及组合所实现的各种功能及组合所实现的各种功能如下:如下:8. 8.1 8255.1 8255的组成与接口信号的组成与接口信号A1 A1 A0 A0 操操 作作 0 01 10 00 00 0写端口写端口 0 01 10 00 01 1写端口写端口 0 01 10 01 10 0写端口写端口 0 01 10 01 11 1写控制字寄存

41、器写控制字寄存器 0 00 01 10 00 0读端口读端口 0 00 01 10 01 1读端口读端口 0 00 01 11 10 0读端口读端口 0 00 01 11 11 1无操作无操作 43 82558255有有3 3种工作方式,由方式选择控制字来选用:种工作方式,由方式选择控制字来选用: (1) (1)方式方式0 (Mode 0)-0 (Mode 0)-基本输入输出。基本输入输出。 (2) (2)方式方式1 (Mode 1)-1 (Mode 1)-选通输入输出。选通输入输出。 (3) (3)方式方式2 (Mode 2)-2 (Mode 2)-双向传送。双向传送。8. 8.2 8255

42、.2 8255的工作方式与的工作方式与控制控制字字441.1.方式选择控制字方式选择控制字8. 8.2 8255.2 8255的工作方式与的工作方式与控制控制字字452.2. 端口端口C C按位置位按位置位/ /复位控制字复位控制字 8. 8.2 8255.2 8255的工作方式与的工作方式与控制控制字字46 如:端口如:端口C C的的bit3bit3(PCPC3 3) 置位的控制字为置位的控制字为00000111B(07H)00000111B(07H), 它复位的控制字为它复位的控制字为00000110B(06H)00000110B(06H)。 注意注意: C C端口的按位置位端口的按位置位

43、/ /复位控制字须跟在方式选择控制复位控制字须跟在方式选择控制字之后写入控制字寄存器。即使仅使用该功能,也字之后写入控制字寄存器。即使仅使用该功能,也应先选送一方式控制字。应先选送一方式控制字。8. 8.2 8255.2 8255的工作方式与的工作方式与控制控制字字478. 8.2 8255.2 8255的工作方式与的工作方式与控制控制字字例:假设某例:假设某82558255的芯片端口地址为的芯片端口地址为FF80HFF80HFF83H,FF83H,端口端口A A工作在方式,输出工作在方式,输出; ;端口工作于方端口工作于方式,输入,请写出初始化程序段。式,输入,请写出初始化程序段。例:例:8

44、255A8255A的端口的的端口的PC2PC2置置1,1,请写出初始化程请写出初始化程序段。序段。48 例例8.18.1 将将8255 C8255 C端口的端口的8 8根根I/OI/O线接线接8 8只发光二极管的只发光二极管的正极正极( (八个负极均接地八个负极均接地) ),用端口,用端口C C按位置位按位置位/ /复位控复位控制字编写使这制字编写使这8 8只发光二极管依次亮、灭的程序。设只发光二极管依次亮、灭的程序。设82558255的端口地址为的端口地址为380H380H383H383H。 本程序要使用本程序要使用82558255的的2 2个控制字个控制字-方式选择字方式选择字和和端口按位

45、置位端口按位置位/ /复位控制字复位控制字。这。这2 2个控制字都写入个控制字都写入82558255的控制字寄存器,由的控制字寄存器,由D D7 7位为位为1 1或或0 0来区别写入的来区别写入的字是方式选择字还是置位字是方式选择字还是置位/ /复位控制字。复位控制字。82558255的控制的控制字寄存器的端口地址为字寄存器的端口地址为383H383H。方式选择字只写入一。方式选择字只写入一次,其后写入的都是置位次,其后写入的都是置位/ /复位控制字。复位控制字。8. 8.2 8255.2 8255的工作方式与的工作方式与控制控制字字4982558255与与PCPC微机的连接及微机的连接及82

46、55 C8255 C端口与端口与8 8只发光二极管只发光二极管的连接如图。的连接如图。50程序框图程序框图51stackstack segment stack segment stack stackstack dw 32 dup (0) dw 32 dup (0)stackstack ends endscode code segment segmentbeginbegin proc far proc far assume ss: stack, cs: code assume ss: stack, cs: code push ds push ds sub ax, ax sub ax, ax pu

47、sh ax push ax52 MOV DXMOV DX,383H 383H ;383H383H为控制字寄存器的端口地址为控制字寄存器的端口地址 MOV AL,80H MOV AL,80H ;方式选择字;方式选择字 OUT DX OUT DX,ALAL MOV AL,1 MOV AL,1 ;PC0PC0的置位控制字的置位控制字AGAIN: OUT DX,AL AGAIN: OUT DX,AL ;点亮一只发光二极管;点亮一只发光二极管 LOOP $ LOOP $ ;延时;延时 LOOP $LOOP $ AND AL,0FEH AND AL,0FEH ;置位字改为复位字;置位字改为复位字 OUT

48、DX,AL OUT DX,AL ;熄灭点亮的发光二极管;熄灭点亮的发光二极管 ADD AL,3 ADD AL,3 ;PCiPCi+1PCiPCi+1,复位字改为下一位的置位字,复位字改为下一位的置位字 AND AL,0FHAND AL,0FH ;保持;保持D7D7为为0 0 53 PUSH AXPUSH AX MOV AH,11 MOV AH,11 ;检查键盘有无输入;检查键盘有无输入 INT 21H INT 21H ;无;无0 0送送ALAL,有,有-1-1送送ALAL INC AL INC AL POP AX POP AX JNZ AGAIN JNZ AGAIN ret retbegin

49、endpbegin endpcodecode ends ends end begin end begin548.2.3 8.2.3 3 3种工作方式的功能种工作方式的功能1. 1. 方式方式0 0 这是一种基本的这是一种基本的I/OI/O方式。此时,方式。此时,3 3个端口都可个端口都可由程序选定作输入或输出。它们的由程序选定作输入或输出。它们的输出是锁存输出是锁存的,的,输入是不锁存的。输入是不锁存的。 在这种工作方式下,可以由在这种工作方式下,可以由CPUCPU用简单的输入或用简单的输入或输出指令来进行读或写。方式输出指令来进行读或写。方式0 0可用于无条件传输或可用于无条件传输或者查询方

50、式的数据传输。当方式者查询方式的数据传输。当方式0 0用于无条件传送方用于无条件传送方式的接口电路时,式的接口电路时,不需要状态端口不需要状态端口,3 3个端口都可作个端口都可作为数据端口。为数据端口。55若将例若将例8.18.1改为改为C C端口方式端口方式0 0输出,则控制程序为:输出,则控制程序为:stackstack segment stack segment stack stackstack dw 32 dup (0) dw 32 dup (0)stackstack ends endscode code segment segmentbeginbegin proc far proc

51、far assume ss: stack, cs: code assume ss: stack, cs: code push ds push ds sub ax, ax sub ax, ax push ax push ax MOV DX,383H MOV DX,383H MOV AL,80H MOV AL,80H OUT DX,AL OUT DX,AL56 MOV DX,382H MOV DX,382H ;C C端口的端口地址送端口的端口地址送DXDX MOV AL,1 MOV AL,1 ;C C端口的输出值端口的输出值AGAIN: OUT DX,ALAGAIN: OUT DX,AL LOOP

52、 $ LOOP $ ;延时;延时 LOOP $LOOP $ PUSH AX PUSH AX MOV AH,11 MOV AH,11 ;1111号功能调用:检查键盘有无输入号功能调用:检查键盘有无输入 INT 21H INT 21H ;无;无0 0送送ALAL,有,有-1-1送送ALAL INC AL INC AL ;有键入,;有键入,AL=-1AL=-1,ALAL增增1 1,AL=0AL=0 POP AX POP AX JZ BACK JZ BACK ROL AL,1 ROL AL,1 ;改变;改变C C端口的输出值端口的输出值 JMP AGAIN JMP AGAINBACK: retBACK

53、: retbeginbegin endp endpcodecode ends ends end begin end begin57 方式方式0 0也可作为查询式输入或输出的接口电路,也可作为查询式输入或输出的接口电路,此时端口此时端口A A和和B B分别可作为一个数据端口,而取端分别可作为一个数据端口,而取端口口C C的某些位作为这两个数据端口的控制和状态信的某些位作为这两个数据端口的控制和状态信息。息。582. 2. 方式方式1 1这是一种选通的这是一种选通的I/OI/O方式。方式。 3 3个端口分为个端口分为A A、B B两组,端口两组,端口A A和端口和端口C C中的中的PC3PC3PC

54、5PC5或或PC3PC3、PC6PC6、PC7 3PC7 3位为位为A A组;端口组;端口B B和端口和端口C C的的PC2PC2PC0 3PC0 3位为位为B B组。组。 端口端口C C中余下的两位,仍可工作在方式作为输中余下的两位,仍可工作在方式作为输入入/ /输出,由方式控制字中的输出,由方式控制字中的D3D3来设定。来设定。 在方式在方式1 1下下,8255,8255对输入对输入/ /输出的数据进行锁存。输出的数据进行锁存。59l 方式方式1 1输入输入的状态控制信号及其时序关系如图。的状态控制信号及其时序关系如图。60 C端口引端口引脚脚信号信号意义意义信号方向信号方向PC5/PC1

55、IBFA/IBFB缓冲器满缓冲器满输出输出PC4/PC2STBA/STBB选通信号选通信号输入输入PC3/PC0INTRA/INTRB中断请求信号中断请求信号输出输出8255A8255A方式方式1 1下下输入输入端口端口C C信号意义信号意义61 (1) STB(1) STB(strobe) (strobe) 选通信号,低电平有效。这是由外设送选通信号,低电平有效。这是由外设送往往8255A8255A的输入信号,信号的前沿的输入信号,信号的前沿( (下降沿下降沿) ),把输入装置送,把输入装置送来的数据送入输入缓冲器来的数据送入输入缓冲器, ,供供cpucpu读取读取; ;信号的后沿信号的后沿

56、( (上升沿上升沿) )使使INTRINTR有效有效( (置置1)1)。 (2)IBF(2)IBF(input buffer full) (input buffer full) 输入缓冲器满信号,高电平输入缓冲器满信号,高电平有效。这是有效。这是82558255输出给外设的联络信号。外设将数据送至输出给外设的联络信号。外设将数据送至输入缓冲器后,该信号有效输入缓冲器后,该信号有效, ,作为对作为对STBSTB的响应信号;的响应信号; RDRD信号的上升沿将数据送至数据线后,该信号无效。信号的上升沿将数据送至数据线后,该信号无效。62 (3)INTR(3)INTR(interrupt reque

57、st) (interrupt request) 中断请求信号,高电中断请求信号,高电平有效。这是平有效。这是82558255的一个输出信号,可用作向的一个输出信号,可用作向CPUCPU申申请中断的请求信号,要求请中断的请求信号,要求CPUCPU读取外设数据。当读取外设数据。当IBFIBF为高和为高和INTE(INTE(中断允许中断允许) )为高时,由为高时,由STBSTB的上升沿使其的上升沿使其置为高电平。由置为高电平。由RDRD信号的下降沿信号的下降沿(CPU(CPU读取数据前读取数据前) )清清除为低电平。除为低电平。 (4)INTE(4)INTE(interrupt enable) (i

58、nterrupt enable) 中断允许信号,为中断允许信号,为1 1允许中断。为允许中断。为0 0禁止中断。实现中断方式进行数据传禁止中断。实现中断方式进行数据传送送. .它没有外部引脚它没有外部引脚. .端口端口A A中断允许中断允许INTEINTEA A可由软件可由软件对对PCPC4 4的按位置位的按位置位/ /复位来控制。而复位来控制。而INTEINTEB B 由由PCPC2 2 的置的置位位/ /复位控制。复位控制。63例例1 1定义口、口、口为选通定义口、口、口为选通/O/O口,即方式口,即方式1 1,其中口为输入口,口地址为输出口,口高,其中口为输入口,口地址为输出口,口高位为

59、输出口,低位为输入口,请编写初始化位为输出口,低位为输入口,请编写初始化8255A8255A的初始化程序。方式选择寄存器的端口地址为的初始化程序。方式选择寄存器的端口地址为21BH21BH。方式方式1 1下输入举例下输入举例64方式1下输入举例例例2 2:设设8255A8255A的四个端口地址为的四个端口地址为60H-63H,60H-63H,试编写试编写符合下列情况的初始化程序。将符合下列情况的初始化程序。将A A口、口、B B口设置为口设置为方式方式1,1,均为输入均为输入;PC6,PC7;PC6,PC7为输出为输出, ,允许允许A A口中断口中断, ,禁止禁止B B口中断。编写这样的程序段

60、。口中断。编写这样的程序段。65l 方式方式1 1输出输出的状态控制信号及其时序关系如图。的状态控制信号及其时序关系如图。668255A8255A方式方式1 1下下输出输出端口端口C C信号意义信号意义 C端口引端口引脚脚信号信号意义意义信号方向信号方向PC7/PC1OBFA/OBFB缓冲器满缓冲器满输出输出PC6/PC2ACKA/ACKB接收数据后的响接收数据后的响应应输入输入PC3/PC0INTRA/INTRB中断请求信号中断请求信号输出输出67 (1) OBF(1) OBF输出缓冲器满信号输出缓冲器满信号,低电平有效。这是,低电平有效。这是82558255输出给外设的。输出给外设的。CP

温馨提示

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

最新文档

评论

0/150

提交评论