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

本文是作者自学51单片机后的总结,介绍了51单片机的哈佛结构,解释了为何选择哈佛结构,并详细阐述了51单片机的存储器(ROM和RAM)结构,特别是EA引脚的作用。此外,还讨论了单片机的引脚功能,I/O口的使用,尤其是P0口的特点,以及工作周期和时序的概念。
摘要由CSDN通过智能技术生成

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

概述

51单片机是比较适合新手入门的一款单片机,结构简单,易于学习。本博客为笔者自学完单片机后进行的小总结。

单片机我也是学学放放,中间遇到了很多挫折(当然现在也是),我是自学了C语言之后,在大一下学期开始接触51的,所以,我的51系列blog比较浅显,因为用单片机的时间较少,所以,也并不全面,仅供参考。如有错误,敬请指正。

正文

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

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

0bee7153bf0fb765230729f57f97af60.png

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

(这里之说冯诺依曼结构与哈佛结构的差异)冯诺依曼结构认为程序是特殊的数据,所以将程序与数据一起存储,而哈佛结构将程序与数据分离存储。单片机一般用于控制领域,个人电脑,死机的话可以重启,而单片机一般工作时无人看管,如果跑飞,可能会造成极大的损失。在冯诺依曼结构中,数据与程序一起储存,程序跑飞,可能会对原有的程序片段进行修改,而在哈佛结构中程序片段与数据分离,即使跑飞,程序也不会被修改,(且跑飞后规律很明显,程序区不变,数据区的数据不断变化),相对冯诺依曼结构,哈佛结构的单片机跑飞的几率会变低。

存储器结构

既然讲到了哈佛结构是程序与数据分开来存储的,那就说一说51存储器的结构

ROM:程序存储器

RAM:数据存储器

对于51单片机来说__ROM__是必备的,没有ROM单片机就不能工作,当单片机工作时,指令是从ROM去除来一条一条的执行的。

ROM又有内部ROM和外部ROM之分,内部ROM是在单片机内部的,而外部ROM,是通过地址总线来和单片机通讯的。

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

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

高电平与低电平

在数字电路中高电平代表1,低电平代表0,一般规定低电平为00.25V,高电平为3.55V。

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

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

引脚

51单片机一共有40个引脚:P0、P1、P2、P3、VCC、GND、RST、EA(反)、ALE、PSEN(反)、XTAL1、XTAL2.

P0到P3为输入输出口。

VCC、GND是主电源引脚。

RST、EA(反)、ALE、PSEN(反)为控制引脚。

XTAL1、XTAL2为震荡电路引脚。

为什么需要震荡电路?

震荡电路一般使用晶振和电容组成、可以产生标准的正弦波信号,相当于单片机的心脏,震荡电路震荡一次,产生一个脉冲信号,单片机执行一次或多次指令。

关于控制引脚

RST就相当于重启

EA(反) 相当于要不要从u盘中启动

其他待补充。。。(目前还没有用到)

I/O口

P1、P2、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个机器周期以上的高电平,系统内部自动复位(重启)。复位方式有两种,手动复位和自动复位。

dd5645abff1be398321e407794376e43.png

3ab4ac06c16d1eb3e3f906bf05cb2c23.png

机器周期和指令周期

机器周期

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

指令周期

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

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

为何会出现11.0592MHz的晶振?

按照上文所述,12M的晶振应该是比较适合单片机选用的晶振,计算出的机器周期正好为1us方便使用,但为何会出现11.0592M的晶振?,原因是通信时使用的波特率,11.0592可以被较好的分频,而12M每次分频后会产生误差,误差慢慢积累会导致数据越来越不准确,故有11.0592M的晶振。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值