一、选择题(每题1分,共10分)
1. 对程序计数器 PC 的操作( )。
A)是自动进行的 B)是通过传送进行的
C)是通过加1指令进行的 D)是通过减1指令进行的
2. 利用下列( )关键字可以改变工作寄存器组
A)interrupt B)sfr C)while D)using
3. 设有int i;则表达式i=1,++i,++i||++i,i的值为( )
A)1 B) 2 C) 3 D)4
4. 计数器T1工作在方式0下,由TH1的8位和TL1的5位组成,其计数范围是( )。
A)0~8191 B)1~8192 C) 0~8192 D)1~4096
5.串行口控制寄存器(SCON) 中的SM0 、SM1位是串行口工作方式选择位,若二者的状态组合是1、0,则对应的波特率为( )。
A)fosc/12 B)可变
C)fosc/64 或者fosc/32 D)fosc/32
6. 外扩程序存储器的低8位地址来自( )口。
A)P0 B)P1 C)P2 D)P3
7. 异步串行通信中,一帧数据中必须包含( )。
A)起始位、校验位和停止位。 B)始位和停止位。
C)校验位和停止位。 D)起始位和校验位。
8. 当需要从MCS-51单片机程序存储器取数据时,采用的指令为( )。
A)MOV A, @R1 B)MOVC A, @A + DPTR
C)MOVX A, @ R0 D)MOVX A, @ DPTR
9. 执行中断返回指令时,要从堆栈中弹出断点地址,以便去执行被中断了的主程序,从堆栈弹出的断点地址送给( )。
A)A B)CY C)PC D)DPTR
10. 中断服务程序的最后一条指令是( )
A)END B)RET C)RETI D)AJMP
二、判断题(每题1分,共10分)
1.特殊功能寄存器的名字,在C51程序中,全部大写。( )
2. “sfr”后面的地址可以用带有运算的表达式来表示。( )
3.在MCS-51系列中,程序存储器被用来存放程序、常数或表格等。( )
4.MCS-51系列单片机有丰富的控制转移指令,这类指令一般不影响标志位。( )
5.Continue 和break都可用来实现循环体的中止。( )
6.直接寻址方式在指令中含有操作数的直接地址,该地址指出了参与操作的数据所在的字节地址或位地址。 ( )
7.串行口控制寄存器(SCON) 中的SM2是多机通信控制位,方式0时,SM2必须置0。( )
8.所谓译码法就是使用译码器对系统的高位地址进行译码,以其译码输出作为存储芯片的片选信号,译码法存储空间连续,能有效地利用空间,适用于大容量多芯片存储器扩展。( )
9. 串行口的工作方式中,方式0和方式3的波特率是固定的,而方式1和方式2的波特率是可变的,由T1的溢出率决定。( )
10. 所有定义在主函数之前的函数无需进行声明。( )
三、填空题(每空1分,共14分)
1.KeiL C51软件中,工程文件的扩展名是__________,编译连接后生成可烧写的文件扩展名是___________。
2.C51中,没有专门的循环语句,我们可以用函数____________完成一个字节的循环左移,用___ _____完成二个字节的循环左移。
3. 是C语言的基本单位。
4.若有说明int i,j,k;则表达式i=10,j=20,k=30,k*=i+j的值为________。
5. C语言中,把多个不同类型的变量结合在一起形成的一个组合型变量,称为 ,简称结构。
6.数组的一个很重要的用途就是 。
7. 比特率的定义为( )。
8. 定时/计数器有( )种工作模式,模式2的名称为( )。
9. 假定计算机字长为8位,试写出122的原码是( )、反码是( )、补码是( )。
四、综合题(每小题10分,共30分)
1.设单片机时钟频率为12MHz,分析下面程序实现什么功能?
#include "reg51.h"
sbit P20=P2^0;
void main()
{
TMOD=0x00;
TH0=(8192-1000)/256;
TL0=(8192-1000)%256;
ET0=1;
EA=1;
TR0=1;
while(1);
}
void T0_srv(void)interrupt 1 using 1
{
TH0=(8192-1000)/256;
TL0=(8192-1000)%256;
P20=!P20;
}
2.简述在Keil中的编译步骤以及Protues中的仿真过程。
3. 试计算下列延时程序的延时时间(设fosc=12MHz)
START:MOV R0,#84H ;1个机器周期数,
MOV R1,#96H ;1个机器周期数,
LOOP1:DJNZ R1,LOOP1 ;2个机器周期数
MOV R1,#64H ;1个机器周期数
DJNZ R0,LOOP1 ;2个机器周期数
RET ;2个机器周期数
五、设计应用题(1小题10分,2、3小题各13分,共36分,答案汇编、C51不限)
1.将R3中的压缩BCD码拆分开来,并分别置于内部RAM 30H、31H低半字节。
2.按图示电路,编程依次从右至左点亮每个LED,每次点亮延时间隔约5ms
3.用定时器T0以工作方式0中断,每计数100,累加器进行加1操作,编写程序。