单片机内外部机构分析

锁存器

锁存器

“锁存器”:数据总线是一根大家公用的线,很多器件和他连在一起,在不同的时候,不同的饿器件需要不同的信号,但是当某一个时刻我们想让某个引脚输出高电平,且保持一段时间不变,但是在这段时间里,计算机忙个不停,在于其他器件进行联络,所以这根线上的电平未必能一直保持不变。为了解决这个问题,因为存储器是可以存放电荷的,所以可以在器件前加一个小的存储器单元,并加一个开关,需要这个一直保持高电平,那么就打开开关,然后当信号进去保存好后立即关闭,这样就使这个状态持续保持了,直到下一次命令让它把开关打开为止。这样,即不耽误CPU和其他器件的交互,也不会影响具体器件的状态。就这样的存储器加开关的单元,称之为“锁存器“。

准双向I/O口

51单片机中输入有两种方式,分别为”读引脚“和”读锁存器“
读引脚:将引脚作为输入,这是真正的从外部引脚读进输入的值
读锁存器:是该引脚处于输出状态时,有时候需要改变这一位的状态,则并不需要真正的读引脚状态,只需要读入锁存器的状态,然后做某种变换后再输出。
”准双向I/O口“:接在外部的开关如果打开,则输入1,如果关闭,则输入0,但是如果单片机内部的开关是闭合的,那么不管外部开关是开还是关闭,接收到的数据都会是0,,所以,想让一端口作为输入使用,要先做一个“准备工作”,就是先让内部的开关断开,也就是让端口输出“1”才行。正因为要做一个准备工作,所以称之为“准双向I/O口”。

51单片机内部结构

CPU:用来控制、计算。
四个并行I/O口:P0、P1、P2、P3,对并行I/O口的读写只要将数据送入到相应的I/O口锁存器即可。
ROM(read only memory 只读存储器):保存程序
RAM(random access memory 随机读写存取器):保存中间结果
定时\计数器
串行I/O口中断系统
内部时钟电路

特殊功能寄存器(SFR)

有一些独立的存储单元是用来控制定时/计数器,串行I/O口等的使用,称之为特殊功能寄存器(SFR),如下表

符号 地址 功能介绍
B F0H B寄存器
ACC E0H 累加器
PSW D0H 程序状态字
IP B8H 中断优先级控制寄存器
P3 B0H P3口锁存器
IE A8H 中断允许控制寄存器
P2 A0H P2口锁存器
SBUF 99H 串行口锁存器
SCON 98H 串行口控制寄存器
P1 90H P1口锁存器
TH1 8DH 定时器/计数器1(高8位)
TH0 8CH 定时器/计数器1(低8位)
TL1 8BH 定时器/计数器0(高8位)
TL0 8AH 定时器/计数器0(低8位)
TMOD 89A 定时器/计数器方式控制寄存器
TCON 88H 定时器/计数器控制寄存器
DPH 83H 数据地址指针(高8位)
DPL 82H 数据地址指针(低8位)
SP 81H 堆栈指针
P0 80H P0口锁存器
PCON 87H 电源控制寄存器

(1)ACC:累加器,通常用A表示。是一个寄存器,所有运算类指令均需要它。
(2)B:B寄存器,在做乘、除法时放乘数或除数,不做除法时,你可以随意调用。
(3)PSW:程序状态字,很重要的寄存器,里面放了CPU工作时的很多状态。
CPU状态如下表:

D7 D6 D5 D4 D3 D2 D1 D0
CY AC F0 RS1 RS0 0V P

CY: 进位标志,8051中的运算器是一种8位的运算器,可以表示到0~255,如果做加法的话,两数相加可能会超过255,这样最高位就会丢失,防止最高位丢失,就会将最高位放进到这里来。
AC:半进位标志。
F0:用户标志位,由编程人员(我们)决定什么时候使用,什么时候不用。
RS1、RS0:工作寄存器组选择位
0V:溢出标志位
P:奇偶校验位,用来表示ALU运算结果中二进制数位“1”的个数的奇偶性。若为奇数,则P=1,否则为0.
例:78H(01111000),因为1的个数为偶数,P=0.
(4)DPTR(DPH、DPL):数据指针,用来访问外部数据存储器中的任一单元,若不用,也可以作为通用寄存器。
(5)P0、P1、P2、P3:是四个并行输入/输出口的寄存器,它里面对应着管脚的输出。
(6)SP:堆栈指针
堆栈:先进后出、后进先出,在单片机中,我们也可以在RAM中构造这样一个区域,用来存放数据,这个区域存放数据规则是“先进后出、后进先出”,我们称之为“堆栈”。之所以这样来存放数据,是因为如果存放一批数据,我们不需要知道每一个数据的地址,只需要知道第一个数据的地址就可以根据这个规则访问所有数据了。
51单片机由于能够存放数据的区域有限,我们不能专门分配一块地方做堆栈,所以只能在RAM中开辟一块地方,用于堆栈,至于具体用那一块地方需要根据用户自己去定义。所以51单片机中的堆栈的位置可以变化,而这种变化就体现在SP中值的变化。如果SP指向一个位置,在真正的51机中,SP指向的位置并非就是数据存放的位置,而是数据存放的前一个位置。

单片机学习笔记2---单片机内外部机构分析(2021-1-8)相关推荐

  1. 51单片机学习笔记1 -- 单片机最小系统仿真电路绘制

    在Protues和Keil都安装好之后,就可以开始学习51单片机了,但其实只要有Keil和开发板就可以开始搞 单片机最小系统仿真 1.Protues新建工程 2.晶振电路绘制 3.复位电路绘制 4.电 ...

  2. 单片机学习笔记————51单片机实现带数码管显示的象棋比赛专用计时器

    一.使用proteus绘制简单的电路图,用于后续仿真 二.编写程序 /***************************************************************** ...

  3. 单片机学习笔记————51单片机实现数码管中的倒计时程序

    一.使用proteus绘制简单的电路图,用于后续仿真 二.编写程序 /***************************************************************** ...

  4. 单片机学习笔记————51单片机实现用LED灯和按键来模拟工业自动化设备的运动控制

    一.使用proteus绘制简单的电路图,用于后续仿真 二.编写程序 /***************************************************************** ...

  5. 单片机学习笔记————51单片机实现矩阵键盘的组合按键触发

    一.使用proteus绘制简单的电路图,用于后续仿真 二.编写程序 /***************************************************************** ...

  6. 单片机学习笔记————51单片机实现带数码管显示的加法简易计算器

    一.使用proteus绘制简单的电路图,用于后续仿真 二.编写程序 /***************************************************************** ...

  7. 单片机学习笔记————51单片机实现按住一个独立按键不松手的加速匀速触发

    一.使用proteus绘制简单的电路图,用于后续仿真 二.编写程序 /***************************************************************** ...

  8. 单片机学习笔记————51单片机实现在数码管中实现iphone4S开机密码锁的程序

    一.使用proteus绘制简单的电路图,用于后续仿真 二.编写程序 /***************************************************************** ...

  9. 单片机学习笔记————51单片机实现主机的串口收发

    proteus虚拟串口的实现:https://mp.csdn.net/console/editor/html/107251649 一.使用proteus绘制简单的电路图,用于后续仿真 二.编写程序 / ...

  10. 51单片机学习笔记_1单片机介绍,C语言基础语法

    软件下载 开发:Keil 程序文件下载到单片机:STC/普中(STC需要冷启动,先点击下载再开启单片机电源) 介绍 Micro Controller Unit, MCU 单片机,其中包含了CPU RA ...

最新文章

  1. 【python教程】IO文件操作的常见用法
  2. carbondata与mysql_Apache CarbonData 1.4.0 中文文档
  3. Linux下Makefile的automake生成全攻略
  4. 步步为营 .NET 代码重构学习笔记 十
  5. 中国互联网大佬隐退简史
  6. CSS + DIV 让页脚始终保持在页面底部
  7. [TWRP 2.8.4 ] 小米 3W 中文-英文版本 twrp
  8. 51test-day1【ofo测试第一天】
  9. HTTP缓存-http强制缓存与协商缓存
  10. 万维钢 万万没想到读书笔记
  11. C语言递归函数 计算学生年龄
  12. 2021年教师资格证 科目三 高中数学 课程标准 简答题
  13. 百度网盘目录搜索引擎上线了 百度网盘目录搭建系统
  14. python合法整型常量要符合什么条件_1.下列字符列中,合法的长整型常量是: 【 】...
  15. 《Visual Basic.Net 循序渐进》问题收集贴
  16. 【零基础绘画教程】procreate超详细用法讲解 视频入门教程全
  17. 牛客在线编程101-93 盛水最多的容器
  18. 怎么修改win8计算机用户名和密码忘了怎么办,win8忘记了登陆密码怎么办|win8用户登入密码忘了的解决措施...
  19. 我市12个海滨浴场提升改造沙滩今夏不硌脚
  20. HTML制作色带,色带用尼龙带及色带的制作方法

热门文章

  1. MFC中使用SKIN++
  2. 路由基础(定义、作用、组成、特点、配置)
  3. cmd命令提示符中,如何清屏
  4. SD卡系列之---SD卡读写
  5. wps将pdf扫描文件转换为可复制/搜索文字的文件
  6. Calligraphic Fonts for Mac(书法字体安装软件)
  7. 90行代码让微信地球转起来,太酷了!(python实现)!
  8. 营销短信API,免费接口
  9. 2021年软件测试工具大全(自动化、接口、性能、安全、测试管理)
  10. 对称加密、非对称加密、混合加密