51单片机相关寄存器

前言

单片机复习的时候对应寄存器的记忆感觉很混乱,这里进行一下整理,后面的单词是我用来辅助记忆的,可能并不是表示原本的含义。

P3口的第二功能

|-------|----------|---------------------|
| 0 | RXD | 串行数据输入口 |
| 1 | TXD | 串行数据输出口 |
| 2 | INT0 | 外部中断0输入 |
| 3 | INT1 | 外部中断1输入 |
| 4 | T0 | 定时器0外部计数输入 |
| 5 | T1 | 定时器1外部计数输入 |
| 6 | WR | 外部数据存储器的写选通控制信号 |
| 7 | RD | 外部数据存储器的读选通控制信号 |

程序状态字寄存器(PSW)

|---------|--------|--------|--------|---------|---------|--------|--------|--------|---------|
| | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
| PSW | Cy | Ac | F0 | RS1 | RS0 | OV | | P | D0H |

  • Cy进位标志位:也可以写成C。有进位/借位,则Cy=1;否则,Cy=0.
  • Ac辅助进位标志位:用于在BCD码运算时进行十进位调整,当D3位D4位产生进位或借位,Ac=1;否则,Ac=0。
  • F0用户使用的标志位:可用指令来使它置"1"或清零,也可以用指令来测试该标志位,根据测试结果控制程序的流向。
  • RS1,RS04组工作寄存器区选择控制位1和位0:用来选择片内RAM区中的4组工作寄存器区中的某一组为当前工作寄存区。
  • OV溢出标志位:用来指示运算结果是否产生溢出。如果结果产生溢出,OV=1;否则,OV=0。
  • P奇偶标志位,累加器A中"1"的个数是奇数,P=1,否则,P=0.

|---------|---------|------------------------|
| RS1 | RS0 | 4组寄存器 |
| 0 | 1 | 0区(片内RAM 00H~07H) |
| 0 | 1 | 1区(片内RAM 08H~0FH) |
| 1 | 0 | 2区(片内RAM 10H~17H) |
| 1 | 1 | 3区(片内RAM 18H~1FH) |
| RS1、RS0与4组工作寄存器区的对应关系 |||

中断源的中断入口地址

|-----------|-----------|
| 中断源 | 入口地址 |
| 外部中断0 | 0003H |
| 定时器T0 | 000BH |
| 外部中断1 | 0013H |
| 定时器T1 | 001BH |
| 串行口 | 0023H |

AUXR寄存器

|----------|--------|--------|--------|------------|------------|--------|--------|------------|---------|
| | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
| AUXR | | | | WDIDLE | DISRTO | | | DISALE | 8EH |

  • DISRTO:禁止/允许看门狗定时器(WDT)溢出时的复位输出。1:禁止WDT溢出时的复位输出;0:WDT溢出时,允许向RST引脚输出一个高电平脉冲,使单片机复位。
  • WDIDLE:WDT在空闲模式下的禁止/允许位。1:禁止WDT在空闲模式下计数;0:允许WDT在空闲模式下计数。

TCON(定时器/计数器控制寄存器)

|----------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
| | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
| TCON | TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 | 88H |
| 位地址 | 8FH | | 8DH | | 8BH | 8AH | 89H | 88H | |

  • TF:片内定时器/计数器T的溢出中断请求标志位。启动计数后,从初值开始加1计数,当计数溢出时,又硬件自动为TF置"1",向CPU申请中断。CPU响应TF中断时,标志位由硬件自动清零,同时也可以用软件来清零。(Flag)
  • IE:外部中断请求的中断请求标志位(enable)
  • IT:选择外部中断请求的中断方式,0为电平触发方式,1为负跳变触发方式。
  • TR:计数运行控制位。1:启动定时器/计数器计数的必要条件;0:停止。软件置1或者清零。

SCON(串行口控制寄存器)

|----------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
| | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
| SCON | SM0 | SM1 | SM2 | REN | TB8 | RB8 | TI | RI | 98H |
| 位地址 | 9FH | 9EH | 9DH | 9CH | 9BH | 9AH | 99H | 98H | |

  • SM0、SM1:串行口工作方式选择位。
  • SM2:多机通信控制位。
  • REN:允许串行口接收位(由软件置"1"或清零),1:允许;0:禁止。
  • TB8:发送的第9位数据。
  • RB8:接收的第9位数据。
  • TI:串行口发送中断请求标志位。当CPU将1字节的数据写入串行口的发送缓冲器SBUF时,就会启动一帧串行数据的发送,每发送完一帧串行数据后,硬件把TI中断请求标志位自动置"1",发送之后需要在中断服务程序中用指令对其清零。TI必须由软件清零。(transmit)
  • RI:串行口接收中断请求标志位。在串行口接收完一个串行数据帧,硬件自动把RI中断请求标志位置"1",需要在中断服务程序中用指令对其清零。RI必须由软件清零。(receive)

|---------|---------|------------------------------------|
| SM0 | SM1 | 功能说明 |
| 0 | 0 | 方式0,同步移位寄存器方式(用于扩展I/O口) |
| 0 | 1 | 方式1,8位异步收发,波特率可变(由定时器控制) |
| 1 | 0 | 方式2,9位异步收发,波特率为fosc/64或fosc/32 |
| 1 | 1 | 方式3,9位异步收发,波特率可变(由定时器控制) |

IE(中断允许寄存器)

|---------|---------|--------|--------|---------|---------|---------|---------|---------|---------|
| | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
| IE | EA | | | ES | ET! | EX1 | ET0 | EX0 | A8H |
| 位地址 | AFH | | | ACH | ABH | AAH | A9H | A8H | |

  • EA:中断允许总开关控制位。1:允许;0:屏蔽。(enable all)
  • ES:串行口中断允许控制位。1:允许;0:屏蔽。(enable serial)
  • ET:定时器/计数器的溢出中断允许控制位。1:允许;0:屏蔽。(enable timer)
  • EX:外部中断中断允许控制位。1:允许;0:屏蔽。(enable external)

IP(中断优先级寄存器)

|---------|--------|--------|--------|---------|---------|---------|---------|---------|---------|
| | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
| IP | | | | PS | PT1 | PX1 | PT0 | PX0 | B8H |
| 位地址 | | | | BCH | BBH | BAH | B9H | B8H | |

  • PS:串行口中断优先级控制位,1:高优先级;0:低优先级。(priority serial)
  • PT:定时器T中断优先级控制位,1:高优先级;0:低优先级。(priority timer)
  • PX:外部中断中断优先级控制位,1:高优先级;0:低优先级。(priority external)

同级中断的查询顺序(中断级别):外部中断0>T0溢出中断>外部中断1>T1溢出中断>串行口中断。

TMOD(定时器/计数器工作方式存储器)

|----------|----------|---------|--------|--------|----------|---------|--------|--------|---------|
| | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
| TMOD | GATE | C/T | M1 | M0 | GATE | C/T | M1 | M0 | 89H |
| | T1方式字段 |||| T0方式字段 |||| |

  • GATE:门控位,1:由外中断引脚(或INT1)INT0上的电平与运行控制位TRx两个条件共同控制;0:仅由控制位TRx(x=0,1)来控制。
  • M1、M0:工作方式选择位。
  • C/T:计数器模式和定时器模式选择位。1:计数器工作模式,对系统时钟12分频后的内部脉冲进行计数;0:计数器工作模式,计数器对外部输入引脚T0或T1的外部买重(负跳变)计数。

|--------|--------|--------------------------------------|
| M1 | M0 | 工作方式 |
| 0 | 0 | 方式0,为13位定时器/计数器 |
| 0 | 1 | 方式1,为16位定时器/计数器 |
| 1 | 0 | 方式2,为8位的常数自动重新装载的定时器/计数器 |
| 1 | 1 | 方式3:,仅适用于T0,此时T0分成2个8位计数器,T1停止计数 |

PCON

|------|------|----|----|----|-----|-----|----|-----|-----|
| | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
| PCON | SMOD | | | | GF1 | GF0 | PD | IDL | 87H |

SMOD=1时要比SMOD=0时的波特率加倍。

总结

本文主要是用来区分不同寄存器的大概功能,所以不是很详细,写这个主要是给自己记忆的,所以有点水。

相关推荐
凭栏落花侧5 分钟前
现代前端框架实战指南:React、Vue.js、Angular核心概念与应用
前端·vue.js·经验分享·笔记·学习·react.js·前端框架
睡不着还睡不醒22 分钟前
【操作系统强化】王道强化一轮笔记
笔记
今天我刷leetcode了吗1 小时前
【M-LOAM学习】
学习
笑鸿的学习笔记1 小时前
qt-C++笔记之作用等同的宏和关键字
c++·笔记·qt
电气_空空1 小时前
基于单片机的智能校园照明系统
单片机·嵌入式硬件·毕业设计·毕设
freexyn1 小时前
Matlab自学笔记36:日期时间型的概念、分类和创建方法
数据结构·笔记·算法·matlab
云吟Xavze1 小时前
高等代数笔记(2)————(弱/强)数学归纳法
学习
W u 小杰2 小时前
Docker学习笔记
笔记·学习·docker
努力学习de小王3 小时前
STM32篇:开发环境安装
stm32·单片机·嵌入式硬件
~在杰难逃~3 小时前
Day23笔记-Day21和Day22作业讲解&单例类
开发语言·笔记·python·pycharm·数据分析