哈尔滨工业大学《单片机原理与应用技术》期末试题及答案Word格式文档下载.docx
《哈尔滨工业大学《单片机原理与应用技术》期末试题及答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《哈尔滨工业大学《单片机原理与应用技术》期末试题及答案Word格式文档下载.docx(12页珍藏版)》请在冰点文库上搜索。
![哈尔滨工业大学《单片机原理与应用技术》期末试题及答案Word格式文档下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/5/be0a88cc-f363-44bf-bbc9-52bb2705b735/be0a88cc-f363-44bf-bbc9-52bb2705b7351.gif)
9.MCS-51寻址方式中,直接寻址的寻址空间是(D)。
A.工作寄存器R0~R7 B.专用寄存器SFR
C.程序存储器ROMD.数据存储器256字节范围
10.是最简单的程序结构,它既无分支,又无循环,在执行时单片机是按程序中指令的顺序逐条进行的。
(A)
A.顺序结构
B.分支结构
C.循环结构
D.子程序
2判断题。
(×
)1.MCS-51的数据传送指令是把源操作数传送到目的操作数,指令执行后,源操作数改变,目的操作数修改为源操作数。
(√)2.已知:
A=11HB=04H,执行指令DIVAB后,其结果:
A=04H,B=1CY=OV=0。
(√)3.指令LCALLaddr16能在64K字节范围内调用子程序。
)4.MCS-51单片机的相对转移指令最大负跳距是127B。
)5.调用子程序指令(如:
CALL)及返回指令(如:
RET)与堆栈有关但与PC无关。
(×
)子序的转返与PC也有关(PC入栈与出栈)
3填空
1.MCS-51有5个中断源,有2个中断优先级,优先级由软件填写特殊功能寄存器IP加以选择。
2.外部中断0的中断入口地址为0003H;
定时/计数器0的中断入口地址为000BH;
外部中断1的中断入口地址为0013H;
定时/计数器1的中断入口地址为001BH;
串行口中断的中断入口地址为0023H。
3.MCS-51系列单片机的定时器/计数器有四种工作方式,其中方式0是13位定时/计数器;
方式1为16位定时/计数器;
方式2为自动重装初值的8位定时/计数器;
只有定时器T0才能选作组合方式3,此时将形成2个8位的定时/计数器。
4.MCS-51单片机中断允许寄存器IE的作用是用来对各中断源进行开放或屏蔽的控制。
5.若MCS-51系列单片机中的中断设定为同一优先级,当它们同时发出中断请求时,CPU处理的顺序(由高到低)为外部中断0→定时器/计数器0→外部中断1→定时器/计数器1→串行口中断。
6.MCS—51单片机外部中断请求信号有电平方式和
边沿触发方式
,在电平方式下,当采集到INT0、INT1的有效信号为
底电平
时,激活外部中断。
7.中断处理的全过程分为以下3个段:
中断请求、中断响应、中断服务。
8.用户在编写中断服务程序时,可在中断入口矢量地址存放一条无条件转移指令,以防止中断服务程序容纳不下。
9.串行口数据缓冲器SBUF是可以直接寻址的专用寄存器。
10.A/D转换器转换数据的传送有定时传送方式、查询方式和中断方式
4编程题
1.从22H单元开始有一个无符号数据块,其长度在20H单元。
求出数据块中最大值,并存入21H单元。
解:
ORG0100H
START:
MOVR0,#22H;
数据块首地址送R0
MOVR7,20H;
比较次数送R7
DECR7
MOVA,@R0;
取数送A
LOOP:
INCR0
MOV60H,@R0;
取数送60H
CJNEA,60H,NEHT;
(A)与(60H)相比
NEXT:
JNCBIE1(A)≥(60H)转BIR1
MOVA,60H;
(A)<(60H),大数送A
BIE1:
DJNZR7,LOOP;
比较次数减1,不为0,继续比较
MOV21H,A;
比较结束,大数送21H
SJMP$
END
2.从内部RAM22h单元开始存有一个无符号数数据块,长度n存于20h中。
求出数据块中的最小数,存于21h中。
ORG0030H
MOVR0,#22H;
数据块起始地址
MOVR1,20H;
数据个数n
MOV21H,#0FFH;
最大数
LOOP:
MOVA,@R0;
取新数
INCR0;
为取下一个新数作准备
CJNEA,21H,LOOP1;
与原最大数比较
LOOP1:
JNCNEXT;
大,原最小数保留C=0,跳
MOV21H,A;
小,改变最小数
NEXT:
DJNZR1,LOOP;
循环
END
3.单片机集成的定时器可以产生定时中断,利用定时器T0,编写程序,使P1.0控制的发光二极管L0每隔1秒交替点亮或熄灭。
;
P1.0----发光二极管显示L0
LEDEQUP1.0
ORG0000H;
复位地址
AJMPMAIN;
开始时跳转转到主程序
ORG000BH;
T0入口地址
AJMPINT_T0
ORG0100H
MAIN:
SETBLED
MOVTMOD,#00000001B;
设置定时器T0工作在方式1(16位)
MOVTH0,#0D8H;
设置初值
MOVTL0,#0F0H
CLRTF0;
先把溢出标志位清零
SETBTR0;
开始计时
SETBEA;
全局中断打开
SETBET0;
定时器/计数器T0溢出中断打开
MOVR7,#00H;
作为定时器累加器使用
SJMP$;
循环,等待中断
中断服务子程序中断服务子程序控制R7的值定时10ms*100=1S
INT_T0:
INCR7;
计数增量
重新置中断标志位为0
MOVTH0,#0D8H;
重新符初值
MOVTL0,#0F0H
CJNER7,#100,RETURN;
让灯明暗相间1s
MOVR7,#00H
CPLLED;
让灯明暗交替变化
RETURN:
RETI
4如下系统中AT89C51单片机外接晶振频率为12MHz。
编制一个循环闪烁灯的程序:
有8个发光二极管,顺序循环点亮LED1—LED8,每次其中1个灯每隔2秒闪烁1次,共闪烁10次,闪烁点亮10次后,转到下一个闪烁10次,循环不止。
根据硬件连接图所示,当P1.0输出高电平时,LED灯亮,否则不亮。
其程序如下:
MOVA,#01H;
灯亮初值
SHIFT:
LCAILFLASH;
调闪亮10次子程序
RRA;
右移一位
SJMPSHIFT;
FLASH:
MOVR2,#0AH闪烁10次计数
FLASH1;
MOVP1,A;
点亮
LCALLDELAY;
延时
MOVP1,#00H;
熄灭
DJNZR2,FLASH1;
RET
5AT89C51单片机外接晶振频率为12MHz。
编程完成功能:
发光二极管循环显示二进制数00H至0FH。
本程序高电平有效
ORG0000H
LJMPMAIN
ORG0030H
MOVA,#00H
L1:
MOVP1,A
LCALLDELAY
INCA
SJMPL1
ORG0200H
DELAY:
MOVR5,#04H
F3:
MOVR6,#0FFH
F2:
MOVR7,#0FFH
F1:
DJNZR7,F1
DJNZR6,F2
DJNZR5,F3
RET
END
法一:
本程序低电平有效显示的是00H到FFH
MOV40H,#00H
MOVA,40H
CPLA
MOVP1,A
INC40H
法二:
L1:
CPLA
INCA
6编定一个软件延时1S的子程序,已知fosc=6MHz。
(1)1S=2μs*5*100000
5*100000=250*200*10
(2)ORG1000H
DELAY1S:
MOVR7,#10
T3:
MOVR6,#200
T2:
MOVR6,#250
T1:
DJNZR5,T1
DJNZR6,T2
DJNZR7,T3
RET
7如下系统中AT89C51单片机通过P0口控制8段数码管,要求在数码管上循环显示数字0~9,要求每个数字的显示时间为1s,试编程实现。
(已知单片机的晶振频率为6MHZ))
LJMPMAIN
ORG030H
MOVA,#3FH
CPLA
MOVP0,A
ACALLDEL
MOVA,#06H
MOVA,#5BH
ACALLDEL
MOVA,#4FH