《单片机原理及应用(林立-张俊亮版)课后习题答案---副本》由会员分享,可在线阅读,更多相关《单片机原理及应用(林立-张俊亮版)课后习题答案---副本(6页珍藏版)》请在金锄头文库上搜索。
1、第2章 MCS-51单片机结构与原理习题6片内RAM中低128个单元划分为哪三个主要部分?各部分的主要功能是什么?答:片内RAM中低128个单元划分为三个部分:工作寄存器区00H-1FH,四组,每组8个,可作用工作寄存器切换使用;可位寻址区20H-2FH,16B,位地址为00H-7FH,用作为按位寻址的空间;用户RAM区30H-7FH,80B,用作普通RAM单元或堆栈.7程序状态字寄存器PSW各位的定义是什么?答:程序状态字寄存器PSW各位的定义如下:CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PPSW.
2、7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0PSW.7:进/借位标志CY,加法有进位时置1,减法有借位时置1;PSW.6:辅助进位标志AC,加法运算低四位向高上四位有进位时置1;PSW.5、PSW.1:用户标志位F0和用户标志位F1,保存用户的位数据;PSW.4、PSW.3:工作寄存器选择控制位RS1和RS0,00至11分别选择四组工作之一作为当前工作寄存器PSW.2 :溢出标志位OV,有符号数加、减运算结果有溢出或乘除上结果异常时置1PSW.0:奇偶标志位P,累加器A中1的个数为奇数时置1.8什么是时钟周期?什么是机器周期?什么是指令周期?当振荡频率为12MHz时
3、,一个机器周期为多少微秒?答:时钟周期又叫振荡周期或拍,用P表示,是MCS-51单片机中最小的时间单位,在一个时钟周期内,CPU完成一个最基本的动作.机器周期:由12个时钟周期构成,完成一个基本操作指令周期:是执行一条指令所需的时间,根据指令的复杂性,可由14个机器周期构成.当振荡频率为12MHz时,一个机器周期为1微秒.第4章单片机的C51语言习题1C语言的优点是什么?C程序的主要结构特点是什么?答:C语言是一种高级语言,学习比低级容易,不需要具体组织、分配存储器资源和处理端口数据,可以直接驱动单片机的所有资源.C程序以函数为单位,由一个主函数和若干个其他函数构成,主函数是程序的入口,其他函
4、数由主函数直接或间接调用.程序可以由一个文件或多个文件组成.文件类型包括头文件和C语言源文件,也可以是汇编语言文件,C程序可与汇编语言混合编程.5定义变量a,b,c,其中a为内部RAM的可位寻址区的字符变量,b为外部数据存储区浮点型变量,c为指向 int 型 xdata 区的指针.答:char bdata a;float xdata b;int xdata *c;9内部RAM 20H、21H和22H、23H单元分别存放着两个无符号的16位数,将其中的大数置于24H和25H单元.解:方法一:#includevoid main unsigned int *ptr;/设置一个内部RAM指针 unsi
5、gned int x,y,z; ptr=0x20;/指向0x20单元 x=*ptr;/取第一个数 ptr=0x22;/指向0x22单元 y=*ptr;/取第二个数 z=y?x:y;/将两数中的较大者赋给z ptr=0x24;/指向地址为0x24的目标单元 *ptr=z;/将大数存入目标单元方法二:#include#includevoid main unsigned int x,y,z; x=DBYTE0X20*256+DBYTE0X21; y=DBYTE0X22*256+DBYTE0X23; z=y?x:y;/将两数中的较大者赋给z DBYTE0X24=z/256; DBYTE0X25=z%2
6、56;方法三:#includeunsigned int x _at_ 0x20;unsigned int y _at_ 0x22;unsigned int z _at_ 0x24;void main z=y?x:y;第5章单片机的中断系统习题1什么是中断、中断源、中断优先级和中断嵌套?答:中断是指单片机内部有一个中断管理系统,它对内部的定时器事件、串行通信的发送和接收与外部事件如键盘按键动作等进行自动的检测判断.当CPU正在处理某件事情例如正在执行主程序的时候,外部或内部发生的某一事件如某个引脚上电平的变化,一个脉冲沿的发生或计数器的计数溢出等请求CPU迅速处理,于是,中断管理系统会置位相应标
7、志通知CPU暂时中止当前的工作,迅速转去处理所发生的事件.处理完该事件后,再回到原来被中止的地方,继续原来的工作,这样的过程称为中断.引发中断的事件称为中断源.将中断事件按轻重缓急分若干级别叫中断优先级.允许中断优先级高的中断源中断正在执行的低优先级的中断服务程序叫中断嵌套.2什么叫中断源?MCS-51有哪些中断源?答:中断源即引发中断的事件.MCS-51单片机有5个中断源,它们是外部中断0,定时器T0,外部中断1,定时器T1,串行口.7设fosc = 12MHz,利用定时器,TO在P1.1引脚上获取输出周期为O.4ms的方波信号,定时器溢出时采用中断方式处理,请编写,T0的初始化程序与中断服
8、务程序.解:fosc = 12MHz,则机器周期=1us;当T0工作在方式2时,其最大定时时间为256us,要输出周期为0.4mS即400us的方波信号,则其高、低电平应各为200us,显然当定时器T0按方式2工作时,只需计数达到200次即可,因此其时间常数初值为256-200=56.在T0的中断服务程序中,只需将P1.1引脚求反即可.#includesbit P1_1=P11;void timer0interrupt 1 using 1 P1_1=!P1_1;void main P1_1=0; TMOD=0x02; TH0=56; TL0=56; IE=0x82; TR0=1; for第6章
9、单片机的定时器/计数器习题2如果采用的晶振频率为3MHz,定时/计数器TO分别工作在方式0、1和2下,其最大的定时时间各为多少?答:如果采用的晶振频率为3MHz,机器周期为121/=4us,由于定时/计数器TO工作在方式0、1和2时,其最大的计数次数为8192、65536和256所以,其最大定时时间分别是:方式0为81924us32.768ms、方式1为655364us262.144ms、方式2为2564us1024us.5定时器工作在方式2时有何特点?适用于什么应用场合?答:定时器工作在方式2时是一个可自动装入时间常数初值的8位定时/计数器,TLx为加1计数器,THx为计数初值寄存器.由于其
10、恢复初值由硬件自动完成,所以当需要反复计数时,用方式2可以方便地实现精确的定时.9设单片机的fosc = 12MHz,使P1.O和P1.1分别输出周期为1ms和lOms的方波,请用定时器TO方式2编程实现.解:fosc = 12MHz,所以机器周期为1us.要使P1.0输出周期为1000us的方波,可以通过定时中断方式实现,定时时间为250us,定时计数2次来实现,对P1.0求反即可.要使P1.1输出周期为10ms的方波,也可以通过定时中断方式实现,定时时间为5ms,当时间到时,对P1.1求反即可.由于5ms/250us=20,所以也可以通过对250us的定时计数20次来实现.程序如下:#in
11、cludesbit P1_0=P10;/输出周期为400us的方波的引脚sbit P1_1=P11; /输出周期为10ms的方波的引脚unsigned char num1=0,num2=0;/中断次数计数器,初值为0void main P1_0=0;/输出初值为0 P1_1=0;/输出初值为0 TMOD=0x02;/T0方式2定时 TH0=256-250;/计200次,计数初值为模256减200 TL0=TH0; IE=0x82;/允许CPU响应中断,允许T0发中断请求 TR0=1;/启动T0 for/无限循环等待中断void timer0interrupt 1 using 1 num1+;n
12、um2+;/中断次数加1 if / 中断次数达到2次 P1_0=!P1_0; /输出P1_0求反num1=0; /中断次数复位为0 if/ 中断次数达到20次 num2=0;/中断次数复位为0 P1_1=!P1_1;/输出P1_1求反第七章7.1. 无7.4. 89C51单片机串行通信接口控制寄存器有几个?每个寄存器的含义是什么?答:有电源控制寄存器PCON和串行口控制寄存器SCONPCON中SMOD与串口通信有关.SMOD=0; 串口方式1,2,3时,波特率正常.SMOD=1; 串口方式1,2,3时,波特率加倍其余与串行通信无关SCON中SM0、SM1:串行口工作方式控制位SM2:多机通信控制位REN:串行口接收使能控制端;REN=1时,允许接收,REN=0时,禁止接收TB8:发送接收数据位8RB8:接收数据位8TI:发送中断标志位;TI=1表示帧发送结束,TI可由软件置0RI:接收中断标志位;RI=1表示帧接收完成,RI可由软件置0第八章8.1无8.3 在由单片机80C51和一片ADC0809组成的数据采集系统中,假设ADC0809的地址为0x7