2012年微型计算机原理与接口技术自考题模拟(9)
-
使用89C51和ADC0809的接口,采集2通道10个数据,存入内部RAM的50H~59H单元,下面是查询方式程序段。请完成填空。(IN2的地址为7FFAH,P1.0查询转换结束信号)
ORG 0100H
MOV R7, ①
MOV R0,#50H
MOV ② ,#7FFAH
NEXT:MOVX @DPTR, ③
JB ④ ,$
MOVX A, ⑤
MOV ⑥ ,A
INC ⑦
DJNZ RT ⑧
SJMP $
答:①______;②______;③______;④______;
⑤______;⑥______;⑦______;⑧______。
-
下面是8031扩展8255A初始化程序,其PA口设置成______,PB口和PC口设置成______。
MOV A,#90H
MOV DPTR,#7FFFH
MOVX @DPTR,A
MOV DPTR,#7FFCH
MOVX A,@DPTR
MOV DPTR,#TFFDH
MOVX @DPTR,A
-
将4个单字节数放片内30H~39H,它们求和结果放在片内50H,51H单元。
-
下面子程序的功能是从串行接口接受一个字符,其定时器T1工作模式______,波特率为______。(时钟为11.059MHz)
START:MOV TMOD,#20H
MOV TH1,#0E8H
MOV TL1,#0E8H
SETB TR1
MOV SCON,#50H
L1: JNB RI,L1
CLR RI
MOV A,SBUF
RET
-
下面程序段是将外部RAM1000H单元的内容送内部RAM20H单元。
MOVX DPTR,#1000H
MOVX A,@DPTR
MOV 20H,A
错误:______
改正:______
-
下面程序段是将外部RAM30H单元的内容送到R0。
MOV R0,#30H
MOV A,@R0
MOV R0,A
错误:______
改正:______
-
MCS-51的定时器用作定时,其定时时间与时钟频率和计数初值有关。用作计数时,最高计数频率的______。
-
MCS-51的特殊功能寄存器分布在______地址范围内。
-
当MCS-51引脚______信号有效时,表示从P0口稳定地送出了低8位地址。
-
执行下列指令组后,标志位(OV)=______(P)=______。
MOV A,#0B4H
ADD A,#00H
SUBB A,#51H
-
MCS-51单片机中,在IP=0x00时,优先级最高的中断是______,最低的是______。
-
若只需要开串行口中断,则IE的值应设置为______,若需要将外部中断0设置为下降沿触发,则执行的语句为______。
-
外围扩展芯片的选择方法有两种,它们分别是______和______。
-
从键盘上输入20个元素的值存入一维数组a中,然后将下标为(1、3、5、7、9……)的元素值赋值给数组b,输出数组b的内容。
-
8279有______条命令,用命令字______位来表示。
-
#include<stdio.h>
int f(int x,int y)
{return(x>y)?x:y);}
main()
{int a,b;
scanf("%d,%d",&a,&b);
printf("%d\n",f(a,b));
}
程序运行时,从键盘输入9,8<回车>,则运行结果是:______
-
main()
{int i=3,*p1;
int a[3]={15,30,45},*p2;
pl=&i;p2=a;
pl=p2+2:
printf("%d,%d\n",*p1,*p2);
}
程序运行结果是:______
-
#include<stdio.h>
main()
{int c;
while((c=getchar())!='\n')
{switch(c-'2')
{case 0:
case 1:putchar(c+4);
case 2:putchar(c+4);break;
case 3:putchar(c+3);
case 4:putchar(c+2);break;}}
printf("\n");
}
程序运行时,输入2743<CR>,则运行结果是:______
-
main()
{int n;
float s=1.0;
for(n=10;n>1;n--)
s=s+1/n;
printf("%6.1f\n",s);
}
错误:______
改正:______
-
#include<stdio.h>
main()
{int i,j;
inta[5]={2,4,6,9,12},b[6]={2,3,4,6,8,9};
for(i=0;i<5;i++)
for(j=0;j<6;j++)
if(*(a+i)==*(b+j)printf("%d",*(a+i));
printf("\n");
}
程序运行结果是:______
-
#include"stdio.h"
void fact(int k)
{
int i,s;
s=s*i:
return(s);
}
错误:______
改正:______
-
程序输入1,输出One,输入其他,输出Other。
main()
{scanf("%d",&a);
if(a=1)printf("One\n");
else printf("Other\n");
}
错误:______
改正:______
-
运行以下程序的结果是321。
main()
{int x;
x=3;
do
{printf("%d",x--);
}while(!x);}
错误:______
改正:______
-
从键盘上输入若干个学生成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。
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);}
-
以下程序是用来统计正整数的每位数字中零的个数,并求每位数字中最大者。请填空。
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);
-
当a=3,b=2,c=1时,表达式f=a>b>c的值是______。
-
inta,b;则表达式(a=2,b=5,a++,b++,a+b)的值是______。
-
在堆栈操作中,当进栈数据全部弹出后,这时SP指向( )
- A.栈底单元地址
- B.7FH单元
- C.栈底单元地址加1
- D.栈底单元地址减1
-
下列程序段的执行结果是( )
MOV R0,#30H
SETB C
CLR A
- ADDC A,#00H MOV @R0,A
- A.(30H)=00H
- B.(30H)=01H
- C.(00H)=00H
- D.(00H)=01H
-
从地址2132H开始有一条绝对转移指令AJMP addr11,指令可能实现的转移范围是( )
- A.2000H—27FFH
- B.2132H—2832H
- C.2100H—28FFH
- D.2000H—3FFFH
-
MCS-51单片机在正常运行程序时RST引脚是( )
- A.高电平
- B.低电平
- C.脉冲输入
- D.高阻态
-
MCS-51单片机在访问外部数据存储器时,地址指针是( )
- A.DPTR
- B.PC
- C.PSW
- D.SP
-
协调CPU与外围设备之间的数据传送的是( )
- A.三态门
- B.锁存器
- C.缓冲器
- D.寄存器
-
下面不是中断响应条件的是( )
- A.CPU处于开中断状态
- B.低级中断源
- C.高级中断源
- D.一条指令执行完毕
-
8051定时器/计数器T0工作方式0和方式1的区别是( )
- A.前者是16位后者是13位
- B.前者是16位后者是8位
- C.前者是13位后者是8位
- D.前者是13位后者是16位
-
MCS-51内部RAM字节数是( )
- A.128
- B.256
- C.107
- D.4K
-
下列程序段执行后,a的值是( )
int*p,a=10,b=1;
p=&a;a=*p+b;
- A.12
- B.13
- C.10
- D.11
-
带进位的循环移位指令是( )
- A.RL
- B.RR
- C.CLR
- D.RLC
-
C语言函数返回值的类型是( )
- A.return语句中表达式类型
- B.调用该函数时主调函数的类型
- C.定义该函数时函数的类型
- D.调用函数时系统临时决定
-
执行int x=2,y=3;后表达式x=(y==3)的值是( )
- A.1
- B.0
- C.2
- D.3
-
以下不属于单片机集成块型号的是( )
- A.80486DX
- B.83C51FA
- C.8097BH
- D.8051
-
C语言中最基本的数据类型是( )
- A.整型、实型、逻辑型
- B.整型、实型、逻辑型、字符型
- C.整型、字符型、逻辑型
- D.整型、实型、字符型
-
以下所列的C语言常量中,错误的是( )
- A.0xFF
- B.2L
- C.1.2e0.5
- D.'\72'