国电子学会嵌入式(单片机)助理工程师专业技术资格认证考试试题

-回复 -浏览
楼主 2020-12-12 08:56:02
举报 只看此人 收藏本贴 楼主

一、填空题(将正确答案填入空格中,每空1分,共35分)

得分

评阅人



1、MCS51单片机的最大程序寻址空间为 64K KB,空间的地址范围为0000H-FFFFH,单片机复位后程序入口地址为 0000H 。外部中断0的入口地址为 0003H ,T1定时/计数器的中断入口地址为 001BH 。

2、PSW中RS1=1,RS0=0,R3对应的字节地址为 13H

3、7AH对应的十进制数为 122 D,对应的二进制数为01111010 B。

4、MCS51单片机的仅使用内部ROM时,EA引脚应接 电平。

5、当MCS51单片机RST引脚出现 2个 机器周期以上高电平时单片机可有效复位,复位后SP= 07H ,PC= 0000H ,P1= FFH

6、MCS-51单片机的低功耗方式有 待机掉电

7、MCS-51单片机的常用复位方式有 手动复位上电复位

8、80C51单片机的串行口控制寄存器器是 SCON ;串行口工作在方式2时SM0、SM1设置为 10 ,当设置允许串行口接收串行输入数据时必须将 REN 位设置为1。

9、把数据存入堆栈称为 入栈 ,从堆栈取出数据称为 出栈 ,从堆栈取出数据遵循 先进后出、后进先出 的原则。

10、LED数码管按结构分为 共阴共阳 两种形式。

11、键盘按键的检测过程中消除抖动常用的方法有 RS触发器滤波RC滤波 软件延时

12、DAC0832的参考电压为+5V,则分辩率为 5/256 V。

13、矩阵键盘中为了识别键盘上的闭合键,通常采用两种方法 逐行扫描法 线反转法

14、C51中定义的位变量的关键字是 bit 位变量对应的地址空间范围是 0x20-0x2f

15、unsigned char 定义的变量取值范围 0-255 ,unsigned int定义的变量取值范围 0-65535

二、选择题(共20个题,每小题 1分,共20分)

得分

评阅人



1、当单片机外接数据存储器时P2口作为 。 (C )

A.低8位地址线 B.准双向I/O端口

C.高8位地址线 D.8位数据线

2、单片机晶振频率为12MHZ时,单片机定时/计数器可以计数的最大脉冲频率为 。 ( C )

A.2MHZ B.1MHZ

C.500KHZ D.250KHZ

3、在单片机片外扩展一片2764需要 根地址线。 ( C )

A.8根 B.11根

C.13根 D.15根

4、下列变量定义不正确的是 。 ( C )

A.unsigned int a ; B.unsigned char data i;

C.unsigned char code distab[10]; D.int s=100;

5、单片机的堆栈空间设置在 。 ( C )

A.片内ROM B.片外ROM

C.片内RAM D.片外RAM

6、只使用定时器T0工作在计数方式1时,启动不受外部引脚控制TMOD应设置为 。 ( B )

A.50H B.05H

C.11H D.15H

7、MCS—51的串行数据缓冲器SBUF用于 ( B )
A.存放运算中间结果 B.存放待发送或已接收到的数据

C.暂存数据和地址 D.存放待调试的程序

8、8051单片机中,唯一一个用户可使用的16位寄存器是 。 ( D )
A.PSW B.ACC C. SP D.DPTR

9、单片机中PUSH和POP指令常用来 ( C )

A.保护断点 B.保护现场

C.保护现场,恢复现场 D.保护断点,恢复断点

10、下列指令中不影响PC内容的是 ( A )

A.MOVC A,@A+PC B.RETI

C.RET D.ACALL

11、可以实现P1口输出各位内容循环左移的语句是 。 ( A )

A.P1=P1<<1|P1>>7; B.P1=P1>>7;

C.P1=P1<<1; D.P1=P1<<7|p1>>1;

12、单片机的P0、P1口作输入用途之前必须 ( A )
A.在相应端口先置1 B.在相应端口先置0

C.外接高电平 D.外接上拉电阻

13、存储16×16点阵的一个汉字信息,需要的字节数为 。 ( A )

A.32 B.64 C.128 D.256

14、I2C总线的起始条件是: ( D )

A当SCL为低电平时,SDA发生由高到低的跳变

B当SCL为低电平时,SDA发生由低到高的跳变

C当SCL为高电平时,SDA发生由低到高的跳变

D当SCL为高电平时,SDA发生由高到低的跳变

15、利用下列 关键字可以改变工作寄存器组 ( D )

Ainterrupt B.sfr

Cwhile D.using

16、使用宏来访问绝对地址时,一般需包含的库文件是( B )

A.reg51.h B.absacc.h

C. intrins.h D.startup.h

17、在串行口工作于移位寄存器方式时,其接收由 来启动( A )

A. REN B. RI

C. REN和RI D. TR

18、C51不包含的存储器模式( A )

Axdata B. Small

C. compact D. large

19、DS18B20是 ( C )

A.I2 C总线串行接口芯片 B.SPI串行接口芯片

C. 单总线串行接口芯片 D.UART串行接口芯片

20、具有模数转换功能的芯片是 ( A )

A.ADC0809 B.DAC0832 C.MAX813 D.PCF8563

三、判断题(共10个题,在正确的后面括号中对打√,否则打×,每小题1分,共10分)

得分

评阅人



1若一个函数的返回类型为void,则表示其没有返回值。

2、SFR中凡是能被8整除的地址,都具有位寻址能力。

3、MCS-51单片机的程序存储器只能用来存放程序的。 ×

4、串口中断标志由硬件清0。 ×

5、MCS—51的产品8051与8031片内无ROM。 ×

6、C51中通用指针变量占用2个字节。 ×

7、C51中的中断服务程序函数必须是无返回值和无参数的函数。

8、C51定义为idata的RAM地址范围为0x00-0x7f。 ×

9、汇编指令RET与RETI的功能完全相同。 ×

10、main()函数可以放在程序中的任何位置,程序总是从main()函数开始执行。(

四、程序填空题(共3题,共15分)

得分

评阅人



1、在单片机的P1口连接有8个发光二极管,改变P1口的状态即可控制发光管发光还是不发光(‘0’发光,‘1’不发光)。编程实现8个发光管按以下规律变化:总共9种状态,每隔一秒变化一次,9次一个循环:仅1号灯亮、仅2号灯亮……仅8号灯亮、全亮。(每空1分)

void Delay1s(void); //1秒延时函数

void main()

{

unsigned char code vucCodeDpcode[9]={0x0FE, 0x0FD, 0xFB , 0x0F7, 0x0EF,

0x0DF, 0xBF , 0x7F, 0x00};

unsigned char data vucDataIndex = 0 ;

while(1){

P1 = vucCodeDpcode[vucDataIndex] ;

Delay1s();

vucDataIndex ++;

if(vucDataIndex==9) vucDataIndex=0 ;

}

}

2、设计运算函数,实现分段函数的功能,返回值为无符号字符型,形参类型为无符号字符形。


函数功能为

(每空2分)

unsigned char func1(unsigned char x )

{

unsigned char y;

if( x<10 ) y=3*x+4;

else if (x<20) y=5*x-16;

else y= 3*x/10 ;

return(y);

}

3P1口接有8个发光二极管,如图所示,编写程序使单一灯每隔1S左移一位,不断循环。设振荡频率为fOSC=6MHZ,利用定时器T0、方式1下结合软件计数完成定时。(每空1分)

ORG 0000H ;单片机复位后程序入口地址

LJMP MAIN

ORG 000BH

LJMP CTC0 ;调整到CTC0处执行T0中断程序


MAIN:MOV TMOD,#01H ;指令功能 设置T0工作在方式1 定时方式

MOV TH0,#3CH

MOV TL0,#0B0H

SETB EA ;指令功能 设置总的中断允许

SETB ET0 ;指令功能 设置T0中断允许

SETB TR0 ;指令功能 启动T0定时

MOV P1,#0FEH ;指令功能 设置初始值

MOV R3,#0FEH

MOV R2,#10

SJMP $

CTC0:PUSH ACC ;堆栈保护现场

PUSH PSW

MOV TH0,#3CH ;重新赋初始值

MOV TL0,#0B0H

DJNZ R2,DONT 指令功能 判断10次定时次数是否满

MOV R2,#10

MOV A,R3

RL A ;修改发光二极管点亮的位置

MOV P1,A

MOV R3,A

DONT: POP PSW 指令功能 恢复PSW的内容

POP ACC

RETI ;中断返回

END

五、编程应用题共2题,每题10分,共20分)

得分

评阅人



1利用89S51单片机产生一个周期为800ms的方波信号,占空比为50%,已知晶振频率为12MHz,要求用T0定时,并通过P2.0输出。

#includereg51.h

sbit sout=P2^0;

void main( )

{

unsigned char data i=8;

TMOD=0x01;

TH0=0x3c;

TL0=0xb0;

TR0=1;

while(1)

{

while(TF0==0);

TF0=0;

i--;

if(i==0)

{

i=8;

sout=~sout;

}

}

}

289S51单片机外接一片采用动态扫描方式通过ULN2804驱动四个共阳极数码管,动态扫描时间由定时器T0确定,P0口做I/O口,显示内容在数组dismap[4]中,编写T0中断响应程序,每次显示一个数码管,循环显示; 每个数码管的显示时间为1ms,外接晶振为12MHz;并完成main()中的T0中断初始化及启动T0。


#includereg51.h

unsigned char code distab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

unsigned char dismap[4]={0,1,2,3};

void timer0( ) interrupt 1 using 1

{

/********以下为T0中断响应程序内容 ************/

static unsigned char data local=0;

TL0=0x18;

TH0=0xfc;

switch(local)

{

case 0: P0=distab[dismap [0]];

P2=0x00;

local=1;

break;

case 1: P0=distab[dismap [1]];

P2=0x01;

local=2;

break;

case 2: P0=distab[dismap [2]];

P2=0x02;

local=3;

break;

case 3: P0=distab[dismap [3]];

P2=0x03;

local=0;

break;

default:break;

}

/********以上为T0中断响应程序内容 ************/

}

void main()

{

/***************以下为T0的中断初始化设置及启动T0定时器*************/

TMOD=0x01;

IE=0x82;

TL0=0x18;

TH0=0xfc;

TR0=1;

/***************T0的中断初始化设置及启动T0定时器程序结束*************/

while(1)

{

}

}

喜欢本文的亲们欢迎转载点赞

| 单 | 片| 机 | 精 | 讲 | 吴| 鉴 | 鹰 |

微信第一单片机分享 最受欢迎图文公号

微信号:wujianying_danpianji

《2015.7.28》● 技术源于积累,成功来自执着——单片机精讲吴鉴
我要推荐
转发到

友情链接