课堂综合练习及参考答案.docx

上传人:b****1 文档编号:3164095 上传时间:2023-05-05 格式:DOCX 页数:20 大小:57.92KB
下载 相关 举报
课堂综合练习及参考答案.docx_第1页
第1页 / 共20页
课堂综合练习及参考答案.docx_第2页
第2页 / 共20页
课堂综合练习及参考答案.docx_第3页
第3页 / 共20页
课堂综合练习及参考答案.docx_第4页
第4页 / 共20页
课堂综合练习及参考答案.docx_第5页
第5页 / 共20页
课堂综合练习及参考答案.docx_第6页
第6页 / 共20页
课堂综合练习及参考答案.docx_第7页
第7页 / 共20页
课堂综合练习及参考答案.docx_第8页
第8页 / 共20页
课堂综合练习及参考答案.docx_第9页
第9页 / 共20页
课堂综合练习及参考答案.docx_第10页
第10页 / 共20页
课堂综合练习及参考答案.docx_第11页
第11页 / 共20页
课堂综合练习及参考答案.docx_第12页
第12页 / 共20页
课堂综合练习及参考答案.docx_第13页
第13页 / 共20页
课堂综合练习及参考答案.docx_第14页
第14页 / 共20页
课堂综合练习及参考答案.docx_第15页
第15页 / 共20页
课堂综合练习及参考答案.docx_第16页
第16页 / 共20页
课堂综合练习及参考答案.docx_第17页
第17页 / 共20页
课堂综合练习及参考答案.docx_第18页
第18页 / 共20页
课堂综合练习及参考答案.docx_第19页
第19页 / 共20页
课堂综合练习及参考答案.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

课堂综合练习及参考答案.docx

《课堂综合练习及参考答案.docx》由会员分享,可在线阅读,更多相关《课堂综合练习及参考答案.docx(20页珍藏版)》请在冰点文库上搜索。

课堂综合练习及参考答案.docx

课堂综合练习及参考答案

课堂练习1

1.写汇编程序片段,判断AL和BL寄存器的最高位,相同时转移到标号L001,否则继续(使用普通指令实现,不能改变AL和BL寄存器的值,且不能使用其它寄存器)。

PUSHAX

XORAL,BL

TESTAL,80H

POPAX

JZL001

2.写汇编程序片段。

寄存器AL存放的是温度(摄氏度,有符号数),将其转换为华氏度(华氏度=摄氏度×1.8+32),取整数,结果存放在AX寄存器中。

MOVBL,9

IMULBL;AL×BL商→AX

MOVBX,5

XORDX,DX

IDIVBX;DX:

AX÷BX商→AX

ADDAX,32

3.当在主机中执行输入指令INAL,DX时,ISA总线的控制总线中哪个信号有效?

DX的值影响ISA总线的什么信号?

ISA控制总线中的-IOR信号有效,DX的值输出到地址总线的低16位。

4.PCI总线的仲裁机制的作用是什么?

PCI信号中哪些信号与仲裁有关系?

总线仲裁机制是PCI主设备取得总线控制权的数字功能电路机制,PCI主设备通过REQ#信号提出向总线仲裁机制提出总线申请,仲裁机制通过GNT#信号应答主设备。

5.PCI中那些信号是中断申请?

在配置空间有哪些字段与中断有关?

PCI总线的中断申请信号有4个,INTA#、INTB#、INTC#和INTD#。

通过配置空间的InterruptPin字段(偏移地址3DH)选择使用上述4个中断申请中的哪一个。

通过配置空间的InterruptLine字段(偏移地址3CH)确定所选中断对应系统中断的编号。

6.在TPC-386EX实验台初始化8253(基地址200H)的通道2,采用0方式、二进制计数、计数器初值1000,写出初始化汇编代码。

TIMER=200H

MOVAL,0B0H;定时器2/16位初值/0方式/二进制

MOVDX,TIMER+3

OUTDX,AL

MOVAX,1000

DECDX

OUTDX,AL

MOVAL,AH

OUTDX,AL

7.针对TPC-386实验台,编写中断初始化程序。

要求:

边沿触发,采用单片8259非缓冲方式,中断编号基数为16,普通全嵌套优先权方案,普通结束方式。

中断信号从IR5引入。

;----------8259初始化

MOVAL,00010011B;ICW1

OUT20H,AL

MOVAL,00010000B;ICW2

OUT21H,AL

MOVAL,00000101B;ICW4

OUT21H,AL

;-----------设置中断向量

PUSHDS

XORAX,AX

MOVDS,AX

LEAAX,CS:

IR5p;中断服务程序

MOVDS:

[0054H],AX

MOVAX,CS

MOVDS:

[0056H],AX

POPDS

;-------------------设置中断屏蔽寄存器

MOVAL,0DFH;OCW1

OUT21H,AL

;-------------------打开中断

STI

8.在TPC-386EX实验台写一个使用SIR0中断的中断服务程序的框架(采用普通中断结束方式)。

SIR0pPROCFAR

PUSH…;保护现场

CLI;关闭中断

MOVAL,20H;中断结束

OUT0A0H,AL

POP…;恢复现场

STI;开中断

IRET;从中断返回

SIR0pENDP

 

课堂练习2

1.简述PCI中断。

包括中断产生、中断响应的过程。

当PCI设备需要中断支持,就要在INTA#~INTD#中选择一个中断申请线,在配置空间的InterruptPin(偏移地址3DH)字段定义,并通过配置空间的InterruptLine字段(偏移地址3CH)确定所选中断对应系统中断的编号。

当中断产生,设备的中断申请送到中断控制器,中断控制器向CPU发送中断申请,CPU控制PCI总线进入中断响应周期,获取中断向量(图16.16)。

CPU根据中断向量转入中断服务程序。

2.简述USB的帧和微帧的概念,以及协议中的实现。

说明SOF令牌结构。

USB协议通过帧(低速和全速模式)或微帧(高速模式)的定义,将时间分为1ms或125μs的间隙,并通过帧或微帧同步全部USB设备。

USB主机以广播方式向所有USB设备发送“帧标志”信息。

全速模式下主机每1ms发送一个SOF包。

低速模式下由KeepAlive状态信号替代SOF包。

高速模式下每一个1ms帧分成了8个微帧。

SOF格式:

Sync

PID

FrameNo.

帧序列号11位

CRC5

校验5位

EOP

3.说明USB传输中的“事务”的概念,以及“事务”的构成要件。

USB的事务(Transaction)为USB主机与设备端点之间的一次数据传输。

事务是USB传输(Transfer)过程中的一个阶段(Stage)。

为了实现一个USB事务,需要2~3个数据包(Package)的交换。

每一个数据包被称为一个事务的相位(Phase)。

构成事务的数据包通常依次为令牌包、数据包和联络包,实时传输的事务无联络包。

4.简要说明USB的4种传输模式的特点和性能。

USB的4种传输模式分别为控制传输、中断传输、批量传输和实时传输。

可以根据USB设备的特点选择支持的传输模式。

但USB设备必须支持控制传输。

控制传输实现USB控制信息、配置信息的传输,同时也可以实现用户数据传输。

中断传输可以保证传输延时,适合小批量、非周期性的数据传输。

批量传输可以最大可能的利用传输带宽,适合突发性的、大批量数据传输。

实时传输可以保证传输带宽,适合恒定流量、同时对错误不敏感的数据传输。

4种USB传输的理论速度:

传输类型

控制传输

批量传输

中断传输

实时传输

高速

最大速率(B/s)

15,872K

53,248K

24,576K

24,576K

全速

最大速率(B/s)

832K

1,216K

64K

1,023K

低速

最大速率(B/s)

24K

不支持

800

不支持

 

5.在TPC-386EX实验箱实现延时脉冲输出。

即当按钮按下后,延时25ms后从8255的PC0输出一个负脉冲,脉冲宽度不限。

基本方法:

将按钮连接至8255的一个输入端(PC7),在主程序检测该输入端的上跳沿,启动定时器,将定时器输出连接到系统中断(MIR5),在中断服务程序向PC0输出负脉冲。

中断初始化:

采用实验台系统中断MIR5,已经完成8259A初始化。

剩下任务包括设置中断向量、设置中断屏蔽寄存器、打开中断。

;-------------------设置中断向量

PUSHDS;保存DS

XORAX,AX;0→AX

MOVDS,AX;→DS

LEAAX,CS:

MIR5p;中断服务入口地址偏移量→AX

MOVDS:

[00D4H],AX;→[00D4H]

MOVAX,CS;中断服务入口地址段值→AX

MOVDS:

[00D6H],AX;→[00D6H]

POPDS;恢复DS

;-------------------设置中断屏蔽寄存器

INAL,21H;读取当前中断屏蔽寄存器

ANDAL,0DFH;将D5置为0

OUT21H,AL;写回中断屏蔽寄存器

;-------------------打开中断

STI

8255初始化:

A组、B组均为0方式输入,PC0~PC3输出,PC4~PC7输入。

(8255片选端连接地址200H)

PPORT=200H

MOVAL,10011010B

OUTPPORT+3,AL

MOVAL,1;1→PC0

OUTPPORT+3,AL

按钮按下检测:

读取判断PC7

press0:

INAL,PPORT+2

TESTAL,80H

JNZpress0

press1:

INAL,PPORT+2

TESTAL,80H

JZpress1

8253初始化:

通道2,0方式,输入1MHz,初始值25000。

TIMER=210H

MOVAL,10110000B

OUTTIMER+3,AL

MOVAX,25000

OUTTIMER+2,AL

MOVAL,AH

OUTTIMER+2,AL

中断服务:

输出向PC0输出负脉冲。

IRQ5ProPROCFAR

CLI

PUSHAX

MOVAL,0

OUTTIMER+3,AL

…;可加入延时

MOVAL,1

OUTPPORT+3,AL

MOVAL,20H

OUT20H,AL

POPAX

STI

IRET

IRQ5ProENDP

6.电话忙音的频率是450Hz,通断比是350:

350ms。

通过TPC-386EX实验台资源设计一个忙音信号发生器。

方波实现方案之一:

过定时中断控制PC0输出忙音。

通过8253产生900Hz分频(通道1,3方式,1Mhz/900),定时器输出连接中断。

在中断服务程序对一个变量(Tick)进行二次计数,实现350ms的计数值是315,700ms一个周期,采用模630计数。

计数值小于315时反向PC0。

主程序:

;-----------初始化定时器1为2方式

MOVDX,TIMER+3

MOVAL,01110100B

OUTDX,AL

MOVDX,TIMER+1

MOVAX,1111;输入1MHz,输出900Hz

OUTDX,AL

MOVAL,AH

OUTDX,AL

;------初始化8255,PA,PCH:

0输入,PB,PCL:

0方式输出

MOVAL,10011000B

MOVDX,PPORT+3

OUTDX,AL

;------设置中断向量

PUSHDS

XORAX,AX

MOVDS,AX

LEAAX,CS:

MIR5p

MOVDS:

[00D4H],AX

MOVAX,CS

MOVDS:

[00D6H],AX

POPDS

;-------设置中断屏蔽寄存器

INAL,21H

ANDAL,0DFH

OUT21H,AL

STI;打开中断

RTloop:

JMPRTloop;死循环

中断服务程序

MIR5pPROCFAR

PUSHAX;保存寄存器

PUSHDX

CLI;关闭中断

INCtick

.IFtick>=630

MOVtick,0

.ENDIF

.IFtick<315

MOVAL,BYTEPTRtick

ANDAL,1

MOVDX,PPORT+3

OUTDX,AL

.ENDIF

MOVAL,20H;OCW2:

普通EOI命令

OUT20H,AL

STI;开放中断

POPDX;恢复寄存器

POPAX

IRET;从中断服务返回

MIR5pENDP

7.基于TPC-386EX实验台设计一个串行接口信号发生器。

将拨动开关K0~K7连接到8255的一个端口,每当8个拨动开关中任一个开关状态发生变化,就从串行接口发出当前K0~K7的状态字节。

串行接口参数是9600bps、8个数据位、1个停止位、无校验。

画出流程图,并写出汇编代码。

实现方案:

8255_CS接200H。

初始化8255,PB端口为0方式输入。

连接K0~K7之PB0~PB7;

16550_CS接210H。

初始化16550,9600/N/8/1;

进入主程序,循环读取PB并存储,当PB发生变化进入发送流程;

发送流程:

检测直到发送保持寄存器空,将数据写到16550发送数据寄存器;

发送后延时,以避免拨动开关抖动。

 

PPORT=200H

UART=210H

DATASEGMENT

keyBYTE0

DATAENDS

;-------------------16550串口初始化

MOVDX,UART+3;80H→LCR

MOVAL,80H

OUTDX,AL

MOVDX,UART;12→波特率因子锁存器

MOVAL,12;9600bps

OUTDX,al

MOVDX,UART+1

MOVAL,0

OUTDX,AL

MOVDX,UART+3;03→LCR

MOVAL,03H;8位数据/1位停止位/无校验

OUTDX,AL

MOVDX,UART+1;0→IER

MOVAL,0;关中断

OUTDX,AL

;---------------初始化8255,PB为0方式输入

MOVDX,PPORT+3

MOVAL,10001011B

OUTDX,AL

MOVDX,PPORT+1

INAL,DX

MOVkey,AL

mloop:

MOVDX,PPORT+1;读取开关状态

INAL,DX

.IFAL!

=key

MOVkey,AL

.REPEAT;检测知道THR空

MOVDX,UART+5

INAL,DX

ANDAL,20H

.UNTILAL!

=0

MOVDX,UART;发送数据字节

MOVAL,key

OUTDX,AL

.ENDIF

MOVCX,50000;循环延时

.REPEAT

.UNTILCXZ

JMPmloop

课堂练习3

1.USB协议定义的IN和OUT令牌包的作用是什么?

其包格式是什么样的?

其中的各个字段的作用是什么?

USB的IN和OUT令牌包是由主机发送到设备的。

IN令牌的作用是要求指定设备发送指定端点的数据到主机,OUT令牌的作用是主机通知指定设备要发送数据到它的指定端点。

IN和OUT令牌的格式是一样的:

Sync

PID

ADDR

ENDP

CRC5

EOP

其中:

Sync:

同步字,8位,00000001;

PID:

信息包标志,8位,低4位是标志编码,高4位是低4位反码;

ADDR:

设备地址,7位;

ENDP:

端点地址,4位;

CRC5:

循环冗余校验码,5位;

EOP:

包结束标志信号。

2.USB协议采用了什么差错控方法来保证传输的安全性?

为了实现信息传输安全,信息包中采用CRC校验,接收方根据CRC信息验证信息的正确性。

当接收方检测错误信息包,通过回送NAK握手包要求发送方重传;

信息包的PID字段是USB信息包的最关键信息,采用重复冗余传输防止PID信息传输错误;

数据包传输中顺序使用DATA0、DATA1、DATA2,以避免包丢失。

3.在TPC-386EX实验台产生一个固定延时、任意脉宽的负脉冲信号。

要求程序运行后指定信号输出端为1,按下按钮,待按钮释放开始延时10ms后输出端输出一个负脉冲,宽度不限。

设计实现方案,并画出流程图。

实现方案:

采用定时器5方式,按钮输出接到GATE端,OUT即要求的输出信号。

定时器输入接1MHz时钟,分频初值10000。

TIMER=200H

;采用定时器2通道

MOVAL,10111010B

OUTTIMER+3,AL

MOVAX,10000

OUTTIMER+2,AL

MOVAL,AH

OUTTIMER+2,AL

Floop:

JMPFloop

4.通过TPC-386EX实验台设计一个音频信号数字延时器的实现方案。

要求采样频率为8K/s,延时时间50ms。

(定时器控制的AD+FIFO存储+DA)

实现方案:

通过定时器产生8K/s的周期性中断(8253的2或3方式),在中断服务程序操作AD和DA变换;

定义一个数据区,400字节,可以存储50ms的数字化音频数据。

按照FIFO规则访问;

中断服务中先读取AD数据,再启动AD的顺序操作。

5.在TPC-386EX实验台实现AD变换演示。

将电位器分压值(0~+5V)送AD变换器,将8255的一个端口的8位依次连接到8个发光二极管L0~L7。

AD变换器获得的值由小到大分为8个等份,分别点亮L0、L1、…L7。

实现方案:

初始化8255,将端口C设置为输出。

利用端口C的8位输出连接L0~L7;

主程序循环AD变换(启动AD—延时—读取AD值);

根据获得的AD变换数据的高3位,经过位移等操作变换成为针对端口C的置位/复位;

0→端口C(将全部发光二极管灭),置位命令→端口C(点亮指定发光二极管)

汇编程序代码:

PPORT=200H

ADCON=210H

begin:

MOVDX,PPORT+3

MOVAL,10000000B

OUTDX,AL

MOVAL,0;PC输出0

DECDX

OUTDX,AL

mloop:

MOVDX,ADCON;启动变换

OUTDX,AL

MOVCX,1000;延时等待

delay1:

NOP

LOOPdelay1

MOVDX,ADCON+1;读取结果

INAL,DX

SHRAL,1;右移4位

SHRAL,1

SHRAL,1

SHRAL,1

ANDAL,0EH;高4位置0

ORAL,1;0000D7D6D51

MOVAH,AL

MOVDX,PPORT+2;向PC输出0

MOVAL,0

OUTDX,AL

INCDX;送置位/复位命令

MOVAL,AH

OUTDX,AL

JMPmloop

 

6.通过TPC-386EX实验台设计一个按钮启动的方波信号发生器,程序运行后信号输出端无输出,通过按钮启动800Hz方波开始输出,再次按动按钮停止输出。

设计电路连接并写出代码。

设计方案:

将按钮(PLUS1,正脉冲)连接到8255(PC7);

使用一个定时器,3方式。

输入(CLK2)连接1MHz,门控(GATE2)接+5V,输出(OUT2)即为要求的信号输出;

主程序初始化定时器和8255后,循环检测按钮状态,当按钮按下,启动或停止8253分频输出。

电路连接图:

 

程序流程图:

 

汇编程序代码(部分):

TIMER=200H;8254

PPORT=210H;8255

;----------数据段

stateBYTE0

;----------代码段

MOVAL,10011011B

OUTPPORT+3,AL

mloop:

INAL,PPORT+2

TESTAL,80H

JNZmloop

kpress:

INAL,PPORT+2

TESTAL,80H

JZkpress

INCstate

TESTstate,1

JZfstop

MOVAL,10110110B

OUTTIMER+3,AL

MOVAX,1250

OUTTIMER+2,AL

MOVAL,AH

OUTTIMER+2,AL

JMPmloop

fstop:

MOVAL,10110110B

OUTTIMER+3,AL

JMPmloop

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2