嵌入式系统(单片机)助理工程师认证考试理论试题A(答案)

更新时间:2023-11-07 22:50:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

) 题答勿内线封密(

号证份身 名姓 业专 校学 )题答勿内线封密(中国电子学会嵌入式(单片机)助理工程师专业技术资格认证考试试题 (11-01)

(考试时间:150分钟)

题号 一 二 三 四 五 总分 分数 一、填空题(将正确答案填入空格中,每空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 位变量对应的地址空间范围是

第 1 页 共 8 页

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

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 )

第 2 页 共 8 页

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

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 )

A.interrupt B.sfr C.while 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 )

A. xdata B. Small

第 3 页 共 8 页

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

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() {

第 4 页 共 8 页

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

}

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、设计运算函数,实现分段函数的功能,返回值为无符号字符型,形参类型为无符

号字符形。 3x+4 (x<10)

函数功能为y= 5x-16 (20>x>=10) 3x/10 (x>=20) (每空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); }

3、P1口接有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

第 5 页 共 8 页

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

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输出。 #include”reg51.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; TH0=0x3c;TL0=0xb0; i--;

if(i==0) {

i=8;

sout=~sout;

} }

}

第 6 页 共 8 页

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

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

VCC 10K×8ULN2804123456781312151431191891716P10P11P12P13P14P15P16P17INT1INT0T1T0EA/VPX1X2RESETRDWR8031AHRXDTXDALE/PPSEN10113029123645P00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P27393837363534333221222324252627281234567810IN 1OUT 1IN 2OUT 2IN 3OUT 3IN 4OUT 4IN 5OUT 5IN 6OUT 6IN 7OUT 7IN 8OUT 8CLAMP1817161514131211R1R2R3R4R5R6R7R8abcdefghabcdefghabcdefghabcdefgh38383839012901290128901274LS138SEL ASEL BSEL CEN 1EN 2AEN 2BY0 OUTY1 OUTY2 OUTY3 OUTY4 OUTY5 OUTY6 OUTY7 OUT15141312111097VCCR91KR101KR111KR121KVCC #include”reg51.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]];

第 7 页 共 8 页

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

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) { } }

第 8 页 共 8 页

本文来源:https://www.bwwdw.com/article/z662.html

Top