单片机复习题(+作业)
一、 填空题
1、AT89S51单片机有 个中断源,有 个中断优先级,其中INT0中断服务程序入口地址为 。
2、AT89S51单片机低128单元随机存贮器,按其用途可划分为 区、
区、 区,它们的地址范围分别为 、 、
,RAM中地址为80H~FFH的为 区。
3、8051单片机复位后SP= , P0= 。
4、单片机8051片内有两个 位的定时/计数器,即T0和T1。
5、单片机8051中的串行通信共有 种方式,其中方式 是用作同步移位寄存器来扩展I/O口的。
6、单片机8051的时钟频率为6MHz,若要求定时1ms,定时/计数器工作于模式1,其定时/计数器的初值为 。
7、KeiL C51软件中,编译连接后生成可烧写的文件扩展名是___________。
8、C51的存储类型有 、bdata 、idata、pdata、 、 。
9、AT89S51单片机的内部硬件结构包括了: 、 、 、和 以及并行I/O口、串行口、中断控制系统、时钟电路、位处理器等部件,其最小系统由51单片机、 电路和 电路组成。
10、执行#define PA8255 XBYTE[0x3F]
PA8255=0x7e后, 单元的内容变为 。
二、选择
1、在MCS-51单片机中,当采用4MHZ晶振频率时,一个机器周期等于 ( )微秒。
A.1 B.2 C.3 D.4
2、单片机的程序计数器PC是16位的,其寻址范围为( )。
A.128 B B.256 B C.8 KB D.64 KB
3、若将字库放在程序存储器中,则存储类型是( )
A. xdata B. code C. pdata D. Bdata
4、MCS-51单片机定时器工作方式0是指( )工作方式。
A.8位 B.8位自动重装 C.13位 D.16位
5、51单片机在同一优先级的中断源同时申请中断时,CPU首先响应( )
A.外部中断0 B.外部中断1 C.定时器0中断 D.定时器1中断
6、T0 设置成计数方式时,外部引脚计数脉冲的最高频率应是晶振频率的( )
A.1/12 B.1/24 C.1/48 D. 1/6
7、串行口工作在方式0时,作同步移位寄存器使用,此时串行数据输入输出端为( )
A.RXD引脚 B.TXD引脚 C.T0引脚 D.T1引脚
8、下列论述哪一项是错误的:( )
A.RS-232是同步传输数据的
B.RS-232编码
是传输距离短的主要原因
C.RS-422、RS-485的电路原理与RS-232基本相同
D.RS-232广泛用于计算机接口
9、51外扩ROM,RAM和I/O口时,它的数据总线是( )
A.P0 B.P1 C.P2 D.P3
10、LCD1602属于那一种液晶显示器( )
A.笔段式液晶显示器 B.字符点阵式显示器 C.图形点阵式液晶显示器
11、对5V电压进行A/D采样,若要求对电压的最小分辩率为5mv,则A/D的转换位数为:( )
A.8位二进制 B.10位二进制 C.12位二进制 D.14位二进制
12、以下哪种方式的接口总线最少?( )
A.SPI B.I2C C.单总线 D.并行通信
13、以下哪项不是SPI总线信号( )
A.SCK B.MISO C.MOSI D.EA
14、可以将P1口的低4位全部置高电平的表达式是( )
A.P1&=0x0f; B.P1|=0x0f; CP1^=0x0f; D.P1=~P1;
15、如果执行IP=0x0A; 则优先级最高的是( )
附IP的定义:×,×,×,PS,PT1,PX1,PT0,PX0
A.外部中断1 B.外部中断0 C.定时/计数器1 D.定时/计数器0
16、汇编用RS1、RS0改变工作寄存器组,C51改变工作寄存器组用关键字( )
A.interrupt B.sfr C.while D.using
17、执行#define PA8255 XBYTE[0x3F]
PA8255=0x7e; 后,下列说法对的是( )
A.片外RAM存储单元003FH的值是7EH
B.PA单元的值为8255H
C.片内RAM存储单元003FH的值是是0x7e
D.PA单元的值为7EH
18、单片机程序
中需要在主程序设计死循环来防止程序跑飞,在C51中实现死循环采用语句( )。
A.while(1); B.for(;;); Cwhile(1);或 for(;;); 都可以 D.前面的语句都不行
19、程序定义如:void T0_svr(void) interrupt 1 using 1
请问下面说法哪个是错误的( )
A.T0_svr 无入口参数,也无返回值
B.T0_svr 是中断函数,中断序号为1,对应汇编入口地址为000BH
C.T0_svr 不能被其他程序调用,但可以被主程序call T0_svr调用
D.T0_svr的工作寄存器为1组,即片内RAM的08H-0FH地址处
20、下面的语句,用于设置定时器0的中断,并使之能的是( )
A.EX0=1; B.ET0=1; C.ES=1; D.EX1=1;
21、MCS-51单片机的字长是( )。
A.2位 B.4位 C.8位 D.16位
22、单片机复位时,程序计数器PC的值为( )。
A.0000H B.0030H C.4000H D.4100H
23、单片机在与外部I/O口进行数据传送时,将使用( )线。
A.
B.
C.
D.
24、 AT89S51单片机中的片内程序存储器空间有多大?( )
A.0 KB B.4 KB C.8 KB D.64KB
25、AT89S51单片机的位寻址区位于内部RAM的( )单元。
A.00H~7FH B.20H~7FH C.00H~1FH D.20H~2FH
26、下列计算机语言中,CPU能直接识别的是( )
A.自然语言 B.高级语言 C.汇编语言 D.机器语言
27、改变工作寄存器组的
是( )
A. using n B. interrupt m C. reentrant D. sbit m
28、若将字库放在程序存储器中,则存储类型是( )
A. xdata B. code C. pdata D. bdata
29、下列类型中,( )是51单片机特有的类型
A. char B. int C. sbit D. float
30、0023H 是51单片机的( )中断入口地址
A.外部中断0 B.外部中断1 C.定时器中断1 D.定时器中断0
31、 T1中断允许控制位为( )
A.ET0 B.ET1 C.ES D.EX1
32、定时器/计数器工作于模式 2 ,在计数溢出时( )
A.计数从零重新开始 B.计数从初值重新开始
C.计数停止 D.由程序设定
33、外部中断 INT0 的触发方式控制位 IT0 置 1 后,其有效的中断触发信号是( )
A.高电平 B.低电平 C.上升沿 D.下降沿
34、串行口工作在方式0时,作同步移位寄存器使用,此时串行数据输入输出端为( )
A.RXD引脚 B.TXD引脚 C.T0引脚 D.T1引脚
35、在异步通信中每个字符由9位组成,串行口每分钟传25000个字符,则对应的波特率为( )b/s。
A.2500 B.2750 C.3000 D.3750
36、当进行点对点通信时,通信距离为3M,则可以优先考虑下了哪种通信方式( )
A.串行口直接相连 B.RS-232 C.RS-422A D.RS-485
37、甲乙双方采用串行口模式1进行通信,采用定时器T1工作在模式2做波特率发生器,波特率为2400bit/s,当系统晶振为6Mhz时,SMOD=1,计数初值为( )
A.F3H B.F6H C.FEH D.E3H
38、51单片机外扩存储器芯片时,4个I/O口中用作地址总线的是( )。
A.P0口和P2 B.P0口 C.P1口和P3口 D.P2口
39、对5V电压进行A/D采样,若要求对电压的最小分辩率为5mv,则A/D的转换位数为:( )
A.8位二进制 B.10位二进制 C.12位二进制 D.14位二进制
40、I2C总线在读或写时,开始的信号为( )
A. SCL为高电平期间,SDA从低变高 B. SCL为高电平期间,SDA从高变低
C. SCL为低电平期间,SDA从低变高 D. SCL为低电平期间,SDA从高变低
三、简答题
1、AT89S51单片机内部包含哪些主要逻辑功能部件?
2、中断响应的条件是什么?
3、在使用51的定时器/计数器前,应对它进行初始化,其步骤是什么?
4、51系列中断系统包括几个中断源和几个中断优先级,写出所有的中断源的符号、名称及其入口地址。
四、读程序写结果
1、#include
sbit P1_0=P1^0;
void delay(unsigned int n)
{ while(n--); }
void int0_svr(void) interrupt 0 using 1
{ delay(1000);
if(INT0= =0){ P1_0=!P1_0;while(INT0==0);}
}
void main()
{
EA=1;EX0=1;
while(1);
}
请说明上面程序的功能:
2、#include
#include
void main(void)
{
unsigned char i;
for(i=0;i<10;i++) {
DBYTE[0x40+i]=DBYTE[0x30+i];
DBYTE[0x30+i]=0; }
while(1);
}
请说明上面程序的功能:
3、说明下列程序的作用是什么?
#include
#define uchar unsigned char
#define uint unsigned int
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--) //i=xms即延时约xms毫秒
for(j=110;j>0;j--);
}
void main()
{
SM0=1;
SM1=0;
TB8=1;
EA=1;
ES=1;
TI=0;
while(1)
{
SBUF=0xaa;
delayms(1);
}
}
void ser0() interrupt 4
{
TI=0;
}
本图用单片机外中断功能改变数码管的显示状态,当无外部中断0中断请求时,主程序运行状态为数码管循环显示0,1,2,3,4,5,6,7,8,当有外部中断0产生时,数码管显示状态改为闪烁显示“8”,共8次后,返回主程序继续执行。请补充完整程序,实现以上功能。(每空2分,共16分)
4、完善程序
本图用单片机外中断功能改变数码管的显示状态,当无外部中断0中断请求时,主程序运行状态为数码管循环显示0,1,2,3,4,5,6,7,8,当有外部中断0产生时,数码管显示状态改为闪烁显示“8”,共8次后,返回主程序继续执行。请补充完整程序,实现以上功能。
#include
unsigned char code table[]={0x3f,0x06,0x5B,0x4f,
0x66,0x6d,0x7d,0x7f};
void delay(unsigned char delaytime)
{
unsigned char i,j;
for(i=0;i<=____________;i++)
{
for(j=0;j<=200;j++);
}
}
void init_tx()
{
EA=_____;
EX0=______;
IP=0x00;
}
void main()
{
unsigned char i;
init_tx();
;
{
for(i=0;i<8;i++)
{
P1= ;
delay(200);
}
}
}
void tx0() interrupt
{
unsigned char i;
P1= ;
delay(200);
for(i=0;i<= ;i++)
{
P1=~P1;
delay(200);
}
}
五、编写程序
1、在51系统中,已知振荡频率是12MHz,用定时器/计数器T0实现从P1.1产生周期是2s的方波(10分)
2、利用89S51的P1.0口线控制一个发光二极管LED,编程用定时器T1定时,实现LED每隔1s交替亮灭,周而复始。设晶振频率fosc=12MHz,要求:
①画出电路原理图,包括时钟电路和复位电路;
②编写程序。(要求用中断方式写程序)
3、设计硬件电路(画出电路图),并编写一程序实现正常工作时P1口流水灯点亮,有中断发生时,蜂鸣器报警,中断结束后报警消除。(20分)
注:程序和图要对应
4、按照下图设计程序,对按键动作进行计数和显示,达到99后重新由1开始计数。
5、(1)ADC 0809 和单片机及集成LED显示的电路连接如图所示,其中ADC0809的CLK接1M赫兹的脉冲信号,输入IN3和可调电位器相连,START和P1.2相连,EOC和P1.1相连,ADDA、ADDB、ADDC分别和、P1.5、P1.6相连;ADC 0809 的八位数字输出端和口相连;
(2)P0口和集成数码管的字段(abcdefgdp)相连,P2.0~P2.3依次和集成数码管的位选段1234相连。
请结合实验及相关知识用C语言编写程序,在四位集成数码管上显示量程为0~5V的三位十进制可调电压,其中集成数码管2显示小数点。结果如下图所示。
已知0——9及小数点的七段码如下:0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x80;并且延时程序已知,为delay(),可直接调用。