当前位置:文档之家› 单片机应用技术(c语言版 第3版)[王静霞]_习题答案

单片机应用技术(c语言版 第3版)[王静霞]_习题答案

习题 11.1 单项选择题(1) A (2)C (3)C1.2 填空题(1)硬件系统、软件系统(2)时钟电路、复位电路(3)XTAL1、XTAL2、RESET、EA(4)晶振1.3 问答题什么是单片机它由哪几部分组成什么是单片机应用系统答:单片微型计算机(Single Chip Microcomputer)简称单片机,是指集成在一个芯片上的微型计算机,它的各种功能部件,包括CPU(Central Processing Unit)、存储器(memory)、基本输入/输出(Input/Output,简称I/O)接口电路、定时/计数器和中断系统等,都制作在一块集成芯片上,构成一个完整的微型计算机。

单片机应用系统是以单片机为核心,配以输入、输出、显示等外围接口电路和控制程序,能实现一种或多种功能的实用系统。

1.4 上机操作题(1)参考程序:#include <reg51.h> //包含头文件reg51.h,定义了51单片机的专用寄存器//函数名:delay//函数功能:实现软件延时//形式参数:无符号整型变量i,控制空循环的循环次数//返回值:无void delay(unsigned int i) //延时函数{unsigned int k;for(k=0;k<i;k++);}void main() //主函数{while(1){P1=0x00;delay(20000); //调用延时函数,实际参数为20000P1=0xff;delay(20000); //调用延时函数,实际参数为20000}}(2)参考程序:#include <reg51.h> //包含头文件reg51.h,定义了51单片机的专用寄存器//函数名:delay//函数功能:实现软件延时//形式参数:无符号整型变量i,控制空循环的循环次数//返回值:无void delay(unsigned int i) //延时函数{unsigned int k;for(k=0;k<i;k++);}void main() //主函数{while(1){P1=0x55;delay(20000); //调用延时函数,实际参数为20000P1=0xff;delay(20000); //调用延时函数,实际参数为20000}}习题 22.1 单项选择题(1)C (2)A (3)A (4)A (5)A (6)D (7)C (8)A (9)A (10)C 2.2 填空题(1)外部程序存储器、外部数据存储器、内部程序存储器、内部数据存储器(2)程序存储器(3)工作寄存器组、位寻址区、用户RAM(4)1us、2us(5)按键复位、上电复位(6)2、高2.3 回答题(1)P3口的第二功能是什么答:P3口各引脚的第二功能如下表。

(2)画出单片机时钟电路,并指出石英晶体和电容的取值范围。

答:单片机时钟电路单片机时钟电路如下图。

一般地,电容C1和C2取30 pF左右;晶体振荡器,简称晶振,频率范围是1.2~12 MHz。

晶体振荡频率越高,系统的时钟频率也越高,单片机的运行速度也就越快。

在通常情况下,使用振荡频率为6 MHz或12 MHz的晶振。

如果系统中使用了单片机的串行口通信,则一般采用振荡频率为11.0592 MHz的晶振。

(3)什么是机器周期机器周期和晶振频率有何关系当晶振频率为6MHz时,机器周期是多少答:51单片机采用定时控制方式,有固定的机器周期。

规定一个机器周期的宽度为6个状态,即12个振荡脉冲周期,因此机器周期就是振荡脉冲的十二分频。

当晶振频率为6MHz时,机器周期是2us。

(4)51单片机常用的复位方法有几种画电路图并说明其工作原理。

答:2种,上电复位和按键复位。

单片机常见的复位电路下图所示。

(a)为上电复位电路。

它利用电容充电来实现复位,在接电瞬间,RST端的电位与V CC相同,随着充电电流的减少,RST的电位逐渐下降。

只要保证RST为高电平的时间大于两个机器周期,便能正常复位。

(b)为按键复位电路。

该电路除具有上电复位功能外,还可以按图2.5(b)中的RESET键实现复位,此时电源V CC经两个电阻分压,在RST端产生一个复位高电平。

图1.23中的信号灯控制电路就采用按键复位电路。

(5)51单片机片内RAM的组成是如何划分的各有什么功能答:8051的内部RAM共有256个单元,通常把这256个单元按其功能划分为两部分:低128单元(单元地址0x00~0x7F)和高128单元(单元地址0x80~0xFF)。

片内RAM的低128个单元用于存放程序执行过程中的各种变量和临时数据,称为DATA区。

内部RAM 的高128单元地址为0x80~0xFF,是供给专用寄存器SFR(Special Function Register,也称为特殊功能寄存器)使用的。

(6)51单片机有多少个特殊功能寄存器它们分布在什么地址范围答:51单片机有21个可寻址的专用寄存器,它们不连续地分布在片内RAM的高128单元中,尽管其中还有许多空闲地址,但用户不能使用。

另外还有一个不可寻址的专用寄存器,即程序计数器PC,它不占据RAM单元,在物理上是独立的。

(7)简述程序状态寄存器PSW各位的含义,单片机如何确定和改变当前的工作寄存器组。

答:程序状态字PSW是一个8位寄存器,用于存放程序运行中的各种状态信息。

PSW的各位定义如下表所示。

CY(PSW.7):进位标志位。

存放算术运算的进位标志。

AC(PSW.6):辅助进位标志位。

存放算术运算中低4位向高4位进位或借位。

F0(PSW.5):用户标志位。

供用户定义的标志位,需要利用软件方法置位或复位。

RS1和RS0(PSW.4,PSW.3):工作寄存器组选择位。

上电或复位后,RS1 RS0=00。

OV(PSW.2):溢出标志位。

存放带符号数加减运算的溢出位。

F1(PSW.1):保留未使用。

P(PSW.0):奇偶标志位。

存放累加器ACC数据的二进制形式中1的个数的奇偶性。

一般用于异步串行通信中的奇偶校验。

(8)C51编译器支持的存储器类型有哪些答:单片机的存储器结构包括4个物理存储空间,C51编译器对这4个物理存储空间都能支持。

常见的C51编译器支持的存储器类型如下表所示。

(9)当单片机外部扩展RAM和ROM时,P0口和P2口各起什么作用答:P0口可以分时复用作为8位数据总线和低8位地址线,P2口作为高8位地址线。

(10)在单片机的C语言程序设计中,如何使用SFR和可寻址位答:采用sfr和sbit来定义专用寄存器和位。

2.4 上机操作题(1)修改程序ex2_1.c,使得蜂鸣器发出有变化的报警声。

提示:修改延时参数,声音就会有改变。

(2)利用单片机控制蜂鸣器和发光二极管,设计一个声光报警系统。

提示:增加一个LED发光二极管,采用一个I/O口来控制,当报警时,发出声音的同时,灯也闪动。

(3)利用单片机控制按键和发光二极管,设计一个单键控制单灯亮灭的系统。

参考电路如下图:参考程序如下://功能:单键控制单灯程序#include <reg51.h>sbit P1_0=P1^0; //定义P1.0引脚名称为P1_0sbit P3_0=P3^0; //定义P3.0引脚名称为P3_0void main() //主函数{bit led; //定义位变量ledP3_0=1; //P3.0作为输入口,置1led=P3_0; //读P3.0if(led==1) P1_0=1; //判断按键是否按下,没有按下,灯熄灭if()led==0 P1_0=0; //按键按下,灯点亮}(4)利用单片机控制4个按键和4个发光二极管,设计一个4人抢答器,要求当有某一参赛者首先按下抢答开关时,相应的LED灯亮,此时抢答器不再接受其他输入信号,需按复位按键才能重新开始抢答。

参考电路如下图。

参考程序如下。

//功能:实用4路抢答器程序#include <reg51.h>sbit P3_0=P3^0; //定义P3.0引脚名称为P3_0sbit P3_1=P3^1; //定义P3.1引脚名称为P3_1sbit P3_2=P3^2; //定义P3.2引脚名称为P3_2sbit P3_3=P3^3; //定义P3.3引脚名称为P3_3void main() //主函数{bit flag; //定义位变量flagwhile(!flag){if(!P3_0){P1=0xfe;flag=1;}else if(!P3_1){P1=0xfd;flag=1;}else if(!P3_2){P1=0xfb;flag=1;}else if(!P3_3){P1=0xf7;flag=1;}while(flag);}}习题 33.1 单项选择题(1)C (2)A (3)A (4)D (5)D (6)D (7)A (8)B (9)C (10)A(11)void delay (unsigned int i)、delay、delay3.2 填空题(1)main (2)sbit FLAG=P3^1; (3)sfr (4)顺序、选择和循环(5)表达式和分号(6)if、switch (7)do-while语句、while语句(8)无限次(9)10000 (10)unsigned char(11)指定该变量在51单片机硬件系统中所使用的存储区域,并在编译时准确的定位。

(12)’\0’3.3 上机操作题(1)感应灯控制系统设计。

实现当照明灯感应到有人接近时自动开灯,当人离开后自动关灯的功能。

提示:采用热释电红外传感器模块和发光二极管模拟电灯(2)自动滑动门开关控制系统设计。

实现当滑动玻璃门感应到有人接近时自动开门,当人离开后自动关门的功能。

提示:采用热释电红外传感器模块和电机模拟自动开关门习题 44.1 单项选择题(1)C (2)A (3)C (4)B (5)B (6)D (7)B(8)C(9)D (10)D (11)C4.2 填空题(1)led[k] delay(); (2)’\0’(3)程序存储器4.3 在任务10的图4.1中,如果直接将共阳极数码管换成共阴极数码管,能否正常显示为什么应采取什么措施答:不能正常显示。

因为共阳极数码管和共阴极数码管的显示码不同,二者是反相关系。

修改程序,或者将显示码数组disp中的显示码换成共阴极显示码,或者在程序中增加取反操作即可。

4.4 七段LED静态显示和动态显示在硬件连接上分别具有什么特点,实际设计时应如何选择使用答:静态显示是指使用数码管显示字符时,数码管的公共端恒定接地(共阴极)或+5 V电源(共阳极)。

将每个数码管的8个段控制引脚分别与单片机的一个8位I/O端口相连。

只要I/O端口有显示字型码输出,数码管就显示给定字符,并保持不变,直到I/O端口输出新的段码。

相关主题