单片机课后习题解答(4)

2019-09-01 19:50

;求平方子程序如下(采用查平方表的方法) SQR: INC A

MOVC A, @A+PC RET

TABLE: DB 0, 1, 4, 9, 16

DB 25,36,49,64,81 END

22、如何实现将内存单元40H~60H的数逐个对应传到片外2540H~2560H单元中? 答: MOV R0,#40H MOV DPTR,#2540H MOV R2,#21H L1: MOV A,@R0 MOVX @DPTR,A INC R0 INC DPTR DJNZ R2,L1 SJMP $ 23、参考21题 24、参考21题 25、参考实验程序 26、参考实验程序

第五章 定时/计数器

1、89S51单片机内部有几个定时/计数器,他们有哪些专用寄存器组成?

答:89S51单片机内部有两个16位定时/计数器,为定时器0(T0)和定时器1(T1)。在定时器/计数器的16位的计数器是由两个8位的专用寄存器TH0、TL0,TH1、TL1组成。 2、89S51单片机的定时/计数器有哪几种工作方式,各有什么特点?

答:定时器/计数器有四种工作方式:方式0,方式1,方式2,方式3。其中,方式3只适用于T0。

以T0为例:①方式0,16位寄存器只用了13位,TL0的高三位未用。由TH0的8位和TL0的低5位组成一个13位计数器;②方式1,和方式0的工作相同,唯一的差别是TH0和TL0组成一个16位计数器;③方式2,把TL0配置成一个可以自动恢复初值的8位计数器,TH0作为常数缓冲器。TH0由软件预置值。当TL0产生溢出时,一方面使溢出标志TF0置1,同时把TH0中的8位数据重新装入TL0中;④方式3,将使TL0和TH0成为两个相互独立的8位计数器,TL0利用T0本身的一些控制,它的操作与方式0和方式1类似。而TH0被规定为只用作定时器功能,对机器周期计数,并借用了T1的控制位TR1和TF1。在这种情况下TH0控制了T1的中断。这时T1还可以设置为方式0~2,用于任何不需要中断控制的场合,或者用作串行口的波特率发生器。

3、定时/计数器用作定时方式时,其定时时间与哪些因素有关?作为计数时,对外界计数频率有何限制?

答:定时/计数器作定时时,其计数脉冲由系统振荡器产生的内部时钟信号12分频后提供。定时时间与时钟频率和定时初值有关。

- 15 -

定时/计数器作计数时,由于确认1次负跳变要花2个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为系统振荡器频率的1/24。

4、当定时器T0用作方式3时,由于TR1位已被T0占用,如何控制定时器T1的开启和关闭? 答:定时器T0用作方式3时,由于TR1位已被T0占用,此时通过控制位C/T切换其定时或计数器工作方式。当设置好工作方式时,定时器T1自动开始运行,若要停止,只需送入一个置定时器T1为方式3的方式字。

5、已知89S51单片机系统时钟频率为24MHz,请利用定时器T0和P1.2输出矩形脉冲。矩形波高电平宽度50μs,低电平宽度350μs。 答: ORG 1000H

MOV TMOD,#02H ;设置工作方式 MOV TH0,#09CH ;设置定时器初值 MOV TL0,#09CH

SETB TR0 ;启动定时器

LOOP: SETB P1.2 ;P1.0输出高电平

MOV R0,#07H

DEL: JBC TF0 ,REP ;定时是否到?

AJMP DEL

REP: SETB P1.2 ;P1.0输出低电平

DJNZ R0,DEL AJMP LOOP END

6、在89S51单片机中,已知时钟频率为12MHz,请编程使P1.0和P1.1分别输出周期为2ms和500μs的方波。

答:选择方式2,用定时器T1 MOV TMOD,#20H MOV TH1,#06H MOV TL1,#06H SETB TR1

L1: MOV R2,#04H L2: JNB TF1,$ CLR TF1, CPL P1.1 DJNZ R2,L2 CPL P1.0 LJMP L1

7、设系统时钟为24MHz,试用定时器T0做外部计数器,编程实现每计到1000个脉冲,是T1开始2ms定时,定时时间到后,T0又开始计数,循环往复。

答: MOV TMOD,#15H ;T1定时方式1,T0计数方式1 L1: MOV TH0,#0FCH MOV TL0,#18H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0

MOV TH1,# H

- 16 -

8、略 9、略

MOV SETB JNB CLR CLR LJMP TL1,# H TR1 TF1,$ TR1 TF1 L1

第六章 80C51的串行接口

1、什么是串行异步通信?他有哪些特点?有哪几种帧格式?

答:串行通信即所传输数据的各位按顺序一位一位的发送或接收。串行通信分为同步和异步两种方式。

在异步通信中数据或字符是一帧一帧地传送的。帧定义为一个字符的完整的通信格式,通常也称为帧格式。

它的主要特点:由于异步通信每传送一帧有固定的格式,通信双方只需按约定的帧格式来发送和接收数据,所以硬件结构比同步通信方式简单;此外它还能利用校验位检测错误。

帧格式的一般形式是先用一个起始位“0”表示字符的开始,然后是数据位,其后是奇偶校验位,最后是停止位,用以表示字符结束。

2、某异步通信接口按方式3传送,已知其每分钟传送3600个字符,计算其传送波特率。

答:设每个字符由1个起始位、8个数据位、1个可编程位和1个结束位组成,其传送波特率为: 11b×3600/60s=660bps

3、80C51单片机的串行口由哪些基本功能部件组成? 答: 80C51单片机的串行口基本功能部件主要有:两个数据缓冲寄存器SBUF,一个串行口控制寄存器SCON,一个输入移位寄存器。

4、80C51单片机的串行口有几种工作方式?几种帧格式?如何设置不同方式的波特率? 答:80C51单片机的串行口有四种工作方式,由串行口控制寄存器中的SM0、SM1控制。

80C51单片机的串行通信有8位、10位、11位三种帧格式。

波特率设置:4种工作方式波特率的计算方法不同,其中方式0和方式2的波特率是固定的,方式1和方式3的波特率是可变的,均由定时器T1的溢出率控制。具体计算如下:

方式0:波特率固定为时钟频率的1/12,不受SMOD的影响。(SMOD为波特率倍增位)

SMOD

方式1的波特率=2/32×定时器T1的溢出率

SMOD

方式2的波特率=2/64×fosc

SMOD

方式3的波特率=2/32×定时器T1的溢出率

5、为什么定时器T1用作串行口波特率发生器时,常采用工作方式2?

答:在串行通信中,收发双方对发送或接收的数据速率(即波特率)要有一定的约定。串口有四种工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,有定时器T1的溢出率控制。定时器T1用作串行口波特率发生器时,因为工作方式2是自动重装载方式,因而定时器T1作波特率发生器常采用工作方式2.

6、已知定时器T1设置成方式2,用作波特率发生器,系统时钟频率为24MHz,求可能产生的最高和最低的波特率是多少?

- 17 -

答:最高波特率:TH1=0FFH,TL1=0FFH

波特率最高=2/32×24M/(12×(256-255))bps=0.125Mbps 最低波特率:TH1=00H,TL1=00H

波特率最低=1/32×24M/(12×(256-0))bps=244bps

7、略(参见教材相关例题)

8、利用AT89S51串行口控制8个发光二极管工作,要求发光二极管每隔1S交替的亮灭,画出电路并编写程序。

答:电路如下图所示

220*8AP3.0BQ0Q1Q280C51Q374HC164Q4P3.1CKQ5Q6P1.0CLRQ7VCC

实验程序如下:

CLR P1.0 ;清输出

SETB P1.0 ;允许串行移位 MOV SCON,#00H

MOV A,#55H ;显示初值 AGAIN: MOV SBUF,A JNB TI,$ CLR TI LCALL DLY_1S RR A LJMP AGAIN DLY_1S: MOV R1,#20 L3: MOV R2,#200 L2: MOV R3,#250 L1: DJNZ R3,L1 DJNZ R2,L2 DJNZ R1,L3 RET

9、串行口异步通信时,ASCII码“3”的字符格式(10位)如何?

答:串行口异步通信时,10位的数据帧结构为:一个起始位(0),8个数据位(先低位后高位),一个停止位(1)。

故ASCII码“3” 的字符格式为:0110011001B。

10、若选用定时器T1作波特率发生器,设fosc=6MHz,计数初值为0FDH,SMOD=1,求波特率是多少?

答:若选用定时器 T1作波特率发生器,波特率由下式确定:

波特率=(定时器T1溢出率)/n

公式中:①n为32或16,取决于特殊功能寄存器PCON中的SMOD位的状态。若SMOD=0,则n=32。若SMOD=1,则n=16。②定时器T1溢出率=定时器T1的溢出次数/秒。 由题可知:fosc=6MHz,计数初值为0FDH,SMOD=1,故

- 18 -

6MHz?10.42kHz

16?12??256?0FDH?第七章 中断系统

1、什么是中断?在单片机中中断能实现哪些功能?

答:中断是通过硬件来改变CPU程序运行方向。计算机在执行程序过程中,由于CPU以外的原因,有必要尽快终止当前程序的执行,而去执行相应的处理程序,待处理结束后,在回来继续执行被终止的原程序。这种程序在执行过程中由于外界的原因而被中间打断的情况成为“中断”。

中断能实现的功能:(1)能实现中断及返回。

(2)能实现优先权的排队。 (3)能实现中断的嵌套。

2、什么是中断优先级?中断优先级处理的原则是什么?

答:通常,在系统中会有多个中断源,有时会出现两个或更多个中断源同时提出中断请求的情况,这就要求计算机能区分各个中断源的请求,有能确定首先为哪一个中断源服务。为了解决这一问题,通常给各中断源规定了优先级别,称为优先权或中断优先级。

中断优先级处理原则:两个或两个以上的中断源同时提出中断申请时,计算机首先为中断优先权最高的中断服务,服务结束以后,再响应级别较低的中断源。

3、80C51有几个中断源,各中断标志如何产生的,又如何清“0”的?CPU响应中断时,中断入口地址各是多少?

答:8051单片机有5个中断源,分别是:外部中断0、定时器T0中断、外部中断1、定时器T1中断、串行口中断。

中断标志产生与清“0”: (1)外部中断:外部中断由外部原因引起,可以通过两个固定的引脚(INT0和INT1)输入信号。一旦输入信号有效,则向CPU申请中断并使IE0(或IE1)=1。硬件复位。

(2)定时器中断:定时器中断是为了满足定时或计数溢出处理的需要而设置的。当定时/计数器的计数结构发生计数溢出时,即表明定时时间到或计数次数到,此时就以计数器溢出信号作为中断请求,去置一个溢出标志位(TF0或TF1=1)。使用中断时通过硬件复位,在查询方式下可由软件复位。

(3)串口中断:串行中断请求是在单片机内部产生的。当发送完数据或接收完数据后,就会置相应标志位(TI或RI=1)。一旦响应中断,必须由软件进行复位。

中断入口地址:外部中断0、定时器T0中断、外部中断1、定时器T1中断、串行口中断的入口地址依次为:0003H,000BH,0013H,001BH,0023H。 4、中断响应时间是否确定不变的?为什么?

答:中断响应时间不是确定不变的。由于CPU不是在任何情况下都可以中断请求予以响应,不同情况对中断响应的时间也是不一样的。中断信号会在每个机器周期的S5P2时刻对相应中断标志位进行置位,若CPU在下一个机器周期才能查询到中断请求,如果满足中断响应的条件,下一条指令将是一硬件长调用指令,使程序转入中断矢量入口,调用本身需要2个机器周期,因此响应中断至少需要3个机器周期。如遇正在执行的指令,或有同级、更高级的中断服务正在进行,则需更长时间。若系统中只有一个中断源,则响应时间为3~8个机器周期。

5、用定时器T1定时,要求在P1.6口输出一个方波,周期为1min,晶振为12MHz,请用中断方式实现,并分析采用中断后的优点。

答:使用定时器T1,工作在方式1,定时50ms ORG 0000H LJMP MAIN

- 19 -


单片机课后习题解答(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:网络课书法鉴赏习题答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: