最新工信部单片机考试题A带答案.docx

上传人:b****5 文档编号:7777272 上传时间:2023-01-26 格式:DOCX 页数:8 大小:20.19KB
下载 相关 举报
最新工信部单片机考试题A带答案.docx_第1页
第1页 / 共8页
最新工信部单片机考试题A带答案.docx_第2页
第2页 / 共8页
最新工信部单片机考试题A带答案.docx_第3页
第3页 / 共8页
最新工信部单片机考试题A带答案.docx_第4页
第4页 / 共8页
最新工信部单片机考试题A带答案.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

最新工信部单片机考试题A带答案.docx

《最新工信部单片机考试题A带答案.docx》由会员分享,可在线阅读,更多相关《最新工信部单片机考试题A带答案.docx(8页珍藏版)》请在冰豆网上搜索。

最新工信部单片机考试题A带答案.docx

最新工信部单片机考试题A带答案

 

9月27日工信部单片机考试题A带答案

A卷

选择题(每题2分,共60分)

1.8051单片机的一个机器周期由(D)个时钟周期构成。

A.3B.4

C.5D.6

2.51系列单片机可以寻址(A)的程序存储空间。

A.64KBB.32KB

C.8KBD.4KB

3.下列指令哪个不可以用作分支结构(C)。

A.JBB.JC

C.ADDD.JZ

4.在下面程序运行后,RAM存储单元20H~24H中数值分别变为(A)。

01ORG0000H

02JMPSTART

03ORG1000H

04START:

MOVA,#04H;累加器A赋值

05MOV20H,#20H;RAM的20H单元赋值

06XCHA,20H;直接寻址整字节交换指令

07MOVR2,#05H;寄存器R2赋值

08XCHA,R2;寄存器寻址整字节交换指令

09MOV21H,A;保存数据05H到RAM的21H单元

10MOV10H,#06H;RAM单元赋值

11MOVR0,#10H;寄存器R0赋值

12XCHA,@R0;寄存器间接寻址整字节交换指令

13MOV22H,A;保存数据06H到RAM的22H单元

14MOVA,#00H;累加器A赋值

15MOV11H,#0FH;RAM单元赋值

16MOVR1,#11H;寄存器R1赋值

17XCHDA,@R1;半字节交换指令

18MOV23H,A;保存数据到RAM的23H单元,数据应该为0FH

19MOVA,#0FH;累加器A赋值

20SWAPA;累加器高低字节交换指令

21MOV24H,A;保存数据到RAM的23H单元,数据应该为F0H

22RET

23END

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.ifB.case

C.returnD.ch

6.以下哪个运算符的优先级最高(A)。

A.()B.+

C.&&D.%

7.下面这段程序的运行结果为(A)。

01#include//头文件

02voidmain()//主函数

03{

04inta,b,c,d,e;//声明变量

05floatf1,f2;

06a=7;//变量赋值

07b=9;

08c=!

a;//计算逻辑表达式

09d=a||b;

10f1=2.3;

11f2=5.7;

12e=(f1!

=f2);

13printf("c=%d,d=%d,e=%d\n",c,d,e);//输出结果

14}

A.c=0,d=1,e=1B.c=1,d=1,e=1

C.c=0,d=1,e=0D.c=1,d=0,e=0

8.break语句不能应用于那个语句内部(A)。

A.ifB.for

C.whileD.do-while

9.下列哪个不可以用于声明数组(D)。

A.charB.int

C.floatD.void

10.如果p是指向数组ch的指针变量,设n为一个正整数,则下述运算那个不符合C51语言的规则(D)。

A.p+nB.p++

C.p--D.p*n

11.位结构中的数据类型可以为(A)。

A.unsignedB.float

C.voidD.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.intB.sfr

C.bdataD.code

20.T1不可以工作如下那个模式(D)。

A.工作模式0B.工作模式1

C.工作模式2D.工作模式3

21.以下哪个工作模式为16位计数器方式(B)。

A.工作模式0B.工作模式1

C.工作模式2D.工作模式3

22.单片机的外部中断源

由(C)来实现。

A.P3.0B.P3.1

C.P3.2D.P3.3

23.外部中断0的入口地址为(C)。

A.0081HB.0082H

C.0083HD.0084H

24.波特率倍增位对那个模式无效()。

A.模式0B.模式1

C.模式2D.模式3

25.如下那个寄存器可位寻址(A)。

A.SCONB.PCON

C.SBUFD.以上都可以

26.如下哪些方法可以实现按键去抖(多选)(ABD)。

A.软件延时B.电容式硬件消抖

C.电阻式硬件消抖D.双稳态电路消抖

27.键盘程序设计需要注意的问题为(多选)(ABCD)。

A.按键消抖B.读取键值

C.多按键处理D.避免重复响应

28.7段共阴极LED数码管显示字符“0”的段码为(B)。

A.C0HB.3FH

C.00HD.AAH

29.静态驱动多个LED数码管有哪些(多选)(ABD)。

A.直接驱动B.串行接口扩展I/O接口驱动

C.动态扫描D.使用外部扩展RAM地址来驱动

30.当方向位R/

为(A)时,表示主器件读取从器件中的数据。

A.1B.0

C.2D.3

编程题(每题10分,共40分)

1、编写一个单片机硬件加法的程序,从计算机串口输入两个整型数据,在单片机中相加,然后向计算机返回计算结果。

#include//头文件

#include

#include

voidmain(void)//主函数

{

inta;

intb;

longc;

SCON=0x50;//串口模式1,允许接收

TMOD|=0x20;//初始化T1为定时功能,模式2

PCON|=0x80;//设置SMOD=1

TL1=0xF4;//波特率4800bit/s,初值

TH1=0xF4;

IE|=0x90;//中断

TR1=1;//启动定时器

printf("Entertwonumber\n");

scanf("%d%d",&a,&b);//输入整型数据

c=a+b;

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

}

2、使用嵌套汇编的方法编写一个可以精确控制P2端口引脚电平延时的程序。

01#include//头文件

02voidmain()//主函数

03{

04while

(1)

05{

06P2=0x00;//P2端口输出

07#pragmaasm//嵌入汇编语句

08NOP

09NOP

10SETBP2.0//置P2.0为高电平

11NOP

12NOP

13#pragmaendasm//结束汇编语句嵌入

14P2=0x00;//P2端口输出

15}

16}

3、编写一个成绩等级的程序。

要求输入学生的成绩范围为0~100,当为90~100时,输出字符A;当为80~90时,输出字符B;当为60~80时,输出字符C。

当小于60时,输出字符D。

答:

#include//头文件

voidmain()//主函数

{

floatscore=92;

if(score>=90)

{

printf(“A”);

}

elseif(score<90&&score>=80)

{

printf(“B”);

}

elseif(score<80&&score>60)

{

printf(“C”);

}

else

{

printf(“D”);

}

}

4、开发一个单片机程序,接收计算机通过串口发送的数据流,将其中的小写字符转换为大写字符,并回送给计算机。

答:

#include//头文件

#include

#include

voidmain(void)//主函数

{

chara;

charc;

SCON=0x50;//串口模式1,允许接收

TMOD|=0x20;//初始化T1为定时功能,模式2

PCON|=0x80;//设置SMOD=1

TL1=0xF4;//波特率4800bit/s,初值

TH1=0xF4;

IE|=0x90;//中断

TR1=1;//启动定时器

while

(1)

{

printf("Enterachar\n");

scanf("%c",&a);//输入数据

c=toupper(a);

printf("a=%c,c=%c\n",a,c);

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1