单片机技术及C 程序设计 第 版 答案 唐颖 阮越Word格式文档下载.docx

上传人:b****6 文档编号:8659158 上传时间:2023-05-12 格式:DOCX 页数:36 大小:29.09KB
下载 相关 举报
单片机技术及C 程序设计 第 版 答案 唐颖 阮越Word格式文档下载.docx_第1页
第1页 / 共36页
单片机技术及C 程序设计 第 版 答案 唐颖 阮越Word格式文档下载.docx_第2页
第2页 / 共36页
单片机技术及C 程序设计 第 版 答案 唐颖 阮越Word格式文档下载.docx_第3页
第3页 / 共36页
单片机技术及C 程序设计 第 版 答案 唐颖 阮越Word格式文档下载.docx_第4页
第4页 / 共36页
单片机技术及C 程序设计 第 版 答案 唐颖 阮越Word格式文档下载.docx_第5页
第5页 / 共36页
单片机技术及C 程序设计 第 版 答案 唐颖 阮越Word格式文档下载.docx_第6页
第6页 / 共36页
单片机技术及C 程序设计 第 版 答案 唐颖 阮越Word格式文档下载.docx_第7页
第7页 / 共36页
单片机技术及C 程序设计 第 版 答案 唐颖 阮越Word格式文档下载.docx_第8页
第8页 / 共36页
单片机技术及C 程序设计 第 版 答案 唐颖 阮越Word格式文档下载.docx_第9页
第9页 / 共36页
单片机技术及C 程序设计 第 版 答案 唐颖 阮越Word格式文档下载.docx_第10页
第10页 / 共36页
单片机技术及C 程序设计 第 版 答案 唐颖 阮越Word格式文档下载.docx_第11页
第11页 / 共36页
单片机技术及C 程序设计 第 版 答案 唐颖 阮越Word格式文档下载.docx_第12页
第12页 / 共36页
单片机技术及C 程序设计 第 版 答案 唐颖 阮越Word格式文档下载.docx_第13页
第13页 / 共36页
单片机技术及C 程序设计 第 版 答案 唐颖 阮越Word格式文档下载.docx_第14页
第14页 / 共36页
单片机技术及C 程序设计 第 版 答案 唐颖 阮越Word格式文档下载.docx_第15页
第15页 / 共36页
单片机技术及C 程序设计 第 版 答案 唐颖 阮越Word格式文档下载.docx_第16页
第16页 / 共36页
单片机技术及C 程序设计 第 版 答案 唐颖 阮越Word格式文档下载.docx_第17页
第17页 / 共36页
单片机技术及C 程序设计 第 版 答案 唐颖 阮越Word格式文档下载.docx_第18页
第18页 / 共36页
单片机技术及C 程序设计 第 版 答案 唐颖 阮越Word格式文档下载.docx_第19页
第19页 / 共36页
单片机技术及C 程序设计 第 版 答案 唐颖 阮越Word格式文档下载.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机技术及C 程序设计 第 版 答案 唐颖 阮越Word格式文档下载.docx

《单片机技术及C 程序设计 第 版 答案 唐颖 阮越Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机技术及C 程序设计 第 版 答案 唐颖 阮越Word格式文档下载.docx(36页珍藏版)》请在冰点文库上搜索。

单片机技术及C 程序设计 第 版 答案 唐颖 阮越Word格式文档下载.docx

5.设(PSW)=88,则Cy=( 1 ),P=( 0 )。

选择的是第

(1)组通用寄存器,该组寄存器在片内RAM中的地址为(08H~0FH)。

6.单片机的特殊功能寄存器只能采用(直接)寻址方式。

7.如果8051单片机采用6MHz的晶振,那么该系统一个机器周期为( 2 )微秒(μs),一个状态周期(或称时钟周期)为(2/6)微秒(μs)。

8.8051单片机采用12MHz的晶振频率,设无外扩存储器,单片机运行时ALE引脚输出的正脉冲的频率是( 2 )MHz。

2-2选择题

1.若RS0=0,RS1=0,则当前使用的工作寄存器组为(A )。

A.第0组B.第1组C.第2组D.第3组

2.若Fosc=12MHz,则8051的机器周期为(B)。

A.0.5?

sB.1?

sC.2?

sD.4?

s

3.堆栈遵循的原则是(B )。

A.先进先出,后进先出B.先进后出,后进先出

C.先进先出,后进后出D.先进后出,后进后出

4.8051有( B )个可编程的16位定时/计数器。

A.1B.2C.3D.4

5.MCS-5l单片机中不是准双向I/O接口的是( A )。

A.P0B.P1C.P2D.P3

6.在MCS-51系统中扩展一片2732(EPROM存储芯片,容量4K×

8)需要(C )根地址线。

A.10B.11C.12D.13

7.8051单片机有( C )个中断源。

A.3B.4C.5D.6

8.片内RAM的20H~2FH为位寻址区,所包含的位地址是(B )。

A.00H~20HB.00H~7FHC.20H~2FHD.00H~FFH

10.8051单片机复位后的P0~P3的值为(D)。

A.00HB.0FHC.F0HD.FFH

2-3简答题(略)

1.简述在MCS-51系列单片机中哪些地址单元具有位地址?

2.MCS-51系列单片机的P0~P3口有何使用特点?

各自的第二功能是哪些?

3.决定程序执行顺序的寄存器是哪个?

它是多少位的寄存器?

是不是特殊功能寄存器?

4.MCS-51系列单片机的PSW寄存器各位标志的意义是什么?

若PSW=91H,请问其包含的信息是什么?

5.MCS-51系列单片机由哪几个功能部件组成?

6.MCS-51系列单片机的存储器结构有何特点?

存储器的空间如何划分?

各地址空间的寻址范围是多少?

7.MCS-51系列单片机的控制总线主要信号有哪些?

各信号的作用如何?

8.MCS-51系列单片机有哪几种低功耗工作模式?

简述这几种低功耗工作模式特点及退出该低功耗模式的方法。

9.MCS-51系列单片机在存储器组织上分为四个物理上相互独立的空间,单片机是如何实现对这四个空间进行访问的?

习题4部分习题解

4-1C语言有哪些特点?

4-2有哪些数据类型是MCS-51单片机直接支持的?

4-3C51特有的数据结构类型有哪些?

4-4C51中存储类型有几种,它们分别表示的存储器区域是什么?

4-5C51中,bit位与sbit位有什么区别?

4-6在C51中,通过绝对地址来访问存储器的有几种?

4-7在C51中,中断函数与一般函数有什么不同?

4-8按给定存储器类型和数据类型,写出下列变量的说明形式。

(1)在data区定义字符变量va11。

解:

chardataval1;

(2)在idata区定义整型变量va12。

intidataval2;

(3)在xdata区定义无符号字符数组va13[4]。

externcharxdatava13[4];

(4)在xdata区定义一个指向类型的指针px。

uintxdata*px;

(5)定义可寻址位变量flag。

bitbdataflag;

(6)定义特殊功能寄存器变量p3。

sfrP3=0xB0;

(7)定义特殊功能寄存器变量SCON。

sfrSCON=0xB8;

(8)定义16位的特殊功能寄存器T0。

sfr16T0=0x8C8A;

4-9写出下列关系表达式或逻辑表达式的结果,设a=3,b=4,c=5。

(1)a+b>

c&

&

b==c

a+b>

b==c不成立,结果为假(0)

(2)a‖b+c&

b-c

a‖b+c&

b-c表达式为非零,逻辑结果为1

(3)!

(a>

b)&

!

c‖1

!

c‖1表达式为非零,逻辑结果为1

(4)!

(a+b)+c?

1&

b+c/2

b+c/2表达式为非零,逻辑结果为1

4-10在C51语言中,设变量a,b都为unsignedchar类型,a=78(十进制),b=209(十进制),用十六进制表示以下表达式的计算结果:

a&

b=ox40;

a^b=0xdf;

b>

>

2=0x34;

~a=0xb1;

b)?

a:

b=0xd1。

4-11C51程序是基于MCS-51系列单片机的C程序,在C51程序中,int型数据所能表示的数值范围是多少?

-32768~+32767

4-13用分支结构编程实现,当输入“1”显示“A”,输入“2”显示“B”,输入“3”显示“C”,输入“4”显示“D”,输入“5”结束。

switch(grade)

case'

1'

:

printf("

A\n"

);

break;

2'

B\n"

3'

C\n"

4'

D\n"

5'

END\n"

default:

error"

\n)

}

4-14输入三个无符号字符数据,要求按由大到小的顺序输出。

#include<

reg52.h>

//包含特殊功能寄存器库

stdio.h>

//包含I/O函数库

voidmain(void)//主函数

{

inta,b,c,t;

//定义整型变量a,b,c,t

SCON=0x52;

//串口初始化

TMOD=0x20;

TH1=0XF3;

TR1=1;

printf("

inputa,b,c:

\n"

//输出提示信息

scanf("

%d,%d,%d"

&

a,&

b,&

c);

//输入a,b和c的值,无符号数据。

printf("

//输出换行

if(a>

b)

{t=a;

a=b;

b=t;

c)

a=c;

c=t;

if(b>

{t=b;

b=c;

}

c,b,a);

while

(1);

//结束

4-15用三种循环结构编写程序实现输出1到10的平方之和。

1、通过while语句实现计算并输出1到10的平方之和。

//包含特殊功能寄存器库

//包含I/O函数库

voidmain(void)//主函数

inti,s=0;

//定义整型变量i和s

i=1;

//串口初始化

TH1=0Xf3;

while(i<=10)//累加1~10的平方之和在s中

{

s=s+i*i;

i++;

}

%d\n"

s);

while

(1);

2、通过do...while语句实现计算并输出1到10的平方之和。

voidmain(void)//主函数

//定义整型变量i和s

i=1;

SCON=0x52;

//串口初始化

TMOD=0x20;

TH1=0Xf3;

TR1=1;

do

//累加1~10的平方之和在s中

}while(i<=10);

3、用for语句实现计算,并输出1到10的平方之和。

{

//串口初始化

for(i=1;

i<=10;

i++)

s=s+i*i;

//累加1~10的平方之和在s中

d\n"

4-16对一个5个元素的无符号字符数组按由小到大顺序排序。

inti,j,min,temp,a[5];

//定义整型变量x和y

input:

for(i=0;

i<

5;

i++)

{printf("

a[%d]="

i);

%d"

a[i]);

5-1;

i++)//排序

{min=i;

for(j=i;

j<

j++)

if(a[min]>

a[j])

min=j;

temp=a[j];

a[j]=a[min];

a[min]=temp;

i++)//输出

printf("

%5d"

a[i]);

4-17用指针实现,输入3个无符号字符数据,按由大到小的顺序输出。

int*p,*p1,*p2,*p3;

//定义指针变量

//输入a,b和c的值,无符号数据。

p1=&

a;

p2=&

b;

p3=&

c;

{p=p1;

p1=p2;

p2=p;

p1=p3;

p3=p;

{p=p2;

p2=p3;

*p3,*p2,*p1);

4-18有3个学生,每个学生包括学号、姓名、成绩,要求找出成绩最高的学生的姓名和成绩。

Structstudent

{charnum[6];

charname[8];

intscore[4];

}stu[3];

inti,tem,max,maxi;

input3studentinformation:

//提示输入信息

for(i=0;

3;

{

name:

"

//提示输入姓名

%s,stu[i].name);

studentid:

//提示输入学号

%s,stu[i].num);

score:

//提示输入分数

%d,stu[i].score);

max=0;

maxi=0;

{tem=0;

tem=stu[i].score;

if(tem>

max)

{max=tem;

maxi=i;

student%s,maxscore:

%d."

stu[maxi].name.num,max);

//打印

习题5部分习题解

5-15单片机用内部定时方法产生频率为10kHz方波,设单片机晶振频率fosc为12MHz,请编程实现。

频率10kHz的方波,其周期为:

T=1/10k=100us,定时时间为50us。

设选用定时器0,方式2,10kHz方波从P1.0口输出。

C51参考程序:

#include<

reg51.h>

//包含特殊功能寄存器库

sbitP1_0=P1^0;

voidmain()

TMOD=0x02;

//使用定时器T0的模式2

TH0=256-50;

//定时器T0的高8位赋初值

TL0=256-50;

//定时器T0的低8位赋初值

EA=1;

//开总中断

ET0=1;

//定时器T0中断允许

TR0=1;

//启动定时器T0

voidtime0_int(void)interrupt1//中断服务程序

P1_0=!

P1_0;

//取反

5-16使用定时器0以定时方法在P1.0输出周期为400?

s,占空比为20%的矩形脉冲,设单片机晶振频率fosc为12MHz,编程实现。

其周期为400μs,占空比为20%的矩形脉冲,即定时时间分别为输出高电平80μs,输出低电平320μs(是输出高电平的4倍)。

根据题意,选用定时器0,方式1,从P1.0口输出。

sbitf;

sbiti;

//使用定时器T0的模式1

TH0=256-80;

TL0=256-80;

f=1;

if(f==1)

P1_0=0;

F=0;

else

(i++;

if(i==4)

P1_0=1;

f-1;

5-23参照图5-2电路图,编程实现灯亮移位程序,要求8只发光二极管每次点亮一个,点亮时间为250ms,顺序是从下到上一个一个地循环点亮。

设fosc=6MHz。

fosc=6MHz,每个机器周期=2us。

#include<

unsignedcharcodetable[]={0xfe,0xfd,0xfb,0xf7,

0xef,0xdf,0xbf,0x7f};

unsignedchari,j;

voidmain(void)

{TMOD=0x01;

TH0=(65536-25000)/256;

TL0=(65536-25000)%256;

EA=1;

ET0=1;

i=0;

j=0;

TR0=1;

voidtime0_int(void)interrupt1

j++;

if(j==5)

{j=0;

if(i!

=7)

P1=table[i];

}

else

{P1=table[i];

i=0;

5-24利用单片机的串行口扩展并行I/O接口,控制16个发光二极管依次发光,请画出电路图且编程实现。

电路图如下所示:

//包含特殊功能寄存器库

#include<

intrins.h>

//包含函数_nop_()定义的头文件

sbitP1_7=P1^7;

unsignedcharcodetable[]={0x01,0x00,0x02,0x00,0x04,0x00,0x08,0x00,

0x00,0x10,0x00,0x20,0x00,0x40,0x00,0x80};

unsignedcharj,i;

SCON=0x00;

j=0;

for(;

;

P1_7=0;

_nop_();

//延时一个机器周期

_nop_();

//延时一个机器周期,保证清0完成

P1_7=1;

SBUF=table[j];

j++;

while(!

TI){;

TI=0;

SBUF=table[j];

for(i=0;

=3000;

i++){;

}//延时

if(j==16)j=0;

习题7部分习题解

7-5修改本章例7-8的程序,用数组表的方式编程实现在图7-18所示电路上动态显示“1234”。

#defineucharunsignedchar

#defineuintunsignedint

ucharcode[4]={0xfe,0xfd,0xfb,0xf7};

//位选码表

uchartel[4]={0x06,0x5b,0x4f,0x66};

//共阴极1,2,3,4字段吗

voiddelay(void)//延时函数,延时一段时间

uchari,j;

250;

for(j=0;

j++);

voidmain(void)

{uchark,d;

while

(1)//无限循环

for(k=0;

k<

4;

k++)

P2=code[k];

//送出位选码

P0=tel[k];

delay();

//延时

7-6参照图7-18动态显示接口电路,试编写一段程序,在6个数码管上从右到左依次显示一个“3”字,直至出现6个“3”字为止。

设数码管增至6个,为共阴极。

#defineuintunsignedint

ucharcode[6]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0};

//位选码表

voiddelay(uinti)//延时函数

{uintj;

for(j=0;

i;

j++){}

{uchark,d;

P0=0x4f;

//3的字段码

for(k=0;

6;

P2=code[k];

//送出位选码

del

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2