产品概述

单片机sw1 STC8A单片机功能和应用电路

小编 2024-12-09 产品概述 23 0

STC8A单片机功能和应用电路

大家好,今天给大家介绍STC8A单片机功能和应用电路,文章末尾附有本文涉及的全部资料和源代码的获取方式,可进群免费领取。

功能和管脚介绍

下面是STC8A4K64S2A12的LQFP64封装的管脚图,来自芯片手册3.1.2小节,同样还有LQFP48和LQFP32封装的,这里以LQFP64介绍,LQFP64可提供最多的IO管脚,LQFP48和LQFP32只是LQFP64的一部分。STC8A8K64S2A12相比较STC8A4K64S2A12只是单片机RAM由4K增加到8K,视项目的复杂度可兼容切换。

最近真是麻了,20211121,芯片供应紧张,加停产,涨价,已经换了几次型号了,麻了,麻了,每次换管脚改代码,LQFP48的25/26脚是RXD3_2,图片里没标出来,

上图中可以看到,比如64脚的标识是RxD2/PWM0_2/ADC0/P1.0,表示这个管脚既可以做串口2接收引脚,PWM0的输出,ADC0采集输入和通用IO口。另外,CCP标识的管脚可以测量外部信号的频率,此系列单片机最多能同时捕获4组外部输入CCP0~CCP4,SCLK、MISO、MOSI、SS这四个管脚是一组,实现SPI功能,比如如果项目中有SPI接口的液晶屏,可以连接到这个管脚上,I2CSDA、I2CSCL这两个管脚是一组,实现I2C功能,项目中有I2C接口的EEPROM可以接到这组管脚上,每个管脚的详细说明在手册的3.2小节。

另外有一点需要注意的是,这个系列的单片机提供了引脚功能切换功能,这里以串口RxD2介绍,图中可以看到,64脚有RxD2功能,在22脚出现了RxD_2标识,参考手册3.3.1小节,

也就是说,串口2可以使用P1.0、P1.1或者P4.0、P4.2,但是不能RxD2使用P1.0,TxD2使用P1.1。同样CCP信号捕获接口,可以切换管脚,但不能分别切换,必须整体切换。

串口1,

串口3,需要注意的是

只有8K SRAM的STC8A8K才有4个串口,STC8A4K只有2个串口

切换寄存器S1_S[1:0],位于P_SW1,地址0xA2,EAXFR在访问高于0xFFF0地址的寄存器,比如PWM寄存器,需要置1,访问完后清0,

STC8A的IO可配置输入输出模式,IO为ADC输入管脚时,配置为高阻输入,

PCA模块可以当成定时器使用,可以输出PWM波,但通常用于测量外部信号频率,可对4路外部信号同时计算频率,

PCA的计数时钟有如下选择,通常选择100b即系统时钟,

PCA的中断源,

PWM在手册里指的是增强型PWM,PWM使用的原理和PCA差不多,一个统一的计数器PWMCH/L,这个计数器控制着PWM周期,对应8个通道,每个通道可以设置两个反转点,PWMxCR可设置初始电平,在遇到反转点的时候,IO电平反转,通过反转点可以控制占空比和相位,

PWM可以在P1,P2,P6之间切换,

STC8A部分中断向量号,C语言编程会用到,

STC8A单片机IAP,

应用电路

STC8A单片机需要提供系统电源和ADC参考电源,在不需要高精度ADC的情况下,可共用一组电源,我们的项目共用可满足需求,另外STC单片机提供了串口下载功能,不需要额外购买编程器,参考手册5.2.2小节电路图,

图中左方有一个Power On的上电开关,在下载的过程中需要断电再上电,所以需要有一个自锁开关,但项目批产的过程中,不需要次开关,可通过镊子短路或者外部电源开关实现上电过程,下载电路可将P3.0,P3.1,GND三个引脚用排针引出即可。红线右侧电路不需要。

IO口准双向模式

应用场景,开关按下5v,不按则悬空,需要完成的功能是,读1动作,读0不动作,这里为了能读到0,需要先对IO写0,否则是读不到0的,

完整代码可进群免费领取!!!

嵌入式物联网的学习之路非常漫长,不少人因为学习路线不对或者学习内容不够专业而错失高薪offer。不过别担心,我为大家整理了一份150多G的学习资源,基本上涵盖了嵌入式物联网学习的所有内容。点击下方链接,0元领取学习资源,让你的学习之路更加顺畅!记得点赞、关注、收藏、转发哦!

点击这里找小助理0元领取:扫码进群领资料

自学单片机第十八篇:信号的输入检测

通过前段时间的学习,我们基本上已经掌握了关于单片机的端口控制,可以通过控制端口的电位变化来实现一些功能。有时间也可以练习一些复杂的变化,来熟悉自己的所学知识。

输出是说的差不多了,那么接下来的一段时间,就要开始叨叨输入的哪些事情了。

如果说输出是向世界发出声音,那么输入就是聆听世界的声音,婴儿刚出生的一声啼哭,就是通过向外界输出自己的力量,来证明自己的降生,慢慢到了婴儿时期,就会通过聆听周围的声音,观察周围人的动作,来学习这个世界的生存技能。我们学习单片机也是一样,先展示自己的力量,然后再去感受周围的力量,这个过程需要漫长的磨砺,不断的练习和付出。

单片机的输入和输出是使用的同一个引脚,所以我们之前说51的引脚为IO口,意思是既可以作为IN输入端口,也可以作为OUT输出端口,所以简写为IO端口,属于复用端口,有利于节省空间。我们先来看下输入端口的结构,大致了解下。

这个是P1的端口结构,我们暂且不用理会左边那一大堆东西,只看右边这一部分,首先看到的是一个上拉电阻,然后是我们的针脚,接着是一个三极管(实际上是一个场效应管,我们简单理解就好),还有一路单独引出来了,这部分电路看似简单,但却承担着内部与外界的所有数据交换,可谓地位之重。我通过模拟器来简单实现端口的控制,直观的了解下端口是如何读取输入的数据的。

电路尽可能的与原理图一致,我们分为了电源部分、输入输出部分、端口部分、和外部电路,首先我们来说下当输出部分输出高电位时,电路的状态。

注:接下来的解释,需要用到三极管的部分知识,这个需要高中以上的物理知识,如果不理解,我们可以在留言中讨论。我尽量通俗的说,如果真的听不懂,也不影响接下来的学习。

从图中可以看出,当三极管基极(也就是左边横着那个电极),电位为5V高电位,那么三极管就处于截止状态,相当于上下电路是断开的,好比我打差号的部分断开,所以下方的输入电路就读取到了一个高电位,这个高电位是通过上拉电阻送过来的,如果此时外电路接的有小灯泡,那么小灯泡就会点亮了。

当我们让单片机输出0时,三极管的基极(图中b)就会处于低电位,于是三极管导通,图中的a和c就导通了,相当于通过导线直接相连在了一起,所以a点就也是0V低电位了,外部电路也是0V低电位,输入读取电路f也是0V低电位。

通过控制基极的电位,我们就可以让外电路出现与控制器相同的高低电位状态,同时驱动能力也有了很大的提升。但是由于内电路的导线很细,所以驱动功率也是很小的,不要尝试大功率设备,会烧坏芯片内部电路的。我们了解了输出的控制。那么,如果此时我在IO口上接一个SW1开关,人为的给引脚设置高低电位,情况又会是什么样呢?

当我们把SW1设置为0V低电位时,我们会发现,电路状态从接近0V降到了完全的0V,这主要是因为在三极管中存在电阻,而外接的电路不存在电阻,所以电压被拉低到了完全的0V。我们通过时间调整,看下实际情况下当内部电路输出0时,外电路切换高低电位对IO口的电位影响。

我们反复的切换外电路的状态,发现输入电路f读取的a点的状态如上图波形,当SW1切换到5V高电位,此时a点电位是494mV,完全达不到3V高电位的最低电压,所以控制器输入电路读取到的电位就是0.494V,认为输入的是低电位,当SW1切换到0V低电位时,此时a点电位是0V,低于低电位1V的标准,所以控制器输入电路就读取到0V,认为输入的是低电位,通过这个实验,我们发现,不论外电路如何变化,内电路都是读取的低电位,这还怎么知道我输入的是低电位还是高电位,怎么知道我的按键什么时间按下了?

所以我们把控制器的输出从0改为1再试一下,我们还是对SW1进行反复的切换,观察a点的电位和输入电路的波形变化。

此时可以直观的看出,上方的波形已经从几毫伏的变化,变成了现在的0到5V,当SW1切换到5V高电位,由于三极管截止了,所以a点就是5V高电位,f读取到的就是5V高于3V,于是控制器认为输入的是一个高电位,当SW1切换到0V低电位,还是因为三极管截止的原因,a点相当于通过SW1直接与负极相连,所以a点就是0V低电位,f读取到的就是0V低于1V,于是控制器就认为输入的是一个低电位,这样外部的信号与控制器读取的信号就一致了。

所以,我们就有一个要求,在你需要读取外部信号时,除了程序中需要做出读取的相应操作,你的需要读取的引脚在控制器中要先输出一个高电位,也就是置1.不然你就读不到东西。

有人会说了,在前边当控制器输出0时,你如果把SW1连接5V的电阻取消,那么控制器不就可以读取到5V的高电位了吗?实际情况并不这么理想,

我们可以看到,此时芯片的IO口电流已经达到了3A,这对芯片来说就是毁灭的灾难。所以是不允许这么做的,如果你这么做了芯片依然坚持了过来,感到幸运吧。不是每次都有这么好运的。在IO口外接电路时,我们是不允许直接毫无控制直连正负极的,计算好自己的功耗和电流,然后匹配相应的电阻才是最佳的选择。

好了通过以上的解释,我们知道了IO口需要读取外部信息时,是需要内部对IO口提前置1的。下篇我们就尝试读取P1口的信号来看看。

你觉得一个IO口,单片机最大可以带动多大的电流?欢迎留言讨论。

相关问答

电脑硬盘电机是什么电机-ZOL问答

1、可以用单片机做一个移相电路来实现2、可用光驱上的驱动芯片来驱动。要无霍...主板上标有SW1是什么7049浏览11回答怎么从u盘安装红旗操作系统1577浏览...

猜你喜欢