微机接口习题课件_第1页
微机接口习题课件_第2页
微机接口习题课件_第3页
微机接口习题课件_第4页
微机接口习题课件_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

微机接口技术习题

微机接口技术习题习题7.7参看图7-5,编程实现以下功能:当K0键单独按下时,发光二极管L0~L7将依次点亮(L0,L1,L2,……L7),每个维持200ms;当K1键单独按下时,发光二极管L0~L7将反向依次点亮(L7,L6,L5,……L0),每个也维持200ms;在其他情况下各发光二极管均不点亮。假定有延时200ms的子程序DELAY可直接调用。习题7.7习题7.7解答(1)again: movdx,8000h inal,dx cmpal,0feh ;D7~D0=11111110B? jznext1 ;单独按下K0,转移到next1 cmpal,0fdh ;D7~D0=11111101B? jznext2 ;单独按下K1,转移到next2 jmpagain ;其它情况不点亮习题7.7解答(1)again: movdx,8000h习题7.7解答(2)next1: movcx,8 moval,1 ;从K0开始next11: outdx,al ;某个LED点亮 calldelay ;延时200ms shlal,1 ;rolal,1 loopnext11 jmpagain习题7.7解答(2)next1: movcx,8习题7.7解答(3)next2:movcx,8 moval,80h ;从K7开始next21:outdx,al ;某个LED点亮 calldelay ;延时200ms shral,1 ;roral,1 loopnext21

jmpagain习题7.7解答(3)next2:movcx,8习题7.8现有一个输入设备,其数据端口地址为FFE0H,状态端口地址为FFE2H。当状态标志D0=1时,表明一个字节的输入数据就绪。请编写利用查询方式进行数据传送的程序段,要求从该设备读取100个字节保存到BUFFER缓冲区。习题7.8现有一个输入设备,其数据端口地址为FFE0H,状态习题7.8解答movbx,offsetbuffer movcx,100again:movdx,0ffe2hstatus:inal,dx ;查询一次 testal,01h jzstatus movdx,0ffe0h inal,dx ;输入一个字节 mov[bx],al incbx loopagain ;循环,输入100个字节习题7.8解答movbx,offset习题7.9某个字符输出设备,其数据端口和状态端口的地址均为80H。在读取状态时,当标志位D7=0时,表明该设备闲,可以接收一个字符。请编写利用查询方式进行数据传送的程序段,要求将存放于缓冲区ADDR处的一串字符(以0为结束标志)输出给该设备。习题7.9某个字符输出设备,其数据端口和状态端口的地址均为8习题7.9解答movbx,offsetaddragain:cmpbyteptr[bx],0 jzdonestatus:inal,80h ;查询 testal,80h jnzstatus moval,[bx] out80h,al ;输出一个字节 incbx jmpagain ;循环习题7.9解答movbx,offsetad习题8.6试按如下要求分别编写8253的初始化程序,已知8253的计数器0~2和控制字I/O地址依次为204H~207H。①使计数器1工作在方式0,仅用8位二进制计数,计数初值为128。②使计数器0工作在方式1,按BCD码计数,计数值为3000。③使计数器2工作在方式2,计数值为02F0H。习题8.6试按如下要求分别编写8253的初始化程序,已知82习题8.6解答(1)moval,50h;01010000b movdx,207h

outdx,al moval,128 ;=80h

movdx,205h outdx,al习题8.6解答(1)moval,50h;010100习题8.6解答(2)moval,33h;00110011b movdx,207h

outdx,al movax,3000h ;不是3000 movdx,204h outdx,al moval,ah outdx,al习题8.6解答(2)moval,33h;00习题8.6解答(3)moval,0b4h;10110100b movdx,207h

outdx,al moval,02f0h

movdx,206h outdx,al moval,ah outdx,al习题8.6解答(3)moval,0b4h;1011习题8.10用8255端口A方式0与打印机接口示例中,如果改用端口B,其他不变,说明应该如何修改接口电路和程序。解答:修改电路:将端口B的PB0~PB7接打印机的数据位DATA0~DATA7即可。修改程序:将输出数据端口改为FFFAH即可。习题8.10用8255端口A方式0与打印机接口示例中,如果改习题8.11用8255端口A方式1与打印机接口,如果改用端口B,其他不变,说明如何修改接口电路和程序。解答修改电路:PA0~PA7改为PB0~PB7;PC6改用PC2,PC7改用PC1,PC3改用PC0。习题8.11用8255端口A方式1与打印机接口,如果改用端口习题8.11解答(1)修改程序: movdx,0fffeh moval,84h outdx,al moval,04h ;使INTEB(PC2)为0,禁止中断 outdx,al …… movcx,counter ;打印字节数送CX movbx,offsetbuffer ;取字符串首地址

callprints ;调用打印子程序习题8.11解答(1)修改程序:习题8.11解答(2)prints proc pushax ;保护寄存器 pushdxprint1: moval,[bx];取一个数据 movdx,0fffah outdx,al;从端口B输出 movdx,0fffchprint2: inal,dx testal,02h

;检测(PC1)为1否? jzprint2 incbx loopprint1 popdx popax retprints endp习题8.11解答(2)prints proc习题8.12有一工业控制系统,有四个控制点,分别由四个对应的输入端控制,现用8255的端口C实现该系统的控制,如本题图形。开关K0~K3打开则对应发光二极管L0~L3亮,表示系统该控制点运行正常;开关闭合则对应发光二极管不亮,说明该控制点出现故障。编写8255的初始化程序和这段控制程序。4

300Ω+5VPC4PC5PC6PC7PC0PC1PC2PC32K

4+5VK0K1K2K3L0L1L2L374LS048255

习题8.12附图习题8.12有一工业控制系统,有四个控制点,分别由四个对应的习题8.12解答;写入方式字 moval,100×00×1b ;=81H movdx,控制口地址 ;可以假设为0FFFEH outdx,al ;加入下一段更好,使L0~L3全亮 moval,0fh movdx,端口C地址 ;可以假设为0FFFCH outdx,al ;控制程序段

movdx,端口C地址 ;可以假设为0FFFCH inal,dx ;读入PC0~PC3 movcl,4 shlal,cl ;左移4位 outdx,al ;控制PC4~PC7习题8.12解答;写入方式字习题8.14串行异步通信发送8位二进制数01010101:采用起止式通信协议,使用奇校验和2个停止位。画出发送该字符时的波形图。若用1200bps,则每秒最多能发送多少个数据?解答

每个字符的位数是:1个起始位+8个数据位+1个奇校验位+2个停止位=12位,采用1200bps、即每秒1200位的传送速率,则每秒最多能发送1200÷12=100个数据。习题8.14串行异步通信发送8位二进制数01010101:采习题8.20ADC的转换结束信号起什么作用,可以如何使用该信号,以便读取转换结果?当A/D转换结束,ADC输出一个转换结束信号,通知主机读取结果。有多种使用A/D转换结束信号的方法,对应的程序设计方法也不同。查询方式:把结束信号作为状态信号经三态缓冲器送到主机系统数据总线的某一位上。主机不断查询这个状态位,发现结束信号有效,便读取数据。中断方式:把结束信号作为中断请求信号接到主机的中断请求线上。ADC转换结束,主动向微处理器申请中断。微处理器响应中断后,在中断服务程序中读取数据。DMA传送方式:如果ADC速度足够快,可把结束信号作为DMA请求信号,采用DMA传送方式。延时传送方法:不使用结束信号,微机延时到转换结束读取数据。习题8.20ADC的转换结束信号起什么作用,可以如何使用该信习题8.21某控制接口电路如本题图形。需要控制时,8255A的PC7输出一个正脉冲信号START启动A/D转换;ADC转换结束在提供一个低脉冲结束信号EOC的同时送出数字量。微处理器采集该数据,进行处理,产生控制信号。现已存在一个处理子程序ADPRCS,其入口参数是在AL寄存器存入待处理的数字量,出口参数为AL寄存器给出处理后的数字量。假定8255端口A,B,C及控制端口的地址依次为FFF8H~FFFBH,要求8255的端口A为方式1输入、端口B为方式0输出。编写采用查询方式读取数据,实现上述功能的程序段。习题8.21某控制接口电路如本题图形。需要控制时,8255A习题8.21解答(1);8255A初始化 moval,1011000×b

movdx,0fffbh outdx,al ;使PC7=0(START为低)

moval,00001110b movdx,0fffbh outdx,al ;启动A/D转换 moval,00001111b movdx,0fffbh outdx,al ;使PC7=1(START为高) nop moval,00001110b outdx,al ;使PC7=0(START为低)习题8.21解答(1);8255A初始化习题8.21解答(2);查询是否转换结束 movdx,0fffahagain: inal,dx testal,20h ;PC5=0(转换未结束,继续检测) jzagain ;PC5=1(转换结束) movdx,0fff8h ;输入数据 inal,dx calladprcs ;处理数据 movdx,0fff9h

outdx,al ;输出数据习题8.21解答(2);查询是否转换结束补充题1已知8253的计数时钟频率为1MHZ若要求8253的计数通道2每隔8ms向CPU申请一次中断,则如何对8253进行编程设置?8253计数器0、1、2和控制端口地址依次为:304H、305H、306H、307H。补充题1已知8253的计数时钟频率为1MHZ若要求8253的补充题1解答根据题意要求产生周期为8ms的连续脉冲,故可采用8253的方式2和3。由于输出脉冲的周期是8ms,故其频率是1/8×103,所以计数初值是106÷(1/8×103)=8000。控制字是1011×1×0B=B4H,B6H,BCH,BEH。补充题1解答根据题意要求产生周期为8ms的连续脉冲,故可采用补充题2试编写一个程序段,要求在计数操作进行过程中读取计数器2的内容,并把读取的数值装入AX寄存器,端口地址为304H~307H。补充题2试编写一个程序段,要求在计数操作进行过程中读取计数器补充题2解答本题应先使用8253的锁存命令将计数器2的内容锁存起来,然后用读命令从锁存器中读取。movdx,307Hmoval,10000000Boutdx,almovdx,306Hinal,dxmovbl,alinal,dxmovah,almoval,bl补充题2解答本题应先使用8253的锁存命令将计数器2的内补充题3分别对8255A的控制端口写入80H和08H,它们的作用各是什么?解答:对8255A的控制端口写入80H是方式控制字,其作用是设置A端口为方式0输出,端口B为方式0输出,端口C为方式0输出。

对8255A的控制端口写入08H是端口C位控制字,其作用是设置PC4为0补充题3分别对8255A的控制端口写入80H和08H,它们的补充题4当8255A的PC4~PC7全部为输出线时,请问此时能否确定A端口的工作方式是什么?为什么?解答:当8255A的PC4~PC7全部为输出线时,可以确定A端口为方式0。因为如果端口A为方式1或2时,PC4~PC7中将有部分或全部被A端口征用。补充题4当8255A的PC4~PC7全部为输出线时,请问此时补充题5利用并行接口8255A与A/D转换器ADC0809连接的电路如图所示。当主机需要某个模拟输入通道的数据时,8255A的PC4输出一个高脉冲信号启动A/D转换;同时从PC5~PC7输出该模拟通道的编码。ADC0809转换结束提供一个高电平信号EOC连接8255A的PC0。由于ADC0809的输出允许信号OE一直接高电平有效,所以数字量在转换结束的同时送给连接于8255A的端口B。假定8255A端口A、B、C及控制端口的地址依次为FFF0H~FFF3H。要求编写8255A的初始化程序段,编写依次启动8个模拟通道进行A/D转换、采用查询方式读取数据的程序段,8个数字量数据存放在数据段buffer变量指示的缓冲区。补充题5利用并行接口8255A与A/D转换器ADC0809连补充题5图VccD0~D7OEEOCADDAADDBADDC8通道模拟输入(0~5V)500KHzCLOCKSTARTGNDVREF(+)VREF(-)ALE+5VIN0IN1IN2IN3IN4IN5IN6IN78255APB0~PB7PC0PC4PC5PC6PC7ADC0809补充题5图VccD0~D7OEEOCADDA8通道500KH补充题5解答(1);数据段buffer db8dup(0) ;设立数据缓冲区

;8255A初始化程序段 moval,83H ;100×0011B=83H,93H

movdx,0fff3h outdx,al moval,08h ;使启动信号为低电平

outdx,al补充题5解答(1);数据段补充题5解答(2);A/D转换程序段 movbx,offsetbuffer ;BX←数据缓冲区偏移地址 movcx,8 ;CX←检测的数据个数 moval,10h ;从IN0开始转换 movdx,0fff2hstart1: outdx,al ;启动A/D转换,使启动信号为高电平 pushax andal,0e0h outdx,al;使启动信号为低电平,形成正脉冲 补充题5解答(2);A/D转换程序段补充题5解答(3);循环查询是否转换结束start2: inal,dx ;读入状态信息 testal,01h ;D0=?,转换结束否? jzstart2 ;D0=0,没有结束,则继续查询 decdx ;D0=1,转换结束 inal,dx ;读取数据 mov[bx],al ;存入缓冲区 incbx incdx补充题5解答(3);循环查询是否转换结束补充题5解答(4)popaxpushcxmovcl,4shral,claddal,2shlal,clpopcxloopstart1 ;转向下一个模拟通道进行检测 …… ;数据处理补充题5解答(4)popax补充题6设IBMPC/XT机第一个串行口某次通信采用7个数据位、1个停止位和奇校验,采用1200波特,只允许发送保持寄存器空中断,编写8250的初始化程序。补充题6设IBMPC/XT机第一个串行口某次通信采用7个数补充题6解答(1)moval,80h movdx,3fbh outdx,al ;写入通信线路控制寄存器,使DLAB=1 movax,96 ;分频系数:1.8432MHz÷(1200×16)=96=60H movdx,3f8h outd

温馨提示

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

评论

0/150

提交评论