一起答

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

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 下面是两单片机通过串行口进行通信的程序。它能将甲机内部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 $

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

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

  2. 下面程序是查找在内部RAM的30H~50H单元中出现______的次数,并将查找的结果存入______单元。

    MOV 51H,#00H

    MOV R1,#30H

    MOV R7,#21H

    LOOP: CJNE @R1,#0FFH,NEXT

    INC 51H

    NEXT: INC R1

    DJNZ R7,LOOP

    SJMP $

  3. 编程序将片内30H~36H单元内容的高4位清零,保持低4位不变。

  4. 设单片机的fosc=6MHz,下面程序是100ms延时的子程序。

    DELAY: MOV R7,#64H

    A0: MOV R6,#0FAH

    DJNZ R6,$

    DJNZ R7.DELAY

    RET

    错误:______

    改正:______

  5. 设单片机的晶振频率为fosc=6MHz,使用T1工作于工作方式0,下面程序用查询的方式在______端输出周期为______的连续等宽方波。

    MOV TMOD,#00H

    MOV TH1,#0FCH

    MOV TL1,#03H

    MOV IE,#00H

    SETB TR1

    LOOP: JBC TF1,LOOP1

    AJMP LOOP1

    LOOP1: MOV TH1,#0FCH

    MOV TL1,#03H

    CPL P1.0

    CLR TF1

    SJMP LOOP

  6. 下面的程序完成5+4+3+2+1=15=0FH。

    MOV R3,05H

    CLR A

    L00P: ADD A,R3

    DJNZ @R3,LOOP

    SJMP $

    错误:______

    改正:______

  7. MCS-51的相对转移指令最大负跳数是______字节。

  8. MCS-51串行接口有4种工作方式,这可在初始化程序中用软件填写特殊功能寄存器______进行选择。

  9. MCS-51有______个中断源,有2个中断优先级,优先级由软件填写特殊功能寄存器______进行选择。

  10. 8031单片机有4个口,其中______口可以直接应用于I/O口。

  11. 单片机的内部RAM区中,可以位寻址的地址范围是______,特殊功能寄存器中,可位寻址的地址是______。

  12. 下列伪指令汇编后,存放25H的单元及LOOP的值分别是______=25H,LOOP=______。

    ORG 0100H

    TAB: DB 'ABC'

    MOON: DS 03

    BUF: DB 25H

    LOOP EQU 2100H

  13. 若8255的端口A和端口B工作在方式1输入时,C口的______和______可作为基本输入/输出使用。

  14. 编程序计算s=1!+2!+3!+4!的和。

  15. LED有______和______两种接法。

  16. #include<stdio.h>

    main()

    {inti,j,sum=0,m,n=4;

    for(i=1;i<=n;i++)

    {m=1;

    for(j=1;j<=i;j++)m=m*j;

    sum=sum+m;}

    printf("sum=%d\n",sum);

    }

    程序运行结果是:______

  17. #include<stdio.h>

    main()

    {int i=0,j,c[6];

    scanf("%d",&j);

    do{c[i]=j%10;i++;j=j/10;

    }while(j!=0);

    for(--i;i>=0;i--)

    {printf("%d",c[i]);

    if(i>0)printf(",");}

    }

    程序运行时,输入整数为2345<回车>,则输出为:______

  18. #include<stdio.h>

    ss(char*s)

    {char *p=s:

    while(*p)p++;

    return(p-s);}

    main()

    {char *a="abded";

    int i;

    i=ss(a);

    printf("%d\n",i);}

    程序运行结果是:______

  19. 输入两个整数,调用函数stu()求两个数的立方和,返回主函数显示结果。

    int stu(int a,int b)

    {return a*a+b*b;}

    main()

    {int x,y;

    scanf("%d,%d",&x,&y);

    printf("%d",stu(x,y));

    }

    错误:______

    改正:______

  20. main()

    {int a[]={1,3,5,2,7};

    int b[]={5,3,9,4,6};

    int c[5],i;

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

    c[i]=a[i]*b[i];

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

    printf("%d",c[i]);}

    程序运行结果是:______

  21. 学习成绩>=90分的用A表示,60-89分之间的用B表示,60分以下的用C表示。

    main()

    {int score;

    char grade;

    printf("please input a score!\n");

    scanf("%d",&score);

    grade=score>=90?'A':(score<90?'B':'C');

    printf("%d belongs to %c",score,grade);

    }

    错误:______

    改正:______

  22. 求数组中最大元素和最小元素。

    main()

    {int m[10]={3,-30,20,6,77,2,0,-4,-7,99},

    int i,max,min:

    max=min=m[0];

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

    {if(m[i]>max)max=m[i];

    if(m[i]<min)min=m;}

    printf("%d,%d",max,min);

    }

    错误:______

    改正:______

  23. #include"stdio.h"

    main()

    {int i,s;

    s=0;

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

    printf("%d",s);

    }

    错误:______

    改正:______

  24. 下面程序的功能是输出1至100之间每位数的乘积大于每位数的和的数。请填空。

    main()

    {intn,k=1,s=0,m;

    for(n=1;n<=100;n++)

    {k=1;s=0;m=n;

    while(m)

    {k*=m%10;S+ =m%10;

    ______;}

    if(k>S)printf("%d",n);}

    }

  25. int x=5,n=5;则表达式x+ =n++的值是______。

  26. 下面程序的功能是,输出100以内能被3整除且个位数为6的所有整数。请填空。

    main()

    {int i,j;

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

    {j=i*10+6:

    if(______)continue;printf("%d",j);}

    }

  27. 若a=7.5,b=2,c=3.6;表达式a>b&&c>a||a<b&&!c>b的值是______。

  28. 当定时器T0发出中断请求后,中断响应的条件是(   )

    • A.SETB ET0
    • B.SETB EX0
    • C.MOV IE,#82H
    • D.MOV IE,#61H
  29. 8051单片机串行口用工作方式0时(   )

    • A.数据从RDX串行输入,从TXD串行输出
    • B.数据从RDX串行输出,从TXD串行输入
    • C.数据从RDX串行输入或输出,同步信号从TXD输出
    • D.数据从TXD串行输入或输出,同步信号从RXD输出
  30. 共阴极显示管点亮时输入电平是(   )

    • A.低电平
    • B.低电压
    • C.低阻态
    • D.高电平
  31. 单片机中PUSH和POP指令常用来(   )

    • A.保护断点,恢复断点
    • B.保护现场
    • C.保护现场,恢复现场
    • D.保护断点
  32. MCS-51寻址方式,操作数Ri加前缀“@”的寻址方式是(   )

    • A.寄存器间接寻址
    • B.寄存器寻址
    • C.基址加变址寻址
    • D.立即寻址
  33. 不是伪指令关键字的是(   )

    • A.ORG
    • B.START
    • C.EQU
    • D.DATA
  34. 8051/8031型单片机提供中断源的个数是(   )

    • A.3
    • B.4
    • C.6
    • D.5
  35. MCS-51单片机I/O的数据是(   )

    • A.同步传输
    • B.异步传输
    • C.随机传输
    • D.实时传输
  36. 下面不是运算器完成的主要任务是(   )

    • A.算术运算
    • B.位运算
    • C.数据处理
    • D.指令译码
  37. 对于8031来说,EA脚总是(   )

    • A.接地
    • B.接电源
    • C.悬空
    • D.不用
  38. 下面程序段执行的结果是(   )

    char*p="abcde";p+=3;printf("%d",p);

    • A.cde
    • B.de
    • C.bcde
    • D.c
  39. fopen打开新的二进制文件,既能读又能写的方式字符串是(   )

    • A."ab+"
    • B."rb+"
    • C."wb+"
    • D."ab"
  40. C语言中while和do-while循环的主要区别是(   )

    • A.do-while的循环体至少无条件执行一次
    • B.while的循环控制条件比do-while的循环控制条件严格
    • C.do-while允许从外部转到循环体内
    • D.do-while循环体不能是复合语句
  41. 为表示关系x大于等于y且大于等于z,C语言表达式是(   )

    • A.(x>=y)&&(y>= z)
    • B.(x>=y)AND(y>=z)
    • C.(x>=y)&&(x>=z)
    • D.(x>=y)&(y>=z)
  42. 字符'H'的ASCII码值是(   )

    • A.72
    • B.73
    • C.74
    • D.75
  43. 以下集成块型号中属于16位系列单片机型号的是(   )

    • A.8051
    • B.8051AH
    • C.8094BH
    • D.8052BH