标题: 单片机重要寄存器 [打印本页]
作者: Williams 时间: 2018-7-16 21:03
标题: 单片机重要寄存器
一、中断:52单片机一共有6个中断源:
INTO0--外部中断0,由P3.2端口线引入,低电平或下降沿引起。
INTO1--外部中断1,有P3.3端口线引入,低电平或下降沿引起。
T0--定时器/计数器0中断,由T0计数器计满回零引起。
T1--定时器/计数器1中断,由T1计数器计满回零引起。
T2--定时器/计数器2中断,由T2计数器计满回零引起。
TI/RI--串口中断,串行端口完成一帧字符发送/接收后引起。
52单片机的中断级别
单片机在使用中断功能时,通常需要设置两个与中断有关的寄存器:
①中断允许寄存器IE
②中断优先级寄存器IP
一,中断允许寄存器 IE
功能:
EA-- 全局中断允许位
EA=1 打开全局中断控制,在此条件下,有各个中断控制位确定相应中断的打开或关闭
EA=0 关闭全部中断
ET2 定时器/计数器2中断允许位
ET2=1 打开T2中断
ET2=0 关闭T2中断
ES 串行中断允许位
ET1 定时器1中断允许位
EX1 外部中断1允许位
ET0 定时器/计数器0中断允许位
EX0 外部中断允许位
二、定时器单片机在使用定时器/计数器功能时,通常需要设置两个与定时器有关的寄存器:
①工作方式寄存器TMOD
②控制计数器TCON
一,工作方式寄存器TMOD
GATE 门控位
GATE=0 定时器/计数器启动与停止仅受TCON寄存器中TRX(X=0,1)来控制
GATE=1 定时器/计数器启动与停止由TCON寄存器中TRX(X=0,1)和外部中断引脚(INT0或INT1)上的电平状态来共同控制
C/T 定时器模式和计数器模式选择位(1为计数器模式,0为定时器模式)
M1M0 工作方式选择位
每个定时器有4个工作方式,他们由M1M0设定
二,定时器/计数器控制寄存器TCON
IF1 定时器1溢出标志位
TR1 定时器1运行控制位
由软件清零关闭定时器1,当GATE=1,且INT1为高电平时,TR1置1启动定时器1;当GATE=0时,TR1置1启动定时器1
IE1 外部中断1请求标志
当IT0=1时为电平触发方式,每个机器周期的S5P2采样INT1引脚,若INT1脚为低电平。则置1,否则IE1清0.
当IT1=0时,INT1为跳变沿触发,当第一个机器周期采样到INT1为低电平时,则IE1置1,便是外部中断1正向CPU申请中断,当CPU响应中断,转向中断服务程序时,该位由硬件清0.
IT1 外部中断1触发方式选择位
IT1=0 为电平触发模式,引脚INT1上低电平有效
IT1=1 为跳变沿触发模式,引脚INT1上下降沿有效
IE0 同上
IT0 同上
计算定时器的初值问题
52单片机内部有12倍的分频,假设采用的是12MHZ的晶振,那么12个时钟周期为一个机器周期,那么此时机器周期就是1us。以定时器1,工作方式1为例。16位的计数器
溢出一次需要计数2^16-1个数=65536。约为65.5ms
如果要定时50ms的话,(65536-50000)/256 转载到THX
(65536-50000)/256 转载到TLX
公式:
THX=(65536-50000)/256
LTX =(65536-50000)/256
定时器的初始化过程如下
①对TMOD赋值,以确定T0和T1的工作方式
②计算初值,并将初值写入TH0,TL0,或TH1,TL1
③中断方式,则对IE赋值,开放中断
④使TR0或TR1置位,启动定时器/计数器定时或计数
程序实例
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit led1=P1^0;
uchar num;
void main()
{
TMOD=0X01; //设置定时器工作方式1(M1M0为01)
TH0(65536-45872)/256; //装初值11.0592M晶振时为50ms数为45872
HL0=(65536-45872)%6;
EA=1; //开总中断
ET0=1; //开定时器0中断
TR0=1; //启动定时器0
while(1); //程序停止在这等待中断发生
}
void T0_time() interrupt 1
{
TH0(65536-45872)/256; //装初值11.0592M晶振时为50ms数为45872
HL0=(65536-45872)%6;
num++;
if(num==20)
{
num=0;
led1=~led1;
}
}
串行口控制寄存器SCON
串行口控制寄存器SCON如表12.2所示。
表12.2 串行口控制寄存器SCON
(1)SM0/FE:当PCON寄存器中的SMOD0 = 1时,该位用于帧错误检测,当检测到无效停止位时,由硬件将该位置"1",该位必须由软件清零。当SMOD0 = 0时,该位和SM1一起用来设置串行口通信的方式。
(2)SM1:SM1和SM0一起用来设置串行口通信的方式,如表12.3所示。
表12.3 串行口工作方式
关于串行口的4种工作方式和波特率的计算方法我们在后面详细说明。
(3)SM2:允许方式2或方式3多机通信位。如果SM2 = 1,REN = 1,则从机只有接收到RB8位为1时才将中断请求位RI置1,并向系统申请中断。如果SM2 = 0,则无论RB8收到什么数据都会将RI位置1,请求中断。通过设置SM2的值,可以区分主机和从机,实现多机通信。在方式0时,SM2必须为0,在方式1时,只有收到有效停止位,就将RI置1。
(4)REN:允许串行口接收位。当REN = 1时,允许串行口接收数据;当REN = 0时,禁止串行口接收数据。
(5)TB8:在方式2和方式3,TB8作为发送数据的第9位,其值由软件修改。
(6)RB8:在方式2和方式3,RB8保存接收到的第9位数据。在方式0,不用RB8。在方式1,如果SM2 = 0,则RB8是接收到的停止位。
(7)TI:发送完成中断标志位。当1帧数据发送完成时,由硬件将该位置位,请求中断,响应中断后,用软件清零。
(8)RI:接收完成标志位。当接收完1帧数据时,由硬件将该位置位,请求中断,响应中断后,用软件清零。
详细信息下载word文档
-
-
单片机寄存器.docx
59.47 KB, 下载次数: 8, 下载积分: 黑币 -5
作者: Williams 时间: 2018-7-16 21:04
文档很详细,网页版有些不完整
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |