《微机接口技术综合例题》由会员分享,可在线阅读,更多相关《微机接口技术综合例题(20页珍藏版)》请在金锄头文库上搜索。
1、B输出数据,0。根据 10.4节内容,很容易10.15所示,为了使发光二极管具有B的某一位为0时,相应的发光二微机接口技术综合例题例10.1在8086最小方式系统中,利用 8255A某端口输入8位开关量,并通过另一个端送 出,以发光二极管指示数据,灯亮表示数据1 ”灯灭表示数据0” 8255A的端口地址为280H287H中的奇地址,设计系统总线与8255A的连接电路,并编程实现。而且没有增加联络信号的必要,因此可以采用最简单的方式 设计出8255A与8086最小方式系统的连接关系,如图 足够的亮度,我们采用图示的方法连接,这时,当端口 极管亮,这一点可以通过程序进行控制。8255A的应用程序段
2、如下:MOVDX, 287H;设置8255A的工作方式MOVAL, 10010000B;端口 A方式0输入OUTDX, AL;端口 B方式0输出RER1:MOVDX, 281H;从端口 A读取开关量INAL, DXNOTAL;按位取反MOVDX, 283H;从端口 B送出OUTDX, ALJMP RER1例10.2在8088最大方式系统中,由一片 8255A构成输入输出接口,端口地址为240H243H,外设准备好的8位数据已送入8255A的某端口,要求将这一数据的低4位取反(高4不变)后,从另一端口送出。要求:(1)说明各端口的工作方式;(2)编写8255初始化及输入输出程序段。解题分析:由于
3、题目给定已经将外设准备好的8位数据送入8255A的某端口(可设为端口 A ),因此A组可以设定为方式1输入。对输出端口 (设为端口 B)题目并没有限定,我们可以将B组设定成方式0输出。8255初始化及输入输出程序段如下页:MOV DX, 243H;设定8255A的工作方式MOV AL, 10110000BOUT DX, ALMOV DX, 240H;从端口 A读数据IN AL, DXXOR AL, 0FH;低4位取反,咼4不变MOV DX, 242H;从端口 B送出OUT DX, AL例10.3 在8088最大方式系统中,有一片 8255A,其端口地址为 20H、22H、24H、26H , 采
4、用低8位地址总线设计译码电路及与系统总线的连接图,并编程实现使端口 A的低4位产生如图10.16所示的信号(各个信号的节拍不必严格相等 )。PA0PA1PA2PA3解题分析:根据8255A在8088最大方式系统中的端口地址, 可以画出8255A与系统总线的 连接框图,如图10.17所示。为使8255A的端口 A产生如图10.16所示的信号,可以将端口A设定成方式0输出,端口B和C与本题无关,均设定为方式0输出。端口 A低4位的波形为分频形式,因此,可以通过计数方式实现。D788o8ucp大式统最方系5 4 3 2 10111 111 AAA AAAD7D0PA7PA0RDWRAd PC7 PC
5、4A1A0 In tel8255AMOV9 8 7 6 4 3 0 A A AAAA ACSPC3PC0PB7PB0DX, 26H ;设定8255A的工作方式MOV AL, 1000 0000BOUT DX, ALMOV DX, 20H ;产生指定的信号XOR AL, ALOUT DX, ALREP1:MOV CX,4REP2:INC ALOUT DX, ALLOOP REP2XOR AL, ALJMP REP1例10.5 在IBM PC系统机的扩充槽上,利用8255A和8位A/D变换器开发数据采集系统如 图10.19所示。要求计算8255A占用的四个端口地址,并编写程序完成N点数据的采集工解
6、题分析:由于 A14A9没有参加地址译码,因此并行接口8255A会占用多组地址。为了简单起见,我们只给出 A14A9取全0时的一组地址:81D1H、81D3H、81D5H和81D7H。为了完成一个字节的数据采集,需要给A/D变换器产生START信号,当变换结束时,会产生EOC信号,经单稳电路后,可以将 A/D变换器产生的数据锁存到8255A的端口 A ,因此,8255A的A组为方式1,并且端口 C的高4位方向为输出。P8255A=81D1HP8255A=81D3HP8255A=81D5HP8255A=81D7HMOVDX ,P8255DMOVAL ,1011 0000BOUTDX ,ALLEA
7、SI,BUFMOVCX,NL1 : MOVDX ,P8255DMOVAL ,0000 1110BOUTDX ,ALORAL ,01HOUT DX ,ALANDAL ,0FEHOUTDX ,ALMOVDX,P8255CL2 : INAL,DXTESTAL,20HJZL2MOVDX ,P8255AINAL , DXMOVSI,ALINCSILOOP L1例9.1在以8086构成的最大方式系统中,有一片8254的端口地址分别为 301H、303H、305H和307H,给定的外部时钟为 512kHz。要求:(1) 利用计数器0产生周期为1ms的周期信号,请编写初始化程序;利用这一计数器能产生的最低信号
8、频率为,这时的时常数 CR0=。(2) 利用计数器1和2产生如下图所示的周期信号,并编写初始化程序。(3) 画出8253的端口译码电路(地址线只使用A0A9 )及其连接图。1.5ms3s 解:设给定的外部时钟为 CLK,其周期T = 1/512kHz = 1.953125卩s。(1 )为了得到1ms的周期信号,因此计数器 0应该采用方式2或方式3,其时常数CR0 = 1ms/1.953125卩s =512。利用这个计数器分频时,其最大的分频次数为62256,这时得到最低的频率为 512kHz/62256,即约为8.22Hz。(2)为了产生如图9.17所示的周期信号,应该采用方式 2,但在方式2
9、下,其低电平时间 仅为一个时钟周期,因此,利用一个计数通道无法实现这个任务。 现在采用计数器1和计数 器2联合,先利用计数器1产生周期为1.5ms的周期信号,然后将输出OUT1信号作为计数 器2的时钟输入CLK2,这样可以实现题目的要求。对于计数器1,工作方式可以选用方式 2或方式3, 一般采用方式 3,这样可以使产生的信 号(近似)对称,其时常数CR1 = 1.5ms/1.953125卩s = 768 ,需要采用16位的时常数表示。对于计数器2,工作方式只能选用方式2,其时常数 CR2 = (3s +1.5ms) / 1.5ms = 3001,也需要采用16位的时常数表示。8253的初始化程
10、序段如下:MOV DX,307H;写计数器1方式控制字MOV AL,0111 0110BOUT DX,ALMOV DX,303H;写计数器1时常数MOV AX,768OUT DX,ALXCHG AL,AHOUT DX,ALMOV DX,307H;写计数器2方式控制字MOV AL,1011 0100BOUT DX,ALMOV DX,305H;写计数器2时常数MOV AX,3001OUT DX,ALXCHG AL,AHOUT DX,AL(3) 根据上面分析和题目给定的条件,可以画出8253的地址译码电路和连接图,如下图所示。D D c1588086IORCPUIOWA2最大A1方式A7A6系统A5
11、总线A4A3BHE A9A8D7 D0RDWRA1A0IntelCLK1GATE18253OUT1CLK2CSGATE2OUT2512kHzI-4+5V+5V产生信号例9.2 设8253的端口地址为 260H263H,外部时钟信号为 1MHz,要求产生如下图所示 的周期波形,画出 8253的连接图,并编写初始化程序段。 1s12ms解:本题仅采用8253的三个计数通道来实现。分两步实现:(1)由于要产生周期信号,因此必定包含方式 2或方式3,我们采用方式3产生周期为1s+12ms = 1012ms的方波信号, 题目给定的外部时钟为 1MHz ,这时需要的分频系数(即时常数)为:1012ms/1
12、 s = 1012000, 显然,通过一个计数通道无法实现,所以,采用计数器0和计数器1联合产生,CR0 =1000,CR1=1012,这样 OUT1 的周期为 1ms。(2)利用计数器2的方式1实现单脉冲形成,以此作为要求产生信号的低电平,其时常数CR2 = 1s/1ms - 1 = 999,计数器0的OUT0信号作为计数器2的时钟输入信号,OUT1作为计数器2的硬件触发信号,确保周期为1012ms。8253的连接图如图9.20所示,各个OUT端产生的信号如下图所示。1MHzD7RDWRA1AOIntel8253CSCLKO *GATEOOUT0CLK1GATE1OUT1CLK2GATE2O
13、UT2 nCLK0 1MHzOUT01+5V1+5V产生信号OUT2OUT11s 一1012ms例9.3 有一个未知频率的对称周期信号s( t)(频率范围在100Hz2kHz之间),现在8086最小系统中已经设计了一片8253,其端口地址为 380H、382H、384H和386H,外部可以使用的标准信号源为1MHz,设计测量输入s(t)信号的频率,并将结果保存在SFR字单元中。解:测量信号频率的方法有两种:计数法和测周期法,所谓计数法是指在一个确定的时间t内测出s(t)的脉冲个数N,这样s(t)的周期约为t/N,要求t足够长,使N 100。所谓测周期 法是指在s(t)的一个周期内测出已知标准周
14、期信号(设周期为 T0)周期数N,则s(t)的周期 约为N XT0,这种方法也要求 N100,即基准频率信号的周期足够短。根据题目给定的信号,这里应该采用测周期法,基准频率信号为1MHz , T0 = 1卩s。由于题目给定被测信号 s (t)为对称的周期信号,因此只需要测量半个周期Th,根据给定的频率范围可以计算出 250卩sw Th 5000卩s,这样可以保证测出的周期数 250 N 5000, 确保测量的精度要求。利用计数器0实现输入信号s(t)频率的测量,将基准信号1MHz加到CLK0端,s(t)加到GATE0 端,并同时将s(t)连接到8259的中断请求TR0端,8253的连接图如图9.22所示。信号频率 测量关系如图9.23所示。计数器采用方式 2,时常数取最大值