内容发布更新时间 : 2024/11/15 22:29:48星期一 下面是文章的全部内容请认真阅读。
答:两者的区别在于,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)