51基础知识——51单片机小结(一)

本文最后编辑于2020-2-3学习

概述

51单片机是比较适合新手入门的一款单片机,结构简单,易于学习。本博客为笔者自学完单片机后进行的小总结。
单片机我也是学学放放,中间遇到了不少挫折(固然如今也是),我是自学了C语言以后,在大一下学期开始接触51的,因此,个人51系列blog比较浅显,由于用单片机的时间较少,因此,也并不全面,仅供参考。若有错误,敬请指正。.net

正文

51单片机的结构(基于MCS-51)

单片机也叫单片微控制器,能够简单的理解为:一种集成在芯片上的微型计算机系统。通用计算机采用冯诺依曼结构(不彻底是冯诺依曼结构)而51单片机属于哈佛结构。
blog

为何51单片机要使用哈佛结构?

(这里之说冯诺依曼结构与哈佛结构的差别)冯诺依曼结构认为程序是特殊的数据,因此将程序与数据一块儿存储,而哈佛结构将程序与数据分离存储。单片机通常用于控制领域,我的电脑,死机的话能够重启,而单片机通常工做时无人看管,若是跑飞,可能会形成极大的损失。在冯诺依曼结构中,数据与程序一块儿储存,程序跑飞,可能会对原有的程序片断进行修改,而在哈佛结构中程序片断与数据分离,即便跑飞,程序也不会被修改,(且跑飞后规律很明显,程序区不变,数据区的数据不断变化),相对冯诺依曼结构,哈佛结构的单片机跑飞的概率会变低。get

存储器结构

既然讲到了哈佛结构是程序与数据分开来存储的,那就说一说51存储器的结构
ROM:程序存储器
RAM:数据存储器
对于51单片机来讲__ROM__是必备的,没有ROM单片机就不能工做,当单片机工做时,指令是从ROM去除来一条一条的执行的。
ROM又有内部ROM和外部ROM之分,内部ROM是在单片机内部的,而外部ROM,是经过地址总线来和单片机通信的。博客

单片机是如何来判断该从内部ROM开始读取程序仍是从外部RAM开始读取程序?

这里引出单片机的第一个比较重要的引脚EA(EA要加上划线,取反),当EA为高电平(5v)时,单片机从内部存储器开始读取程序,当EA为低电平时,单片机从外部存储器开始读取程序。io

高电平与低电平

在数字电路中高电平表明1,低电平表明0,通常规定低电平为0~0.25V,高电平为3.5~5V。入门

为何单片机有一些引脚要加上划线(如 EA引脚)?

加上划线的引脚表明低电平有效,如EA引脚,加低电平的话,单片机才从外部ROM开始读取指令执行(这样说不严谨,能够简单的这样记)。原理

引脚

51单片机一共有40个引脚:P0、P一、P二、P三、VCC、GND、RST、EA(反)、ALE、PSEN(反)、XTAL一、XTAL2.
P0到P3为输入输出口。
VCC、GND是主电源引脚。
RST、EA(反)、ALE、PSEN(反)为控制引脚。
XTAL一、XTAL2为震荡电路引脚。程序

为何须要震荡电路?

震荡电路通常使用晶振和电容组成、能够产生标准的正弦波信号,至关于单片机的心脏,震荡电路震荡一次,产生一个脉冲信号,单片机执行一次或屡次指令。im

关于控制引脚

RST就至关于重启
EA(反) 至关于要不要从u盘中启动

其余待补充。。。(目前尚未用到)

I/O口

P一、P二、P3 做为 准双向I/O口 来使用,P0做为 双向I/O口 使用。

准双向I/O口

准双向I/O口在做为输入口使用时,应先写1,再使用。
其中
1.在有外部存储器或拓展I/O口时P0分时复用为低八位地址总线或双向数据总线、P2做为高八位地址总线或双向数据总线。
2.P0口做为I/O口输入时,不须要上拉电阻但须要先置1而后再使用
3.P0口输出时,因为内部没有上拉电阻,故要外接上拉电阻
4.只有P0口没有内接上拉电阻,其余口都有上拉电阻

工做周期和时序

复位方式

在时钟电路工做之后,当外部电路使得RST端出现2个机器周期以上的高电平,系统内部自动复位(重启)。复位方式有两种,手动复位和自动复位。


机器周期和指令周期

机器周期

一个机器周期有六个状态分别为S1-S6.每一个状态下有两拍 P一、P2,而一个时钟周期(震荡周期)为一拍

指令周期

计算机取一条指令至执行完该指令须要的时间为指令周期,不一样指令,周期不一样,大部分指令由一个指令周期或两个指令周期完成,只有乘法、除法指令须要4个指令周期。

以12M的晶振为例,其时钟周期为 1/12M = 1/12us,机器周期为时钟周期X12, 为1us

为什么会出现11.0592MHz的晶振?

按照上文所述,12M的晶振应该是比较适合单片机选用的晶振,计算出的机器周期正好为1us方便使用,但为什么会出现11.0592M的晶振?,缘由是通讯时使用的波特率,11.0592能够被较好的分频,而12M每次分频后会产生偏差,偏差慢慢积累会致使数据愈来愈不许确,故有11.0592M的晶振。

参考资料
单片机原理及应用
分析单片机晶振大多为11.0592的缘由
为何单片机的晶振会有 11.0592MHz 这个数字?

相关文章
相关标签/搜索