资源预览内容
第1页 / 共36页
第2页 / 共36页
第3页 / 共36页
第4页 / 共36页
第5页 / 共36页
第6页 / 共36页
第7页 / 共36页
第8页 / 共36页
第9页 / 共36页
第10页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术综综 合合 练练 习习 1http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术例例1 假设有一个假设有一个44的矩阵键盘通过并行接口的矩阵键盘通过并行接口芯片芯片8255与微机相连。与微机相连。8255的的A口作为输出口作为输出口,与键盘的行线相连;口,与键盘的行线相连;B口为输入口,与口为输入口,与键盘列线相连。键盘列线相连。 设设8255A口地址为口地址为60H,B口地址为口地址为61H,控,控制寄存器地址为制寄存器地址为63H,请编写键盘扫描程序。,请编写键盘扫描程序。2http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术3http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术 程序如下:程序如下: mov al, 82h out 63h, albegin:mov al, 0;检查是否有键按下检查是否有键按下out 60h, alwait: in al, 61hand al, 0fhcmp al, 0fhjz wait;无键按下,继续等待;无键按下,继续等待4http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术sm:mov dl, 4;行数送行数送dlmov al, 0feh;扫描码,;扫描码,0行为行为0mov ch, 0;键号初值为;键号初值为0srow:out 60h, al;扫描一行;扫描一行 rcl al,1;修改扫描行;修改扫描行mov ah, al;保存下次要扫描的扫描码保存下次要扫描的扫描码in al, 61h;读列线状态;读列线状态and al, 0fhcmp al, 0fh;是否有列线为;是否有列线为0jnz scol;有列线为;有列线为0转到转到scol5http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术add ch, 4;否则键号;否则键号4mov al, ah;取回行扫描码;取回行扫描码decdl;行数减;行数减1jnzsrow;继续扫描行;继续扫描行jmp beginscol: rcr al, 1jncproce;该列为;该列为0,转处理程序,转处理程序incch;否则键号;否则键号1,jmp scol;继续查找;继续查找proce:6http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术思考题思考题如何将上题改成中断方式?假设任意键按下后,如何将上题改成中断方式?假设任意键按下后,会通过会通过8259的的IR5向向CPU发中断请求,另外,发中断请求,另外,8255的端口地址是的端口地址是60H63H,8259的端口地址的端口地址是是20H21H,使用,使用74LS138译码器,请修改原图,译码器,请修改原图,使其满足题目要求,并要给出译码电路。然后写使其满足题目要求,并要给出译码电路。然后写出相应的键盘扫描程序。出相应的键盘扫描程序。7http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术&PC7IR5CS去去138PPICSA0A1A0A18259INTINTRCSINTRCSA0A08http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术Y0Y7ABCG2BG2AG11514131211109712345674LS138A5A6A7A8A9AENINTRCSPPICS去去8255去去8259138译码电路部分译码电路部分9http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术例例2.频率计数器设计频率计数器设计 用用8254计数外来信号频率计数外来信号频率fIN(fCLK=1MHz)。 用用T/C1产生基准时钟间隔,采用方式产生基准时钟间隔,采用方式1;T/C0采用方采用方式式0对外来信号计数;对外来信号计数;OUT1控制控制GATE0来停止计数。来停止计数。CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2D0D7A1A0RDWRCS信号信号fCLKTRGEOC返回下页返回下二页10http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术思路:思路: T/C1产生产生10ms的基准时间间隔,然后通过的基准时间间隔,然后通过OUT1控控制制T/C0计数,用计数,用 f fININ=(N-M+1)/10ms*1000Hz =(N-M+1)/10ms*1000Hz 公式来计公式来计算。其中算。其中N是是T/C0的初始值,的初始值,M是计数基准时间到时是计数基准时间到时的的T/C0当前计数值。当前计数值。 为了辅助控制,我们用为了辅助控制,我们用8255A口初始化为输出,其口初始化为输出,其中位中位0为为TRG,用来控制计数器,用来控制计数器1的的GATE。8255B口口初始化为输入,其中位初始化为输入,其中位0接到接到OUT1脚,通过对该位的脚,通过对该位的不断查询,来确定不断查询,来确定10ms是否结束,结束后,根据是否结束,结束后,根据T/C0的计数数值进行计算。的计数数值进行计算。11http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术OUT PIO0,0 ;TRG=0TRG=0MOV AL,01110010B ;T/CT/C1 1OUT 43H,ALMOVAH,2710H ;间隔为间隔为间隔为间隔为10ms10ms(2710H2710H1000010000)OUT 41H,ALMOVAL, AHOUT 41H,ALMOV AL,00110000B ;T/CT/C0 0 OUT 43H,ALMOVAL,00H ;初值为初值为初值为初值为6553665536OUT 40H,ALOUT 40H,AL;STC产生一个脉冲产生一个脉冲OUT PIO0,2 ;TRG=1TRG=1,开始计数,开始计数,开始计数,开始计数返回下页转上页12http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术S1: IN AL,PIO1 ;循环读循环读循环读循环读EOCEOC JZS1 ;等到等到等到等到EOC=1EOC=1才退出循环才退出循环才退出循环才退出循环 IN AL,40H MOV AH,AL IN AL,40H XCHG AH,AL ;AXAX为当前计数值为当前计数值为当前计数值为当前计数值13http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术fIN=(N-M+1)/t=(65536-AX+1 )/10)*1000Hz注意:注意:10ms时时M应大于应大于0。T/C在在0方式时经过一个方式时经过一个CLK后才将初值写到后才将初值写到CE中。中。所以实际计数值应该在所以实际计数值应该在T/C0的当前值基础上加的当前值基础上加1。 思考思考1:采用简化电路,用读回命令实现的方法能否采用简化电路,用读回命令实现的方法能否很精确?(同时锁存两个计数器的值)。很精确?(同时锁存两个计数器的值)。 思考思考2:为得到精确的为得到精确的fIN,需增大时间间隔,在时间,需增大时间间隔,在时间间隔内间隔内M=0怎么办?怎么办?转上二页转上页思考思考3:如何利用如何利用8255来设计一个电路,时来设计一个电路,时T/C0最后最后的计数值就是实际计数值而不需要加的计数值就是实际计数值而不需要加1?思考思考4:可否采用中断方式,硬件怎么改,软件如何可否采用中断方式,硬件怎么改,软件如何写?写?14http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术例例3 请设法利用一个请设法利用一个8255和若干基本门电和若干基本门电路,将路,将8254方式方式0的计数外部脉冲的计数外部脉冲fclk的的个数从个数从n1转变成转变成n。15http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术步骤步骤1:初始化:初始化T/C0,写计数初值,写计数初值步骤步骤2:令:令PC0=1, 利用利用PC1发一个脉冲发一个脉冲(01,10)步骤步骤3:令:令PC0=0, PC1=1.&1GATE0PC0PC1fclkCLK0PC2PC3WR#PC5CS#A0PC6PC7A1OUT0PA0PA7D0D716http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术&1GATE0PC0PC1fclkCLK0PC2PC3WR#PC5CS#A0PC6PC7A1OUT0PA0PA7D0D7步骤步骤1:初始化:初始化T/C0,写计数初值,写计数初值步骤步骤2:令:令PC0=0, 利用利用PC1发一个脉冲发一个脉冲(01,10)步骤步骤3:令:令PC0=1, PC1=0.17http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术信号信号TRG1&STCGATE1CLK0;应在;应在T/C0初值写完后,送其到初值写完后,送其到CEOUT PIO0,1 ;STC 01OUT PIO0,0 ;STC 10例例2中思考中思考3的解决办法:的解决办法:18http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术例例4 某串行输入输出外设引线如图所示,其引某串行输入输出外设引线如图所示,其引线功能说明如下:线功能说明如下:DI为串行输入,为串行输入,DO是串行输出;是串行输出;CLK为串行为串行输入输出时钟,每一个时钟周期可输入或输输入输出时钟,每一个时钟周期可输入或输出一位数据。出一位数据。CS#为片选信号,低电平有效。为片选信号,低电平有效。DIDOCLKCS#假设外设接口地址为假设外设接口地址为PC机接口机接口地址地址03FCH03FFH,请用,请用8255芯片完成该芯片到系统总线的芯片完成该芯片到系统总线的连接,并按照你的连接,编写连接,并按照你的连接,编写将将BL中的数据按先低后高的顺中的数据按先低后高的顺序输出到外设中。序输出到外设中。19http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术20http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术03FCH21http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术22http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术例例5 两台两台PC机采用异步串行方式传送数据。字机采用异步串行方式传送数据。字符数据位符数据位7位,停止位位,停止位1位,偶校验,波特率位,偶校验,波特率为为2400bps,要求:,要求:1.按照按照RS232C电平标准电平标准给出传送字符给出传送字符A(ASCII码为码为41H)时的波形图(完整一帧)时的波形图(完整一帧数据),并标明数据),并标明MARK和和SPACE电平。电平。2.如果不间断地连续传送字符串如果不间断地连续传送字符串“HELLO_WORLD”,请计算所给波特率下传送,请计算所给波特率下传送该字符串需要的时间。该字符串需要的时间。23http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术注意题目要求的是符合注意题目要求的是符合RS-232电平标准,电平标准,RS232是负逻辑,该题的关键是要将异步通信协议和是负逻辑,该题的关键是要将异步通信协议和RS232的负逻辑结合起来的负逻辑结合起来注意字符串最后还有一个结束字符注意字符串最后还有一个结束字符024http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术例例5 两个机器希望通过两个机器希望通过8255的方式的方式1进行通信,进行通信,请设计其电路。根据你的电路编写读写程序。请设计其电路。根据你的电路编写读写程序。PA0PA7PA0PA7PB0PB7PB0PB7PC4PC5PC1PC2PC3PC0PC2PC1PC5PC4OBFOBFACK#ACK#STBSTBIBFIBFPC3PC08255825525http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术编程思路:编程思路:首先应该将首先应该将8255的的A口和口和B口初始化成方式口初始化成方式1的的输入和输出,并允许两种中断(输入中断和输输入和输出,并允许两种中断(输入中断和输出中断)。出中断)。数据的读写都是在中断处理中去完成。数据的读写都是在中断处理中去完成。26http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术例例7已知已知8253端口地址为端口地址为8083H,CLK2频率为频率为5MHz,执行如下程,执行如下程序后,完成如下要求:序后,完成如下要求: MOV AL,0B7H ;10110111B10110111BOUT 83H,ALLOOP: MOV AL, 00HOUT 82H, ALMOV AL, 50HOUT 82H, ALCALL DM5 ;调用延时调用延时调用延时调用延时5ms5ms延时子程序延时子程序延时子程序延时子程序MOV AL, 00HOUT 82H, ALMOV AL, 25HOUT 82H, ALCALL DM5JMP LOOP27http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术1写出该通道的工作方式,说明输出的波形写出该通道的工作方式,说明输出的波形特征、频率及持续时间。特征、频率及持续时间。2画出输出波形示意图。画出输出波形示意图。答:通道答:通道2工作在方式工作在方式3下输出方波,先输出下输出方波,先输出1KHz的方波的方波5毫秒,然后是毫秒,然后是2KHz的方波的方波5毫秒,毫秒,然后又是然后又是1KHz的方波的方波5毫秒,毫秒,如此反复。如此反复。28http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术例例8使用使用8255A(端口地址(端口地址60H63H)实现对)实现对74LS138的检测功能。要求如下:的检测功能。要求如下:1.画出检测电路图(画出检测电路图(8255A的译码电路省略),的译码电路省略),并说明设计思路。并说明设计思路。2.编写检测功能的完整程序。编写检测功能的完整程序。29http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术15Y0Y7ABCG2BG2AG114131211109712345674LS138PA0PB7PA1PA2PB0PC2PC1PC0编程提示编程提示:用用8255的的PC口和口和PA口做口做138的控制信号和输的控制信号和输入信号,然后读入信号,然后读8255的的PB口(也就是口(也就是138的的Y0Y7的的输出),看该输出),看该138的输出与输入以及控制信号之间的关的输出与输入以及控制信号之间的关系是否符合系是否符合138的真值表。的真值表。30http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术例例9 为测试某飞行体的速度,在一定距离上放置两个传感为测试某飞行体的速度,在一定距离上放置两个传感器,当飞行体穿过传感器的时候,传感器会输出一脉冲,器,当飞行体穿过传感器的时候,传感器会输出一脉冲,希望有一种办法比较精确地测出两个脉冲之间的时间,希望有一种办法比较精确地测出两个脉冲之间的时间,从而得知飞行速度。从而得知飞行速度。请给出思路。请给出思路。思路:用双稳态触发器将以上波形改成如下的正脉冲,思路:用双稳态触发器将以上波形改成如下的正脉冲,用这个正脉冲作为用这个正脉冲作为8253计数器的计数器的GATE控制信号。即控制信号。即GATE高电平的时候开始计数,高电平的时候开始计数,GATE低电平的时候结束低电平的时候结束计数,只要得到正脉冲之间计数的次数,再根据计数,只要得到正脉冲之间计数的次数,再根据CLK中来中来的脉冲频率,就可以计算这段时间的事件间隔。然后用两的脉冲频率,就可以计算这段时间的事件间隔。然后用两个传感器之间的距离除以这个时间就得到了速度值。个传感器之间的距离除以这个时间就得到了速度值。31http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术例例10请设计一个请设计一个8088的最小模式下的系统,系统中包括的最小模式下的系统,系统中包括8088CPU和和8255、8259、8253几个接口芯片和适当的译码电路。其中几个接口芯片和适当的译码电路。其中1)8254的计数器的计数器1工作在方式工作在方式3,其输出接到,其输出接到8259的的IR0,产生每,产生每秒秒20次的中断(次的中断(8253的的CLK0接接1.19MHz信号);信号);2)利用)利用8255设设计一个计一个44的无编码键盘,该键盘任一个键按下后,均能向的无编码键盘,该键盘任一个键按下后,均能向8259的的IR2提出中断请求。要求:提出中断请求。要求: (1)绘制电路设计简图,要求必要的信号线要连接正确。)绘制电路设计简图,要求必要的信号线要连接正确。 (2)按你的电路图,说明)按你的电路图,说明3个接口芯片中各个端口的地址。个接口芯片中各个端口的地址。 (3)编写)编写8253和和8255的初始化程序。的初始化程序。 (4)编写键盘中断处理程序中的扫描键盘片段。)编写键盘中断处理程序中的扫描键盘片段。 32http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术进行接口电路设计的时候要注意:进行接口电路设计的时候要注意:首先首先要弄清楚接口芯片各个引脚的输入输出特性和他们的有效电要弄清楚接口芯片各个引脚的输入输出特性和他们的有效电平定义,分清哪些引脚是对平定义,分清哪些引脚是对CPU一侧的,哪些是对外设一侧的。一侧的,哪些是对外设一侧的。其次其次要正确连接各引脚要正确连接各引脚:对于对于CPU一侧一侧,通常接口芯片的数据线,通常接口芯片的数据线D7D0要和系统的数据总要和系统的数据总线相连,从而和线相连,从而和CPU的数据总线相连,控制总线中大部分要考虑的数据总线相连,控制总线中大部分要考虑和和CPU或或8288中发出的控制信号相连,主要是中发出的控制信号相连,主要是IOW#、IOR#等,等,片选线片选线CS#一般和译码电路有关,使用地址线的高位利用相关译一般和译码电路有关,使用地址线的高位利用相关译码电路(如码电路(如24译码器、译码器、38译码器等)得到相应地址范围的片译码器等)得到相应地址范围的片选信号。地址低位根据题目要求正确的和接口新片的地址引脚相选信号。地址低位根据题目要求正确的和接口新片的地址引脚相连。连。对于外设一侧对于外设一侧,注意输出信号的特点,将该侧的控制信号正确的,注意输出信号的特点,将该侧的控制信号正确的和外设相连,同时还要注意将正确的数据线和外设相连,同时还要注意将正确的数据线(如果有)连好。这如果有)连好。这里我们要正确的理解外设的里我们要正确的理解外设的 含义,外设一侧的外设可以是外部含义,外设一侧的外设可以是外部设备,同时也可以是另一个接口芯片,比如设备,同时也可以是另一个接口芯片,比如8259的外设中断请求的外设中断请求线就由可能是和线就由可能是和8254、8255或或8250的某个输出线连接。的某个输出线连接。再次再次要特别注意不同引脚线相连时候电平定义是否匹配,是否要要特别注意不同引脚线相连时候电平定义是否匹配,是否要加反相器或其他中间过渡电路。加反相器或其他中间过渡电路。33http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术对于此类大综合的题目,拿到题后大家不要紧张,首先对于此类大综合的题目,拿到题后大家不要紧张,首先要弄清楚一共有几个部分,然后再一个部分一个部分的要弄清楚一共有几个部分,然后再一个部分一个部分的设计。比如本题,设计。比如本题,首先首先要将要将8088的有关连线连接起来,的有关连线连接起来,其中,其中,AD0AD7由于是地址数据复用线,所以,需要再由于是地址数据复用线,所以,需要再其上连上其上连上373锁存器,该锁存器在地址期将地址锁存,从锁存器,该锁存器在地址期将地址锁存,从而得到地址信号中的而得到地址信号中的A0A7,AD0AD7同时也作为同时也作为8位位数据线接到其他几个接口芯片上。需要使用的控制线主数据线接到其他几个接口芯片上。需要使用的控制线主要是读写线,中断请求和应答线等。要是读写线,中断请求和应答线等。其次其次要设计好地址要设计好地址译码电路,以便在不同的地址段使能不同的接口芯片。译码电路,以便在不同的地址段使能不同的接口芯片。本题可以使用一个本题可以使用一个24译码器,我们这里使用的还是译码器,我们这里使用的还是138译码器,注意留下足够的地址线低端,供接口芯片直接译码器,注意留下足够的地址线低端,供接口芯片直接连接来访问片内端口。最后,按照题目要求,来连接好连接来访问片内端口。最后,按照题目要求,来连接好其他的接口芯片,主要是接好数据线,片选线,读写控其他的接口芯片,主要是接好数据线,片选线,读写控制线,和各种用到的输出线和其他控制线。制线,和各种用到的输出线和其他控制线。34http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术答:答:1)电路图如图电路图如图。2)按照电路图)按照电路图8253的地址范围为:的地址范围为:00000FH8259的地址范围是的地址范围是010H01FH,8255的地址范围是的地址范围是02002FH。3)8253初始化程序初始化程序 MOVAL,01110110B ;计数器;计数器1,方式,方式3OUT03H, ALMOVAX,59500;产生;产生20Hz方波方波OUT01H, ALMOVAH,ALOUT01H, AL 8255的初始化:的初始化:MOVAL,10000011B;A口方式口方式0输出,输出,B口口方式方式0输入,输入,C口上半输出下半输入。口上半输出下半输入。OUT023H,AL35http:/qsyang.yeah.net现代微机原理与接口技术现代微机原理与接口技术4)键盘扫描程序参见课本)键盘扫描程序参见课本P222页的有关部分,不过要注页的有关部分,不过要注意:意:扫描前要先执行扫描前要先执行MOVAL,00001110B;PC7为为0,屏蔽中断,屏蔽中断OUT023H,AL扫描完后要执行扫描完后要执行MOVAL,00001111B;PC7为为1,允许中断,允许中断OUT023H,AL36
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号