数码之家

 找回密码
 立即注册
搜索
查看: 1684|回复: 22

[C51] c51单片机最小系统,先来一个初步认识

[复制链接]
发表于 2022-5-9 11:56:44 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x

c 51单片机最小系统

先来一个初步认识,它长什么样:

6949809dd0855cac67f85f60143e84d5.png.jpg

51单片机最小系统原理图


507993d15b9c4050bcaaaf6521d0eb80.png.jpg

51单片机最小系统实物图


51单片机的最小系统由单片机IC,电源,外部晶振电路,复位电路共同组成,缺一不可。

1. 51单片机的外部引脚介绍

51单片机的最小系统其实很简单,下面依次介绍其中的引脚作用。

电源引脚

VCC(VDD):第40脚,电源端,接+5V电源,用于给整个系统供电。

VSS(GND):第20脚,接地端,接+5V电源地端。

外部晶体引脚

XTAL1(19脚):片内振荡电路反向放大器输入。

XTAL2(20脚):当采用内部时钟时,可作为片内振荡电路反相放大器输出,当外接石英晶体和微调电容时,产生原始的振荡脉冲信号。

一般情况下,我们给15单片机接12M的晶振,当然也可以接6MHz,11.0592MHz的晶振,根据实际的运用环境进行选择。

3946af68bba1ca38911e326a2db8a8a7.png.jpg

51单片机晶振引脚硬件连接图


控制信号引脚

RST:第9脚,复位信号输入端,高电平有效。复位端口的硬件解法有两种,一种是上电复位,一种是按键复位,在不同的场景有不同的选择。

7f8026ec3133ae4ffca58321bb43573b.png.jpg

上电复位硬件接法


020645b60b31ae1dec327f0797e7ceea.png.jpg

按键复位硬件接法


复位操作可以完成单片机的初始化操作,也使死机状态下的单片机重新运行,在很多电子产品的机身上还保留了复位按键,就是为了处理死机状态。

ALE/PROG:第30脚,地址锁存允许输出端/编程脉冲输入端。一般情况下,该引脚会持续输出振荡器频率的1/6正脉冲信号。当单片机需要访问片外存储器时,它又作为锁存P0口低8位地址的控制信号。

EA/Vpp:31脚,外部程序存储器地址使能输入/编程电压输入端,当给该引脚接入高电平时,CPU就只访问片内4KB的ROM,当地址超4KB时,自动转向片外ROM中的程序。当接入低电平时,CPU就只访问片外ROM。 第二功能引脚Vpp作用,对8051编程时,编程电压输入端。

输入/输出引脚 P0、P1、P2、P3

4个8位的并行输入/输出端口,共三十二个引脚,是51单片机重要的内部资源,作为通用输入/输出端口。

通用输入/输出端口

准双向口:初始启动时为高电平。

P0端口(P0.0-P0.7): 第39-32脚,漏极开路的准双向口,没有内部上拉电阻,为高阻态,不能正常输出高低电平,作为I/O口时需要外接一个上拉电阻,一般为10K。

f348403411b79d1cbe293abf7bb05c91.png.jpg

P0口上拉电阻解法


P1端口(P1.0-P1.7): 第1-8脚:内部带上拉电阻的准双向口。

P2端口(P2.0-P2.7): 第21-28脚:与P1口类似。

P3端口(P3.0-P3.7): 第10-17脚:与P1口类似,并且还有第二功能。

65ffaba548d4ec125d8832ceeb2920a9.png.jpg

P3口第二功能


2. 仿真软件的使用,硬件实物的选择

学习单片机不能只是简单的看介绍就行的,要实际动手操作才行,如果有条件,可以选购一款单片机开发板,用来实际动手操作。如果有焊接基础和PCB设计,我们就可以自己设计一款属于自己单片机开发板,这就不仅仅是学单片机了,更是在学习整个硬件知识。当然,作为初学者的我们来说,一款仿真软件是必不可少的,虽然他不能替代实际的实验效果,但仍可以作为一个入门的首选。

Proteus仿真软件,这款软件我不多做介绍了,它可以绘制原理图,绘制PCB,可以进行单片机数电,模电实验的仿真,可以实现从概念到产品的完整设计,但我并不推荐使用这款软件去做PCB设计,有更加优秀的软件可以使用。在后面我也会去讲解PCB绘制的相关知识,向大家推荐几款优秀的软件。

3c557a0ac65de7d4b17f76acadd785ce.png.jpg

proteus软件界面图


这款软件还是比较容易上手的,以后的单片机实验我的都会在Proteus上先做一下仿真,在通过实物向大家展示。

3. 编程软件的选择

给单片机编程我们需要使用Keil uVision5来编写,这是一款付费软件,我们肯定是需要尊重知识产权的,我可以给大家提供软件安装包。

c8064019963b1023cfb50885ee4f0305.png.jpg

Keil软件界面图


在不激活情况下,这款软件可以编译源文件在2KB以下的工程,大家可以先尝试一下,感受一下给单片机编程的过程。


发表于 2022-5-9 13:54:38 | 显示全部楼层
入门。。我已经放弃了。。。
回复 支持 反对

使用道具 举报

发表于 2022-5-9 14:45:58 | 显示全部楼层

要是STC 15、8,什么周边都不用,仅连接4个PINs
回复 支持 反对

使用道具 举报

发表于 2022-5-9 20:51:15 | 显示全部楼层
刚学时候搞了不少这样的东西,感觉没有什么用处。后来是实际项目边画板边学边做,很快的。
回复 支持 反对

使用道具 举报

发表于 2022-5-10 21:24:17 | 显示全部楼层
当初学习时整了10来片砸手里了。。。现在的单片机比51强太多了。。。
回复 支持 反对

使用道具 举报

发表于 2022-5-10 23:55:19 | 显示全部楼层
四十年前的作品
回复 支持 反对

使用道具 举报

发表于 2022-5-11 00:34:07 | 显示全部楼层
devcang 发表于 2022-5-9 14:45
要是STC 15、8,什么周边都不用,仅连接4个PINs

对的,建议用新型号的,晶振和负载电容可以省下来
回复 支持 反对

使用道具 举报

发表于 2022-5-11 06:45:33 | 显示全部楼层
我觉得学习最小系统还是从Intel8031+74LS373+2732学起,或者再加上6116、8155、8255扩展一下。对学习总线、芯片等扩展绝对能够有更深层次的理解。大家当我说着玩吧,没有人愿意回到原始时代。
回复 支持 反对

使用道具 举报

发表于 2022-5-11 08:58:45 | 显示全部楼层
mengfc 发表于 2022-5-11 06:45
我觉得学习最小系统还是从Intel8031+74LS373+2732学起,或者再加上6116、8155、8255扩展一下。对学习总线、 ...

说得对,那样基础更扎实
回复 支持 反对

使用道具 举报

发表于 2022-5-13 16:55:58 | 显示全部楼层
mengfc 发表于 2022-5-11 06:45
我觉得学习最小系统还是从Intel8031+74LS373+2732学起,或者再加上6116、8155、8255扩展一下。对学习总线、 ...

大概是2006年吧,也不远,16年前,当时所在的公司就有一个产品是这么搞的,8031+373+595+28C010,还是当年的销冠,通讯产品,问为什么要这么做,单片机不是大把吗?非要用8031?答是早些年存下了一大批的8031..。。
回复 支持 反对

使用道具 举报

发表于 2022-5-13 21:33:43 | 显示全部楼层
楼主醒醒,这种最小说系统已经过时淘汰了,实用性差,学习意义差。
最小系统 必需要有几个 LED灯和几个按键。
材料:1片 STC8G1K17/SOP16   单片机
6个3K 电阻,6个LED二极管,(做6个LED灯)
3个微动开关,(按键输入用)
一个IN5819二极管,1个200R电阻,1个带自锁按键开关,4脚插针,(下载程序用)
两个电容,(电源滤波用)

    就这少配件做出来的最小系统比你那个强大得多,实用和学习性也强。
回复 支持 反对

使用道具 举报

发表于 2022-5-13 21:39:34 | 显示全部楼层
zhuls 发表于 2022-5-13 16:55
大概是2006年吧,也不远,16年前,当时所在的公司就有一个产品是这么搞的,8031+373+595+28C010,还是当年 ...

这么多芯片堆起来在当时还显得 高大上
我记得2000年,在本地的电信局机房里看到中兴的小灵通设备的一个电源柜,里面还是用8031。 我当时就疑问“89C51都很流行了,为啥还用8031?”
回复 支持 反对

使用道具 举报

发表于 2022-5-20 22:52:33 | 显示全部楼层
直插的cpu很少见了, 太占位置
回复 支持 反对

使用道具 举报

发表于 2022-5-25 10:54:20 | 显示全部楼层
mengfc 发表于 2022-5-11 06:45
我觉得学习最小系统还是从Intel8031+74LS373+2732学起,或者再加上6116、8155、8255扩展一下。对学习总线、 ...

从基础学起未尝不好。见过太多模电数电基础为0,微机原理更无从谈起的人玩单片机上来就编程,稍微扩展点外围模块就各种小白问题。
回复 支持 反对

使用道具 举报

发表于 2022-5-25 11:34:07 | 显示全部楼层
mengfc 发表于 2022-5-11 06:45
我觉得学习最小系统还是从Intel8031+74LS373+2732学起,或者再加上6116、8155、8255扩展一下。对学习总线、 ...

幸好不是说要从用半导体搭建与、或、非、学起
回复 支持 反对

使用道具 举报

发表于 2022-5-25 11:35:39 | 显示全部楼层
zhuls 发表于 2022-5-13 16:55
大概是2006年吧,也不远,16年前,当时所在的公司就有一个产品是这么搞的,8031+373+595+28C010,还是当年 ...

很想知道是什么牌子,什么产品,主要因为对销冠感兴趣
回复 支持 反对

使用道具 举报

发表于 2022-5-25 19:13:36 来自手机浏览器 | 显示全部楼层
都2022年了,还用keil,不来试试Vscode + PlatformIO,可以支持Arduino,51,stm32还有其他杂七杂八的mcu,还有代码高亮,代码补全,香得一批
回复 支持 反对

使用道具 举报

发表于 2022-5-28 00:20:27 | 显示全部楼层
有些老设备还在用51的,学习基础的还是很有用的
回复 支持 反对

使用道具 举报

发表于 2022-5-29 23:21:39 来自手机浏览器 | 显示全部楼层
(≧∇≦)/刚开始学51你们又推荐学STM32到底哪个入门好
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-4-19 13:38 , Processed in 0.390001 second(s), 15 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

快速回复 返回顶部 返回列表