可编程接口芯片及应用课件.ppt

上传人(卖家):晟晟文业 文档编号:5099765 上传时间:2023-02-11 格式:PPT 页数:103 大小:1.84MB
下载 相关 举报
可编程接口芯片及应用课件.ppt_第1页
第1页 / 共103页
可编程接口芯片及应用课件.ppt_第2页
第2页 / 共103页
可编程接口芯片及应用课件.ppt_第3页
第3页 / 共103页
可编程接口芯片及应用课件.ppt_第4页
第4页 / 共103页
可编程接口芯片及应用课件.ppt_第5页
第5页 / 共103页
点击查看更多>>
资源描述

1、第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用第9章 可编程接口芯片及应用9.1 可编程接口芯片概述9.2 可编程计数/定时器82539.3 可编程并行接口芯片8255A第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用 CPU要与外设交换信息,必须通过接口电路,在接口电路中一般具有如下电路单元:输入输出数据缓冲器和锁存器,以实现数据的I/O。控制命令和状态寄存器,用以存放对外设的控制命令,以及外设的状态信息。地址译码器,用来选择接口电路中的不同端口(寄存器)。读写控制逻辑。中断控制逻辑。9.1 可编程接口芯片概述第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用9.2

2、可编程计数器定时器8253计数/定时的工作原理计数计数:对外部事件发生次数进行计数对外部事件发生次数进行计数 定时和计数本质上是相同的,它们都是定时和计数本质上是相同的,它们都是对一个输入脉冲进行计数,如果输入脉冲的对一个输入脉冲进行计数,如果输入脉冲的频率一定,那么记录脉冲的个数与所需的时频率一定,那么记录脉冲的个数与所需的时间是一一对应的关系。间是一一对应的关系。例如例如:输入脉冲频率为输入脉冲频率为2MHz,那么计数,那么计数2 106 定时定时1秒秒因此,使用同一个芯片,既能计数,又能定时因此,使用同一个芯片,既能计数,又能定时定时器定时器/计数器计数器第第9 9章章 可编程接口芯片及

3、应用可编程接口芯片及应用。9.2.1 8253功能及结构 Intel 8253具有3个独立的16位计数器,使用单一5V电源,采用NMOS工艺,24脚双排直插式封装的大规模集成电路1 182538253主要功能主要功能 每片有3个独立的16位计数通道。每个计数器可按二进制或十进制来计数,时钟脉冲下降沿使计数器进行减1操作。每个计数器最高计数速率可达2.6MHZ。每个计数器可编程设定6种工作方式之一。所有输入、输出均与TTL电平兼容,便于与外围接口电路相连。第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用2.82532.8253的内部结构和引脚特性的内部结构和引脚特性第第9 9章章 可编程

4、接口芯片及应用可编程接口芯片及应用9.2.2 8253控制字18253控制字格式 SC1SC2RW1RW2M2M1M0BCD00:计数器001:计数器110:计数器211:无意义00:锁存计数值01:只读写低8位10:只读写高8位11:先读写低8位 后读写高8位000:方式0001:方式1X10:方式2X11:方式3100:方式4101:方式50:二进制计数1:十进制计数D7D6D5D4D3D2D1D0第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用28253端口地址 A1A0=00-计数器0 01-计数器1 10-计数器2 11-控制口3.编程步骤 先写控制字(到控制口)再写计数器初

5、值(到相应的通道端口)第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用9.2.3 8253工作方式与工作时序 1方式0(单脉冲发生器)计数器只计一遍。控制字写入后,OUT端为低;当计数初值写入后,在下一个CLK脉冲的下降沿将计数初值寄存器内容装入减1计数寄存器,然后计数器开始减1计数,在计数期间,当减1计数器回0之前,输出端OUT维持低电平。当计数值回0时,OUT输出端变为高电平,并保持到重新写入新的控制字或新的计数值为止。可作为中断请求信号。在计数过程中,若GATE信号变为低电平,则在低电平期间暂停计数,减1计数寄存器值保持不变。在计数过程中,若重新写入新的计数初值,则在下一个CLK

6、脉冲的下降沿,减1计数寄存器以新的计数初值重新开始计数过程。第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用8253方式0三种情况时序波形:CLKGATEOUT43210WRCLKGATEOUT43321CWN=40WRCLKGATEOUT43232CWN=4N=310WRCWN=4第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用2方式1(可重触发单稳态方式)输出单个负脉冲信号,脉冲的宽度可通过编程来设定。当写入控制字后,输出端OUT变为高电平,并保持高电平状态。然后写入计数初值,只有在GATE信号的上升沿之后的下一个CLK脉冲的下降沿,才将计数初值寄存器内容装入减1计数寄存器

7、,同时OUT端变为低电平。然后计数器开始减1计数,当计数值减到0时,OUT端变为高电平。在OUT端输出低电平期间,又来一个门控信号上升沿触发,则在下一个CLK脉冲的下降沿,重新将计数初值寄存器内容装入减1计数寄存器,并开始计数,OUT端保持低电平,直至计数值减到0时,OUT端变为高电平。在计数期间CPU又送来新的计数初值,不影响当前计数过程。一直等到下一次GATE信号的触发,才会将新的计数初值装入,并以新的计数初值开始计数过程。第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用8253方式1三种情况时序波形:WRCLKGATEOUT3210CWN=3CLKGATEOUT210032WRC

8、LKGATEOUT3232CWN=310WRCWN=2N=3第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用3方式2(周期脉冲发生器)可产生周期性的负脉冲信号,负脉冲宽度为一个时钟周期。写入控制字后,OUT端变为高电平,若GATE为高电平,当写入计数初值后,在下一个CLK的下降沿将计数初值寄存器内容装入减1计数寄存器,并开始减1计数。当减1计数寄存器的值为1时,OUT端输出低电平;减1计数寄存器回0时OUT端输出高电平,并开始一个新的计数过程。在减1计数寄存器未减到1时,GATE信号由高变低,则停止计数。但当GATE由低变高时,则重新将计数初值寄存器内容装入减1计数寄存器,并重新开始计

9、数。GATE信号保持高电平,但在计数过程中重新写入计数初值,则当正在计数的一轮结束并输出一个CLK周期的负脉冲后,将以新的初值进行计数。第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用8253方式2三种情况时序波形:WRCLKGATEOUT32132CWN=31WRCLKGATEOUT32232CWN=31WRCLKGATEOUT32154CWN=33N=53第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用4方式3(方波发生器)当控制字写入后,OUT输出高电平。写入计数初值后,下一个CLK的下降沿将计数初值装入减1计数器,并开始减1计数,当计数到一半时,OUT端变为低电平。减1

10、计数寄存器继续作减1计数,计数到0时,OUT端变为高电平。之后,周而复始地自动进行计数过程。当计数初值为偶数时,OUT输出对称方波;当计数初值为奇数时,OUT输出不对称方波。在计数过程中,若GATE变为低电平,则停止计数;当GATE由低变高时,则重新启动计数过程。如果在输出为低电平时,门控信号GATE变为低电平,减1计数器停止,而OUT输出立即变为高电平。在GATE又变成高电平后,下一个时钟脉冲的下降沿,减1计数器重新得到计数初值,又开始新的减1计数。在计数过程中,如果写入新的计数值,那么,将不影响当前输出周期。但是,如果在写入新的计数值后,又受到门控上升沿的触发,那么,就会结束当前输出周期,

11、而在下一个时钟脉冲的下降沿,减计数器重新得到计数初值,又开始新的减1计数。第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用8253方式3三种情况时序波形:WRCLKGATEOUT43214CWN=432WRCLKGATEOUT54321CWN=55413WRCLKGATEOUT43222CWN=4432第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用5方式4(软件触发的选通信号发生器)采用方式4,可产生单个负脉冲信号,负脉冲宽度为一个时钟周期。写入控制字后,OUT端变为高电平,若GATE为高电平,当写入计数初值后,在下一个CLK的下降沿将计数初值寄存器内容装入减1计数寄存器,并

12、开始减1计数,当减1计数寄存器的值为0时,OUT端输出低电平,经过一个CLK时钟周期,OUT端输出高电平。如果在计数时,又写入新的计数值,则在下一个CLK的下降沿此计数初值被写入减1计数寄存器,并以新的计数值作减1计数。第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用8253方式4三种情况时序波形:WRCLKGATEOUT43210CWN=4WRCLKGATEOUT44321CWN=40CLKGATEOUT432321WRN=4N=3CW0第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用6方式5(硬件触发的选通信号发生器)方式5的计数过程由GATE的上升沿触发。当控制字写入后,

13、OUT端输出高电平,并保持高电平状态。然后写入计数初值,只有在GATE信号的上升沿之后的下一个CLK脉冲的下降沿,才将计数初值寄存器内容装入减1计数寄存器,并开始减1计数,当计数值减到0时,OUT端变为低电平,并持续一个CLK周期,然后自动变为高电平。在计数过程中,若GATE端又来一个上升沿触发,则在下一个CLK脉冲的下降沿,减1计数寄存器将重新获得计数初值,并按新的初值作减1计数,直至减为0为止。在计数过程中,若写入新的计数值,但没有触发脉冲,则当前输出周期不受影响。当前周期结束后,在再触发的情况下,将按新的计数初值开始计数。若在计数过程中,写入新的计数值,并在当前周期结束前又受到触发,则在

14、下一个CLK脉冲的下降沿,减1计数寄存器将获得新的计数初值,并按此值作减1计数操作。第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用8253方式5三种情况时序波形:WRCLKOUT3210CWN=3GATEWRCLKOUT3232CWN=3GATE10CLKOUT3210GATE04WRN=3N=4CW3第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用9.2.4 8253的初始化编程1 1写入控制字写入控制字 以便选择计数器和规定计数器的工作方式,任一计数通道的控制字都要从8253的控制端口写入。2 2写入计数初值写入计数初值 计数初值(TC)的计算公式为:t=TC/f,其中t

15、为定时时间,TC为计数初值,f为输入时钟频率。注意:如果在方式控制字中的BCD位为1,则写入的计数初值应为十六进制数。例如:计数初值为50,采用BCD码计数,则指令中的50必须写为50H。第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用3 3读计数值读计数值 在计数过程中,若要读取当前的计数值,则需采用以下方法:先写入一个方式控制字,该方式控制字的SC1SC0指明要读取的计数通道,RW1RW0设为00即锁定计数值;然后再按照初始化该计数器时的读写方法读取计数值。第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用9.2.5 8253应用 【例1】8253在IBM PC机中的应用。I

16、BM PC机系统板上8253的接口电路如图9.9所示,3个计数器的时钟输入频率为1.1932MHZ。系统分配给8253的端口地址为40H43H。第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用CSWRRDD7D0A0CLK0GATE0OUT0A1CLK1GATE1OUT1GATE2OUT2CLK2地址译码QDCP Q+5V(8255)PB0(8284)PCLKDBIORIOW(8259)IR0DCP Q+5V(8237)DREQ0&8255PB1放大器扬声器ABIBM-PC机系统板上机系统板上8253接口电路接口电路 F=1.1932MHZ 第第9 9章章 可编程接口芯片及应用可编程接

17、口芯片及应用 计数器0为方式3,先写低字节,后写高字节,二进制计数,计数初值为0。输出端OUT0接至中断控制器8259A的IR0,OUT0输出的脉冲周期约为55ms(655361193200),即计数器0每隔55ms产生一次中断请求。计数器1为方式2,只写低字节,二进制计数,计数初值为18。输出端OUT1接至DMA控制器8237A通道0的DMA请求DREQ0,作为定时(15.08s)刷新动态存储器的启动信号。第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用IBM-PC机机BIOSBIOS对对CNT0CNT0的初始化程序:的初始化程序:MOV ALMOV AL,00110110B0011

18、0110BOUT 43HOUT 43H,ALALMOV ALMOV AL,0 0OUT 40HOUT 40H,ALALOUT 40HOUT 40H,ALALIBM-PC机机BIOSBIOS对对CNT1CNT1的初始化程序:的初始化程序:MOV ALMOV AL,01010100B01010100BOUT 43HOUT 43H,ALALMOV ALMOV AL,12H12HOUT 41HOUT 41H,ALAL第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用 BIOS中BEEP子程序,功能为使CNT2输出方波到扬声器。计数器2为方式3,先写低字节,后写高字节,二进制计数,计数初值为053

19、3H。GATE2由8255A的PB0控制,当GATE2为高电平时,OUT2输出频率为896HZ的方波,经功率放大器和滤波后驱动扬声器发声。MOV ALMOV AL,10110110B10110110BOUT 43HOUT 43H,ALALMOV AXMOV AX,0533H0533HOUT 42HOUT 42H,ALALMOV ALMOV AL,AHAHOUT 42HOUT 42H,ALALIN 61HIN 61H,ALALMOV AHMOV AH,ALALOR ALOR AL,03H03H OUT 61H OUT 61H,ALAL MOV BX MOV BX,100 100 ;延时;延时 M

20、OV CXMOV CX,0 0 G7G7:LOOP G7LOOP G7 DEC BX DEC BX JNZ G7 JNZ G7 MOV AL MOV AL,AHAH OUT 61H OUT 61H,ALAL RET RET第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用【例2】利用8253的通道0和通道1,设计并产生周期为1HZ的方波。设通道0的输入时钟频率为 2MHz,8253所占端口地址为80H83H。方案:8253通道0工作于方式2(周期脉冲发生器),输出脉冲周期为10ms,则通道0的计数值为20000。周期为10ms的脉冲作为通道1的输入,要求输出端OUT1的波形为方波且周期为

21、1s,则通道1工作于方式3,计数值为100。第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用电路图:CSWRRDD7D0A0CLK0GATE0OUT0A1CLK1GATE1OUT1地址译码+5VDBIORIOWAB2MHZ1HZ第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用8253初始化程序如下:MOV AL,34H ;通道0控制字OUT 83H,ALMOV AX,20000 ;通道0时间常数OUT 80H,ALMOV AL,AHOUT 80H,ALMOV AL,56H ;通道1控制字OUT 83H,ALMOV AL,100 ;通道1时间常数OUT 81H,AL第第9 9章章

22、 可编程接口芯片及应用可编程接口芯片及应用【例3】8253应用(键盘演奏音乐程序)第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用初值之间的关系:(fin=1.1932MHz=1193200 Hz)(fin=1193200=1234F0H)给定fout 在DI寄存器中,DX和AX存放1.1932MHz的十六进制值1234F0H,则产生 fout输出的计数初值的程序段:(初值存于AX中)MOV DX,12HMOV AX,34F0H ;DX和AX存放 finDIV DI ;DI存放fout 结果在AX中foutfin初值1234567262294330349392440494频率表频率表(

23、输出频率fout)第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用10ms秒软件延时程序:MOV CX,2801DELAY:LOOP DELAY如产生1秒的程序:MOV BX,100 WAIT:MOV CX,2801 DELAY:LOOP DELAY DEC BX JNZ WAIT第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用data segment freq dw 262,294,330,349,392,440,494data endscode segment assume ds:data,cs:codemain proc far start:push dsmov ax,0

24、push axmov ax,datamov ds,axmov al,0b6h out 43h,alin al,61h or al,03hout 61h,al again:mov ah,1 int 21h cmp al,1bh ;jz exitlea si,freqand ax,0fh shl ax,1sub ax,2add si,ax mov di,simov dx,12hmov ax,34f0hdiv di ;out 42h,almov al,ahout 42h,al jmp againexit:in al,61h and al,0fch out 61h,al ret main endp c

25、ode ends end start第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用【例4】现有一个高精密晶体振荡电路,输出信号是脉冲波,频现有一个高精密晶体振荡电路,输出信号是脉冲波,频率为率为1MHz1MHz。要求将。要求将1MHz1MHz信号做输入信号,利用信号做输入信号,利用82538253做一个秒信做一个秒信号发生器,其输出接一发光二极管,以号发生器,其输出接一发光二极管,以0.50.5秒点亮,秒点亮,0.50.5秒熄灭秒熄灭的方式闪烁指示。设的方式闪烁指示。设82538253的通道地址为的通道地址为80H80H86H86H(偶地址)(偶地址)解:解:1 1、时间常数计算、时

26、间常数计算 这个例子要求用这个例子要求用82538253作一个分频电路,而且其输出应作一个分频电路,而且其输出应该是方波,否则发光二极管不可能等间隔闪烁指示。频率该是方波,否则发光二极管不可能等间隔闪烁指示。频率为为1MHz1MHz信号的周期为信号的周期为1 1微妙,而微妙,而1Hz1Hz信号的周期为信号的周期为1 1秒,所以秒,所以分频系数分频系数N N可按下式进行计算:可按下式进行计算:10000001100000011ssssN第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用 由于由于82538253一个通道最大的计数值是一个通道最大的计数值是6553665536,所以对于,所以

27、对于N N10000001000000这样的大数,一个通道是不可能完成上述这样的大数,一个通道是不可能完成上述分频要求的。由于分频要求的。由于 即取两个计数器,采用级联方式可达到目的。即取两个计数器,采用级联方式可达到目的。2 2、电路、电路121000000 1000 1000NN NOUT0GATE0CLK01MHz8253通道05VOUT1GATE1CLK11KHz8253通道1第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用1MHz1KHz1Hz驱动驱动LED第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用 3、工作方式选择、工作方式选择 由于通道由于通道1 1要输出方

28、波信号推动发光二要输出方波信号推动发光二极管,所以极管,所以通道通道1 1应选工作应选工作方式方式3 3。对于。对于通道通道0 0,只要能起分频作用就行,对输出,只要能起分频作用就行,对输出波形不做要求,波形不做要求,方式方式2 2或方式或方式3 3选用。选用。对于通道对于通道0 0,取,取工作方式工作方式2 2,BCDBCD计数;计数;对对于通道于通道1 1,取,取工作方式工作方式3 3,二进制计数,二进制计数(当然也可选(当然也可选BCDBCD计数)计数)第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用 4、程序、程序mov al,00110101b;通道通道0控制字控制字out

29、86h,almov al,00 ;通道通道0初始计数值初始计数值out 80h,almov al,10h ;初值初值1000,以以16进格式进格式out 80h,almov al,01110110b;通道通道1控制字控制字out 86h,al mov al,0e8h;通道通道1初始计数值,初始计数值,;03E8H=1000BCDout 82h,almov al,03hout 82h,al第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用【例例5 5】计件系统。计件系统的功能就是记录计件系统。计件系统的功能就是记录 脉冲的个数。脉冲的

30、个数。一个脉冲代表一个事件,比如交通道路检测系统中一个脉冲代表一个事件,比如交通道路检测系统中通过检测点的车辆,工业控制系统中流水线上已加工通过检测点的车辆,工业控制系统中流水线上已加工好的工件。要求在计件过程中,好的工件。要求在计件过程中,PCPC机可以显示当前计机可以显示当前计数器的内容,当完成数器的内容,当完成1000010000个工件记录后,系统发出个工件记录后,系统发出1KHz1KHz信号推动喇叭发音通知用户。信号推动喇叭发音通知用户。第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用 解:解:1 1、电路。、电路。需要两个通道,一个作为计数,选用通道需要两个通道,一个作为计数

31、,选用通道0。另一。另一个产生个产生1KHz信号,选用通道信号,选用通道1。工作原理如下,传感工作原理如下,传感器电路把物理事件转换为脉冲信号输入到通道器电路把物理事件转换为脉冲信号输入到通道0 0计数,计数,当记录当记录1000010000个事件后,通道个事件后,通道0 0计数器溢出,计数器溢出,GATEGATE端输端输出高电平,这时通道出高电平,这时通道1 1开始工作,产生开始工作,产生1KHz1KHz信号推动喇信号推动喇叭发音叭发音。OUT0GATE0CLK01MHz8253通道05VOUT1GATE1CLK18253通道1计件脉冲驱动放大第第9 9章章 可编程接口芯片及应用可编程接口芯

32、片及应用 2 2、工作方式选择、工作方式选择 对于通道对于通道1 1,由于要产生,由于要产生1KHz信号,故选信号,故选用工作方用工作方 式式3。对于通道对于通道0,要求初始计数值写入计数通道,要求初始计数值写入计数通道后,计数器就可以工作,则通道后,计数器就可以工作,则通道0的启动方式的启动方式应是软件启动。另外由于要求计数溢出后产生应是软件启动。另外由于要求计数溢出后产生一个信号来启动一个事件,即喇叭发音,故可一个信号来启动一个事件,即喇叭发音,故可选的工作方式为方式选的工作方式为方式0和方式和方式4,对于图所示方,对于图所示方案,通道案,通道1的的GATE信号由通道信号由通道0的的OUT

33、信号产信号产生,这个生,这个OUT信号应该是电平型的,所以通道信号应该是电平型的,所以通道0应选用方式应选用方式0。第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用3、时间常数、时间常数 N010000=2710H4、程序、程序11MHz1000KHz=10001KHz1KHzN 第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用 mov dx,mov dx,306H 306H ;控制端口控制端口 mov al,mov al,0101110111b110111b;通道通道1 1控制字控制字,bcd,bcd计数计数out dx,alout dx,almov dx,mov dx,30

34、2H 302H;通道通道1 1端口端口mov al,00mov al,00 out dx,al out dx,almov al,10hmov al,10h out dx,alout dx,al mov dx,mov dx,306H306H ;控制端口控制端口 mov al,mov al,0000110000b110000b;通道通道0 0控制字控制字,二进制计数二进制计数out dx,alout dx,al mov dx,mov dx,300H300H ;通道通道0 0端口端口 mov al,10hmov al,10h,out dx,alout dx,almov al,27hmov al,27

35、hout dx,alout dx,al4、程序、程序8253地址地址:300H-306H第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用Getdat:call delaymov dx,306H ;通道0锁存计数值Mov al,00000000BOut dx,al ;读通道0计数值Mov dx,300hIn al,dxMov cl,alIn al,dxMov ch,al;数据存入CXCall displayCmp cx,0Jnz Getdat第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用【例4】利用PC机内部定时器0,设计并实现一个数字式计时时钟。显示格式为hh:mm:ss(h

36、h代表时,mm代表分,ss代表秒)。分析:PC机内部定时器0初始设定为每隔55ms中断一次,即1秒中断18.2(100055)次,若按初始设定,无法实现1s精确定时。需重新设定定时器0的时间常数,让其每隔10ms中断一次;再设定一个软件计数器,初始值为100。每中断一次,软件计数器减1,当软件计数器减为0,则定时1s。在PC机系统中,定时器0的中断类型号为08H,但在中断向量表中,存放08H中断服务程序入口地址的单元中实际存放的是INT 1CH指令,因此,当定时器0中断时,实际是转至INT 1CH的中断服务程序入口处。其程序如下:第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用data

37、 segment count db 100 ;软件计数器 tenh db 0 hour db 0,:tenm db 0 minu db 0,:tens db 0 seco db 0data endscode segment main proc far assume cs:code,ds:data start:push ds mov ax,0 push ax mov ax,data mov ds,ax 第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用 cli ;关中断 mov ax,351ch int 21h ;取中断类型号为1ch的原系统中断服务程序 入口地址 push es ;保存中

38、断服务程序入口地址的段地址 push bx ;保存中断服务程序入口地址的偏移地址 push ds mov dx,offset timer ;设置用户中断服务程序偏移地址 mov ax,seg timer ;设置用户中断服务程序段地址 mov ds,ax mov ax,251ch ;设置中断向量 int 21h pop ds 第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用 mov al,36h ;重设8253定时器0控制字 out 43h,al mov ax,11932 ;重写8253定时器0时间常数 out 40h,al mov al,ah out 40h,al sti ;开中断 f

39、ore:mov ah,1 ;检测键盘按键 int 16h cmp al,1bh ;是按下“Esc”键吗?jz exit ;是,退出 第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用 mov bx,offset tenh ;显示hh:mm:ss mov cx,8 dispclk:mov al,bx call disp inc bx loop dispclk mov al,0dh ;显示回车 call disp mov al,seco ;取秒计数单元值 wait1:cmp al,seco ;秒计数单元变化否?jz wait1 ;无变化,等待 jmp short fore ;有变化,显示新时

40、间 第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用 exit:cli mov al,36h ;恢复定时器0的初始设定值 out 43h,al mov ax,0 out 40h,al mov al,ah out 40h,al pop dx ;恢复中断类型号1cH的系统初始值 pop ds mov ax,251ch int 21h sti ret main endp 第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用 disp proc near ;显示字符子程序 push bx mov bx,0 mov ah,0eh int 10h pop bx ret disp endp ti

41、mer proc near push ax mov ax,data mov ds,ax dec count ;软件计数器减1 jnz return ;软件计数器不为0,中断返回 mov count,100 第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用 inc seco ;秒加1 cmp seco,9 jle return mov seco,0 inc tens cmp tens,6 jl return mov tens,0 inc minu ;分加1 cmp minu,9 jle return mov minu,0 inc tenm cmp tenm,6 jl return mov

42、 tenm,0 第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用 inc hour ;小时加1cmp hour,9ja adjhourcmp hour,4 ;判断是否计时到24时?jnz returncmp tenh,2jnz returnmov hour,0 ;若计时到24时,则回到00时 mov tenh,0 jmp short return adjhour:inc tenhmov hour,0 第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用 return:mov al,20h ;送中断结束命令 out 20h,al pop ax iret ;中断返回 timer end

43、pcode ends end start第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用9.3 可编程并行接口芯片8255A 9.3.1 8255A内部结构及引脚功能 18255A内部结构 8255A的内部结构如图所示,它由数据总线缓冲器,数据端口A、B、C,A组控制和B组控制,读/写控制逻辑四部分组成。第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用8255A的的管脚分配管脚分配 WRD0D1D2D3D4D5D6D7VCCPB7RDCSGNDA1A0PA4PA5PA6PA7PB5PB6PB4PB3RESETPB1PB2P

44、B0PC3PC2PC1PC0PC4PC5PC6PC7PA3PA2PA1PA051101535403025211 40 8255A20 21第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用 数据总线缓冲器 数据总线缓冲器是一个双向三态的8位数据缓冲器,8255A通过它与系统总线相连。输入数据、输出数据、CPU 发给8255A的控制字都是通过这个缓冲器进行的。数据端口:PA、PB、PC 端口A对应一个8位数据输入锁存器和一个8位数据输出锁存器/缓冲器。用端口A作为输入或输出时,数据均受到锁存。端口B和端口C均对应一个8位输入缓冲器和一个8位数据输出锁存器/缓冲器。第第9 9章章 可编程接口

45、芯片及应用可编程接口芯片及应用 A组控制和B组控制 这两组控制电路一方面接收CPU发来的控制字并决定8255A的工作方式;另一方面接收来自读/写控制逻辑电路的读/写命令,完成接口的读/写操作。A组控制电路控制端口A和端口C的高4位的工作方式和读/写操作。B组控制电路控制端口B和端口C的低4位的工作方式和读/写操作。第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用 读/写控制逻辑 读/写控制逻辑负责管理8255A的数据传输过程。它接收译码电路的 和来自地址总线的A1,A0信号,以及控制总线的RESET,信号,将这些信号进行组合后,得到对A组控制部件和B组控制部件的控制命令,并将命令发给这

46、两个部件,以完成对数据信息、状态信息和控制信息的传输。CSWRRD第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用2.8255与CPU连接 D0-D7、A0、A1、/CS、/RD、/WR第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用 3.8255的端口地址 A1A0=00-PA(可读/写)01-PB(可读/写)10-PC(可读/写)11-控制口(可写)第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用 1.方式选择控制字 9.3.2 8255A控制字 第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用2.端口C置位/复位控制字 第第9 9章章 可编程接口芯片及应用

47、可编程接口芯片及应用 1.1.方式方式0 0基本输入输出基本输入输出 在方式0下,每一个端口都作为基本的输入或输出口,端口C口的高4位和低4位以及端口A口、端口B都可独立地设置为输入口或输出口。CPU可以随时对它们进行读或写。PAPA口口可工作于方式方式0 0、方式方式1 1、方式、方式2 2;PBPB口口可工作于方式方式0 0、方式方式1 1;PCPC口口只能工作于方式方式0 0。9.3.3 8255A工作方式 第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用 2.2.方式方式1 1选通输入输出选通输入输出 方式1下三个端口分为A、B两组,端口A、端口B仍作为输入或输出口,端口C分成

48、两部分,一部分作为端口A和端口B的联络信号,另一部分仍可作为基本的输入输出口。第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用(1)方式1输入 PC4PC5PC3&INTEAPA7PA0PC6PC7RDSTBAIBFAINTRAI/O端口A方式1输入PC2PC1PC0&INTEBPB7PB0RDSTBBIBFBINTRB端口B方式1输入STBRDINTRIBF来自外设的数据数据方式1输入时序第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用信号说明:/STB(Strobe):选通输入,低电平有效。该信号有效时,输入数据被送入锁存端口A或端口B的输入锁存器/缓冲器中。IBF(Inp

49、ut Buffer Full):输入缓冲器满。当外设把数据写入端口,IBF变为1。INTR:中断请求信号,高电平有效。当IBF变为1且INTE=1时,INTR变为高电平。当CPU取数据,/RD的下降沿使INTR复位,上升沿又使IBF复位。INTE:中断允许信号。端口A用PC4的置位/复位控制,端口B用PC2的置位/复位控制。第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用(2)方式1输出 PC7PC6PC3&INTEAPA7PA0PC4PC5WROBFAACKAINTRAI/O端口A方式1输出端口B方式1输出PC1PC2PC0&INTEBPB7PB0WROBFBACKBINTRBWRA

50、CKINTROBF送往外设的数据数据方式1输出时序第第9 9章章 可编程接口芯片及应用可编程接口芯片及应用信号说明:/OBF(Out Buffer Full):输出缓冲器满。当CPU将数据写入到数据端口,/OBF变0,通知外设可读取。/ACK(Acknowledge):外设的响应信号。由外设发给8255A,有效时,表示外设已取走8255A的端口数据。8255A收到/ACK后/OBF变为1,且“可能”产生中断。INTR:中断请求信号,高电平有效。当收到/ACK,中断允许INTE=1时,INTR变为高电平。INTR信号可作为CPU的查询信号,或作为向CPU发出中断请求的信号。/WR的下降沿使INT

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(可编程接口芯片及应用课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|