《单片机原理及接口技术》试卷(闭卷A卷) 一.单项选择题(每题1分,共20分) 1.DPTR为( C) A.程序计数器 B.累加器 C.数据指针寄存器 D.程序状态字寄存 2.PSW的Cy位为( B) A.辅助进位标志 B.进位标志 C.溢出标志位 D.奇偶标志位 3.MCS-51单片机片内ROM容量为( A ) A.4KB B.8KB C.128B D.256B 4.MCS-51单片机片要用传送指令访问片外数据存储器,它的指令操作码助记符是以下哪个?( B) A.MUL B.MOVX C.MOVC D.MOV 5.direct表示( C ) A.8位立即数 B.16位立即数 C.8位直接地址 D.16位地址 6.堆栈指针SP是一个( A )位寄存器 A.8 B.12 C.13 D.16 7.定时器/计数器工作方式选择中,当M1M0=11时,其工作方式为( D ) A.方式0 B.方式1 C.方式2 D.方式3 8.定时器/计数器工作方式0为( A) A.13位定时/计数方式 B.16位定时/计数方式 C.8位可自动装入计数初值方式 D.2个8位方式 9.MCS-51的最小时序定时单位是( A ) A.节拍 B.状态 C.机器周期 D.指令周期 10.#data表示( A ) A.8位直接地址 B.16位地址 C.8位立即数 D.16位立即数 11.主频为12MHz的单片机它的机器周期为(C ) A.1/12微秒 B.0.5微秒 C.1微秒 D.2微秒 12.MCS-51单片机在同一优先级的中断源同时申请中断时,CPU首先响应( A )。 A.外部中断0 B.外部中断1 C.定时器0中断 D.定时器1中断 13.MOVC A ,@A+PC指令对于源操作数的寻址方式是( D ) A.寄存器间接寻址 B.寄存器寻址 C.立即寻址 D.变地寻址 14. 为( C ) A.复位信号输入端 B.地址锁存允许信号输出端 C.程序存储允许输出端 D.程序存储器地址允许输入端 15.MCS-51单片机的一个机器周期由(D )个振荡脉冲组成。 A.2 B.4 C.6 D.12 16.MOVC A ,#30H指令对于源操作数的寻址方式是( C ) A.寄存器间接寻址 B.寄存器寻址 C.立即寻址 D.变地寻址 17.计算机能直接识别的语言为( B) A.汇编语言 B. 机器语言 C.自然语言 D.硬件和软件 18.PSW的OV位为( C ) A.辅助进位标志 B.进位标志 C.溢出标志位 D.奇偶标志位 19.在单片机中( A )为程序存储器。 A.ROM B. RAM C.EPROM D.EEPROM 20.能用紫外线光擦除ROM中的程序的只读存储器为( C ) A.掩膜ROM B.PROM C.EPROM D.EEPROM 二、填空(每题 2 分,共 10 分) 1、从单片机系统扩展的角度出发,单片机的引脚可以构成三总线结构,即 数据 总线、地址总线和 控制 总线。 2、ALE信号的作用是 锁存低8位地址信号(或 低8位地址锁存) 。 3、MOV A,40H 指令对于源操作数的寻址方式是 直接 寻址。 4、PC存放的内容为: 下一条要执行的指令的地址 。 5、MCS-8051系列单片机字长是 8 位,有 40 根引脚。 三、简答题:(共 25 分) 1、什么是单片机?简述单片机的应用领域。(15 分) 答:单片微型计算机简称单片机,它是把微型计算机的各个功能部件:中央处理器CPU、随机存储器RAM、只读存储器ROM、定时/计数器及I/O接口电路等集成在一块芯片上,构成一个完整的微型计算机。 应用领域:(1)单片机在智能仪器仪表中的应用;(2)单片机在工业控制中的应用;(3)单片机在计算机网络与通信技术中的应用;(4)单片机在日常生活及家电中的应用。 2、什么叫中断?中断有什么特点?(10 分) 答:(1)“中断”是指计算机在执行某段程序的过程中,由于计算机系统内、外的某种原因,当出现CPU以外的某种情况时,由服务对象向CPU发出中断请求信号,要求CPU暂时中断当前程序的执行而转去执行相应的处理程序,待处理程序执行完毕后,再返回继续执行原来被中断的程序。 (2)特点:分时操作;实时处理;故障处理。 四.已知:(R1)=32H,(30H)=AAH,(31H)=BBH,(32H)=CCH,求执行下列指令后累加器A.50H.R6.32H.和P1口中的内容。(10分) MOV A ,#30H MOV 50H ,A MOV R6 ,31H MOV @R1 ,31H MOV P1,32H 解:上述指令执行后的操作结果为: A=30H (50H)=30H R6=BBH (32H)=BBH P1=BBH 五、分析执行如下指令后,PSW中的Cy 、Ac、OV、P各为多少? A中的结果用十进制表示是多少?(15分) MOV A,#85H ADD A,#0AEH Cy=1,Ac=1,OV=1,P=0。(A)=51 六、编程题: (每小题10分,共20分) 1、在程序中定义一个0——9的平方表,利用查表指令找出累加器A=03的平方值。(10分) 解:编程如下: ORG 0050H MOV DPTR,#TABLE ;表首地址→DPTR MOV A,# ;03→A MOVC A ,@A+DPTR ;查表指令,25→A SJMP $ ;程序暂停 TABLE:DB 0,1,4,9,16,25,36,49,64,81 ;定义0——9平方表 END 2、试采用两种方法编制程序,开放定时器T1的溢出中断。(10分) 解:编程如下: MOV IE,88H 或者MOV A8H,88H 或者 SETB EA SETB ET1
# include "reg51.h" // 包含头文件
#define uchar unsigned char
void delay02s(void) // 延时0.2s子程序
{
unsigned char i,j,k;
for ( i=2;i>0;i-- )
for (j=200;j>0;j-- )
for (k=250;k>0;k-- );
}
void main (void) // 主函数
{
uchar i,j;
while (1) // 死循环
{
j=0x01; // j初始化为0x01,左移初始值
for(i=0;i<8;i++) // for循环语句,完成8个循环
{
P1= ~ j; // 对变量j 中的值按位取反后,从P1口输出
delay02s( ); // 延时0.2s
j= j<<1; // 左移1位
}
j=0x80; // 设置右移初始值j为0x80
for (i=0;i<8;i++)
{
P1= ~ j;
delay02s( );
j= j>>1; // 右移1位
}
}
}