资源描述
9月27日工信部单片机考试题A带答案
精品文档
A卷
选择题(每题2分,共60分)
1.8051单片机的一个机器周期由( D )个时钟周期构成。
A.3 B.4
C.5 D.6
2.51系列单片机可以寻址( A )的程序存储空间。
A.64KB B.32KB
C.8KB D.4KB
3.下列指令哪个不可以用作分支结构( C )。
A.JB B.JC
C.ADD D.JZ
4.在下面程序运行后,RAM存储单元20H~24H中数值分别变为( A )。
01 ORG 0000H
02 JMP START
03 ORG 1000H
04 START: MOV A,#04H ;累加器A赋值
05 MOV 20H,#20H ;RAM的20H单元赋值
06 XCH A,20H ;直接寻址整字节交换指令
07 MOV R2,#05H ;寄存器R2赋值
08 XCH A,R2 ;寄存器寻址整字节交换指令
09 MOV 21H,A ;保存数据05H到RAM的21H单元
10 MOV 10H,#06H ;RAM单元赋值
11 MOV R0,#10H ;寄存器R0赋值
12 XCH A,@R0 ;寄存器间接寻址整字节交换指令
13 MOV 22H,A ;保存数据06H到RAM的22H单元
14 MOV A,#00H ;累加器A赋值
15 MOV 11H,#0FH ;RAM单元赋值
16 MOV R1,#11H ;寄存器R1赋值
17 XCHD A,@R1 ;半字节交换指令
18 MOV 23H,A ;保存数据到RAM的23H单元,数据应该为0FH
19 MOV A,#0FH ;累加器A赋值
20 SWAP A ;累加器高低字节交换指令
21 MOV 24H,A ;保存数据到RAM的23H单元,数据应该为F0H
22 RET
23 END
A.0x04H、0x05H、0x06H、0x0FH和0xF0H
B.0x01H、0x05H、0x01H、0x0FH和0xF0H
C.0x04H、0x05H、0x02H、0x0FH和0xF0H
D.0x04H、0x05H、0x06H、0x0FH和0xFFH
5.以下哪个不是C51的关键字( D )。
A.if B.case
C.return D.ch
6.以下哪个运算符的优先级最高( A )。
A.() B.+
C.&& D.%
7.下面这段程序的运行结果为( A )。
01 #include <stdio.h> //头文件
02 void main() //主函数
03 {
04 int a,b,c,d,e; //声明变量
05 float f1,f2;
06 a=7; //变量赋值
07 b=9;
08 c=!a; //计算逻辑表达式
09 d=a||b;
10 f1=2.3;
11 f2=5.7;
12 e=(f1!=f2);
13 printf("c=%d,d=%d,e=%d\n",c,d,e); //输出结果
14 }
A.c=0,d=1,e=1 B.c=1,d=1,e=1
C.c=0,d=1,e=0 D.c=1,d=0,e=0
8.break语句不能应用于那个语句内部( A )。
A.if B.for
C.while D.do-while
9.下列哪个不可以用于声明数组( D )。
A.char B.int
C.float D.void
10.如果p是指向数组ch的指针变量,设n为一个正整数,则下述运算那个不符合C51语言的规则( D )。
A.p+n B.p++
C.p-- D.p*n
11.位结构中的数据类型可以为( A )。
A.unsigned B.float
C.void D.struct
12.结构指针变量成员的引用方法可以为(多选)( ABCD )。
A.(*结构指针变量). 成员名 B.*结构指针变量. 成员名
C.结构指针变量->成员名 D.以上三种都可以
13.struct关键字可以用于定义(多选)( AB )。
A.结构 B.位域
C.枚举 D.联合
14.联合变量、枚举变量和位域变量的声明方法为(多选)( ABCD )。
A.先定义后声明 B.定义同时声明
C.直接声明 D.以上都可以
15.使用指针作为函数参数,在函数执行后,实参变量( A )。
A.变了 B.不变
C.有可能变 D.有可能不变
16.整型变量的循环左移函数为( A )。
A._irol_ B._lrol_
C._iror_ D._cror_
17.双分支条件编译指令不包括( B )。
A.#if指令 B.#error指令
C.#else指令 D.#endif命令
18.#line指令用于改变( A )。
A.当前行的行号 B.当前列的列号
C.函数名称 D.以上都不对
19.下述那个不是C51的存储类型( A )。
A.int B.sfr
C.bdata D.code
20.T1不可以工作如下那个模式( D )。
A.工作模式0 B.工作模式1
C.工作模式2 D.工作模式3
21.以下哪个工作模式为16位计数器方式( B )。
A.工作模式0 B.工作模式1
C.工作模式2 D.工作模式3
22.单片机的外部中断源由( C )来实现。
A.P3.0 B.P3.1
C.P3.2 D.P3.3
23.外部中断0的入口地址为( C )。
A.0081H B.0082H
C.0083H D.0084H
24.波特率倍增位对那个模式无效( )。
A.模式0 B.模式1
C.模式2 D.模式3
25.如下那个寄存器可位寻址( A )。
A.SCON B.PCON
C.SBUF D.以上都可以
26.如下哪些方法可以实现按键去抖(多选)( ABD )。
A.软件延时 B.电容式硬件消抖
C.电阻式硬件消抖 D.双稳态电路消抖
27.键盘程序设计需要注意的问题为(多选)( ABCD )。
A.按键消抖 B.读取键值
C.多按键处理 D.避免重复响应
28.7段共阴极LED数码管显示字符“0”的段码为( B )。
A.C0H B.3FH
C.00H D.AAH
29.静态驱动多个LED数码管有哪些(多选)( ABD )。
A.直接驱动 B.串行接口扩展I/O接口驱动
C.动态扫描 D.使用外部扩展RAM地址来驱动
30.当方向位R/为( A )时,表示主器件读取从器件中的数据。
A.1 B.0
C.2 D.3
编程题(每题10分,共40分)
1、编写一个单片机硬件加法的程序,从计算机串口输入两个整型数据,在单片机中相加,然后向计算机返回计算结果。
#include<string.h> //头文件
#include<stdio.h>
#include <reg51.h>
void main(void) //主函数
{
int a;
int b;
long c;
SCON=0x50; //串口模式1,允许接收
TMOD|=0x20; //初始化T1为定时功能,模式2
PCON|=0x80; //设置SMOD=1
TL1=0xF4; //波特率4800bit/s,初值
TH1=0xF4;
IE|=0x90; //中断
TR1=1; //启动定时器
printf ("Enter two number\n");
scanf ("%d %d", &a, &b); //输入整型数据
c=a+b;
printf ("a=%d,b=%d,c=%ld\n",a,b,c);
}
2、使用嵌套汇编的方法编写一个可以精确控制P2端口引脚电平延时的程序。
01 #include <REG51.h> //头文件
02 void main() //主函数
03 {
04 while(1)
05 {
06 P2=0x00; //P2端口输出
07 #pragma asm //嵌入汇编语句
08 NOP
09 NOP
10 SETB P2.0 //置P2.0为高电平
11 NOP
12 NOP
13 #pragma endasm //结束汇编语句嵌入
14 P2=0x00; //P2端口输出
15 }
16 }
3、编写一个成绩等级的程序。要求输入学生的成绩范围为0~100,当为90~100时,输出字符A;当为80~90时,输出字符B;当为60~80时,输出字符C。当小于60时,输出字符D。
答:
#include <stdio.h> //头文件
void main( ) //主函数
{
float score=92;
if(score>=90)
{
printf(“A”);
}
else if(score<90 && score>=80)
{
printf(“B”);
}
else if(score<80 && score>60)
{
printf(“C”);
}
else
{
printf(“D”);
}
}
4、开发一个单片机程序,接收计算机通过串口发送的数据流,将其中的小写字符转换为大写字符,并回送给计算机。
答:
#include<string.h> //头文件
#include<stdio.h>
#include <reg51.h>
void main(void) //主函数
{
char a;
char c;
SCON=0x50; //串口模式1,允许接收
TMOD|=0x20; //初始化T1为定时功能,模式2
PCON|=0x80; //设置SMOD=1
TL1=0xF4; //波特率4800bit/s,初值
TH1=0xF4;
IE|=0x90; //中断
TR1=1; //启动定时器
while(1)
{
printf ("Enter a char\n");
scanf ("%c", &a); //输入数据
c= toupper(a);
printf ("a=%c,c=%c \n",a,c);
}
}
收集于网络,如有侵权请联系管理员删除
展开阅读全文