单片机课后练习答案

答:两者的区别在于,RETI清除了中断响应时,被置1的MCS-51内部中断优先级寄存器 的优先级状态。

5.14 某系统有3个外部中断源1、2、3,当某一中断源变为低电平时,便要求CPU进行处 理,它们的优先处理次序由高到低依次为3、2、1,中断处理程序的入口地址分别为1000H, 1100H,1200H。试编写主程序及中断服务程序(转至相应的中断处理程序的入口即可)。

ORG 0000H AJMP MAIN ORG 0003H LJMP PINT0 ORG 0100H

MAIN: SETB IT0 SETB EX0 SETB EA

HERE: SJMP HERE PINT0: PUSH PSW PUSH A

JNB P1.3,IR3 JNB P1.2,IR2 JNB P1.1,IR1 PINTIR: POP A POP PSW RETI

IR3: LJMP IR3INT IR2: LJMP IR2INT IR1: LJMP IR1INT ORG 1000H

IR3INT: LJMP PINTIR ORG 1100H

IR2INT: LJMP PINTIR ORG 1200H

IR1INT: LJMP PINTIR END

第六章 MCS-51的定时器/计数器

6.1 如果采用的晶振的频率为3MHZ,定时器/计数器工作在方式0、1、2下,其最大的定时 时间各为多少?

答:方式0 213*4us=32.768

方式1 216*4us=262.144

方式2 28*4us=1.024

6.2 定时器/计数器用作定时器时,其计数脉冲由谁提供?定时时间与哪些因素有关?

答:定时器/计数器被选定为定时器工作模式时,计数输入信号是内部时钟脉冲,每个机器 周期产生1个脉冲使计数器增1,因此,定时器/计数器的输入脉冲的周期与机器周期一样, 为时钟振荡频率的1/2。

6.3 定时器/计数器作计数器使用时,对外界计数频率有何限制?

答:定时器/计数器用作计数器时,计数脉冲来自相应的外部输入引脚T0或T1。对外界计 数频率要求为其最高频率为系统振荡频率的1/24。

6.4 采用定时器/计数器T0对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方

式。定时1ms后,又转为计数方式,如此循环不止。假定MCS---51单片机的晶体震荡器的 频率为6MHZ,请使用方式1实现,要求编写出程序。

ORG 0000H AJMP MAIN ORG 000BH LJMP PT0J ORG 0100H

MAIN: MOV TMOD,#05H;00000001 MOV TH0,#0FFH;X=65436 MOV TL0,#9CH CLR F0 SETB TR0 SETB ET0 SETB EA

HERE: AJMP HERE PT0J: JB F0,PT0D

MOV TMOD,#01H;00000001 MOV TH0,#0FEH;X=65036 MOV TL0,#0CH SETB F0

RETI

PT0D: CLR F0 MOV TMOD,#05H MOV TH0,#0FFH MOV TL0,#9CH RETI

END

6.5 定时器/计数器的工作方式2有什么特点?适用于哪些应用场合?

答:工作方式2为自动恢复初值的(初值自动装入)8位定时器/计数器,TLX作为常数缓 冲器,当TLX计数溢出时,在置1溢出标志TFX的同时,还自动的将THX中的初值送至 TLX,使TLX从初值开始重新计数(X=0,1)。

6.6 编写程序,要求使用T0,采用方式2定时,在P1。0输出周期为400微秒,占空比为1: 10的矩形脉冲。

ORG 0000H AJMP MAIN ORG 000BH AJMP PT0 ORG 0100H

MAIN: MOV R2,#00H MOV TMOD,#02H

MOV TH0,#0ECH;X=236 MOV TL0,#0ECH SETB P1.0 SETB TR0 SETB ET0 SETB EA

HERE: SJMP HERE

PT0: CJNE R2,#09H,PT01 SETB P1.0 MOV R2,#00H RETI

PT01: CLR P1.0 INC R2 RETI END

6.7 一个定时器的定时时间有限,如何实现两个定时器的串行定时,来实现较长时间的定 时?

答:第一个定时溢出启动第二个定时计数,实行串行定时

6.8 当定时器T0用于方式3时,应该如何控制定时器T1的启动和关闭?

答:控制信号C/T和M1 M0。

6.9 定时器/计数器测量某正脉冲的宽度,采用何种方式可得到最大量程?若时钟频率为

6MHZ,求允许测量的最大脉冲宽度是多少?

答:上升沿从0开始计数,计满回到下降沿。最大脉冲宽度Tw=131.072us

6.10编写一段程序,功能要求为:当P1.0引脚的电平正跳变时,对P1.1的输入脉冲进行计

数;当P1.2引脚的电平负跳变时,停止计数,并将计数值写入R0、R1(高位存R1,低位 存R0)。

ORG 0000H LJMP MAIN

MAIN: ORG 0100H MOV R0,#00H MOV R1,#00H MOV TL0,#00H MOV TH0,#00H

LOOP1: JB P1.0,LOOP1 LOOP2: JNB P1.0,LOOP2 SETB TR0

LOOP3: JNB P1.2,LOOP3 LOOP4: JB P1.2,LOOP4 CLR TR0 MOV R1,TH0 MOV R0,TL0 END

6.11 THX与TLX(X=0,1)是普通寄存器还是计数器?其内容可以随时用指令更改吗?更 改后的新值是立即刷新还是等当前计数器计满之后才能更新?

答:THX与TLX(X=0,1)是计数器,能用指令更改;能立即刷新。

6.12 判断下列说法是否正确?

(1)特殊功能寄存器SCON,与定时器/计数器的控制无关。 (√)

(2)特殊功能寄存器TCON,与定时器/计数器的控制无关 (×)

(3)特殊功能寄存器IE,与定时器/计数器的控制无关 (×)

(4)特殊功能寄存器TMOD,与定时器/计数器的控制无关 (×)

第七章 MCS-51的串行口

文本框: T0

0 0 0 0 0 1 0 1 0 1 1

7.3 帧格式为1个起始位,8个数据位和1个停止位的异步串行通信方式是方式(1)。

7.4 串行口有几种工作方式?有几种帧格式?各种工作方式的波特率如何确定?

答:串行口有四种工作方式:方式0、方式1、方式2、方式3

有三种帧格式:

方式0帧格式

方式0波特率=Fosc/12

方式1帧格式

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

方式2和方式3帧格式

方式2的波特率=2*Fosc/64 MOD

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

7.5 假定串行口发送的字符格式为1个起始位,8个数据位,1个奇校验位,1个停止位,请

画出传送字符“A”的帧格式?

7.6 判断下列说法是否正确

(A)串行口通行的第9数据位的功能可由用户定义。(T)

(B)发送数据的第9数据位的内容在SCON寄存器的TB8位中预先准备好的。(T)

(C)串行通讯帧发送时,指令把TB8位的状态送入发送SBUF中。(F)

(D)串行通讯接收到的第9位数据送SCON寄存器的RB8中保存。(T)

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4