5-6解答:
单片机系统复位后(TMOD)=00H,即T0工作在模式0,使用的是TL0的低5位和TH0构成13位定时/计数器,由于(TH0)=06H,(TL0)=00H,所以定时的初值为:
X=0000011000000B=192
假设系统晶振频率为6MHz,机器周期T=2μs,则定时时间为:
5-7解答: ORG LJMP ORG START: MOV MOV SETB LOOP: SETB MOV LOP1: JBC SJMP LOP2: CLR MOV LOP3: JBC SJMP END 5-8解答: ORG LJMP ORG START: MOV LOOP: CLR MOV MOV SETB LOP1: JBC SJMP LOP2: CLR MOV MOV SETB LOP3: JBC SJMP END 5-9解答:
定时值=(M-X)T=(213-192)×2μs=16000μs=16ms
0000H START 0200H TMOD,#20H TL1,#231 TR1 P1.2 TH1,#81 TF1,LOP2 LOP1 P1.2 TH1,#231 TF1,LOOP LOP3 0000H START 0300H TMOD,#51H TR0 TL1,#18H TH1,#0E0H TR1 TF1,LOP2 LOP1 TR1 TL0,#18H TH0,#0E0H TR0 TF0,LOOP LOP3
TF0为定时/计数器T0的溢出标志位。 TF1为定时/计数器T1的溢出标志位。 TF2为定时/计数器T2的溢出中断标志位。
EXF2为定时/计数器T2的外部触发中断标志位。
当定时/计数器T0或T1溢出时TF0或TF1由硬件置1,使用查询方式时,此位做状态位供查询,查询有效后需由软件清零;使用中断方式时,此位做中断申请标志位,进入中断服务后被硬件自动清零。
当定时/计数器T2计数溢出或外部触发时,TF2或EXF2置1,并申请中断,但该两位只能靠软件清除。
5-10解答:
RCLK为接收时钟选择位,靠软件置位或清除,用以选择定时/计数器2或1做串行口接收波特率发生器。
TCLK为发送时钟选择位,靠软件置位或清除,用以选择定时/计数器2或1做串行口发送波特率发生器。
如果两者都被清零,则T2工作在定时/计数器方式。此时当C/T2=0时,TH2和TL2计的是机器周期数,做定时器使用;当C/T2=1时,计数脉冲来自T2(P1.0)引脚,TH2和TL2做外部信号脉冲计数用。
5-11解答:
52系列单片机的T0、T1和T2对外来脉冲进行计数时,T0的外来脉冲引入引脚为P3.4;T1的外来脉冲引入引脚为P3.5;T2的外来脉冲引入引脚为P1.0。
5-12解答:
CP/RL2为捕获或重装载标志,由软件设置或清除。当CP/RL2=1时选择捕获功能,这时若EXEN2=1,且T2EX端的信号负跳变时,发生捕获操作,即把TH2和TL2的内容传递给RCAP2H和RCAP2L;当CP/RL2=0时,选择重装载功能,这时若定时器2溢出,或在EXEN2=1条件下T2EX端信号有负跳变,都会造成自动重装载操作,即把RCAP2H和RCAP2L的内容传送给TH2和TL2。
5-13解答:
初值=65 536-fose/(波特率×2×16)
=65 536-(11.059 2×106)/(19 200×2×16) =65 536-18 =65518 =FFEEH
即T2的重复装载常数为:TH2=0FFH,TL2=0EEH
第6章 串行接口
6.1解答:
计算机与外界信息交换的基本方式可分为并行通信与串行通信:并行通信是数据的各位同时传送,并行通信的特点是传送速度快,但不适用长距离传输;串行通信是数据的各位依次逐位传送,串行通信的特点是传送速度较慢,但传输距离较长。
并行通信适合近距离的CPU之间或设备之间快速进行数据交换;串行通信适合长距离的CPU之间或设备之间进行数据交换,或近距离的慢速数据交换。 6.2解答:
①异步通信依靠起始位、停止位、保持通信同步。
②特点是数据在线路上的传送不连续,传送时,字符间隔不固定,各个字符可以是连续传送,也可以间断传送,这完全取决于通信协议或约定。
③ 串行异步通信的数据帧格式如图6-1:一位起始位“0”电平;其后是5位、6位、7位或8位数据位,低位在前,高位在后;后面是一位奇偶校验位;最后是停止位“1”电平。
起始位 D0 D1 D2 D3 D4 D5 D6 D7 奇偶校验位 停止位 图6-1 异步通信的数据帧格式 6.3 解答:
串行通信有3种数据传送形式 单工方式:数据传送是单向的。
半双工方式:数据传送是双向的,在同一时间只能做一个方向的传送。 全双工方式:数据传送是双向的,即可同时发送,又可同时接收。
A B A B A B A单工方式 b半双工方式 C全双工方式 图6-2串行通信数据传送3种形式
6.4解答:
波特率表示每秒传输的二进制数据位数。
Fb=11×250=2750 其波特率应为2750bps。 6.5解答:
MCS-51单片机串行口有4种工作模式,由串行控制寄存器SCON 中的SM0、SM1 两位组合来确定。
模式0是同步位移寄存器方式,用于I/O口的串、并转换。
模式1是8位异步通信方式,桢格式10位,波特率可变,用于双机通信。 模式2是9位异步通信方式,桢格式11位,波特率固定,用于多机通信。
模式3是9位异步通信方式,桢格式11位,波特率可变,用于多机远距离通信。 模式1、2、3的区别主要表现在桢格式和波特率两个方面。 6.6解答:
模式0的波特率固定:fosc/12
模式2的波特率固定:fosc/n(n=64或32)
模式1、3的波特率可变:T1溢出率/n(n=32或16) 6.7解答:
定时器T1模式2是自动装载初值模式,波特率精度高。若已知系统晶振频率、通信选用的波特率,
其初值
x?256?fosc(smod?1)384*波特率
6.8解答:
MCS-51单片机串行口的模式0是同步位移寄存器方式,用于I/O口的串、并转换。扩展并行I/O口时,需要对串行控制寄存器SCON进行初始化设置;串行口需外接移位寄存器,串行口的TXD端作为同步时钟端,RXD作为串行数据的I/O端。 6.9解答:
多机通信时,主机发送的信息可传送到各个从机,而各从机发送的信息只能被主机接收,利用SCON
中的TB8/RB8和SM2可实现多机通信。
多机通信过程:
①所有从机在初始化时置SM2=1,都处于只能接收主机发送的地址桢(RB8=1)。 ②主机发送地址桢(TB8=1),指出接收从机的地址。 ③所有从机接收到主机发送的地址桢后,与自身地址相比较,相同则置SM2=0;相异则保持SM2=1不变。
④主机发送数据桢(TB8=0),由于指定的从机已将SM2=0,能接收主机发送的数据桢,而其它从机仍置SM2=1,对主机发送的数据桢不予理睬。
⑤被寻址的从机与主机通信完毕,重置SM2=1,恢复初始状态。 6.10 解答:
串行口工作在模式2,确定SMOD=1。未规定波特率,定时器初值任取,但两机要保持一致。 甲机发送子程序:
TXDA:MOV TMOD, #20H ;置T1定时器工作方式2 MOV TL1, #0FDH ;置初值 MOV TH1, #0FDH ;置初值 SETB TR1 ;启动T1
MOV SCON, #90H ;置串口方式2,允许接收,且SM2=0 MOV PCON, #80H ;置SMOD=1(SMOD不能位操作) CLR ES ;禁止串行中断
MOV DPTR, #2200H ;指发送数据区首地址 MOV R2, #51H ;指发送数据长度 TRSA:MOVX A, @DPTR ;读一个数据 MOV C,P MOV TB8,C ;置校验位
MOV SBUF, A ;发送
JNB TI, $ ;等待一桢数据发送完毕 CLR TI ;清发送中断标志 INC DPTR ;指向下一字节单元
DJNZ R2, TRSA ;判数据发完否?未完继续 RET ; 乙机接收子程序:
RXDB:MOV TMOD, #20H ;置T1定时器工作方式2 MOV TL1, #0FDH ;置初值 MOV TH1, #0FDH ;置初值 SETB TR1 ;启动T1
MOV SCON, #90H ;置串行方式2,允许接收,且SM2=0 MOV PCON, #80H ;置SMOD=1(SMOD不能位操作) CLR ES ;禁止串行中断
MOV DPTR, #1400H ;置接收数据区首地址 MOV R2, #51H ;置接收数据长度 SETB REN ;启动接收 SETB F0 ;先置出错标志F0为1。 RDSB:JNB RI, $ ;等待一桢数据接收完毕
CLR RI ;清接收中断标志 MOV A, SBUF ;读接收数据 MOVX @DPTR, A ;存接收数据 MOV C,RB8 ANL C,P
JC RDSB2 ;都是1,则正确 MOV C,RB8 ORL C,P
JNC RDSB2 ;都是0,则正确 LJMP RXDBD ;出错
RDSB2:INC DPTR ;指向下一数据存储单元
DJNZ R2, RDSB ;判数据接收完否?未完继续 CLR F0 ;正确接收,则清除出错标志F0
RXDBD:RET ;
第7章 中断系统
7.1解答:
①MCS-51系统有INT②INT00 、T0、INT1 、T1和串行口共五个中断源;
和INT1的中断标志是IE0和IE1,在电平方式下,当外部中断输入信号是低电平时,由硬
件置1;在边沿方式下,当外部中断输入信号是下降沿时,由硬件置1;定时计数器溢出中断T0和T1的中断标志位是TF0和TF1,当定时/计数器产生溢出时,该位由硬件置1;串行口中断标志是TI或RI,当单片机接收到或发送完一帧数据后,由硬件置1。
③外部中断INT0和INT1的电平方式,无法清除,需采取硬件和软件相结合的方法来清除;边沿方
式,在CPU响应中断后自动清除;定时/计数器0和1的溢出中断,在CPU响应中断后自动清除;串行口中断(包括串行接收中断RI和串行发送中断TI),由软件清零。
④INT0 、T0、INT1 、T1和串行口中断5个中断源分别对应的中断入口地址是:
0003H、000BH、0013H、001BH、0023H。 7.2 解答:
MCS-51的中断系统有两个中断优先级:高优先级和低优先级。 中断优先级的控制方式是:
①高优先级中断可以中断正在响应的低优先级中断,反之则不能。
②优先级中断不能互相中断。即某个中断(不论是高优先级或低优先级)一旦得到响应,与其同级的中断就不能再中断它。
③同一中断优先级中优先权由高到低的次序是INT0 、T0、INT1 、T1和串行口中断,若有多个中
断源同时请求中断,CPU将先响应优先权高的中断,后响应优先权低的中断。
通过中断优先级控制寄存器IP可以选择5个中断源的优先级别 7.3解答:
①MCS-51有IE0、TF0、IE1、TF1、TI和RI 共6个中断标志位。