Chinaunix首页 | 论坛 | 博客
  • 博客访问: 736454
  • 博文数量: 66
  • 博客积分: 2418
  • 博客等级: 大尉
  • 技术积分: 1659
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-28 10:04
个人简介

keep moving

文章分类

全部博文(66)

文章存档

2015年(2)

2014年(6)

2013年(7)

2011年(7)

2010年(42)

2009年(2)

分类: 嵌入式

2010-03-13 15:11:51

51寄存器 - 飞得更高 - Bluesword
 

一 : 定时器 / 计数器方式选择 : TMOD 地址 (89H) 不可位寻址
D7    D6    D5    D4    D3    D2    D1    D0
GATE  C/T   M1    M0    GATE  C/T   M1    M0
GATE : 门控制位 GATE="0" 时于外部中断无关 GATE="1" 时无外部中断才允许启动。即( INT0/1 = 1 时)

C/T : 定时、计数 方式选择位。 C/T=0 时为定时方式 C/T=1 时计数方式
M1M0 : M0M1=00 时为方式 0 , M1M0=10 时为方式 1 , M1M0=11 时为方式 3


二 : 中断标志与中断控制寄存器 : TCON 地址( 88H )可位寻址
D7    D6    D5    D4    D3    D2    D1    D0
TF1   TR1   TF0   TR0   IE1   IT1   IE0   IT0
TR1 、 TR0 是 T1 、 T0 的启动控制位,置 1 起动。置 0 停止定时 / 计数器。

TF1 、 TF0 是 T1 、 T0 的溢出标志位,溢出时由硬件置 1 , CPU 响应中断后由硬件清0 软件查询时由软件清 0
IT0 、 IT1 为外部中断 0 、 1 的触发控制位 IT0/1 = 0 时为电平触发= 1 时下降沿触发
IE0 、 IE1 为外部中断 0 、 1 请求标志,当有中断信号时由硬件置 1 ,完成中断时由硬件清 0


三 : 中断允许控制寄存器 : IE 地址( A8H )可位寻址
D7    D6    D5    D4    D3    D2    D1    D0
EA    ―    ―    ES    ET1   EX1   ET0   EX0
EA : 总控位, EA="0" 时关所有中断。 EA="1" 时所有中断请求均被开放。
ES : 串行口, ES="1" 时开, ES="0" 时关串行中断
ET1 、 ET0 定时计数 = 1 时开 = 0 时关 EX1 、 EX0 外部中断= 1 时开= 0 时关


四 : 中断优先级控制寄存器 IP 地址 (B8H) 可位寻址 
D7    D6    D5    D4    D3    D2    D1    D0
―    ―    ―    PS    PT1   PX1   PT0   PX0
PS: 串口 PT1/0 定时 / 计数器 PX1/0 外部中断 = 1 高优先 = 0 低优先


五 : 串行控制寄存器 SCON 地址 (98H) 可位寻址
D7    D6    D5    D4    D3    D2    D1    D0
SM0   SM1   SM2   REN   TB8   RB8   TI    RI
SM0/1 是串行工作方式选择位,共四种工作方式见表
SM0 SM1 工作方式 说明 波特率
0 0 方式 0 同步移位寄存器 Fosc/12
0 1 方式 1 10 位异步收发 由定时器控制
1 0 方式 2 11 位异步收发 Fosc/32/64
1 1 方式 3 11 位异步收发 由定时器控制
SM2 : 是多机通信控制位,主要用于 2 和 3 。仅用于接收。

对于方式 2 和 3:

    若 SM2=1 ,允许多机通信,只有当接收到第 9 位数( RB8 )为 1 时,才接收前 8 位数送入 SBUF ,并向 RI 位产生中断请求,否则前 8 位数丢弃。

    SM2=0 时,无论 RB8 是 0/1 都将前 8 位数装入 SBUF 中并产生中断请求。在方式 0 进不用 SM2 时必须设为 0 。

在方式 1 时,若 SM2=1 时则只有接收到有效停止位时 RI 才置 1 。 REN 允许接收位, REN = 1 允许接收,否则不允许。
TB8: 为发送的第 9 位数(在方式 2 、 3 时),可用作校验位,在多机通信中,用 TB8 的状态表示主机发送的是地址还是数据。 TB8=1 时表示地址。= 0 时表示数据。
RB8: 是接收数据第 9 位(方式 2 、 3 )还代表接收数据的特征,可能是校验或地址 / 数据标志
TI: 发关中断标志位 RI: 接收中断标志位。 由软件清 0 。串行接收必须满足 REN="1",RI=0.

 

六:电源控制寄存器 PCON 地址( 87H ) SMOD =1 时波特率提高 1 倍, MOV PCON, #80H

中断控制寄存器TCON:

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

TF:定时器/计数器溢出标志位(F:FULL)

TR:定时器/计数器运行标志位(R:RUN)

IE:外部中断请求标志位

IT:外部中断触发方式标志位

中断允许寄存器IE:

EA ES ET1 EX1 ET0 EX0

EA:中断允许标志位

ES:传星口中断允许标志位

ET:定时器/计数器溢出允许标志位

EX:外部中断允许标志位

定时器/计数器工作方式寄存器TMOD

GATE C/T M1 M0 GATE C/T M1 M0

GATE:定时器/计数器工作开关

C/T:计数器/定时器控制位

M1 M0:定时器/计数器工作方式(00、01、10、11四种)

0    13位定时器/计数器

   16位定时器/计数器

   具有自动重装初值的8位定时器/计数器

1    方式3仅适用于T0,分为28位计数器

不论哪种工作方式,机器周期都是晶振频率除以12;

16位定时器的最大值是65536;

13位定时器的最大值是8192;

TH=(初值/256);

TL=(初值%256);

TCON的清零需要程序员在程序中清零,即TF0=0;

中断服务程序写法:

void 函数名(void) interrupt using n

Interrupt 中n有0-5共六种:

外部中断0、定时器0、外部中断1、定时器1、串行口、定时器2

Using n中n有0-3共四组寄存器。

IP 中断优先级控制寄存器在51中IP.0--IP.4依次控制INT0、T0、INT1、T1、UART中断的优先级,高三位不用

IE 中断使能控制器 IE.7是所有中断的总开关EA,IE.0--IE.4依次控制INT0、T0、INT1、T1、UART中断功能的开放或关断

P0、P1、P2、P3 这四个寄存器用于读写51单片机的四个I/O端口

SBUF 串行数据缓冲器 将数据写入SBUF,单片机就自动将数据从UART口发送出去

SCON 串行口功能控制器最高两位SM0、SM1控制串行口工作模式;第5位SM2通常用于多机通信中区分地址帧和数据帧;第4位REN是控制串口接收数据的使能位;第3位TB8和第2位RB8分别是在串口的相关工作模式下要发送的和接收到的第9位数据;次低位TI和最低位RI分别标识一个发送或接收过程已结束,这两个标志位都会触发串口中断

TH0、TL0 定时器T0的计数单元的高8位和低8位

TH1、TL1 定时器T1的计数单元的高8位和低8位

TMOD 定时/计数器工作模式控制器低4位和高4位的内容对应相同,分别控制T0和T1的工作模式,次低位和最低位控制对应定时/计数器的工作模式;最高位控制定时/计数器的计数是否由外中断口线参与控制;次高位控制对应的定时器/计数器工作在定时方式还是对相应口线的脉冲进行计数的方式

TCON 定时/计数器控制字 TCON.0和TCON.2分别是外中断INT0和INT1的触发方式选择位IT0和IT1;TCON.1和TCON.3分别是外中断INT0和INT1的中断触发标志位IE0和IE1;TCON.4和TCON.6分别是T0和T1的计数开关TR0和TR1;TCON.5和TCON.7分别是T0和T1的中断触发标志位TF0和TF1

PCON 电源模式控制器最高位SMOD用于串行口通信的波特率加倍,低4位用于选择不同的低功耗模式,比如空闲模式、掉电模式、时钟停止模式等,但具体每一位的用法没有找到相关资料
 
下面举例说明波特率选择过程:假设系统要求的通信频率在20000bit/s以下,晶振频率为12MHz,设置SMOD=1(即波特率倍增)。则
                                     TH1=256-62500/波特率
     根据波特率取值表,我们知道可以选取的波特率有:1200,2400,4800,9600,19200。列计数器重载值,通信误差如下表:
51寄存器 - 飞得更高 - Bluesword
     因此,在通信中,最好选用波特率为1200,2400,4800中的一个。
阅读(3173) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~