表4.4 TMOD存储器结构
Mnemonic Add 7 6 5 4 3 2 1 0
TMOD 89H GATE
GATE1 C/T
C/T1 M1
M1_1 M0
M1_0 GATE
GATE0 C/T
C/T0 M1
M0_1 M0
M0_0
由表4.4可知,前4位为控制定时器1,后四位为控制定时器0。
GATE: 门控信号。当GATE=1时,定时器/计数器的启动受到双重控制,即要求TR0/TR1和INT0/INT1同时为高电平时,定时器/计数器才可工作。GATE=0时,定时器/计数器的启动仅受TR0或TR1控制。
C/T:决定定时器1是作为定时器还是计数器(本质都是2进制计数器)。=1时,时钟信号源为系统内部时钟,就称为定时器;当C/T=0时,定时器1的时钟信号源从T1/P3.5输入,定时器0的时钟信号源从T0/P3.4输入。
M1和M0:用于决定定时器/计数器模式(也就是上文提到的定时器工作方式 表4.5):
表4.5 定时器/计数器模式选择
M1 M0 方式 定时器/计数器模式选择
0 0 0 13位计数器,由TL(1/0)的低5位和TH(0/1)的8位构成 。
0 1 1 16位计数器,TH和TL全用 。
1 0 2 自动装入计数初值的8位重装计数器,当溢出时,TH存放的值自动重装入TL中 。
1 1 3 T0分为两个8位计数器,T1停止计数
在晶振固定的情况下,为了让溢出率灵活可变,本次设计中串口通信时选用定时器方式2,自动装入计数初值的8位重装计数器。
表4.6 TCON存储器结构
Mnemonic Add 7 6 5 4 3 2 1 0
TCON 88H TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TF1:定时器1的溢出标志,可作为中断使用。
TR1:定时器1控制位。TR1=1时,定时器1才可能计数。
根据上文所设计的材料,在晶振固定为12M并且定时器工作方式为2的情况下可以计算出TH1的值为0xF3,所以串口通信的初始设置代码为:
…
SCON = 0x50; //REN=1允许串行接受状态,串口工作模式1 TMOD|= 0x20; //定时器工作方式2 自动装入计数初值的8位重装计数器
PCON|= 0x80;
TH1 = 0xF3; //baud*2 /* 波特率4800、数据位8、停止位1。效验位无。(12M)
TL1 = 0xF3;
TR1 = 1; //使用定时器1
…
4.1.2 NRF905无线收发模块详细功能
NRF905 采用SPI 与STC单片机连接,可自动处理字头和CRC,只需将要发送的数据和接收机地址送给NRF905,NRF905会自动完成数据打包(加字头和CRC 校验码)、发送,在接收中有载波检测和地址应配引脚,接收到正确的数据包时,自动移去字头、地址和CRC 校验码,然后通知微处理器取数据。 基于NRF905的无线呼叫系统设计与实现(12):http://www.youerw.com/jisuanji/lunwen_1185.html