一起答

2012年微型计算机原理与接口技术自考题模拟(6)

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 下面程序是动态显示程序,请分析程序完成说明。

    MOV DPTR,#4400H

    MOV A,#03H

    MOVX @DPTR,A

    SETB RS0 ;使用第1组工作寄存器

    MOV R2,#08H

    MOV R0,#30H

    CLR A

    L1: MOV @R0,A

    INC R0

    INC A

    DJNZ R2,L1

    DISP: MOV R0,#30H ;显示缓冲区首址送R0

    MOV R1,#00H

    MOV R2,#08H ;R2中的08H表示①

    MOV R3,#7FH ;选中最右端LED

    DISP1: MOV A,@R0 ;第2次执行时A=②

    MOV DPTR,#TAB ;指向字形表首址

    MOVC A,@A+DPTR ;第2次执行时A=③

    MOV DPTR,#4402H ;4402H表示④

    MOVX @DPTR,A ;该条指令的作用是⑤

    MOV A,R3 ;第2次执行时A=⑥

    MOV DPTR,#4401H ;指向位选口

    MOVX @DPTR,A ;位码送PA口

    DJNZ R1,$ ;

    DJNZ R1,$ ;该指令的作用是⑦

    RR A ;位选字移位

    MOV R3,A ;移位后的位选字送R3

    INC R0 ;在本程序中,R0最大取值为⑧

    MOV A,@R0 ;缓冲区数据送A

    DJNZ R2,DISP1 ;未扫描完,继续循环

    SJMP DISP

    TAB: DB 3FH,06H,5BH,4FH,66H;共阴极LED字形表

    DB 6DH,7DH,07H,7FH,6FH

    答:①______;②______;③______;④______;

    ⑤______;⑥______;⑦______;⑧______。

  2. 下面程序是将字节地址______单元的内容逐一取出减1,然后再放回原处,如果取出的内容为______,则不要减1,仍将0放回原处。

    MOV R7,#10H

    MOV R1,#30H

    L00P:CJNE @R1,#00H,NEXT

    MOV @R1,#00H

    SJMP NEXT1

    NEXT:DEC @R1

    NEXT1:INC R1

    DJNZ R7,LOOP

    SJMP $

    END

  3. 下面程序是从______单元开始,连续存放10个无符号数,从中找出最大值送入______单元。

    ORG 0020H

    MOV R0,#40H

    MOV B,@R0

    MOV R7,#09H

    INC R0

    L00P:MOV A,B

    CLR C

    SUBB A,@R0

    JNC NEXT

    MOV B,@R0

    NEXT:INC R0

    DJNZ R7,LOOP

    MOV 30H,B

    SJMP $

    END

  4. 使用定时/计数器0以工作方式2实现定时,在P1.0输出周期为200μs的连续方波。已知晶振频率fosc=6MHz。求计数初值,方式控制字,编制相应程序。(查询方式)

  5. 下列程序段把片外RAM从8100H开始的10个存储单元的内容移到片内RAM 40H开始的单元。

    PUSH A

    MOV R7,10

    MOV R0,#40H

    MOV DPTR,#8100H

    LOOP:MOV A,@DPTR

    MOV @R0,A

    INC R0

    INC DPTR

    DJNZ R7,LOOP

    POP ACC

    错误:______

    改正:______

  6. 执行下面三条指令后,30H单元的内容是40H。

    MOV R1,#30H

    MOV 40H,#0EH

    MOV R1,40H

    错误:______

    改正:______

  7. 80C51在作并行扩展时,如果采用全地址译码,扩展芯片的地址是______。

  8. 存储器的地址线有14根,数据线有8根,其存储容量为______。

  9. 当DAC 0832 D/A转换器的CS接8031的P2.0时,程序中0832的地址指针DPDR寄存器应置为______。

  10. 设(SP=60H),(ACC=30H),(B=70H)。执行下列指令后,SP的内容为______,61H单元的内容为______。

    PUSH ACC

    PUSH B

  11. 执行下列程序后,(42H)=______,(55H)=______。

    MOV SP,#40H

    MOV 42H,#85H

    MOV 55H,#37H

    PUSH 42H

    PUSH 55H

    POP 42H

    POP 55H

  12. 12根地址线可选择______存储单元,32KB存储单元需要______根地址线。

  13. 使用8031单片机时EA引脚接______电平,因其内部无______存储器。

  14. 自定义一个函数,函数的形参为字符数组s1和s2,函数功能是将字符串s1中的所有数字字符取出,存入另一字符数组s2中,使s2成为一个新的字符串,并在函数中将字符串s2输出。

  15. #include<stdio.h>

    #include<string.h>

    func(char str[])

    {int num=0;

    while(*(str+num)!='\0')num++;

    retum(num);

    }

    main()

    {char str[10],*p=str;

    getchar(p);printf("%d\n",func(p));

    }

    程序运行时,从键盘上输入ABCDE<回车>,则输出结果是:______

  16. 一个机器周期包含______个晶振周期。若品振周期的频率为12MHz,则机器周期为______。

  17. #include"stdio.h"

    main()

    {inti,k=0,s[10]={1,2,3,4,5,6,7,8,9,10};

    for(i=0;i<10;i++)

    if(i%2)k+=s[i];

    intfor(i=i-1;i>=0;i--)

    if(i%5==0)printf("%d",s[i]);

    printf("%d\n",k);

    }

    程序运行结果为:______

  18. main()

    {intp[8]={11,12,13,14,15,16,17,18},i=0,k=0;

    while(i<8)

    {if(p[i]%2)k+=p[i];

    i++;}

    printf("%d\n",k);

    程序运行结果是:______

  19. main()

    {inta=2,b=3,c;

    c=a+b:

    b=a++-1:

    printf("%d,%d,%d\n",a,b,c);

    b=--c+1:

    printf("%d,%d,%d\n",a,b,e);

    程序运行结果是:______

  20. 输出100以内能被3整除且个位数为6的所有整数。

    #include<stdio.h>

    main()

    {int i,j;

    for(i=0;i<=9;i++)

    {j=i*10+6:

    if(j%3==0)continue;

    printf("%d",j);}

    }

    错误:______

    改正:______

  21. 以下程序从键盘输入20个整数存入数组,统计输入非负数的个数,并计算输入的非负整数之和。

    #include"stdio.h"

    main()

    {int i,a[20],s,n;

    s=n=0:

    for(i=0;i<20;i++)scanf("%d",&a[i])

    for(i=0;i<20;i++)

    {if(a[i]<0)break;

    S+=a[i];n++;

    }

    printf("s=%d\t,n=%d\n",s,n);

    }

    错误:______

    改正:______

  22. main()

    {inta[3]={3*0},i;

    for(i=1;i<3;i++)scanf("%d",a[i]);

    for(i=1;i<3;i++)a[0]=a[0]+a[i+1];

    printf("%d",a[0]);

    }

    错误:______

    改正:______

  23. 以下程序是计算10名学生1门课成绩的平均分。请填空。

    #include<stdio.h>

    float average(float array[10])

    {int i;float aver,sum=array[0];

    for(i=1;i<10;i++)sum+=______;

    aver=sum/10;

    return(aver);

    }

    main()

    {float score[10],aver;

    int i;

    printf("\n input 10 scores:");

    for(i=0;i<10;i++)scanf("%f",&score[i]);

    aver=average(score);

    printf("\n average score is%5.2f\n",aver);

    }

  24. #include"stdio.h"

    main()

    {char a[10],b[10]="Computer"

    a=b;printf("%s",a);

    }

    错误:______

    改正:______

  25. 以下函数的功能是:求x的y次方。请填空。

    double fun(double x,int y)

    {int 1;

    double z;

    for(i=1,z=x;i<y;i++)______;

    return z;

    }

  26. int a;则表达式a=25/3%3的值是______。

  27. 若a=6,b=4,c=2;则表达式!(a-b)+c-1&&b+c/2的值是______。

  28. 下列指令能使R0低4位不变,高4位置F的是(   )

    • A.ANL R0,#0F0H
    • B.ORL R0,#0F0H
    • C.ORL 0,#0FH
    • D.ORL 00H,#0F0H
  29. 在MCS-51指令中,下列指令中无条件转移指令是(   )

    • A.LCALL addr16
    • B.DJNZ direct.rel
    • C.SJMP rel
    • D.ACALL addr11
  30. 单片机的堆栈指针SP始终是指示(   )

    • A.堆栈底
    • B.堆栈顶
    • C.堆栈地址
    • D.堆栈中间位置
  31. 对于8031单片机,其内部RAM(   )

    • A.只能位寻址
    • B.既可位寻址又可字节寻址
    • C.只能字节寻址
    • D.少部分只能位寻址
  32. 单片机8031的ALE引脚是(   )

    • A.输出高电平
    • B.输出矩形脉冲,频率为fosc的1/6
    • C.输出低电平
    • D.输出矩形脉冲,频率为fosc的1/2
  33. 共阴极显示管显示字型“F”编码是(   )

    • A.86H
    • B.71H
    • C.90H
    • D.FFH
  34. 下面表示中断允许控制寄存器的是(   )

    • A.TCON
    • B.IE
    • C.IP
    • D.SCON
  35. 不是MCS-51单片机:I/O的数据传输方式的是(   )

    • A.无条件
    • B.查询
    • C.中断
    • D.DMA
  36. 不是常用的汇编语言程序结构的是(   )

    • A.顺序
    • B.分支
    • C.循环
    • D.随机
  37. MCS-51单片机只具备单一功能的I/O接口是(   )

    • A.P0
    • B.P1
    • C.P2
    • D.P3
  38. 下列程序段的执行结果是(   )

    int x=3:

    while(x<=5)

    {printf("%d",x-3);x++;}

    • A.000
    • B.112
    • C.123
    • D.012
  39. 对下面说明叙述正确的是(   )

    typedef struct stu

    {int n;char ch[8];

    }student;

    • A.student是结构体类型名
    • B.student是结构体变量
    • C.typedef struct是结构体类型
    • D.struct是结构体类型名
  40. 下面输入整型变量格式的语句是(   )

    • A.scanf("%f",&b);
    • B.scanf("%d",&b);
    • C.scanf("%c",&b);
    • D.scanf("%s",&b);
  41. 若int a[10];则对数组正确引用的是(   )

    • A.a[10-10]
    • B.a[10]
    • C.a[2*5]
    • D.a[9-10]
  42. 字符'9'的ASCII码值是(   )

    • A.55
    • B.54
    • C.56
    • D.57
  43. 以下集成块型号中属于MCS-96系列单片机型号的是(   )

    • A.83C51FB
    • B.80C196KR
    • C.83C52
    • D.83C51FA