单片机习题答案_第1页
单片机习题答案_第2页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

习题11.1单项选择题(1)A(2)C(3)C1.2填空题(1)硬件系统、软件系统(2)时钟电路、复位电路(3)XTAL1、XTAL2、RESET、EA(4)晶振1.3问答题什么是单片机?它由哪几部分组成?什么是单片机应用系统?答:单片微型计算机(SingleChipMicrocomputer)简称单片机,是指集成在一个芯片上的微型计算机,它的各种功能部件,包括CPU(CentralProcessingUnit)、存储器(memory)、基本输入/输出(Input/Output,简称I/O)接口电路、定时/计数器和中断系统等,都制作在一块集成芯片上,构成一个完整的微型计算机。单片机应用系统是以单片机为核心,配以输入、输出、显示等外围接口电路和控制程序,能实现一种或多种功能的实用系统。1.4上机操作题1)参考程序:#include<reg51.h>〃包含头文件reg51.h,定义了51单片机的专用寄存器//函数名:delay//函数功能:实现软件延时//返回值:无voiddelay(unsignedinti){unsignedintk;for(k=0;k<i;k++);//返回值:无voiddelay(unsignedinti){unsignedintk;for(k=0;k<i;k++);}voidmain(){while(1){P1=0x00;delay(20000);P1=0xff;delay(20000);//延时函数//主函数//调用延时函数,实际参数为20000//调用延时函数,实际参数为200002)参考程序:#include<reg51.h>〃包含头文件reg51.h,定义了51单片机的专用寄存器

〃函数名:delay//函数功能:实现软件延时//返回值:无voiddelay(unsignedinti){unsignedintk;for(k=0;k<i;k++);//返回值:无voiddelay(unsignedinti){unsignedintk;for(k=0;k<i;k++);}voidmain(){while(1){P1=0x55;delay(20000);P1=0xff;delay(20000);}//延时函数//主函数//调用延时函数,实际参数为20000//调用延时函数,实际参数为20000习题22.1单项选择题1)C(2)A(3)A(4)A(5)A(6)D(7)D(8)A(9)A(10)C2.2填空题(1)时钟电路、复位电路(2)XTAL1、XTAL2、RESET、EA(3)外部程序存储器、外部数据存储器、内部程序存储器、内部数据存储器(4)晶振(5)程序存储器(6)工作寄存器组、位寻址区、用户RAM(7)1us、2us(8)按键复位、上电复位(9)2、高2.3回答题(1)P3口的第二功能是什么?答:P3口各引脚的第二功能如下表。第一功能第二功能第二功能信号名称P3.0RXD串行数据接收P3.1TXD串行数据发送P3.2INTO外部中断0申请P3.3INT1外部中断1申请P3.4TO定时/计数器0的外部输入P3.5T1定时/计数器1的外部输入P3.6WR外部RAM或外部I/O写选通P3.7RD外部RAM或外部I/O读选通画出单片机时钟电路,并指出石英晶体和电容的取值范围。答:单片机时钟电路单片机时钟电路如下图。W5II一般地,电容C和C取30pF左右;晶体振荡器,简称晶振,频率范围是1.2〜12MHz。晶体振荡频12率越高,系统的时钟频率也越高,单片机的运行速度也就越快。在通常情况下,使用振荡频率为6MHz或12MHz的晶振。如果系统中使用了单片机的串行口通信,则一般采用振荡频率为11.0592MHz的晶振。什么是机器周期?机器周期和晶振频率有何关系?当晶振频率为6MHz时,机器周期是多少?51单片机采用定时控制方式,有固定的机器周期。规定一个机器周期的宽度为6个状态,即12个振荡脉冲周期,因此机器周期就是振荡脉冲的十二分频。当晶振频率为6MHz时,机器周期是2us。51单片机常用的复位方法有几种?画电路图并说明其工作原理。答:2种,上电复位和按键复位。单片机常见的复位电路下图所示。V,<3)<3)It电星悅电胳按置良住电路为上电复位电路。它利用电容充电来实现复位,在接电瞬间,RST端的电位与VCc相同,随着充电电流的减少,RST的电位逐渐下降。只要保证RST为高电平的时间大于两个机器周期,便能正常复位。为按键复位电路。该电路除具有上电复位功能外,还可以按图2.5(b)中的RESET键实现复位,此时电源Vcc经两个电阻分压,在RST端产生一个复位高电平。图1.23中的信号灯控制电路就采用按键复位电路。(5)51单片机片内RAM的组成是如何划分的?各有什么功能?答:8051的内部RAM共有256个单元,通常把这256个单元按其功能划分为两部分:低128单元(单元地址0x00〜0x7F)和高128单元(单元地址0x80〜OxFF)。片内RAM的低128个单元用于存放程序执行过程中的各种变量和临时数据,称为DATA区。内部RAM的高128单元地址为0x80〜OxFF,是供给专用寄存器SFR(SpecialFunctionRegister,也称为特殊功能寄存器)使用的。(6)51单片机有多少个特殊功能寄存器?它们分布在什么地址范围?答:51单片机有21个可寻址的专用寄存器,它们不连续地分布在片内RAM的高128单元中,尽管其中还有许多空闲地址,但用户不能使用。另外还有一个不可寻址的专用寄存器,即程序计数器PC,它不占据RAM单元,在物理上是独立的。简述程序状态寄存器PSW各位的含义,单片机如何确定和改变当前的工作寄存器组。答:程序状态字PSW是一个8位寄存器,用于存放程序运行中的各种状态信息。PSW的各位定义如下表所示。位地址0xD70xD60xD50xD40xD30xD20xD10xD0位名称CYACF0RS1RS0OVF1PCY(PSW.7):进位标志位。存放算术运算的进位标志。AC(PSW.6):辅助进位标志位。存放算术运算中低4位向高4位进位或借位。F0(PSW.5):用户标志位。供用户定义的标志位,需要利用软件方法置位或复位。RS1和RS0(PSW.4,PSW.3):工作寄存器组选择位。上电或复位后,RS1RS0=00。OV(PSW.2):溢出标志位。存放带符号数加减运算的溢出位。F1(PSW.1):保留未使用。P(PSW.0):奇偶标志位。存放累加器ACC数据的二进制形式中1的个数的奇偶性。一般用于异步串行通信中的奇偶校验。C51编译器支持的存储器类型有哪些?答:单片机的存储器结构包括4个物理存储空间,C51编译器对这4个物理存储空间都能支持。常见的C51编译器支持的存储器类型如下表所示。存储器类型描述data直接访问内部数据存储器,允许最快访问(128B)bdata可位寻址内部数据存储器,允许位与字节混合访问(16B)idata间接访问内部数据存储器,允许访问整个内部地址空间(256B)pdata“分页”外部数据存储器(256B)xdata外部数据存储器(64KB)code程序存储器(64KB)当单片机外部扩展RAM和ROM时,P0口和P2口各起什么作用?答:P0口可以分时复用作为8位数据总线和低8位地址线,P2口作为高8位地址线。在单片机的C语言程序设计中,如何使用SFR和可寻址位?答:采用sfr和sbit来定义专用寄存器和位。2.4上机操作题修改程序ex2_l.c,使得蜂鸣器发出有变化的报警声。提示:修改延时参数,声音就会有改变。利用单片机控制蜂鸣器和发光二极管,设计一个声光报警系统。提示:增加一个LED发光二极管,采用一个I/O口来控制,当报警时,发出声音的同时,灯也闪动。利用单片机控制按键和发光二极管,设计一个单键控制单灯亮灭的系统。参考电路如下图:

14.0V<TKA-5Vw.*1S9C51KSr.'YPUXTAl14.0V<TKA-5Vw.*1S9C51KSr.'YPUXTAl.2KTAI.]l^.[l参考程序如下:〃功能:单键控制单灯程序#include<reg51.h>sbitP1_0=P1A0;〃定义P1.0引脚名称为P1_0sbitP3_0=P3A0;〃定义P3.0引脚名称为P3_0voidmain()〃主函数{bitled;〃定义位变量ledP3_0=1;//P3.0作为输入口,置1led=P3_0;〃读P3.0if(led==1)P1_0=1;〃判断按键是否按下,没有按下,灯熄灭if()led==0P1_0=0;〃按键按下,灯点亮}利用单片机控制4个按键和4个发光二极管,设计一个4人抢答器,要求当有某一参赛者首先按下抢答开关时,相应的LED灯亮,此时抢答器不再接受其他输入信号,需按复位按键才能重新开始抢答。参考电路如下图。PIUPl.lvcl-FXPL21*1-3PIUPl.lvcl-FXPL21*1-3K9C5LPinHSIrtFHPX2:X1AI.2FX5XZjVrwi*条§他Er=i_-“n”可HL艸联汕丄rI一L_q-*时匕r25+5V±L冲彳1冲冲10参考程序如下。〃功能:实用4路抢答器程序#include<reg51.h>sbitP3_0=P3A0;〃定义P3.0引脚名称为P3_0sbitP3_1=P3T;〃定义P3.1引脚名称为P3_lsbitP3_2=P3A2;〃定义P3.2引脚名称为P3_2sbitP3_3=P3A3;〃定义P3.3引脚名称为P3_3voidmain()//主函数{bitflag;//定义位变量flagwhile(!flag){if(!P3_0){P1=0xfe;flag=1;}elseif(!P3_1){P1=0xfd;flag=1;}elseif(!P3_2){P1=0xfb;

flag=1;}elseif(!P3_3){P1=0xf7;

flag=1;}while(flag);}}习题33.1单项选择题C(2)A(3)A(4)D(5)D(6)D(7)A(8)B(9)C(10)Avoiddelay(unsignedinti)、delay、delay3.2填空题main(2)sbitFLAG=P3A1;(3)sfr(4)顺序、选择和循环(5)表达式和分号(6)if、switch(7)do-while语句、while语句(8)无限次(9)10000(10)unsignedchar指定该变量在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)程序存储器在任务10的图4.1中,如果直接将共阳极数码管换成共阴极数码管,能否正常显示?为什么?应采取什么措施?答:不能正常显示。因为共阳极数码管和共阴极数码管的显示码不同,二者是反相关系。修改程序,或者将显示码数组disp中的显示码换成共阴极显示码,或者在程序中增加取反操作即可。七段LED静态显示和动态显示在硬件连接上分别具有什么特点,实际设计时应如何选择使用?静态显示是指使用数码管显示字符时,数码管的公共端恒定接地(共阴极)或+5V电源(共阳极)。将每个数码管的8个段控制引脚分别与单片机的一个8位I/O端口相连。只要I/O端口有显示字型码输出,数码管就显示给定字符,并保持不变,直到I/O端口输出新的段码。数码管动态显示电路通常是将所有数码管的8个显示段分别并联起来,仅用一个并行I/O端口控制,称为“段选端”各位数码管的公共端,称为“位选端”,由另一个I/O端口控制。实际应用时,当显示位数少于2位时,可以采用静态显示方式;当显示位数较多时,建议采用动态显示方式。LED大屏幕显示一次能点亮多少行?显示的原理是怎样的?LED大屏幕显示一次能点亮1行,采用逐行点亮的方式。显示原理:先给第1行送高电平(行高电平有效),同时给8列送该行显示码(列低电平有效);然后给第2行送高电平,同时给8列送显示码,……最后给第8行送高电平,同时给8列显示码。每行点亮延时时间为约1ms,第8行结束后再从第1行开始循环显示。利用视觉驻留现象,人们看到的就是一个稳定的字符。机械式按键组成的键盘,应如何消除按键抖动?按键的机械抖动可采用硬件电路来消除,也可以采用软件方法进行去抖。软件去抖编程思路:在检测到有键按下时,先执行10ms左右的延时程序,然后再重新检测该键是否仍然按下,以确认该键按下不是因抖动引起的。同理,在检测到该键释放时,也采用先延时再判断的方法消除抖动的影响。独立式按键和矩阵式按键分别具有什么特点?适用于什么场合?答:在单片机应用系统中,如果系统需要按键数量较少,一般采用独立式按键接口,每个按键单独占用一根I/O端口线,按键的工作不会影响其他I/O端口线的状态,独立式按键的电路配置灵活,软件结构简单,

但每个按键必须占用一根I/O端口线,因此,在按键较多时,I/O端口线浪费较大,不宜采用。为了节约单片机硬件接口资源,当系统需要按键数量较多时,一般采用矩阵键盘接口方式。由4根行线和4根列线组成,例如:P0.0〜P0.3控制行线,P2.0〜P2.3控制列线,按键位于行、列线的交叉点上,且行线通过上拉电阻接到+5V电源上,构成了一个4x4(16个按键)的矩阵式键盘。习题55.1单项选择题(1)A(2)A(3)D(4)A(5)A(6)B(7)A(8)A(9)C(10)A(11)C(12)C(13)C(14)D5.2填空题(1)TO、T1、方式寄存器TMOD和控制寄存器TCON(2)GATE=00x05(4)设置定时器的工作方式控制定时器的启动、停止、标识定时器的溢出和中断情况中断标志寄存器TCON、串行口控制寄存器SCON、中断允许控制寄存器IE和中断优先级控制寄存器IP中断标志寄存器TCON和串行口控制寄存器SCON、中断允许控制寄存器IE和中断优先级控制寄存器IP电平触发方式(9)软件方法、硬件方法、硬软结合(1O)O5.3(5.3(1)答:51单片机定时/计数器的定时功能和计数功能有什么不同?分别应用在什么场合?T0或T1用做计数器时,分别对从芯片引脚T0(P3.4)或T1(P3.5)上输入的脉冲进行计数,外部脉冲的下降沿将触发计数,每输入一个脉冲,加法计数器加1。计数器对外部输入信号的占空比没有特别的限制,但必须保证输入信号的高电平与低电平的持续时间都在一个机器周期以上。一般用于需要计数的场合,对时间没有要求。用做定时器时,对内部机器周期脉冲进行计数,由于机器周期是固定值,故计数值确定时,定时时间也随之确定。如果51单片机系统采用12MHz晶振,则计数周期为:T机器周期2x106/12)=1s,这是最短的定时周期。适当选择定时器的初值可获取各种定时时间。一般用于对时间有要求的场合。软件定时与硬件定时的原理有何异同?答:软件定时是靠CPU运行空操作实现的,CPU在定时时不能进行其它操作,白白占用CPU时间。硬件定时是指采用单片机内部定时器实现定时,当定时器进行计数操作时,CPU可以进行其它操作。51单片机的定时/计数器是增1计数器还是减1计数器?增1和减1计数器在计数和计算计数初值时有什么不同?答:51单片机的定时/计数器是增1计数器。增1计数器是在初值基础上加1计数,直到翻转;减1计数器是在初值基础上减1计数,直到翻转。计算初值时,增1计数的初值需要用最大计数值(模值)减去计数值;减1计数的初值就是计数值。当定时/计数器在工作方式1下,晶振频率为6MHz,请计算最短定时时间和最长定时时间各是多少?答:工作方式1的计数模值是65536,机器周期2us,所以最短定时时间为2us,最长定时时间为:2us*65536=130ms。(5)51单片机定时/计数器四种工作方式的特点有哪些?如何进行选择和设定?答:工作方式0是13位定时计数器,工作方式1是16位定时计数器,工作方式2是初值自动重载的8位定时计数器,工作方式3下只有TO可以设置为工作方式3,T1设置为工作方式3后不工作。可根据应用场合和定时时间来确定工作方式,在TMOD寄存器中设定。(6)什么叫中断?中断有什么特点?答:中断是指通过硬件来改变CPU的运行方向。计算机在执行程序的过程中,外部设备向CPU发出中断请求信号,要求CPU暂时中断当前程序的执行而转去执行相应的处理程序,待处理程序执行完毕后,再继续执行原来被中断的程序。这种程序在执行过程中由于外界的原因而被中间打断的情况称为“中断”。中断特点:同步工作、实时处理、异常处理等。(7)51单片机有哪几个中断源?如何设定它们的优先级?中断源有5个,分别为外部中断0请求INTO、外部中断1请求INT1、TO溢出中断请求TFO、T1溢出中断请求TF1和串行口中断请求RI或TIo51单片机有两个中断优先级:高优先级和低优先级。每个中断源都可以通过设置中断优先级寄存器IP确定为高优先级中断或低优先级中断,实现二级嵌套。同一优先级别的中断源可能不止一个,因此,也需要进行优先权排队。同一优先级别的中断源采用自然优先级。中断优先级寄存器IP,用于锁存各中断源优先级控制位。IP中的每一位均可由软件来置1或清零,1表示高优先级,0表示低优先级。(8)外部中断有哪两种触发方式?如何选择和设定?答:外部中断有电平触发方式和下降沿触发方式。由TCON中的IT位设定,例如:当IT1=0时,外部中断1控制为电平触发方式;当IT1=1时,外部中断1控制为边沿(下降沿)触发方式。(9)中断函数的定义形式是怎样的?答:C51编译器支持在C源程序中直接以函数形式编写中断服务程序。中断函数的定义形式如下:void函数名()interruptn其中n为中断类型号,C51编译器允许0〜31个中断,n的取值范围为0〜31。5.4操作题(1)设计时间间隔为1s的流水灯控制程序。参考程序如下://功能:间隔显示时间为1秒的流水灯程序#include"REG51.H"//包含头文件REG51.H,定义了MCS-51单片机的特殊功能寄存器//函数名:delayls//函数功能:用T1工作在方式1下的1秒延时函数,采用查询方式实现//形式参数:无//返回值:无voiddelay1s(){unsignedchari;

for(i=0;i<0x14;i++){TH1=0x3c;TL1=0xb0;TR1=1;for(i=0;i<0x14;i++){TH1=0x3c;TL1=0xb0;TR1=1;while(!TF1);TF1=0;}}voidmain(){unsignedchari,w;TMOD=0x10;while(1){w=0x01;for(i=0;i<8;i++){P1=~w;w<<=1;delay1s();}}}//设置定时器初值为3CB0H//启动T1//查询计数是否溢出,即定时50ms时间到,TF1=1//50ms定时时间到,将T1溢出标志位TF1清零//主函数//设置T1为工作方式1//主函数//显示码初值为01H//w取反后送P1口,点亮相应LED灯//点亮灯的位置移动//调用1秒延时函数用单片机控制8个LED发光二极管,要求8个发光二极管按照BCD码格式循环显示00〜59,时间间隔为1s。提示:BCD(BinaryCodedDecimal)码是用二进制数形式表示十进制数,例如十进制数45,其BCD码形式为0x45。BCD码只是一种表示形式,与其数值没有关系。BCD码用4位二进制数表示一位十进制数,这4位二进制数的权为8421,所以BCD码又称为8421码。用4位二进制数表示一个十进制数,例如十进制数56、87和143的BCD码表示形式如下:01010110(56)10000111(87)000101000011(143)参考程序如下://功能:采用BCD码格式显示的0〜59简易秒表程序#include<reg51.h>voiddelay1s()//1秒延时函数,参见任务7程序ex4_1.cvoidmain(){unsignedchari,t;TM0D=0x10;//置T1为工作方式1while(1){for(i=0;i<60;i++)t=(((i/10)〈〈4)|(i%10));//将i转换为BCD码P1=~t;delay1s();//计数值取反后送P1口显示//调用1秒延时函数}可控霓虹灯设计。系统包括8个发光二极管,连接在P3.2引脚的一个按键,通过按键改变霓虹灯的显示方

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论