[牛人杂谈]

单片机的基本结构

[复制链接]
688|9
手机看帖
扫描二维码
随时随地手机跟帖
zhuomuniao110|  楼主 | 2017-5-15 15:55 | 显示全部楼层 |阅读模式


单片机的五个组成部份:

运算器:用于实现算术和逻辑运算。计算机的运算和处理都在这里进行;

控制器:是计算机的控制指挥部件,使计算机各部份能自动协调的工作;

存储器:用于存放程序和数据;(又分为内存储器和外存储器,内存储器就如我们电脑的硬盘,外存储器就如我们的U盘)

输入设备:用于将程序和数据输入到计算机(例如我们电脑的键盘、扫描仪);

输出设备:输出设备用于把计算机数据计算或加工的结果以用户需要的形式显示或保存(例如我们的打印机)。

注:1、通常把运算器和控制器合在一起称为中央处理器(Central Processing Unit),简称CPU。

2、通常把外存储器、输入设备和输出设备合在一起称之为计算机的外部设备。

典型系列单片机是由下图所示的器件组成的:


zhuomuniao110|  楼主 | 2017-5-15 15:57 | 显示全部楼层

1 中央处理器(CPU):

刚跟大家讲过,需要提醒的是MCS-51的CPU能处理8位二进制数或代码;


2 内部数据存储器(RAM):

8051芯片共有256个RAM单元,其中后128单元被专用寄存器占用(稍后我们详解),能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。地址范围为00H~FFH(256B)。是一个多用多功能数据存储器,有数据存储、通用工作寄存器、堆栈、位地址等空间。

3 内部程序存储器(ROM):

在前面也已讲过,8051内部有4KB的ROM,用于存放程序、原始数据或表格。因此称之为程序存储器,简称内部RAM。地址范围为0000H~FFFFH(64KB)。

4 定时器/计数器

8051共有2个16位的定时器/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。定时时靠内部分频时钟频率计数实现,做计数器时,对P3.4(T0)或P3.5(T1)端口的低电平脉冲计数。


使用特权

评论回复
zhuomuniao110|  楼主 | 2017-5-15 15:59 | 显示全部楼层
5 并行I/O口
MCS-51共有4个8位的I/O口(P0、P1、P2、P3)以实现数据的输入输出。具体功能在后面章节中将会详细论述。
6 串行口
MCS-51有一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为移位器使用。RXD( P3.0)脚为接收端口,TXD(P3.1)脚为发送端口。
7 中断控制系统
MCS-51单片机的中断功能较强,以满足不同控制应用的需要。共有5个中断源,即外中断2个,定时中断2个,串行中断1个,全部中断分为高级和低级共二个优先级别。
8 时钟电路
MCS-51芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。系统允许的晶振频率为12MHZ。

使用特权

评论回复
dongnanxibei| | 2017-5-15 22:04 | 显示全部楼层
这个是最基本的51的,新的跟这个已经不同了

使用特权

评论回复
dongnanxibei| | 2017-5-15 22:15 | 显示全部楼层
不过还是可以学习入门用的

使用特权

评论回复
稳稳の幸福| | 2017-5-15 23:15 | 显示全部楼层
新唐的51,是在这基础上做了很大的改进

使用特权

评论回复
dongnanxibei| | 2017-5-16 10:10 | 显示全部楼层
Intel把内核的版权卖给别的公司,别的公司在这个基础上修改,添加,然后做成自己的单片机。

使用特权

评论回复
捉虫天师| | 2017-5-16 16:34 | 显示全部楼层
这种时钟都是用的外部的晶振,不过现在越来越多单片机发现外部晶振如果不靠谱,可能会造成 停振,因此陆续的出现了内部的RC振荡器,就是通过反相器实现的。

使用特权

评论回复
zhuomuniao110|  楼主 | 2017-5-18 14:50 | 显示全部楼层

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}

使用特权

评论回复
zhuomuniao110|  楼主 | 2017-5-18 14:51 | 显示全部楼层

<font color="#00979c">void</font> <font color="#5e6d03">setup</font><font color="#000000">(</font><font color="#000000">)</font> <font color="#000000">{</font>
&nbsp;<font color="#434f54">// put your setup code here, to run once:</font>

<font color="#000000">}</font>

<font color="#00979c">void</font> <font color="#5e6d03">loop</font><font color="#000000">(</font><font color="#000000">)</font> <font color="#000000">{</font>
&nbsp;<font color="#434f54">// put your main code here, to run repeatedly: </font>
&nbsp;
<font color="#000000">}</font>

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

188

主题

3237

帖子

10

粉丝