福州大学 学年第 1 学期考试B卷.docx

上传人:b****4 文档编号:12229646 上传时间:2023-04-17 格式:DOCX 页数:11 大小:82.83KB
下载 相关 举报
福州大学 学年第 1 学期考试B卷.docx_第1页
第1页 / 共11页
福州大学 学年第 1 学期考试B卷.docx_第2页
第2页 / 共11页
福州大学 学年第 1 学期考试B卷.docx_第3页
第3页 / 共11页
福州大学 学年第 1 学期考试B卷.docx_第4页
第4页 / 共11页
福州大学 学年第 1 学期考试B卷.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

福州大学 学年第 1 学期考试B卷.docx

《福州大学 学年第 1 学期考试B卷.docx》由会员分享,可在线阅读,更多相关《福州大学 学年第 1 学期考试B卷.docx(11页珍藏版)》请在冰豆网上搜索。

福州大学 学年第 1 学期考试B卷.docx

福州大学学年第1学期考试B卷

课程名称微机原理与应用考试日期

考生姓名学号专业或类别

题号

总分

累分人签名

题分

30

20

50

100

得分

考生注意事项:

1、本试卷共10页,请查看试卷中是否有缺页。

2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。

教师注意事项:

如果整门课程由一个教师评卷的,只需在累分人栏目签名,题首的评卷人栏目可不签名

一、程序题(第1小题15分,第2小题10分,第3小题5分,共30分)

得分

评卷人

现有一串字符串,需要对该串按照ASCII码值进行冒泡排序。

字符串由大写的26个英文字母组成,并以ASCII字符‘$’作为结束符。

冒泡排序算法:

从第一个数据开始相邻的数进行比较,若次序不对,两数进行交换位置。

第一遍比较(N-1)次后,最大的数已到数组尾,第二遍仅需比较(N-2)次就够了,共比较(N-1)遍就完成了排序,这样共有两重循环。

福州大学2008~2009学年第1学期考试B卷

主程序如下:

DATASEGMENT

StringDB‘ADOZCMYFG$’;字符串

LenDB?

;字符串长度

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA;数据段初始化

MOVDS,AX

MOVSI,offsetString;字符串首地址

CALLStrLen;字符串长度计算子程序

MOVLen,BL

MOVBX,offsetString;数组指针初始化

MOVCH,0

MOVCL,Len;计数器CX

CALLStrOrder;调用冒泡排序子程序

MOVAX,4C00H;返回DOS

INT21h

OrderENDP;子程序结束

CODEENDS

ENDSTART

1.根据主程序,改正以下字符串长度计算子程序(注:

错误有5处,每处3分。

)入口:

SI(字符串首地址);出口:

BL(字符串长度,不含结束符)

StrLenPROC

MOVBL,0;长度值清零

STD;置字符串指令方向为:

L1:

LODSB;装载字符->AL

CMPAX,'$';与结束符'$'比较

JZL2;相等,结束

DECBL;长度BL=BL+1

LOOPL1;取下一个字符

L2:

IRET;结束

StrLenENDS

 

2.根据主程序,补充冒泡排序子程序。

入口:

BX(字符串首地址),CX(字符串长度,不含结束符);出口:

无。

StrOrderPROC;排序

;指针DI清零

DECCX;计数值=n-1

L3:

MOVDX,CX;设计数器DX,外循环次数

L4:

MOVAL,[BX+DI];取[BX+DI],与[BX+DI+1]比较

;若[BX+DI]<=[BX+DI+1]转

JBENEXT

XCHGAL,[BX+DI+1];否则两数交换

NEXT:

INCDI;比较下一个数据,DI=DI+1

;内循环

MOVCX,DX;循环次数->CX

MOVDI,0;地址返回第一个数据

;外循环

RET

StrOrderENDP

3.上题运行后String的结果是。

 

二、存储器接口题(本题共20分)

得分

评卷人

某8086微机系统需连接4K字ROM(末地址FFFFFH)和4K字RAM(首地址00000H),请补充8086系统总线与存储器的接线图,见图1,在括号内填入8086接口(AB0-19,DB0-15,

)每空0.5分,共11分;在方框中填入(与门、或门),每空1分,共4分;并补充74LS138的C、B译码输入,5分。

要求地址采用1片74138进行全译码,其他逻辑芯片数量不限。

图18086系统总线与存储器的接线图

三、综合题(本题共50分)

得分

评卷人

有一工业控制系统,由被控对象、传感器、执行器和控制器组成,具体的电路图见图2。

控制器通过传感器采样被控对象的输出信号,与给定值进行比较得到误差,经控制器计算得到控制量,控制量传输给执行器达到控制目标的实现。

传感器将需要测量的信号采集转换为模拟信号,送ADC0809(采样时钟500KHz)的通道IN5转换为数字信号;8086作为控制器,8086通过8255读取ADC0809转换的结果,与给定值比较算得误差,通过控制算法得到控制量。

执行器采用脉宽调制(PWM)方式进行控制量的实现,其高电平的时间为Bs,周期为T=20s,说明见图2。

控制周期T为20s,控制精度为0.5s。

该系统同时具有报警的功能,在测量值超出给定值±20%时,报警灯点亮进行报警。

主程序如下:

DATASEGMENT

GIVENEQU80;给定值

UkDB0;控制量

YkDB0;测量值

BDB0;PWM控制时高电平的时间

DataENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA;数据段DS初始化

MOVDS,AX

MOVUk,0;控制量初始化

MOVYk,0;测量值初始化

CALL8255A_Init;8255A初始化程序

CALL8253_Init;8253初始化程序

Next:

MOVAL,05H;设置转换的通道

CALLGather;ADC0809转换程序,出口:

AL

MOVYk,AL;保存测量值

CALLControl;控制量的计算,入口:

AL,出口:

UK

CALLOutput;控制输出,入口:

UK

MOVAL,Yk

CALLWarning;测量值报警显示;入口:

AL

JMPNext

RET

CODEENDS

ENDSTART

1.请补充8255A和8253的地址。

(6分)

8255A地址:

PA:

0F0H;PB:

;PC:

;Control:

8253地址:

T0:

;T1:

;T2:

;Control:

0FEH

2.根据题意,补充上述程序的8255A的初始化程序8255A_Init。

(2分)

 

3.根据题意,补充上述程序的8253的初始化程序8253_Init。

要求写出初值计算式。

(6分)

 

4.根据题意,完成ADC0809转换程序。

出口:

AL(8分)

转换流程:

(1)通过8255APC.0和PC.1、PC.2选择当前转换的通道;

(2)在STRAT和ALE加上一个正脉冲,将通道选择码锁存并启动A/D转换;

(3)转换开始后,EOC变低,查询PC.7直到变成高电平,即转换结束;

(4)转换结束后,通过8255APB读入转换后的数字量。

GatherProc

 

RET

GatherEndP

5.根据题意,完成控制子程序(8分)

思路:

控制算法就是根据采用的测量值和给定值GIVEN进行比较,大于等于时Uk=Uk-1;小于时Uk=Uk+1。

最后对Uk进行限幅在0~100之间,限幅的要求如下:

Uk小于0时,Uk=0;Uk大于100时,Uk=100;其他Uk不变。

入口:

AL。

程序含有4处错误,请改正。

ControlProc

SBBAL,GIVEN;测量值与给定值比较

JCLOW;

INCUk;大于Uk=Uk-1

JMPADJUST

LOW:

;小于Uk=Uk+1

DECUk

ADJUST:

;限幅处理

MOVAL,Uk

CMPAL,0;小于零的处理

JAEADJUST1

ANDUk,Uk;Uk=0

JMPControlEnd;

ADJUST1:

;大于100的处理

CMPAL,100

JAControlEnd

MOVUk,100

ControlEnd:

RET

ControlEndp

6.根据题意,完成控制输出子程序(10分)

PWM实现算法:

采用8253产生2Hz的方波作为时钟,提供给PWM作为时基。

比如产生占空比为Uk的PWM波,可算得PWM波的高电平宽度B=Uk/100*20s=Uk/5s,B为整数。

PWM波由PA.5输出。

SecondProc;查询0.5s周期。

Wait_H:

INAL,0F4H

TESTAL,01000000B

JZWait_H

Wait_L:

INAL,0F4H

TESTAL,01000000B

JNZWait_L

RET

SecondEndp;入口:

UK

OutputProc

MOVAL,Uk;计算UK/5

MOVBL,5

DIVBL

MOVCL,AL;将宽度赋值给CX

MOVCH,0

;CX=CX*2

MOVAH,0

MOVB,AX

;PA.5输出高电平

OUT0F0H,AL

PWM_H:

CALLSecond

MOVCX,20;周期为20s

SUBCX,B

ADDCX,CX;CX=CX*2

;PA.5输出低电平

OUT0F0H,AL

PWM_L:

CALLSecond

LOOPPWM_L

RET

OutputEndp

7.根据题意,完成报警子程序Warning。

入口:

AL。

当测量值超出给定值±20%时,报警灯点亮进行报警,否则报警灯熄灭。

(10分)

WarningProc

;报警状态字BL=1,报警;BL=0,正常

CMPAl,GIVEN_H;与上限值比较

JCLOW

;报警状态字=1

JMPOK

LOW:

JNCOK

MOVBL,1;报警状态字=1

OK:

TESTBL,01H

JNZLightOn

LightOff:

ANDAL,11111110B;PA.0输出低电平

LightOn:

ORAL,00000001B;PA.0输出高电平

WarningOut:

RET

GIVEN_HEQUGIVEN*1.2;报警上限值

GIVEN_LEQUGIVEN*0.8;报警下限值

WarningEndp

图2控制系统

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1