全国自考(微型计算机原理与接口技术)模拟试卷8
-
42. 使用定时/计数器0以工作方式2实现定时,在P1.0输出周期为200μs的连续方波。已知晶振频率fosc=6MHz。求计数初值,方式控制字,编制相应程序。(查询方式)
-
43. 下面是两单片机通过串行口进行通信的程序。它能将甲机内部RAM 20H~27H单元的数据发送给乙机,完成程序并填空。
甲机发送程序如下:
MOV ① ;定时器T1工作在8位重装方式
MOV TL1,#0F4H
MOV TH1,#0F4H
SETB TR1
MOV ② ,#40H;语句的作用是设置串口控制字
MOV R0,#20H
MOV R7,#08H
START:MOV A.@R0
MOV ③ ,A;将累加器A中的内容送串口输出缓冲器
WAIT:JBC T1, ④ ;判断T1是否置位,其目的是检查一帧是否发送完
AJMP WAIT
CONT:INC R0
DJNZ R7,START
SJMP $
乙机接收程序如下:
MOV TMOD,#20H
MOV TL1,#0F4H
MOV TH1,#0F4H
SETB TR1
MOV SCON,#40H
MOV R0,#20H
MOV R7,#08H
SETB ⑤ ;将REN置位的目的是使允许中断接受
WAIT:JBC RI, ⑥ ;判断RI是否置位,其目的是检查一帧是否接受完
AJMP WAIT
READ:MOV A, ⑦ ;将串口输入缓冲器的内容送累加器A
MOV @R0,A
INC R0
DJNZ R7, ⑧
SJMP $
答:①______;②______;③______;④______;
⑤______;⑥______;⑦______;⑧______。
-
41. 下面程序的功能是______。
BTOD1:MOV A,R2
MOV B,#100
DIV AB
MOV R6,A
MOV A,#10
XCH A,B
DIV AB
SWAP A
ADD A,B
MOV R5,A
RET
-
40. 下面程序的功能是______。
ORG 4000h
MOV R0,#20H
MOV R7,#0AH
MOV A,@R0
DEC R7
LOOP:INC R0
MOV 40H,@R0
CJNE A,40H,NEXT
NEXT:JC LOOP1
MOV A,40H
LOOP1:DJNZ R7,LOOP
MOV 41H,A
HERE:SJMP $
END
-
39. 下面程序段是将ROM 3000H单元内容送R7。
MOV DPTR,#3000H
CLR A
MOVC A,@R7+DPTR
MOV R7,A
错误:______
改正:______
-
38. 下面程序段是将片外RAM20H~25H单元清零。
MOV R0,#20H
MOV R7,#06H
CLR A
LOOP: MOV @R0,A
INC R0
DJNZ,#3000H
错误:______
改正:______
-
37. 若由程序设定RS1.RS0=11,则工作寄存器R0~R7的直接地址为______。
-
35. 若(A)=86H,(PSW)=80H,则执行RRCA指令后,(A)=______。
-
36. 若PSW=00,执行下列程序后,CY=______。
MOV A,#0FBH
MOV PSW,#10H
ADD A,#7FH
-
33. 执行完本段指令后(A)=______(B)=______。
MOV A,#08H
MOV B,#45H
PUSH A
PUSH B
POP A
POP B
-
34. 已知(R0)=20H,(20H)=36H,(21H)=17H,(36H)=34H,执行下列程序后,则(R0)=______(R2)=______。
MOV A,@R0
MOV R0,A
MOV A,@R0
ADD A,21H
ORL A,#21H
RL A
MOV R2 A
RET
-
32. MCS-51单片机外部中断请求信号有电平方式和______,在电平方式下,当采集到INT0或INT1的有效信号为______时,激活外部中断。
-
31. MCS-51有一个全双工的______步串行口,有______种工作方式。
-
30. 8051内部并行口P0口直接作输出口时,必须外接______;并行口作输入口时,必须先______,才能读入外设的状态。
-
29. 编制程序,输入n个整数(n从键盘输入,n>0),输出它们的偶数和。
-
#include<stdio.h>
main()
{int k=0;
char c='A':
do
{switch(c++)
{case'A':k++;break;
case'B':k--;
case'C':k+ =2;break;
case'D':k=k%2;break;
case'E':k=k*10;break;
default:k=k/3;}
k++;}
while(c<'G');
printf("k=%d",k);}
程序运行结果是:______
-
#include<stdio.h>
main()
{int i,b,k=0;
for(i=1;i<=5;i++)
{b=i%2;
while(b-->=0)k++;}
printf("%d,%d",k,b);
}
程序运行结果是:______
-
#include"stdio.h"
main()
{int a,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf("%d,%d",a,b);
}
程序运行结果是:______
-
#include<stdio.h>
main()
{int x;
scanf("%d",&x);
if(x>=60)printf("pass");
else printf("fail");
}
程序运行时输入60<回车>,则程序运行结果是:______
-
#include"stdio.h"
main()
{FILE*I=fp;char ch;
if((fp=fopen("test.txt","w"))==NULL)
{printf("cannot open file\n");exit(0);}
ch=getchar();
while(ch!='$')
{fputc(ch,fp);putchar(ch);
ch=getchar();}
fclose(*fp);
}
错误:______
改正:______
-
struct abc
{char a[20]={0};
char b;}
main()
{struct abc studl[10];
int a;
for(a=0;a<10;a++)
scanf("%s",a);
}
错误:______
改正:______
-
main()
{int a[10],i;
for(i=1;i<=10;i++)
Scanf("%d",a[i]);
for(i=10;i>=0;i- -)
printf("%d",a[i]);
}
错误:______
改正:______
-
22. 求1到n的自然数之和的函数。
#include"stdio.h"
int sum(int n)
{int k,s=0;
for(k=1;k<10;k++)
s=s+k:
return s;
}
错误:______
改正:______
-
20. 以下程序是用来统计正整数的每位数字中零的个数,并求每位数字中最大者。请填空。
main()
{unsigned long num,max,t;
int count;
count=max=0:
scanf("%ld",&num);
do{
t=______;
if(t==0)++count;
else if(max<t)max=t;
num/=10;
}while(num);
printf("count=%d,max=%ld\n",count,max);
-
19. 从键盘上输入若干个学生成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。
main()
{float s,gmax,gmin;
scanf("%f,"&s);
gmax=s;gmin=s;
while(s>=0)
{if(s>gmax)gmax=s;
if(______)gmin=s;
scanf("%f",&s);}
printf("gmax=%f\ngmin=%f\n"gmax,gmin);}
-
16. 下列指令判断若累加器A的内容不为0就转LP的是( )
- A.JB A,LP
- B.JNZ A,LP
- C.JZ LP
- D.CJNE A,#0,LP
-
18. 当a=3,b=2,c=1时,表达式f=a>b>c的值是______。
-
17. inta,b;则表达式(a=2,b=5,a++,b++,a+b)的值是______。
-
下列寄存器中用来作堆栈段寄存器的是()
- A.CS
- B.DS
- C.SS
- D.ES
-
15. 执行如下三条指令后,30H单元的内容是( )
MOV R1,#30H
MOV 40H,#0EH
MOV @R1,40H
- A.40H
- B.0EH
- C.30H
- D.FFH
-
13. 短转移指令的助记符是( )
- A.AJMP
- B.ANL
- C.SJMP
- D.LJMP
-
12. 逻辑“异或”操作指令的助记符是( )
- A.ORL
- B.ANL
- C.XRL
- D.MOV
-
9. 下面不属于中断处理过程的是( )
- A.保护现场与恢复现场
- B.开中断与关中断
- C.中断向量
- D.中断服务与中断返回
-
11. 用户可以直接使用的8031单片机I/O接口是( )
- A.P0
- B.P2
- C.P1
- D.P3
-
10. MCS-51单片机的定时器/计数器工作方式1是( )
- A.16位计数器结构
- B.8位计数器结构
- C.13位计数器结构
- D.2个8位计数器结构
-
7. MCS-51布尔处理机的存储空间指的是( )
- A.00H~0FH
- B.10H~1FH
- C.20H~2FH
- D.30H~3FH
-
8. 不影响程序状态字.PSW的指令关键字是( )
- A.ADD
- B.ADDC
- C.SUBB
- D.RRC
-
5. 对于循环for(i=1;0;i++)可以认为是( )
- A.逻辑错误
- B.语法错误
- C.不进入循环
- D.死循环
-
6. fscanf函数的正确调用形式是( )
- A.fscanf(fp,格式字符串,输出列表);
- B.fscanf(格式字符串,输出列表,fp);
- C.fscanf(格式字符串,文件指针,输出列表);
- D.fscanf(文件指针,格式字符串,变量地址列表);
-
3. inta=30,b=20,c=10,d;d=a>b>c;则d的值是( )
- A.10
- B.1
- C.30
- D.0
-
2. 以下说法不正确的是( )
- A.C语言具有一些汇编语言的功能
- B.C语言是面向对象的程序设计语言
- C.C语言具有多种存储类型
- D.C语言具有预处理功能
-
4. 以下正确的函数定义形式是( )
- A.double fun(int x;int y)
- B.double fun(int x,int y)
- C.double fun(int x,int y);
- D.double fun(int x,y);
-
1. 以下集成块型号中属于8位系列单片机型号的是( )
- A.80C196MC
- B.80C196KR
- C.80196KC
- D.83C51FC