【mcuclub】STC89C52单片机最小系统讲解 | 您所在的位置:网站首页 › 32最小系统 › 【mcuclub】STC89C52单片机最小系统讲解 |
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
|
CopyRight 2018-2019 实验室设备网 版权所有 |