单片机原理与应用(c语言版)习题答案_第1页
单片机原理与应用(c语言版)习题答案_第2页
单片机原理与应用(c语言版)习题答案_第3页
单片机原理与应用(c语言版)习题答案_第4页
单片机原理与应用(c语言版)习题答案_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

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

文档简介

第1章习题11什么是单片机单片机是把微型计算机中的微处理器、存储器、I/O接口、定时器/计数器、串行接口、中断系统等电路集成在一块芯片上形成的单片计算机。因此被称为单片微型计算机,简称为单片机。12单片机的主要特点是什么单片机主要特点有在存储器结构上,单片机的存储器采用哈佛HARVARD结构;在芯片引脚上,大部分采用分时复用技术;在内部资源访问上,通过采用特殊功能寄存器SFR;在指令系统上,采用面向控制的指令系统;单片机内部一般都集成有一个全双工的串行接口;单片机有很强的外部扩展能力。13指明单片机的主要应用领域。单片机具有体积小、功耗低、面向控制、可靠性高、价格低廉、可以方便地实现多机和分布式控制等优点,使其广泛的应用于各种控制系统和分布式系统中,主要应用于以下这几个领域工业测控、智能设备、家用电器、商用产品以及网络与通信智能接口。14C51单片机的分类。C51单片机的分类,就是特指MCS51系列。那么MCS51系列的单片机基本上没什么区别,至少内核都是一模一样的。不同的就是功能模块稍有不同。比如说有些具有AD/DA模块,有些没有;有些有EEPROM(STC89C52),有些没有(AT89S52);有些ROM有8K(AT89S52),有些只有2K;有些RAM有256B,而有些只有128BIT;有些40个管脚(AT89C51、89C52、89S52),有些20个管脚(AT89C2051、89C4051);有些有内部晶振,有些没有;但这些都是稍微一点点的区别,基本都还是算一样的。1580C51与8051的区别和联系。MCS51单片机是指美国INTEL公司生产的一系列单片机的总称,包括有8031,8051,8751,8032,8052,8752等,其中8051是最典型的产品,该系列其它单片机都是在8051的基础上发展来的,人们习惯于用8051来称呼MCS51系列单片机。INTEL公司将MCS51的核心技术授权给了其它公司,所以有很多公司以8051为核心对单片机进行开发。其中89C51就是以805为内核开发生产的。联系80C51单片机是在8051的基础上发展起来的,8051单片机与80C51单片机从外形看是完全一样的,其指令系统、引脚信号、总线等完全一致(完全兼容),也就是说在8051下开发的软件完全可以在80C51上应用,反之相同。区别8051与80C51单片机的主要差别在于芯片的制造工艺上。8051系列单片机采用的是HMOS工艺,高速度、高密度;80C51系列单片机采用的是CHMOS工艺,高速度、高密度、低功耗;也就是说80C51单片机是一种低功耗单片机。第2章习题21C51单片机内部包含哪些主要功能部件,各功能部件主要完成什么功能。C51单片机片内集成了中央处理器(CPU)、程序存储器(ROM)、数据存储器(RAM)、两个16位的定时器/计数器(T0和T1)、4个8位的并行I/0口(P0、P1、P2和P3)、串行口等组成。22C51单片机的核心器件是什么它由哪些部分组成各部分的主要功能是什么微处理器CPU包含有运算器和控制器。运算器由算术逻辑单元ALU、累加器ACC、B寄存器、两个暂存寄存器、程序状态寄存器组成,完成算术运算(加,减,乘,除,乘除运算与寄存器B有关)、逻辑运算及移位运算等。控制器由指令寄存器IR、指令译码器ID、定时及控制逻辑电路、程序计数器PC组成,是单片机的运行控制中心。片内存储器ROM和RAM;四个I/O端口电路;定时器/计数器2个16位的定时器/计数器中断控制系统5个中断源(两个外部中断、两个定时/计数器、1个串行口中断)串行口1个全功能异步串行口时钟电路为系统工作提供时钟。总线通过内部总线把系统的各个部分连成一个有机的整体。23C51单片机有哪些信号需要芯片引脚以第二功能的方式提供。(P3口引脚的第二功能)。P3口的第二功能见P10页的表21所示。24C51单片机的存储器有什么特点如何划分存储空间。数据存储器和程序存储器分开编址,并有各自的寻址方式和寻址单元。对存储器的划分在物理上分为4个空间片内数据存储器、片内程序存储器、片外数据存储器、片外程序存储器,在逻辑上划分为3个空间偏内外程序存储器、片外数据存储器、片内数据存储器。外部ROM60KB内部ROM4KB/EA1外部ROM4KB/EA00FFFH0000H0FFFH0000H(MOVC)指令操作域ROM地址空间特殊功能寄存器21个内部RAM128BMOV指令操作域FFH80H7FH00H外部RAM64KBFFFFH0000HRAM地址空间题2489C51单片机的存储器结构图25片内RAM低128单元划分为哪三部分各部分主要功能是什么数据存储器是由RAM构成的,用来存放随机数据。数据存储器分为内部数据存储器和外部数据存储器两部分。对于89C51型单片机,内部数据存储器共有256个存储单元,通常把这256个存储单元再划分为低128单元00H7FH和高128单元80HFFH,数据存储器的低128单元按用途可划分为3个区域,通用寄存器00H1FH、位寻址区20H2FH和用户RAM区。26堆栈有什么功能堆栈指示器SP的作用是什么在程序设计中,为什么需要对堆栈进行重新赋值。在单片机程序设计中,堆栈主要是为子程序的调用和中断操作设立的。其具体功能主要有保护断点和保护现场。堆栈指针的作用就是指向栈顶元素的,通过它还可以对栈顶元素进行出栈操作当堆栈中的元素进行出栈或入栈操作时,都会使栈顶元素发生变化,堆栈指针SP就需要重新赋值,让其指向新的栈顶元素。如果嵌套太多,不重新赋值会引起死机的。27单片机时钟电路有何用途28什么是指令周期、机器周期和时钟周期如何计算指令周期的准确时间时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12US),是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。8051单片机的时钟范围是12MHZ12MHZ。机器周期在计算机中,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。80C51系列单片机的一个机器周期同6个S周期(状态周期)组成。8051单片机的机器周期由6个状态周期组成,也就是说一个机器周期6个状态周期12个时钟周期。指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成。指令不同,所需的机器周期数也不同。对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。通常含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令。29单片机复位有几种方法复位后各寄存器的状态如何复位方式有上电复位、手动复位、硬件电路复位等。复位后各寄存器的状态与单片机的类型有关,具体参考器件手册。21089C51单片机运行出错或程序“跑飞”时,如何摆脱困境软件方面设置看门狗;检查程序,是否有死循环硬件方面在单片机电源输入位置加01U电容,最好在电源与地之间加一个100U的电解电容,防止因为电源的波动或干扰信号,引起出错。211基于89C51单片机设计一个最小单片机系统。XTAL218XTAL119ALE30EA31PSEN29RST9P00/AD039P01/AD138P02/AD237P03/AD336P04/AD435P05/AD534P06/AD63P07/AD732P101P112P123P134P145P156P167P178P30/RXD10P31/TXD1P32/INT012P33/INT113P34/T014P37/RD17P36/WR16P35/T115P27/A1528P20/A821P21/A92P22/A1023P23/A124P24/A1225P25/A1326P26/A1427U1AT89C51C12PFC22PFC310UFX112MR110K题211基于AT89C51的单片机最小系统212引脚功能是什么PEA/V程序存储器分为片内存储和片外存储两部分,可通过引脚的电平确定。E当引脚为高电平时,程序从片内存储器开始执行,即访问片内存储器,当PC值超过片内存储器的范围时,自动跳转到片外程序存储器空间执行;当引脚为低电平时,系统全部执行片外程序存储器程序。EA使用说明对于不含片内ROM的单片机,应将引脚固定为低电平。对于含有片内EAROM的单片机,在正常运行时,应将引脚置为高电平。当处于调试状态时,可将引EA脚置为低电平。第3章习题31C51单片机有哪几种寻址方式适用于什么地址空间C51单片机寻址方式主要有七种,即立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、位寻址、基址寄存器加变址寄存器间接寻址和相对寻址。立即寻址适应于8位立即数对片内RAM地址单元的赋值,也可用于16位的立即数对DPTR赋值;直接寻址方式适应于片内RAM的所有地址空间;寄存器寻址适应于片内00H1FH的32个字节,用R0,R1,R7表示;寄存器间接寻址只能使用寄存器R0或RL作为地址指针,来寻址内部RAM00HFFH中的数据,寄存器间接寻址也适用于访问外部RAM;位操作指令能对内部RAM中的位寻址区(20H2FH)和某些有位地址的特殊功能寄存器进行位操作,实现位状态传送、状态控制、逻辑运算操作;基址寄存器加变址寄存器间接寻址用于访问程序存储器中的数据表格;相对寻址用于相对转移指令中,转移目标地址在当前地址的128127字节范围内的地址空间。32C51单片机的PSW程序状态字中无ZERO零标志位,怎样判断某内部数据单元的内容是否为零C51单片机的PSW程序状态字中无ZERO零标志位,判断某内部数据单元的内容是否为零,只能通过传递数据到累加器A,再判断A中的每一位是否为零,来确定其值是否为零。33编程查找内部RAM的32H41H单元中是否有0AAH这个数据,若有这一数据,则将50H单元置为0FFH,否则将50H单元清零。设片内RAM指针R0,指向首地址32H,比较R0与0AAH,若相等,则退出循环,给50H单元赋值0FFH,若不相等,则R0加1,为继续比较下一个字节做准备,直到地址为41H或到计数器设定的计数值,且给50H单元赋值00H。程序1MOVR0,32H设地址指针的初值CONTCJNER0,0AAH,NEXT比较查找值与指针所指单元的值,是否相等MOVA,0FFH相等,赋值0FFHSJMPDOWN跳转到,保存结果NEXTINCR0修改地址指针CJNER0,42H,CONT指针没有超过范围,则继续MOVA,00H查找失败,将00H存入结果DOWNMOV50H,A将比较结果存入50H单元SJMP暂停END程序2MOVR7,16计数器赋初值,从20H30H共16个字节MOVR0,32HCONTCJNER0,0AAH,NEXTMOVA,0FFHSJMPDOWNNEXTINCR0DJNZR7,CONT计数器减1,非零,则继续查找MOVA,00HDOWNMOV50H,A将比较结果存入50H单元SJMPEND34内部RAM从DATA开始的区域中存放着10个单字节十进制数,求其累加和,并将结果存入SUM和SUM1单元。程序如下注R7计数,R6保存累加和的高8位,R0作为地址指针。ORG0000HLJMPMAINORG1000HSUMEQU30HDATAAEQU40HMAINMOVR7,10设置计数器的初值MOVR0,DATAA设片内RAM地址指针的初值CLRAMOVR6,AR6存放高8位数据COUNTADDA,R0加RAM中的第一个字节到ACCDAAJNCNEXTINCR6有进位,高8位加1NEXTINCR0DJNZR7,COUNTMOVSUM,A;保存低8位MOVSUM1,R6;保存高8位SJMPEND35MOVX的指令的功能是什么试编程实现,将外部60H6FH单元的内容搬移到3A0H3AFH单元。MOVX可以实现累加器A与外部数据存储器RAM单元或I/0口间的数据传送。程序如下ORG0000HMOVR0,60HMOVR7,16MOVDPTR,3A0HLOOPMOVXA,R0MOVXDPTR,AMOVXR0,0FFHINCR0INCDPTRDJNZR7,LOOPSJMPEND36MOVC指令的功能是什么试编程实现,将程序存储器以TABLE为表首地址定义的16个字节,依次搬移至内部RAM中30H3FH单元。MOVC指令的功能可用来查找存放在程序存储器中的常用数据表格。程序如下ORG0000HMOVDPTR,TABLEMOVR7,16MOVR2,30HMOVA,0MOVR0,ALOOPMOVCA,ADPTRMOVR2,AMOVA,R0INCAINCR2DJNZR7,LOOPSJMPENDTABLEDB,37什么是位操作指令,有什么特点试编程实现1将从P10引脚连续输入的8个状态,按顺序依次存入内部RAM中31H单元,其中第一个输入状态存储在最高位,第8个输入状态存储在最低位;2将内部RAM中31H单元的内容取反后,依次通过P10引脚输出,其中最低位D0先输出,最高位D7后输出。位操作指令的操作对象是内部RAM的位寻址区,即字节地址为20H2FH单元中连续的128位(位地址为00H7FH),以及特殊功能寄存器中可进行位寻址的位。位操作指令包括布尔变量的传送、逻辑运算、控制转移等指令,它共有17条指令,助记符有MOV、CLR、CPL、SETB、ANL、ORL、JC、JNC、JB、JNB和JBC,共11种。1程序如下ORG0000HMOVR7,8MOVR2,31H读入的位地址LOOPMOVC,P10MOVR2,CINCR2DJNZR7LOOPSJMPEND2程序如下ORG0000HMOVR7,8MOVR2,31H读入的位地址MOVA,R2CPLALOOPRRCAMOVP10,CDJNZR7LOOPSJMPEND38设在寄存器R3的低4位中存有数码0F中的一个数,试将其转换成ASCII码,并存入片外RAM的2000H单元。程序如下MOVA,R3取4位二进制数ANLA,0FH屏蔽高4位PUSHA保存A内容到堆栈CLRC清CSUBBA,0AHA10POPA恢复A内容JCLOOP若C1,则数15,Y41。程序如下XEQU5AHYEQU5BHORG0000HMOVA,XSUBBA,10JCLOOP1MOVA,XSUBBA,15JCLOOP2MOVA,41MOVY,AENDLOOP1MOVA,XSUBBA,01MOVY,AENDLOOP2MOVA,XADDA,8MOVY,AEND310试编程把以2000H为首地址的连续50个单元的内容按升序排列,存放到以3000H为首地址的存储区中。程序如下MOVDPTR,2000HMOVR0,30H读到片内的30H开始的单元MOVR7,50L1将2000H开始的单元数据存储到30H的内部单元MOVXA,DPTRMOVR0,AINCR0INCDPTRDJNZR7L1START排序CLR00HCLRCMOVR7,49MOVR0,30HMOVA,R0L3INCR0MOVR2,ASUBBA,R0MOVA,R2JCNEXTSETB00HXCHA,R0DECR0MOVR0,AINCR0NEXTMOVA,R0DJNZR7,L3JB00STARTMOVDPTR,3000H送到片外3000H开始的单元MOVR0,20HMOVR7,50L2MOVA,R0MOVXDPTR,AINCDPTRINCR0DJNZR7L2RET311设有100个无符号数,连续存放在以2000H为首地址的存储区中,试编程统计奇数和偶数的个数。程序如下ODDEQU41H奇数的统计EVENEQU40H偶数的统计COUNTEQU100个数ORG0000HLJMPMAINORG0040HDATA_FILTERPUSHPSW函数调用时的现场保护PUSHACCMOVODD,0MOVEVEN,0MOVR2,0MOVDPTR,0X2000LOOPMOVXA,DPTRANLA,01HCJNEA,0,ODD1偶数INCEVENJMPNEXTODD1INCODDJMPNEXTNEXTINCDPTRINCR2CJNER2,COUNT,LOOPPOPACC恢复现场POPPSWRETMAINACALLDATA_FILTERSJMP仅用于测试观察END第4章习题41简述C51单片机直接支持的数据类型,并加以说明。答字符型CHARCHAR有有符号字符型SIGNEDCHAR和无符号字符型UNSIGNEDCHAR之分,他们的长度都为一个字节。对于SIGNEDCHAR,其字节的最高位是符号位,“0”表示正数,“1”表示负数,以补码表示,表示的数值范围是128127;对于UNSIGNEDCHAR,表示的数值范围是0256,可以用来存放无符号的数值,也可存放西文字符。整型INTINT有有符号字整型SIGNEDINT和无符号整型UNSIGNEDINT之分,他们的长度均为双字节。对于SIGNEDINT,它存放双字节有符号的数值,以补码表示,表示的数值范围是32769832767;对于UNSIGNEDINT,它存放双字节无符号的数值,表示的数值范围是065535。长整型LONGLONG有有符号字整型SIGNEDLONG和无符号整型UNSIGNEDLONG之分,他们的长度均为4个字节。对于SIGNEDLONG,它存放4字节有符号的数值,以补码表示,表示的数值范围是21474836482147483647;对于UNSIGNEDLONG,它存放双字节无符号的数值,表示的数值范围是04294967295。浮点型FLOATFLOAT型数据长度为4个字节,格式符合IEEE754标准的单精度浮点型数据,包含指数和尾数两部分,最高位为符号位,“0”表示正数,“1”表示负数,其余8位为阶码,最后23位为尾数的有效数位,由于尾数的整数部分隐含为“1”,所以尾数的精度为24位。表示的数值范围是1175494E383402823E38加38。双精度型DOUBLEDOUBLE型占8个字节,其数值范围为17E30817E308。42简述C51语言对C51单片机特殊功能寄存器的定义方法。答特殊功能寄存器型是C51扩展的数据类型,用于访问MCS51单片机中的特殊功能寄存器数据。它分为SFR和SFR16两种类型。SFR为字节型特殊功能寄存器类型,占一个字节单元,利用它可访问单片机内部的所有特殊功能寄存器;SFR16为双字节型特殊功能寄存器类型,占两个字节单元,利用它可访问单片机内部占用两个字节的特殊功能寄存器,如定时器T0和T1。C51中特殊功能寄存器的访问必须先用SFR和SFR16进行声明。例如SFRP10X90,即约定P1为P1端口在片内的寄存器,在后面的语句编程中可通过对P1赋值,实现对P1端口的赋值。如用P1255对P1端口的所有引脚置“1”。43简述C51中特有的数据类型有哪些。答BIT型,其值可以是“1”或“0”,BIT定义的位变量在C51编译器编译时,在不同的时候位地址可以变化。SBIT型,其值可以是“1”或“0”,SBIT定义的位变量必须与MCS51单片机的一个可以寻址位单元或可寻址的字节单元的某一位联系在一起,在C51编译器编译时,其对应的位地址不能变化。SFR型,特殊功能寄存器声明(8位),范围就是特殊功能寄存器的范围。SFR16型,特殊功能寄存器声明(16位),范围就是特殊功能寄存器的范围。44简述C51中对51单片机位的定义方法。答位类型BIT是C51扩展的数据类型,用于访问MCS51单片机中可寻址的位单元。它分为BIT和SBIT两种类型,他们在内存中都只占一个二进制位,其值可以是“1”或“0”。其中用BIT定义的位变量在C51编译器编译时,在不同的时候位地址是可以变化的,而SBIT定义的位变量必须与MCS51单片机的一个可以寻址位单元或可寻址的字节单元的某一位联系在一起,在C51编译器编译时,其对应的位地址是不能变化的。例如SFRP10X90/因P1端口的寄存器可位寻址,所以能定义SBITP1_1P11/P1_1为P11引脚同样可用P11的地址去写,如SBITP1_10X91这样在以后的程序语句中就能用P1_1来对P11引脚进行读写操作。45C51语言的DATA、BDATA、IDATA有什么区别答DATA直接寻址片内数据区的低128字节。BDATA片内数据区的位寻址区0X200X2F,16字节,也可字节访问。IDATA间接寻址片内数据区的256字节。46在C51中,中断函数与一般函数有什么区别答中断函数无参无返回,一般函数参数和返回都是可有可无。中断函数由系统自动调用,一般函数必须手动调用。47按照给定存储器类型和数据类型,写出下列变量的说明形式。在DATA区定义字符变量VAL1。在IDATA区定义整型变量VAL2。在XDATA区定义无符号字符数组VAL3。定义可寻址的位变量FLAG。定义特殊功能寄存器变量SCON。定义16位特殊功能寄存器变量T0。答CHARDATAVAL1INTIDATAVAL2UNSIGNEDCHARXDATAVAL3BITBDATAFLAGSFRSCON0X98SFR16T00X8A48写出下列关系表达式或逻辑表达式的结果,设A3,B4,C5。ABB/将片内RAM地址0X32的内容赋给外部RAM地/址为0X1002的存储单元XBYTE0X1003DBYTE0X33/将片内RAM地址0X33的内容赋给外部RAM地址为0X1003的存储单元410试编写程序,采用3种循环结构实现数据120的平方和。答INTI,SUMSUM0FORI1IINCLUDEDEFINEUCHARUNSIGNEDCHARVOIDMAINUCHARIUCHARDATAP/定义指针变量INTSUMP0X20/指针变量指向地址为20H的内部RAMSUM0FORI0IDEFINEUCHARUNSIGNEDCHARVOIDMAINUCHARIUCHARA151,2,3,4,5,6,7,8,9,10,11,12,13,14,15/定义学生信息数组UCHARMAX_SCORE,NUMBER,NAMENUMBERA0NAMEA1MAX_SCOREA2FORI1IMAX_SCORENUMBERA3INAMEA3I1MAX_SCOREA3I2WHILE1第5章习题51简述中断的相关概念。答所谓中断是指计算机在执行某一程序的过程中,由于计算机系统内、外的某种原因而必须终止原程序的执行,转去完成相应的处理程序,待处理结束之后再返回继续执行被终止原程序的过程。中断源指向CPU提出中断申请的设备,包括中断请求信号的产生及该信号怎样被CPU有效地识别,要求中断请求信号产生一次,只能被CPU接收处理一次,即不能一次中断申请被CPU多次响应。中断嵌套是CPU正在执行低优先级中断的服务程序时,可被高优先级中断请求所中断,去执行高优先级中断服务程序,待高优先级中断处理完毕后,再返回低优先级中断的服务程序。中断优先级指在实际应用系统中往往有多个中断源,且中断申请是随机的,有时还可能会有多个中断源同时提出中断申请,但CPU一次只能响应一个中断源发出的中断请求,CPU响应哪个中断请求,就需要用软件或硬件安排一个优先顺序,即中断优先级排队。52CPU响应中断的条件有哪些哪些情况下不会响应新的中断答1)CPU响应中断的条件首先单片机响应中断的条件是中断源有请求且CPU开中断(即EA1)。1无同级或高级中断正在处理。2现行指令执行到最后1个机器周期且已结束。3若现行指令为RETI或访问特殊功能寄存器IE、IP的指令时,执行完该指令且紧随其后的另一条指令也已执行完毕。在满足以上条件的基础上,若下列任何一种情况存在,则CPU不会响应新的中断(1)CPU正在执行一个同级或高优先级的中断服务程序;(2)正在执行的指令尚未执行完;(3)正在执行中断返回指令RETI或对专用寄存器IE、IP进行读/写指令。CPU执行完上述指令之后,要再执行下一条指令时,才能响应新的中断请求。53要求80C51五个中断源按下列优先顺序排列,判是否有可能实现若能,应如何设置中断源的中断优先级别若不能,试述理由。T0、T1、INT0、INT1、串行口串行口、INT0、T0、INT1、T1INT0、T1、INT1、T0、串行口串行口、T0、INT0、INT1、T1INT0、INT1、T0、串行口、T1解T0、T1、INT0、INT1、串行口能。T0、T1为高优先级,其余为低优先级。串行口、INT0、T0、INT1、T1能。串行口为高优先级,其余为低优先级。INT0、T1、INT1、T0、串行口不能。80C51只有两个中断优先级。当设置INT0、T1为高优先级时,INT1、T0、串行口处于同一低优先级,而T0的优先权排在INT1之前,INT1无法优先T0。串行口、T0、INT0、INT1、T1不能。80C51只有两个中断优先级。当设置串行口为高优先级后,T0、INT0、INT1、T1处于同一低优先级,而INT0的优先权排在T0前面,T0无法优先INT0。INT0、INT1、T0、串行口、T1不能。80C51只有两个中断优先级。当设置INT0、INT1为高优先级后,T0、串行口、T1处于同一低优先级,而T1的优先权排在串行口前面,串行口无法优先T1。54当执行某一中断源的中断服务程序时,如果有新的中断请求出现,试问在什么情况下可响应新的中断请求在什么情况下不能响应新的中断请求答一个正在执行的低优先级中断程序能被高优先级的中断源所中断,但不能被另一个低优先级的中断源所中断。若CPU正在执行高优先级的中断,则不能被任何中断源所中断。5551系列单片机中用于中断允许和中断优先级控制的寄存器分别是什么写出中断允许控制寄存器的各控制位的符号及含义。答MCS51系列单片机用于中断允许和中断优先级控制的寄存器分别是IE和IP;IE(A8H)EA中断允许控制位;ES串行口中断允许控制位;ET1定时器/计数器T1的溢出中断允许位;EX1外部中断1中断允许位;ET0定时器/计数器T0溢出中断允许位;EX0外部中断0中断允许位;当相应的位为“1”时允许中断,为“0”时禁示中断。56编写一段对中断系统初始化的程序,要求允许、T1、串行口中断,且使串行口中0INT断为高优先级。答IE0X9BIP0X0257外部中断触发方式有几种他们各自特点是什么答外部中断源有电平触发和边沿触发两种触发方式。中断电平触发方式时,中断请求标志IT00,CPU在每个机器周期的S5P2期间采样,一旦在P32引脚上检测到低电平,则有中断申请,使IE0置位(置1),向CPU申请中断。在电平触发方式中,在中断响应后中断标志位IE0的清0由硬件自动完成,但由于CPU对P32引脚没有控制作用,使中断请求信号的低电平可能继续存在,在以后的机器周期采样时又会把已清0的IE0标志位重新置1,所以,在中断响应后必须采用其它方法撤消该引脚上的低电平,来撤除外部中断请求信号,否则有可能再次中断造成出错。采用边沿触发方式时,IT01,CPU在每个机器的S5P2期间采样,当检测到前一周期为高电平,后一周期为低电平时,使标志IE0置1,向CPU申请中断,此标志位一直保持到CPU响应中断后,才由硬件自动清除。在边沿触发方式中,为保证CPU在两个机器周期内检测到由高到低的负跳变,高电平与低电平的持续时间不得少于一个机器周期的时间。58单片机中中断请求标志位,哪些是由硬件自动复位的哪些必须通过软件复位答由单片机内部硬件自动复位的对于定时器/计数器T0、T1的溢出中断和采用跳变触发方式的外部中断请求,在CPU响应中断后,由内部硬件自动复位中断标志TF0和TF1、IE0和IE1,而自动撤除中断请求。需用软件清除相应标志的对于串行接收/发送中断请求和80C52中的定时器/计数器T2的溢出和捕获中断请求,在CPU响应中断后,内部无硬件自动复位中断标志RI、TI、TF2和EXF2,必须在中断服务程序中清除这些中断标志,才能撤除中断。既无硬件也无软件措施的对于采用电平触发方式的外部中断请求,CPU对、0INT引脚上的中断请求信号既无控制能力,也无应答信号。为保证在CPU响应中断后、1INT执行返回指令前,撤除中断请求,必须考虑另外的措施。59按下列要求设置定时器/计数器的模式控制字(1)T0计数器、方式1,运行与INT0有关;T1定时器、方式2,运行与INT1无关;(2)T0定时器、方式0,运行与INT0有关,T1计数器、方式2运行于INT1有关;(3)T0计数器、方式2,运行与INT0无关;T1计数器、方式1,运行与INT1有关;(4)T0定时器、方式3,运行与INT0无关;T1定时器、方式2,运行与INT1无关;解1TMOD0X2D2TMOD0X0E83TMOD0X0D64TMOD0X23510C51单片机内部有几个定时器/计数器,有几种工作方式最多可连接几个下降沿触发的外部中断信号答C51单片机内设有2个可编程的定时/计数器,定时器0有4种工作方式,定时器1有3种工作方式。最多可以连接4个下降沿触发的外部中断信号。511根据定时器/计数器0方式1逻辑结构图,分析门控位GATE取不同值时,启动定时器的工作过程。答当GATE0软件启动定时器,即用指令使TCON中的TR0置1即可启动定时器0。GATE1软件和硬件共同启动定时器,即用指令使TCON中的TR0置1时,只有外部中断INT0引脚输入高电平时才能启动定时器0。512已知TMOD值,试分析T0、T1工作状态(1)TMOD93H2TMOD68H3TMODCBH;(4)TMOD52H解TMOD93H10010011B,T1定时器,方式1,运行与INT1有关;T0定时器,方式3,运行与INT0无关。TMOD68H01101000B,T1计数器,方式2,运行与INT1无关;T0定时器,方式0,运行与INT0有关。TMODCBH11001011B;T1计数器,方式0,运行与INT1有关;T0定时器,方式3,运行与INT0有关。TMOD52H01010010B;T1定时器,方式1,运行与INT1无关;T0定时器,方式2,运行与INT0无关。513如何判断T0、T1定时器/计数器溢出答判断T0、T1定时/计数溢出的方法有两种查询方式。不断查询T0、T1溢出标志TF0、TF1TF0或TF10时,未溢出;TF0或TF11时,溢出。中断方式。T0、T1定时/计数溢出时,在CPU、T0、T1中断开放前提下能自动产生中断。514设时钟频率为6MHZ,采用定时计数器T1及其中断控制方式,通过P17输出周期为20MS的方波。编写程序。答INCLUDEVOIDMAIN)TMOD0X00TL10X18TH10X63TR11EA1ET11WHILE1VOIDSERVEINTERRUPT1TL10X18TH10X63P1_7P1_7515请采用定时器/计数器实现1S定时,控制晶振频率为12MHZ。解选定时器T0,工作方式的确定时钟为12MHZ时,方式0最长可定时8192MS;方式1最长可定时65536MS;方式2最长可定时256US可见,选方式1,每隔50MS中断一次,中断20次为1S。计数初值(216X)1106005X155363CB0HTH03CH,TL00B0HINCLUDEUNSIGNEDCHARCOUNT20/中断次数计数器,初值为0VOIDMAIN)TMOD0X01TL00X0B0TH00X3CTR11EA1ET01WHILE1VOIDSERVEINTERRUPT1TL00X0B0TH00X3CCOUNT/中断次数减1IFCOUNT0TR00/中断次数达到10时复位为0516设89C51单片机晶振为6MHZ要求T0定时200S,分别计算采用定时方式0、方式1和方式2时的定时初值。解方式01111110011100BTH00X0FCTL00X1C方式11111111110011100BTH00X0FFTL00X9C方式210011100BTL00X9C517设晶振频率为110592MHZ,串口工作于方式3,数据传输速率为9600B/S,试完成其初始化程序。解设SMOD1根据波特率计算公式计算出定时器初值为BRFTHSMODC38425610FAH当波特率不翻倍即SMOD0时,计算得初值为0FDH。初始化程序如下VOIDSER_INITIALIZEVOIDSCON0X0D0写控制字,且TIRI0PCON0X80波特率加倍TMOD0X20T1作波特率发生器,工作在方式2TH10X0FA波特率为9600B/PTL10X0FATR11启动T1EA1开中断ES1;开串行口中断518如果采用的晶振频率为3MHZ,定时/计数器T0分别工作在方式0、1和2下,其最的定时时间各为多少答如果采用的晶振频率为3MHZ,机器周期为121/31064US,由于定时/计数器TO工作在方式0、1和2时,其最大的计数次数为8192、65536和256所以,其最大定时时间分别是方式0为81924US32768MS、方式1为655364US262144MS、方式2为2564US1024US。519定时/计数器TO作为计数器使用时,其计数频率不能超过晶振频率的多少答由于定时/计数器TO作为计数器使用时,是对外部引脚输入的脉冲进行计数,CPU在每个机器周期采样一次引脚,当前一次采样为高电平,后一次采样为低电平,则为一次有效计数脉冲,所以如果晶振频率为FOSC,则其采样频率FOSC/12,两次采样才能决定一次计数有效,所以计数频率不能超过FOSC/24。520定时器工作在方式2时有何特点适用于什么应用场合答定时器工作在方式2时是一个可自动装入时间常数初值的8位定时/计数器,TLX为加1计数器,THX为计数初值寄存器。由于其恢复初值由硬件自动完成,所以当需要反复计数时,用方式2可以方便地实现精确的定时。521一个定时器的定时时间有限,如何采用两个定时器的串行定时来实现较长时间的定时答一个定时器的定时时间有限,可采用两个定时器的串行定时来实现较长时间的定时,比如,当FOSC12MHZ时,单个定时/计数器采用方式1的最大定时时间为65536MS,此时若用另一个定时/计数器按方式1进行溢出次数计数,在定时器溢出中断时,给计数器发一个计数脉冲,且两者均为方式一,则两者串行可达到的定时时间为6553665536MS4294967296MS。522设MCS51单片机的晶振频率为12MHZ,请编程使P10端输出频率为20KHZ的方波。解FOSC12MHZ,所以机器周期为1US。20KHZ的方波周期为1/20100050US,方波即高电平和低电平和时间相等,所以只需设一个定时器定时25US将P10求反一次即可。由于题目没有规定,所以可以用查询方式,也可以用中断方式进行编程实现。采用查询方式实现INCLUDESBITP1_0P10/定义输出引脚变量VOIDMAINP1_00/输出初值为0TMOD0X02/T0方式2定时TH025625/计25次,计数初值为模256减25TL0TH0TR01/启动T0WHILE1/无限循环IFTF0/查询T0溢出标志TF00/溢出标志复位P1_0P1_0/输出求反采用中断方式实现INCLUDESBITP1_0P10/定义输出引脚变量VOIDMAINP1_00/输出初值为0TMOD0X02/T0方式2定时TH025625/计25次,计数初值为模256减25TL0TH0IE0X82/允许CPU响应中断,允许T0发中断请求TR01/启动T0FOR/无限循环等待中断TIMER0INTERRUPT1USING1P1_0P1_0/输出求反523采用定时/计数器TO对外部脉冲进行计数,每计数100个脉冲,T0切换为定时工作方式。定时1MS后,又转为计数方式,如此循环不止。假定5L单片机的晶体振荡器的频率为6MHZ,要求T0工作在方式1状态,请编写出相应程序。解晶体振荡器的频率为6MHZ,则机器周期为121/61062US,要定时1MS,需计数次数为1000/2500次。INCLUDESBITP1_0P10;VOIDMAINWHILE1TMOD0X05/T0计数,方式一TH065536100/256/计数100次TL065536100256TR01WHILETF0/等待计数100次的溢出TF00/溢出标志复位TMOD0X01/T0定时,方式一TH065536500/256/计数100次TL065536500256TR01/启动T0WHILETF0/等待定时时间到1MS的溢出TF00/溢出标志复位524编写程序,要求使用T0,采用方式2定时,在P10输出周期为400US占空比为101的矩形脉冲。设FOSC12MHZ。解周期为400US,可设置方式2定时,计数初值为25640,一个周期中断10次为400US,在中断计数为1和2或任意两次计数之间时,对P10求反即可。INCLUDESBITP1_0P10/输出周期引脚UNSIGNEDCHARCNT0/中断次数计数器,初值为0VOIDMAINP1_00/输出初值为0TMOD0X02/T0方式2定时TH025640/计40次,计数初值为模256减40TL0TH0IE0X82/允许CPU响应中断,允许T0发中断请求TR01/启动T0FOR/无限循环等待中断VOIDTIMER0INTERRUPT1USING1CNT/中断次数加1IFCNT1|CNT2P1_0P1_0/中断次数为1或2时对输出引脚求反IFCNT10CNT0/中断次数达到10时复位为0525试述单片机串行口多机通信的过程8031单片机TXDRXDGNDRXDRXDRXDTXDTXDTXDGNDGNDGND0号从机80311号从机8031N号从机8031图525多机通信系统框图答如图525所示,为一个多机分布式系统,其中一个8031系统为主机,N个8031应用系统为从机。不考虑口的驱动时,主机的RXD端与所有从机的TXD端相连,TXD端与所有从机的RXD端相连。根据C51多机通信原理,通信过程如下首先对各从机进行编址。串行口工作在方式2或方式3下,使所有从机的SM2(SCON5)位置1,处于只接收地址帧的状态。主机发送一桢地址信息,其中包含8位地址,主机置位第9位TB8,发送要寻址的从机地址。TB81,以表示发送的是地址;TB80,以表示发送的是数据。所有从机均接收主机发送的地址,进入中断进行比较。从机接收到地址帧后,各自将接收到的地址与其本身地址相比较。检查到的第9位RB81,表示地址帧,将数据装入SBUF,置位RI,发出接收中断请求;RB80,表示数据帧,同时当SM21时,接收数据丢弃。SM20表示直通方式,无论RB8是0还是1,都将接收到的数据送SBUF,并发出中断请求。对于所有从机,由于SM21,RB81,各自发出中断请求。判断主机发送地址是否与本机相符,若相符,则将从机的SM2清0(编程直通方式),准备接收其后传来的数据。确认寻址从机,自身SM2清0,向主机返回地址供主机核对。未被寻址的其它从机仍维持SM21不变。核对无误,主机向被寻址的从机发送命令,通知从机进行一对一数据通信。主机发送数据或控制信息(第9位为0)。对于已被寻址的从机,因SM0,故可以接收主机发送过来的信息。而对于其它从机,因SM2维持为1,对主机发来的数据帧将不予理睬,直至发来新的地址帧。当主机改为与别的从机联系时,可再发出地址帧寻址其从机。而先前被寻址过的从机在分析出主机是对其它从机寻址时,恢复其SM21,对随后主机发来的数据帧不加理睬。526设8051单片机的时钟是12MHZ试编程以波特率为9600BAUD、8位数据、奇校验方式,编写初始化程序。解TMOD0X21TH10X0FDTL10X0FDPCON0X00SCON0X0D052789C51串行口有几种工作方式有几种帧格式各工作方式的波特率如何确定答串行口分四种工作方式,由SM0、SM1二位决定。(1)方式0为8位移位寄存器I/O方式。(2)方式1为10位通用异步接口,发送或接收一帧数据信息为10位,包括1位起始位“0”、8位数据位、1位停止位“1”。(3)方式2串行口为11位异步通信接口。发送或接收一帧信息包括1位起始位“0”、8位数据位、1位可编程位、1位停止位“1”。(4)方式3为波特率可变的11位异步通信方式,除了波特率有所区别之外,其余方式都与方式2相同。方式0波特率固定为振荡频率1/12方式2波特率为FOSC2SMOD/64方式1和方式3波特率可变,利用公式2SMOD/32T1溢出速率计算。528异步通信接口按方式3传送,已知每分钟传送2400个字符,其波特率是多少解已知每分钟传输2400个字符,方式3为每个字符11位,所以波特率为(2400字符60秒)11位/字符440位/秒440波特529定时器T1采用方式2作波特率发生器,已知FOSC6MHZ,求产生的最高、最低波特率。解根据波特率计算公式THFOSCSMOD125613BR最高波特率为T1定时最小值时,此时初值为255,并且SMOD1,有P/B30256132BR最低波特率为T1定时最大值时,此时初值为0,并且SMOD0,有P/BM125613BR530使用89C51串口以工作方式1进行串行通信,设波特率为9600B/S,晶振频率为110592MHZ。编写全双工通信程序,以中断方式传送数据。设发送的数据在已知数组中,接收的数据保存到另一数组中。答INCLUDEUNSIGNEDCHARDATATXBUFUNSIGNEDCHARDATAREBUFVOIDMAILUNSIGNEDCHARTEMPSCON0X50TMOD0X20TH10X0FDTL10X0FDTR11ES1EA1VOIDRECREVUFSBUFVOIDTXSBUFTXBUFVOIDSERIAL_SEVINTERRUPT1IFTITI0ELSERI0REC第6章习题61什么是外部三总线总线结构有何优越性答外部三总线即指地址总线、数据总线和控制总线。总线结构的优越性体现在使整体结构灵活、规范,设计简单、方便,而且成本低。6251单片机扩展系统中,程序存储器和数据存储器共用16位地址线和8位数据线,为什么两个存储空间不会发生冲突答单片机在片外扩展RAM的地址空间为0000HFFFFH,共64KB,与ROM地址空间重叠。但因各自使用不同的指令和控制信号,因而不会发生冲突。读ROM时用MOVC指令,有选通ROM的端;读/写片外RAM时用MOVX指令,用选通RAM的端,用PSENORDOE选通RAM的端。但扩展RAM与扩展I/O口是统一编址的,使用相同的指令和控WR制信号。这在设计硬件系统和编址软件程序时应注意统筹安排。63假设某存储器有8192个存储单元,其首地址为0,则末地址为多少解因8192213,所以该存储器共有13跟地址线,其首地址

温馨提示

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

评论

0/150

提交评论