微机原理与接口技术 第二版 (马维华 著) 科学出版社 课后答案 第6章习题.doc_第1页
微机原理与接口技术 第二版 (马维华 著) 科学出版社 课后答案 第6章习题.doc_第2页
微机原理与接口技术 第二版 (马维华 著) 科学出版社 课后答案 第6章习题.doc_第3页
微机原理与接口技术 第二版 (马维华 著) 科学出版社 课后答案 第6章习题.doc_第4页
微机原理与接口技术 第二版 (马维华 著) 科学出版社 课后答案 第6章习题.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

DAENA91216.2 a.地址:7FH;2A912A612地址:250H-257H1234CBA8A7A6A5A4A3A2A1A013112U3AU1AU2A231234561112U4CS8A4A8A7A5A3AENA2A1A0131245U5AU7AU7B36910U7C8U66E35E24E13C2B1AY77Y69Y510Y411Y312Y213Y114Y015问答题6-76.7 两台微机利用8250 进行串行通信,规定:波特率为7200B/S ,每个字符的数据为8位、 1位停止位、无校验位。完成以下程序设计:(1) 发送程序:将数据段中以 TRANS为起始地址的一组数据发送接收方,字符串长度存于字节变量TLENGTH中。发送时,先发二个起始标志 55H 和AAH 。发送完全部数据后,再发送两个结束标志AAH和55H地址。(2) 接收程序:将接收到的一组数据存放在从RECEIV开始的存储区域,所收到的数据长度存于字节变量RLENGTH中,只统计数据个数。若接收正确,将字节变量ERROR置00H,否则置FFH。6.7(1)参考答案D7 D6D5 D3D2 D1 D0 LCR DLAB SBRK SPBEPSPENSTBWLS1 WLS20= 正常工作1= 访问除数寄存器除数标志中止位奇偶校验选择停止位长度数据长度xx0= 无校验00=5位(1)假设使用串行1, 端口初始化:0= 正常1= 发中止符001= 奇校验011= 偶校验0=1位1=1.5位01=6位10=7位MOV DX,3FBH ;写入线路控制寄存器MOV AL,80HOUT DX,ALMOV AL,10H101= 附加位1 111=附加位0 (5 位数据时 ) 11=8位1= 2 位(6-8 位数 ) MOV DX,3F8HOUT DX,ALMOV AL,0INC DXOUT DX,AL ;写低字节除数寄存器(除数=0010:7200BPS)MOV AL,00000011B ;字符格式要求(无校验,1位停止,8位数据)MOV DX,3FBHOUT DX,ALINC DXMOV AL,03HOUT DX,AL;指向MODEM控制寄存器;正常通信,/RTS=/DTR=0EMPTEST 宏调用,判断发送缓冲区是否空MOV CX,TLENGTH ;空则发送55HMOV SI,TRANSMOV AL,55HMOV DX,3F8HOUT DX,AL6-7(1)参考答案续1 EMPTEST ;宏调用,判断发送缓冲区是否空MOV AL,0AAH 空则发送0AAH MOV DX,3F8H OUT DX,ALEMPTEST MACRO SEND: MOV DX,3FDH ;线路状态寄存器IN AL,DXTEST AL,20HJZ SEND EMPTEST ENDM ;发送缓冲区空?不空等待LSR D7 D6D5D4D3 D2D1D0 DRDi=1 状态存在超时错误正常为0 发送移位寄存器空ETTSRE THRE BI FE PE OE0 状态不存在为1表示接收数据缓冲器收到一个数据,读走数据后该位为0 发送保持寄存器空,写入发送保持寄存器后该位为 0 中止检测,为 1 表示正在传送中止符溢出错奇偶错帧出错6-7(1)参考答案续(2)EMPTEST ;宏调用,判断发送缓冲区是否空MOV AL,DS:SI ;空则发送TRANS内容INC SIMOV DX,3F8HOUT DX,ALLOOP SLP1EMPTEST ;宏调用,判断发送缓冲区是否空MOV AL,0AAH ;空则发送0AAHMOV DX,3F8HOUT DX,AL EMPTEST ;宏调用,判断发送缓冲区是否空MOV AL,55H ;空则发送55HMOV DX,3F8HOUT DX,AL(2)初始化同(1)设置格式等EMPTEST2 ;宏调用判断接收数据就绪? MOV DI, RECEIVMOV BL, 0MOV DX, 3F8H ;收到数据IN AL,DXCMP AL, 55H6-7(2)参考答案JNZ ERR_DEL ; 收到第一个,若非55H则出错,转移;否则继续EMPTEST2 ;宏调用判断接收数据就绪?MOV DX, 3F8HIN AL, DXCMP AL, 0AAH JNZ ERR_DEL ; 收到第二个,若非0AAH则出错,转移;否则继续EMPTEST2 MACRORELP:MOV DX, 3FDH ;线路状态寄存器IN AL,DXTEST AL, 01H ;接收数据就绪?无数据等待JZ RELPEMPTEST2 ENDM6-7(2)参考答案续GOON: EMPTEST2 ;宏调用判断接收数据就绪?MOV DX, 3F8HIN AL, DXCMP AL, 0AAHJZ NEXT_DEL ; 收到0AAH,则表示将结束,否则继续接收INC BLMOV DI,ALINC DIJMP GOONNEXT_DEL: EMPTEST2 ;宏调用判断接收数据就绪?MOV DX, 3F8HIN AL, DXCMP AL, 55H ;收到0AAH后再收到55H,则正常结束,否则出错JNZ ERR_DELMOV RLENGTH, BL ; 存数据个数MOV ERROR, 0 RETERR_DEL: MOV ERROR, 0FFH RET问答题6-116-11如图所示,用8255作为打印机接口的示意图,假设要打印的数据(组合BCD码,如45)在以PDATA开始的存储区域,且数据长度为PNUM,写出控制打印的打印程序。 A2 |D7-D0地址译码0F0H-0F3HD7 |D08255CSPB7 |PB0 PC1D7 |D0STB打印机A9A1A0A1A0PC5BUSY解: MOV DX, 0F3HMOV AL, 10001000B out dx,al1D6D5D4D3D2D1D0I/OC 1MOV SI, PDATAMOV CX, PNUMPRINTLP:MOV AL, SIMOV AH, 0 SHL AX,4 SHR AL,4 ADD AX,3030H MOV BX, AX A 00101 A I/O106-11参考答案I/O C 10 B 0 01 1B 100MOV DX,0F2HPRWT1:IN AL, DXPRWT2:IN AL, DXAND AL,00100000B AND AL,00100000B ;PC5=1(BUSY)?JNZ PRWT1 ;打印机忙等待MOV DX, 0F1H ;B口MOV AL,BH ;高位BCD码OUT DX,AL ;发送数据MOV DX, 0F2H ;指向控制口,准备发送;选通信号/STBMOV AL, 00000010B ;PC1=1OUT DX, AL MOV AL, 00000000B JNZ PRWT2MOV DX, 0F1H ;B口MOV AL,BL ;低位BCD码OUT DX,AL MOV DX, 0F2H MOV AL, 0000010B B ;PC1=1OUT DX, AL MOV AL, 00000000B BOUT DX, AL ;PC1=0 OUT DX, AL ;PC1=0 INC SILOOP PRINTLP下图中,AB7AB0为8086CPU低八位地址总线 试问:1、8259占用_个端口地址,分别为_,其中ICW1的设置地址为_;2、8255占用_个端口地址,分别为_,其中控制寄存器的地址为_。1 8259A占2个 : 为20H,22H 20H或24H2 8255A占4个 :或24H,26H 为80H,82H,84H,86H 86H某系统中8253占用地址为100H103H,初始化程序如下:D7D6D5D4D3D2D1D0MOV DX, 103HMOV AL, 16HOUT DX, ALSUB DX,OUT DX, AL试问:0 0= 0 1= 1 0= 1 1=8253 8254 SC1 SC2 RL1 RL0M2M1M0BCD0 0= 0 0 0= 0 1= 0 0 1= 1 0= x 1 0= 1 1= x 1 1= 1 0 0= 1 0 1= 0= 1=BCD 1此段程序是给8253的哪一个计数器初始化?安排工作在哪种工作方式?_;2若该计数器的输入脉冲的频率为1MHZ,则其输出脉冲的频率为:_。计数器0 工作于方式31M/22=45.454KHZ已知某8255在系统中占用888BH号端口地址,现欲安排其PA,PB,PC口全部为输出,PA,PB口均工作于方式0模式,并将PC6置位,使PC3复位,试编写出相应的初始化程序: MOV AL, 80H A 1D6D5D4D3D2D1D0B I/OC 10OUT 8,AL 001 A B 10 MOV AL,ODH 100 0 OUT 8BH,AL MOV AL,06H 11 C I/O10 0 D6 D5 D4 D3 D2 D1 D0 OUT 8BH,ALC0D6D5D4 X X X 0 0 0D3D20 0 0=PC00 0 1=PC10 1 0=PC20 1 1=PC31 0 0=PC41 0 1=PC51 1 0=PC61 1 1=PC7D1D00= 1= 已知某输入设备的数据端口地址为40H,状态端口地址为41H,其中D0位为“1”时,表示“READY”状态。试编程实现:1采用查询方式从该设备输入20个ASCII码表示的十进制数,并求出这20个十进制数的累加和; 2将此累加和转换成BCD码,并存放到NBCDH(百位数)和NBCDL(存十位和个位数)单元中。MOV CX,20 MOV BL,0 INLOOP:IN TEST AL,41H AL,01H JZ INLOOP IN AL,40H AND AL,OFH ADD BL,AL;ASCII十进制 (BCD) LOOPMOV MOV INLOOP AL,BL AH,0 ; 共输入20个;累加和AL MOV BL,100 DIV MOVMOV MOV MOV DIV BL BL NBCDH,AL AL,AH AH,0 BL,10;AXBLAL,余数AH; 存百位数;十位数AL,个位数AH MOV CL,4 ROL AL,CLOR A,AHMOV NBCDL,AL;AL循环左移四位;形成组合型BCD码; 存十位,个位数 设采用8251进行串行异步传输,每帧信息对应1个起始位,7个数据位,1个奇/偶校验位,1个停止位,波特率为4800,则每分钟能传输的最大字符数为多少个? 每帧占1+7+1+1=10位,波特率为4800 bit/s,故每分钟能传送的最大字符数为4800/10=480 MOV DX, 143HMOV AL, 77HOUT DX, ALD7D6D5D4D3D2D1D0MOV AX,DEC DXDEC DXOUT DX,MOV AL,0 0= 0 1= 1 0= 1 1=8253 8254SC1 SC2RL1RL0M20 0= 0 1= 1 0= 1 1= M1M0BCD0 0 0= 0 0 1= x 1 0= x 1 1= 1 0 0= 1 0 1= 0= 1=BCD OUT DX, 设8253的端口地址为140H143H,问:(1)程序是对8253的哪个通道进行初始化?(2)该通道的计数常数为多少?(3)若该通道时钟脉冲CLK的周期为1s,则输出脉冲OUT的周期为多少s?(1) 程序对8253的通道1进行初始化。(2)计数常数为10000D,BCD计数。(3)工作在方式3,方波速率发生器周期=100001s=10000 S=10ms 设8255的端口地址为200H203H。(1)要求PA口方式1,输入;PB口方式0输出;PC7PC6为输入;PC1PC0为输出。试写出8255的初始化程序。 (2)程序要求当PC7=0时置位PC1,而当PC6=1时复位PC0,试编制相应的程序。(1) MOV DX, 203H MOV AL, 10111000

温馨提示

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

评论

0/150

提交评论