草庐IT

【mcuclub】STC89C52单片机最小系统讲解

单片机俱乐部--官方 2023-04-14 原文

1、实物图

 

2、原理图

 

3、介绍

3.1、主芯片

STC89C52是STC公司生产的一种低功耗、高性能8位微控制器

器件参数:

1、增强型8051单片机,指令代码完全兼容传统8051

2、工作电压:5.5V~3.3V

3、工作频率范围:0~40MHz,实际工作频率可达48MHz

4、用户应用程序空间为8K字节(程序空间)

5、片上集成512 字节RAM(变量或寄存器空间)

6、通用I/O 口(32 个),所有I/O口默认状态都是高电平,复位后为:P1/P2/P3 是准双向口/弱上拉, P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需加上拉电阻。

7、ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过USB-TTL模块连接串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成。

8、具有EEPROM 功能,总大小为4k,共8个扇区,每个扇区512个字节

9、共3 个16 位定时器/计数器。即定时器T0、T1、T2

10、外部中断4 路,下降沿中断或低电平触发电路,Power Down 模式可由外部中断低电平触发中断方式唤醒

11、通用异步串行口(UART),还可用定时器软件实现多个UART

12、工作温度范围:-40~+85℃(工业级)/0~75℃(商业级)

VCC电源正极
GND电源负极
RST复位脚
XTAL1内部时钟电路反相放大器输入端,接外部晶振的一个引脚。当直接使用外部时钟源时,此引脚是外部时钟源的输入端。
XTAL2内部时钟电路反相放大器的输出端,接外部晶振的另一端。当直接使用外部时钟源时,此引脚可浮空,此时XTAL2实际将XTAL1输入的时钟进行输出。
EA/VPP内外存储器选择引脚
ALE/PROG地址锁存允许信号输出引脚/编程脉冲输入引脚
PSEN外部程序存储器选通信号输出引脚

3.2、复位电路

 一、复位电路的用途

单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。

二、复位电路的工作原理

在书本上有介绍,51单片机要复位只需要在第9引脚接个高电平持续2US就可以实现,那这个过程是如何实现的呢?

在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。所以可以通过按键的断开和闭合在运行的系统中控制其复位。

开机的时候为什么会复位:

在电路图中,电容的大小是10uF,电阻的大小是10k。所以根据公式,可以算出电容充电到电源电压的0.7倍(单片机的电源是5V,所以充电到0.7倍即为3.5V),需要的时间是T=RC=10K*10UF=0.1S。

也就是说在单片机启动的0.1S内,电容两端的电压时在0~3.5V增加。这个时候10K电阻两端的电压为从5~1.5V减少(串联电路各处电压之和为总电压)。所以在0.1S内,RST引脚所接收到的电压是5V~1.5V。在5V正常工作的51单片机中小于1.5V的电压信号为低电平信号,而大于1.5V的电压信号为高电平信号。所以在开机0.1S内,单片机系统自动复位(RST引脚接收到的高电平信号时间为0.1S左右)。

按键按下的时候为什么会复位:

在单片机启动0.1S后,电容C两端的电压持续充电为5V,这时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。单片机系统自动复位。

总结:

1、复位电路的原理是单片机RST引脚接收到2US以上的电平信号,只要保证电容的充放电时间大于2US,即可实现复位,所以电路中的电容值是可以改变的。

2、按键按下系统复位,是电容处于一个短路电路中,释放了所有的电能,电阻两端的电压增加引起的。

3.3、晶振电路

 早期的单片机(比如经典的51单片机)系统,外接晶振是必须的,因为单片机的运行必须依赖于稳定的时钟脉冲。但是随着技术的发展,现在很多单片机都已经集成了内部时钟,所以在一般的应用场合,可以不用外接晶振电路了。不过由于内部时钟容易受外界干扰,所以在要求严格的场合,外接晶振电路还是很有必要的。

晶振介绍:

晶振有很多种,常用的有11.0592M、12M等。

选取11.0592M晶振:

使用11.0592MHz的晶振可以产生9600的波特率

波特率 = (2SMOD/32)* T1溢出率

溢出率 = (计算速率)/(256 – TH1初值)

= (fose / 12) / (256 – TH1初值)

注:机器周期 = 12个时钟周期

最终波特率 =(2SMOD/32)* (fose / 12) / (256 – TH1初值)

如果波特率=9600,SMOD=0,fose=11059200,则最终TH1=253=0Xfd,是一个整数

如果fose=12000000,要得到9600的波特率,则TH1=252.745,不是一个整数,所以不能产生标准的9600波特率。

选取12M晶振:

单片机工作时,是一条一条地从ROM中取指令,然后一步一步地执行。单片机访问一次存储器的时间,称之为一个机器周期,这是一个时间基准。一个机器周期包括12个时钟周期。如果一个单片机选择了12MHZ晶振,它的时钟周期是1/12us,它的一个机器周期是12x(1/12)us,也就是1US。机器周期不仅对于指令执行有着重要的意义,而且机器周期也是单片机定时器和计数器的时间基准。例如一个单片机选择了12MHZ晶振,那么当定时器的数值加1时,实际经过的时间就是1us,这就是单片机的定时原理。

电容介绍:

这两个电容一般称为“匹配电容”或者“负载电容”、“谐振电容”。晶振电路中加这两个电容是为了满足谐振条件。一般外接电容,是为了使晶振两端的等效电容等于或接近负载电容。只有连接合适的电容才能满足晶振的起振要求,晶振才能正常工作。

负载电容无法满足的话一般会使晶体频率产生偏差,严重的话晶体无法起振。电路设计中要尽量满足晶体的负载电容需求,从而使晶体工作在最佳状态。负载电容计算公式如下:

CL = C1*C2 / (C1+C2) + CS

CL为晶振的负载电容值,一般通过查询晶振的数据手册获得,一般15-30pF。CS为电路板的寄生电容,一般取 3~5pF,取C1 = C2,那么公式可以简化成如下:

CL = C1 / 2 + CS

一般情况下,增大负载电容的值会使振荡频率下降,减小负载电容的值,会使振荡频率上升。

3.4、电源

 一个type-c的插座,一个自锁按键、一个220uF的电解电容、一个1k的限流电阻和一个LED灯

这个220uF的电解电容选取:

为什么要:一是电源本身就有纹波,多加一个滤波电容更好,二是电源线有电阻,负载电流的变化会在该电阻上形成不同的电压降,进一步加大了电压的波动,因此每块电路板上都有电源滤波电容。负载电流越大,滤波电容容量也越大。至于选取多大的电容,一般是100-220uF。

灯和限流电阻:当供电正常并且自锁按键按下时,灯会点亮,表明板子处于供电状态。

3.5、下载口

 使用USB—TTL模块进行下载,使用专门的下载工具stc-isp

               

 

有关【mcuclub】STC89C52单片机最小系统讲解的更多相关文章

  1. C51单片机——实现用独立按键控制LED亮灭(调用函数篇) - 2

    说在前面这部分我本来是合为一篇来写的,因为目的是一样的,都是通过独立按键来控制LED闪灭本质上是起到开关的作用,即调用函数和中断函数。但是写一篇太累了,我还是决定分为两篇写,这篇是调用函数篇。在本篇中你主要看到这些东西!!!1.调用函数的方法(主要讲语法和格式)2.独立按键如何控制LED亮灭3.程序中的一些细节(软件消抖等)1.调用函数的方法思路还是比较清晰地,就是通过按下按键来控制LED闪灭,即每按下一次,LED取反一次。重要的是,把按键与LED联系在一起。我打算用K1来作为开关,看了一下开发板原理图,K1连接的是单片机的P31口,当按下K1时,P31是与GND相连的,也就是说,当我按下去时

  2. micropython复现经典单片机项目(二)可视化音频 频谱解析(基本搞定) - 2

    本人是音乐爱好者,从小就特别喜欢那个随着音乐跳动的方框效果,就是这个:arduino上一大把对,我忍你很久了,我就想用mpy做,全网没有,行我自己研究。果然兴趣是最好的老师,我之前有篇博客专门讲音频,有兴趣的可以回顾一下。提到可视化频谱,必然绕不开fft,大学学过这玩意,当时一心玩,老师讲的一个字都么听进去,网上教程简略扫了一下,大该就是把时域转频域的工具,我大mpy居然没有fft函数,奶奶的,先放着。音频信息如何收集?第一种傻瓜式的ADC,模拟转数字,原始粗暴,第二种,I2S库,我之前博客有讲过,数据是PCM编码。然后又去学PCM编码,一学豁然开朗,舒服,以代码为例:audio_in=I2S

  3. 51单片机——74HC595的应用(SPI实践) - 2

    目录SPI总线SPI总线概述 SPI总线分类SPI优点及缺点SPI接口硬件原理SPI四种工作模式 74HC595应用74HC595芯片概述74HC595封装及管脚功能74HC595工作原理 ​编辑 74HC595串行转并行点亮LED灯 程序实现  Proteus运行结构示意图SPI总线SPI总线概述 SPI(SerialPeripheralinterface):串行外围设备接口 用途:用来在微控制器与外围设备芯片之间实现数据交换 特点:高速、全双工、同步 SPI总线分类四线制全双工SPI(同时收发)MISO    主机输入/从机输出MOSI    主机输出/从机输入SCLK   串行时钟CS或

  4. 【毕业设计】基于单片机的智能温控农业大棚系统 - 物联网 stm32 - 2

    文章目录1简介2绪论2.1课题背景与目的3系统设计详细设计描述3.2硬件部分温度测量电路其他电路部分3.3软件部分主程序子系统程序温湿度程序流程键盘显示子程序3.4实现效果3.5部分相关代码4最后1简介Hi,大家好,这里是丹成学长,今天向大家介绍一个单片机项目基于单片机的智能温控农业大棚系统大家可用于课程设计或毕业设计单片机-嵌入式毕设选题大全及项目分享:https://blog.csdn.net/m0_71572576/article/details/1254090522绪论2.1课题背景与目的近年来我国的温室控制取得了长足的进步,首先在温室群控制方面,进行了初步的探索和理论研究,其次在温室

  5. AT24C04、AT24C08、AT24C16系列EEPROM芯片单片机读写驱动程序 - 2

    一、概述在之前的一篇博文中,记录了AT24C01、AT24C02芯片的读写驱动,先将之前的相关文章include一下:1.IIC驱动:4位数码管显示模块TM1637芯片C语言驱动程序2.AT24C01/AT24C02读写:AT24C01/AT24C02系列EEPROM芯片单片机读写驱动程序本文记录分享AT24C04、AT24C08、AT24C16芯片的单片机C语言读写驱动程序。二、芯片对比介绍型号容量bit容量byte页数字节/页器件寻址位可寻址器件数WordAddress位数/字节数备注AT24C044k5123216A2A149/1WordAddress使用P0位AT24C088k1024

  6. 基于51单片机、DS1302时钟模块的电子闹钟设计 - 2

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、设计原理1.DS1302介绍2.闹钟音乐播放原理二、程序设计1.DS1302.h2.ds1302.c3.music.h4.main.c三、电路图四、运行结果1.proteus仿真2.开发板实验五、总结六、附件提示:以下是本篇文章正文内容,下面案例可供参考一、设计原理1.DS1302介绍DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.0V~5.5V。该芯片采用普通32.768kHz晶振,DS1302工作时功耗很

  7. [蓝桥杯单片机]学习笔记——串口通信的基本原理与应用 - 2

    目录一、原理部分1、什么是串行通信(1)并行通信与串行通信(2)串行通信的制式(3)串行通信的主要方式  2、配置串口(1)SCON和PCON:串行口1的控制寄存器(2)SBUF:串行口数据缓冲寄存器 (3)AUXR:辅助寄存器​编辑(4)ES、PS:与串行口1中断相关的寄存器(5)波特率设置  3、串口框架编写二、程序案例一、原理部分1、什么是串行通信(1)并行通信与串行通信微控制器与外部设备的数据通信,根据连线结构和传送方式的不同,可以分为两种:并行通信和串行通信。并行通信:数据的各位同时发送与接收,每个数据位使用一条导线,这种方式传输快,但是需要多条导线进行信号传输。串行通信:数据一位一

  8. 一、51单片机 使用Proteus掌握LCD1602显示屏的使用(仿真及代码) - 2

    1、单片机控制液晶显示模块1602LCD的显示。液晶显示器(LiquidCrystalDisplay,LCD)具有省电、体积小、抗干扰能力强等优点,LCD显示器分为字段型、字符型和点阵图形型。(1)字段型。以长条状组成字符显示,主要用于数字显示,也可用于显示西文字母或某些字符,广泛用于电子表、计算器、数字仪表中。(2)字符型。专门用于显示字母、数字、符号等。一个字符由5、7或5、10的点阵组成,在单片机系统中已广泛使用(3)点阵图形型。广泛用于图形显示,如笔记本电脑、彩色电视和游戏机等。它是在平板上排列的多行列的矩阵式的晶格点,点大小与多少决定了显示的清晰度。引脚包括8条数据线、3条控制线和3

  9. 【mcuclub】LCD1602显示屏 - 2

    1、实物图2、原理图3、原理介绍LCD1602:LCD1602液晶显示器是一种广泛使用的字符型液晶显示模块。它是由字符型液晶显示屏(LCD)、控制驱动主电路及其扩展驱动电路,以及少量电阻、电容元件和结构件等装配在PCB板上而组成。用于显示字母、数字和符号等的点阵式LCD,总共可以显示两行数据,每行可以显示16个数据。在哪显示:LCD1602可以显示16*2个字符且通过D0-D7八个引脚传输八位数据,每一个显示的位置都对应上图的一个地址。例如我想在第一行的第三个位置显示,那么就可以锁定上表中的“02”,换算成二进制就是00000010。听上去很简单,但是LCD1602有个特点就是写入显示地址时要

  10. 微机课设 | 基于STC15单片机的简易数字密码锁设计 - 2

    在日常的生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替了传统的机械式密码锁,电子密码锁具有安全性高、成本低、功耗低、易操作等优点。本文主要介绍运用51单片机设计数字密码锁的方法。本设计采用自上而下的数字系统设计方法,将数字密码锁系统分解为若干子系统,并且进一步细划为若干模块,然后用C语言来设计这些模块,通过KEIL软件编译,并且进行实机调试。调试结果表明:该数字密码锁能够效验4位十进制

随机推荐