《单片机C51技术》复习题.docx

上传人:b****0 文档编号:288322 上传时间:2022-10-08 格式:DOCX 页数:49 大小:29.22KB
下载 相关 举报
《单片机C51技术》复习题.docx_第1页
第1页 / 共49页
《单片机C51技术》复习题.docx_第2页
第2页 / 共49页
《单片机C51技术》复习题.docx_第3页
第3页 / 共49页
《单片机C51技术》复习题.docx_第4页
第4页 / 共49页
《单片机C51技术》复习题.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

《单片机C51技术》复习题.docx

《《单片机C51技术》复习题.docx》由会员分享,可在线阅读,更多相关《《单片机C51技术》复习题.docx(49页珍藏版)》请在冰豆网上搜索。

《单片机C51技术》复习题.docx

《单片机C51技术》复习题

一.填空题(每空1分,共10分)

1.单片机的最小系统除了单片机外还应包括时钟电路.及电源电路。

2.MCS-51单片机具有一个位的CPU和位的程序计数器。

3.MCS-51单片机执行指令所用的时间以机器周期为单位,1个机器周期=时钟周期。

4.如果单片机的晶振频率为12MHZ,那么机器周期为,如果单片机的晶振频率为6MHZ,那么机器周期为。

5.用KeilC51软件编写C语言源文件时应保存为扩展名为的文件,用PROTEUS软件进行仿真时应下载扩展名为的代码文件。

6.编译预处理命令是计算机将C语言编译为机器语言是进行的预处理,编译预处理命令以

开头,末尾不加。

7.C51语言中有字符型、整型、浮点型指针型和位变量等几种基本变量类型,其中,字符型变量所占用的长度为Byte。

整型变量所占用的长度为Byte。

8.若想用uchar代换程序中的unsignedchar则所使用的语句为:

;

9.在编程过程中,变量必须先后使用。

#defineN5语句中N为(常量.变量)。

10.在程序运行中,其值可以改变的量称为变量。

一个变量主要由两部分构成:

一个

是,一个是。

11.65%10=;67/10=;919%100=;0x7f的十进制数为。

12.逻辑表达式的结合性为。

逻辑表达式的值应该是一个逻辑值“真”或“假”,以

代表假,以代表真。

13.函数是具有一定功能的程序段,C语言程序有主函数.和用户自定义函数。

函数的定义不能嵌套。

一段程序只能有且只有一个函数。

14.有两种方法可以终止子函数运行并返回到调用它的函数中:

一是执行到函数的

返回;二是执行到语句返回,并可以带回返回值。

15.在KeilC中,如果被调函数定义在调用函数之后,则在函数调用之前必须进行。

16.unsignedchara[10];定义了一个型数组a,数组长度为,可用的下标为。

unsignedcharm[3][6];定义了一个维数组m,数组元素的个数为。

17.数组定义时方括号中的数值必须是,该数值反映了数组元素的多少。

数组元素的引用采用加下标的方法。

18.P1=0XFE;P1=P1<<2;移位后P1=。

P1=0XF5;P1=P1>>2;移位后P1=。

19.循环结构是程序设计中的一种基本结构,循环结构的语句有:

.和do-while语句。

20.在循环体中加入break语句可以改变循环的运行过程,遇到break;结束。

21.语句for(i=0;i<=5;i++);控制的循环次数为。

语句for(i=5;i<0;i--);控制的循环次数为。

若i=5,语句while(i<6)i++;控制的循环次数为。

22.把P1^1口定义为K1:

;定义一个位变量key1:

;

23.指针是C语言中一个重要的概念,指针型变量以标记。

24.按键消抖一般有两种方法:

和软件消抖,软件消抖中,当单片机检测到有键按下时,可以先越过抖动过程再对按键识别。

25.MCS-51单片机有四个8位双向并行的I/O口,这四个端口既可以字节寻址又可

以,其中内部没有上拉电阻的端口是。

26.数码管按发光二极管连接方式分为共阴极和数码管。

按段数可分为七段数码管和。

27.AT89C51单片机共有5个中断源。

它们分别为2个外部中断:

.,3个

片内中断:

T0.T1和。

28.T0、T1除了有定时功能外还有。

29.利用中断服务程序时除了要开各自的中断允许外,还要开。

30.T0、T1有4种工作模式,其中具有自动重装载功能的是。

31.定时计数器T0有四种工作模式。

其中模式0由TH0的和TL0的构成13位计数器。

32.定时计数器T0/T1有四种工作模式。

其中模式0为计数器,模式1为计数器,模式2和模式3为计数器。

33.T0定时器/计数器的溢出中断标志位是,T1定时器/计数器的运行控制位是,串口的中断允许控制位是。

34.AT89C51单片机中断源分为级,由中断优先寄存器IP设置,系统复位后所有中断源被设置为。

35.C51提供的中断函数语法为:

返回值类型函数名(形参)interruptn,n对应中断源的编号,若n=4,则对应的中断源为。

36.根据信息的传送方向,串行通信可以分为单工.和3种。

89C51有一个可编程的串行通信接口。

37.CPU与其他设备之间的通信有和串行通信,串行通信又分为同步和串行通信。

38.AT89C51单片机的串行口通过编程可以有4种工作方式。

其中,方式0和方式2的波特率是,方式1和方式3的波特率可变,由定时器决定。

39.若i=5,执行语句b=i++;b=,i=。

二.读程序

1.unsignedcharx,,y,z;

x=x&0x0f;

if(x>=10)

{

z=1;

y=x-9;

}

else

{

z=0;

y=x;

}

当x=0x45时,程序执行完毕后,x=;y=,z=

当x=0x48时,程序执行完毕后,x=;y=,z=

2.unsignedcharx,y;

if(x>30)

if(x<45)

y=3;

elsey=1;

elsey=5;

当x的值为20时,y=;当x=40时,y=;当x=45时,y=。

3.unsignedcharx,y;

if(x>=30&&x<=45)

y=3;

elseif(x<30)y=1;

elsey=5;

当x的值为20时,y=;当x=40时,y=;当x=50时,y=。

4.unsignedcharx,y;

if(x>45||x<30)

if(x<30)y=1;

elsey=5;

elsey=3;

当x的值为20时,y=;当x=40时,y=;当x=50时,y=。

5.intx,y,z;

x=0x46;

x|=0x15;

y=x/10;

z=x%10;

x=;y=,z=

6.unsignedcharx=1,y,a[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}

a[0]=;a[x]=;a[2*y]=

7.intx,y;

while(x<10)

{

x++;

y+=x;

}

8.intx,y=0;

for(x=0;x<10;x++)

y+=x;

x=;y=。

9.intx=0,y=0;

while(x<10)

{

x++;

y+=x;

}

x=;y=。

10.intx,y=0;

for(x=0;x<10;x++)

{

y*=x;

}

x=;y=。

11.intx,y=1;

for(x=1;x<3;x++)

{

y*=x;

}

x=;y=。

12.intx=0,y=1;

while(x<4)

{

x++;

y*=x;

}

x=;y=。

13.intx=0,y=0;

while(x<10)

{

x++;

y*=x;

}

x=;y=。

14.unsignedcharx,y,a[5]={23,67,12,89,43};

x=0;

for(y=0;y<5;y++)

{

if(x>a[y])

x=a[y];

}

x=;y=。

15.unsignedcharx,y,a[5]={23,67,12,89,43};

x=100;

for(y=0;y<5;y++)

{

if(x

x=a[y];

}

x=;y=。

16.unsignedcharx,y,a[5]={23,67,12,89,43};

x=12;

for(y=0;y<5;y++)

{

if(a[y]==x)

break;

}

x=;y=。

17.unsignedcharx,y,a[5]={23,67,12,89,43};

x=15;

for(y=0;y<5;y++)

{

if(a[y]==x)

break;

}

x=;y=。

18.unsignedcharx=15,y=0,a[5]={23,67,12,89,43};

while(a[y]!

=x)y++;

x=;y=。

19.unsignedcharx=15,y=0,a[5]={15,15,12,89,43};

while(a[y]==x)y++;

x=;y=。

20.voiddelay()

{inti,j,k;

for(i=1;i<8;i++)

for(j=20;j>0;j--)

for(k=248;k>0;k--);

}

main()

{inti,temp;

while

(1)

{P2=0xff;

delay();

P2=0xfe;

temp=0xfe;

for(i=0;i<8;i++)

{P2=temp<

delay();

}

}

}

i=6时,P2=。

并说明其程序功能。

21.#include

charb[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

voiddelay()

{inti,j;

for(i=20;i>0;i--)

for(j=248;j>0;j--);

}

voidmain()

{inta;

a=0;P2=0X3F;P3=0X3F;

while

(1)

{if(P1!

=0xff)

delay();

if(P1!

=0xff)

{

switch(P1)

{case0xfe:

a++;P2=b[a/10];P3=b[a%10];break;

case0xfd:

a--;P2=b[a/10];P3=b[a%10];break;

case0xfb:

a=0;P2=b[a/10];P3=b[a%10];break;

}

if(a==99)

a=0;

while(P1!

=0xff);

}}}

分别说明P1为0xfe时功能,P1为0xfd时功能

,P1为0xfb时功能。

22.#include

inta[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

b[2]={0x01,0x02};

intc=60,i,x[2],j,k;

main()

{TMOD=0x10;

TH1=0X9E;

TL1=0X58;

EA=1;

ET1=1;

TR1=1;

while

(1)

{

x[0]=c/10;

x[1]=c%10;

for(i=0;i<2;i++)

{P3=b[i];

P2=a[x[i]];

for(k=120;k>0;k--);

}

}}

voidds()interrupt3

{TH1=0X9E;

TL1=0X58;

j++;

if(j==40)

{j=0;

c--;

}

}

定时时间为,中断源编号为,并简要说明其功能

23.#include

main()

{

TMO

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1