51单片机学习笔记(1)
单片机的基本概念
1.1单片机的组成
由CPU、RAM(随机存储器)、ROM(只读存储器)、I/O接口、以及内部功能部件组成。
1.2单片机内部数据传输
单片机内部数据传输通过总线完成,输入数据时会经过三态门,三态门挂在总线上,当需要作为输入时,保持为低电位,输出时为高电位。51单片机内部有16根地址总线,总线与单片机的寻址能力有关,其对应关系为:单片机能够寻找到的地址=2的总线个数的次方。
1.3寄存器的概念
寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。
寄存器由触发器构成,缓冲寄存器用于临时存储数据,以输入到RAM或I/O口,例如SBUF。
1.4单片机的CPU系统
CPU:它是按照面向测控对象、嵌入式应用和单芯片结构要求,专门设计的要保证有突出的控制功能。
时钟系统:满足CPU及片内各单元电路对时钟的要求。
复位电路:能满足上电复位、信号复位的最简化电路。
总线控制逻辑:要满足CPU对内部总线和外部总线的控制。
内部总线控制用以实现片内各单元电路的协调操作;外部总线控制用于微控制器外围扩展时的操作管理。
1.5输入输出接口I/O
用于连接外部的输入/输出设备、测量与控制对象。
1.6特殊功能寄存器SFR
SFR是管理与控制微控制器内部I/O端口、基本功能单元、扩展功能单元运行的寄存器。
通过对SFR的编程,实现的方式设置、启动运行和状态读取等。
1.7内部总线
微控制器内部CPU与各功能模块之间传送信息的公共通信通道。分为数据总线DB(Data Bus)、地址总线AB(Address Bus)和控制总线CB(Control Bus)。
数据总线:双向,用于传送数据,实现CPU与存贮器、I/O接口、各功能模块之间的信息交换,其方向取决于是读操作还是写操作。
地址总线:单向,由CPU发出地址信息,用来访问存贮器和I/O接口。
控制总线:单向,传送控制或时序信号。如读/写信号、中断申请信号、复位信号等。每个信号都有自己的功能,控制着微控制器有序的运用工作。
1.8单片机分类表及51单片机结构
特殊型51单片机
51单片机的内部结构
单片机各引脚定义
其中引脚组成及各引脚功能如下:
1.组成:
I/O引脚:4组,每组8个。
控制引脚:4个
时钟引脚:2个
电源引脚:2个
2.功能
P1口为标准I/O口,无特殊功能。
P0口可作为准I/O口使用,但必须外接上拉电阻;在外接存储器时也可复用为低8位地址总线(AB)和双向数据总线(DB)。
P2口可作为准I/O口使用,外接存储器时可作为高8位地址总线(AB)。
P3每一个引脚都有第二功能,既能单独作标准I/O口或第二功能使用,也可混合使用,即将其中某几个作为I/O口,其他作为第二功能口。
EA引脚用作外接存储器功能的开闭,当该引脚悬空或接高电平时使用内部存储器,接低电平时只能访问外部存储器。
RST为复位引脚,当给该引脚持续两个周期的高电平时即可复位。
1.9并行端I/O口的结构
以下每个图中展示的仅仅是每组I/O口中的一个。
1.P1口的内部结构
P1口只具有标准I/O口功能,因此先对其进行分析,当需要输出数据时,控制三态门2为高电位,三态门1为低电位。内部总线将数据发送到锁存器的D端,锁存器正常工作(该锁存器其实为一D型触发器,当时钟脉冲输入到CP时,Q的次态等于上一态的D端),若输出为1,流程大致如下,首先D端为1,使得Q端为1,Q非端为0,使得后方的场效应管截至,由VCC到GND的电路不导通,使得出口的电压为高电平,因此输出1,若输出0,则Q非端为1,场效应管导通,出口电压被拉低,使得输出为0。当需要输入数据时,则控制三态门1打开,但是如果在进行输入操作之前,曾经输出过0,会使得锁存器Q非端为1,场效应管导通,导致端口一直会被拉低,导致无法正确输入数据,因此在进行输入操作之前,应先输出1。
2.P2端内部结构:
相比于P1端口,P2端口多了一个控制线用于控制多路开关MUX进行功能的选择,当多路开关置于1端时作普通I/O使用,置于地址端时,则用于第二功能。分析方法同P1。
3.P3端口内部结构
相比于P1端口,P3端口多了一个与非门,当作为普通I/O使用时,第二功能引脚保持高电平,当要用于第二功能输出时,使锁存器Q端置1(也就是输出1,其他端口在进行输入时都需要先输出1),输出数据由第二功能端决定。若用于第二功能输入时,则通过专用第二输入端口进行输入。
4.P0端内部结构
P1端口分析方法如前面所述一样,只是该端口内部未接上拉电阻,作为通用I/O口时,需要先外接上拉电阻。
1.10单片机存储器结构
1.片内存储器
其结构又可细分为
左边为低128位地址,其中00H到1FH为工作寄存器区,分为4组,每一组又可分为R0到R7八个地址,在程序调用时,例如 MOV A,R0,但无法确定R0是这四组工作寄存区那一组,其实在PSW特殊功能寄存器中的第3和第4位中的数据来决定,若为01,则为第一组,其余则以此类推(任一时刻,只能使用一个寄存器组;CPU复位后,默认选择第0组)。20H到2FH为位寻址区,即这16个地址中的每一个地址中的每一位布尔数都可以直接改变其值,例如20.3H就表示为20H地址中的第4个数。30H到7FH为数据缓冲区,基本都可以随便使用。右边为高128位地址区,除了其中18个特殊功能寄存器的21个地址可以直接访问外,其余都不行。当特殊功能寄存器的地址为0或8结尾(即能被8整除),则该特殊功能寄存器可以进行位寻址操作。
特殊功能寄存器地址如下:
2.片外存储器
1.11单片机的复位
1.单片机复位后各寄存器的状态
2.复位电路
1.11低功耗工作方式
1.待机工作方式
2.掉电工作方式
待机工作方式的特征:
待机工作方式的设置:
掉电工作方式特征:
注:图片皆来源于网络,转载请注明出处。
图片来源地址:https://baike.baidu.com/item/%E7%89%B9%E6%AE%8A%E5%8A%9F%E8%83%BD%E5%AF%84%E5%AD%98%E5%99%A8/301108?fr=aladdin
https://www.zhihuishu.com/
51单片机学习笔记(1)相关推荐
- 51单片机学习笔记-1简介及点灯
51单片机学习笔记 文章目录 51单片机学习笔记 1. 51单片机简介 1.1 安装软件 1.2 单片机简介 2. LED灯 2.1点亮一个LED 2.1.1原理分析 2.1.2 创建工程 2.2LE ...
- AutoLeaders控制组—51单片机学习笔记
文章目录 AutoLeaders控制组-51单片机学习笔记 1.1单片机及开发板介绍 单片机介绍 单片机应用领域 STC89C52单片机 内部结构 开发板介绍 2.1点亮一个Led 新建工程 编程 认 ...
- 单片机c语言北航,【下载资料】《51单片机学习笔记》北航版
原标题:[下载资料]<51单片机学习笔记>北航版 如果手机下载有问题,请移步至电脑端,链接:https://forum.mianbaoban.cn/t/topic/36906 内容简介 本 ...
- 51单片机学习笔记2 仿真器的使用及STC89Cxx简介
51单片机学习笔记2 仿真器的使用及STC89Cxx简介) 一.连接步骤 1. 硬件连接 2. 安装软件驱动 3. 检查是否安装成功 二.仿真步骤 1. 打开一个51工程 2. 选择仿真设备 3. S ...
- [51单片机学习笔记TWO]----蜂鸣器
蜂鸣器音乐播放实验 首先应该了解一下蜂鸣器音乐播放的原理,在这里我只讲一下电磁式蜂鸣器驱动原理(还有一种是压电式蜂鸣器): 电磁式蜂鸣器驱动原理: 蜂鸣器发声原理是电流通过电磁线圈,使电磁圈产生磁场来 ...
- 51单片机学习笔记5 流水灯实现及蜂鸣器控制
51单片机学习笔记5 流水灯实现及蜂鸣器控制 一.流水灯 1. 硬件电路 2. 代码实现 (1) 点亮一个LED的基本操作 (2) 使用算术左移实现流水灯 (3) 使用库文件左移函数 二.蜂鸣器 1. ...
- 51单片机学习笔记1 简介及开发环境
51单片机学习笔记1 简介及开发环境 一.51单片机 1. STC89C52单片机简介 2. 命名规则 3. 封装 (1)PDIP (2)LQFP (3)PLCC (4)PQFP 二.STC8051结 ...
- Autoleaders控制组——51单片机学习笔记
前要:本笔记为初学者上b站江科大自化协的51单片机入门教程P1-P12所得笔记,包含单片机简介和LED.独立按键.数码管相关内容. 目录 1.1.什么是单片机以及为什么要学单片机?51是什么? 2-1 ...
- 51单片机学习笔记-6串口通信
6 串口通信 [toc] 注:笔记主要参考B站江科大自化协教学视频"51单片机入门教程-2020版 程序全程纯手打 从零开始入门". 注:工程及代码文件放在了本人的Github仓库 ...
- 51单片机学习笔记-10IIC总线
10 I2C总线 [toc] 注:笔记主要参考B站江科大自化协教学视频"51单片机入门教程-2020版 程序全程纯手打 从零开始入门". 注:工程及代码文件放在了本人的Github ...
最新文章
- python表白程序-用Python做一个表白小姐姐的程序
- 作为一枚学生党,如何提升自己华丽转身
- node 生成随机头像_唯一ID生成算法剖析
- 卡尔曼滤波的原理说明
- 如何成为优秀的程序员
- 【leetcode】股票买卖系列总结
- Android SQLite 数据库详细介绍
- 定量库存控制模型_探索全面流动管理TFM 库存控制与低减的理性策略
- Linux实战第三篇:RHEL7.3 yum更换实战
- java 2d 图形_Java学习笔记--Swing2D图形
- 的大小name转为小写_linux 进程 -- ps -ef|grep process_name
- XPS数据分析问题收集及解答
- uniapp使用阿里百川SDK唤醒淘宝APP 打开淘宝领券页面/渠道备案,uniapp对接淘宝联盟等等超级详细
- boost电路公式详解
- Epicor系统二次开发
- 基于Python的深度神经网络的中文期刊分类系统
- 工业网络心脏—WiFi 6工业路由器方案IPQ5018方案介绍与应用分析功能特点
- 解决Ubuntu18中 A stop job is running for .. 导致关机慢
- 架设游戏私服——内网穿透工具frp
- 文件包含漏洞——实例
热门文章
- Shader Graph18-反射、折射函数
- 网络书签外链发布的注意方法
- 某网站返回数据加密的还原
- 奇安信:笔试题(20190909)
- 微信小程序的经验总结,UI组件、图表、自定义bar你学会了吗
- linux开发板开机自启动脚本,linux 添加开机自启动脚本
- 《论文阅读》CARE: Commonsense-Aware Emotional Response Generation with Latent Concepts
- datax 高级_Datax3.0使用说明
- 毕业生自传-----(入职中视购物)
- TightVNC Windows下远程连接Linux桌面