单片机硬件_单片机硬件结构 - CSDN
精华内容
参与话题
  • 单片机硬件电路设计实例 (十几位工程师多年经验总结)
  • 单片机硬件==绘制最小系统原理图

    千次阅读 2016-11-29 14:25:35
    最小系统的组成:由 主芯片,晶振电阻,复位电路 组成复位电路给他一段波形,会自动复位,可能是高电平使他复位也可能是低电平使他复位,跳转到0地址,然后重新开始。阻容复位,通过电容和电阻来复位。...

    最小系统的组成:

    主芯片,晶振电阻,复位电路 组成

    复位电路

    给他一段波形,会自动复位,可能是高电平使他复位也可能是低电平使他复位,跳转到0地址,然后重新开始。

    阻容复位,通过电容和电阻来复位。
    高电平复位电路图:
    这里写图片描述
    这张图可以自动复位也可以手动复位
    自动复位:导通的一瞬间,VCC由0到5,电容通交流阻直流,于是导通了,于是RST变成了5V高电平,复位了。但是充电一段时间后,电容变为VCC,RST对应为0,变为低电平。或理解为当单片机上电瞬间由于电容电压不能突变,会使电容两边的电位相同,此时RST为高电平,之后随着时间推移电源负极通过电阻对电容放电,放完电时RST为低电平。正常工作为低电平,高电平复位。

    手动复位:按键一瞬间会放完电容里面的所有电,而松手的一瞬间,电容又接通了,高电平复位。所以手动复位要和电容并联。

    低电平复位电路图:
    这里写图片描述
    当单片机上电瞬间由于电容电压不能突变,会使电容两边的电位相同,此时RST为低电平,之后随着时间推移电源通过电阻对电容充电,充满电时RST为高电平。正常工作为高电平,低电平复位。

    电容接电源就是高电平复位,接地就是低电平复位

    晶振电阻

    相当于心脏,12 * (10 ^ 6)次/s,微秒级,较慢,一般单片机都是纳秒级,工作主频为12M,也很慢

    这里写图片描述
    要供电的晶振叫做有源晶振,价格昂贵,精度较高
    不要供电的晶振叫做无缘晶振,价格便宜,精度较差

    晶振电阻电容为何为22pF

    若晶振电阻与电容同为22pF,就会无法振动。

    开始画最小系统原理图

    1、新建一个pcb工程,然后新建一个原理图文件,再新建一个pcb文件。后缀名分别是.prj, .SchDoc, .PcbDoc
    2、在左边的工程目录那边,右击工程,然后点保存,而不是一个一个单独保存原理图和pcb。但是他们三个都要保存在同一个目录下面。
    3、点菜单栏里的设计—浏览库,然后右边侧边栏就会出现Library,点击之后再次点击库,然后安装或卸载你想安装的库。但是要注意安装的库要和你的工程文件放在同一个目录下面。安装成功之后,如果嫌弃右边太小了没办法看,还可以在左边的目录那里,右击原理图,选择加载已经存在的文件,没错,就是辣个你安装的库,然后你会在一个新的页面里挑选你想要的元器件。选择好了之后,就点放置,然后就可以放到原理图文件里了。

    注意事项:
    这里写图片描述

    AT89s52最小系统的注意事项

    NPN三极管的定义

    IO口在基电极加1时接地,为低电平。
    IO口在集电极加0时截止,为高电平。
    但若没有上拉电阻,在加0截止是,会出现高阻态,形成开露口,没有输出高电平的能力。

    AT89C51一共有四组IO口,其中只有一组是这样的开露口。
    开露口的作用:
    有的时候要连最高工作电压没有5V的外设,所以为了能够让外设正常使用,要加上不同的上拉电阻,再连上VCC是电压改变。

    P0口就是那个开漏口,若要在P0口正常使用外设,则要加上八个电阻,上拉电阻一般是10k,也可以优化成使用排阻。
    这里写图片描述

    展开全文
  • 单片机硬件基础

    2020-02-25 15:09:23
    单片机是根据硬件电路图的设计来写代码的,所以我们不仅仅要学习编程知识,还有硬件知识,也要进一步的学习,这节课我们就要来穿插介绍电路硬件知识。 3.1 电磁干扰EMI 第一个知识点,去耦电容的应用,那首先要介绍...

    原文地址:https://blog.csdn.net/Qingzhusshuiyun/article/details/78211599

    单片机是根据硬件电路图的设计来写代码的,所以我们不仅仅要学习编程知识,还有硬件知识,也要进一步的学习,这节课我们就要来穿插介绍电路硬件知识。

    3.1 电磁干扰EMI

    第一个知识点,去耦电容的应用,那首先要介绍一下去耦电容的应用背景,这个背景就是电磁干扰,也就是传说中的EMI。

    1. 冬天的时候,尤其是空气比较干燥的内陆城市,很多朋友都有这样的经历,手触碰到电脑外壳、铁柜子等物品的时候会被电击,实际上这就是“静电放电”现象,也称之为ESD。

    2. 不知道有没有同学有这样的经历,早期我们使用电钻这种电机设备,并且同时在听收音机或者看电视的时候,收音机或者电视会出现杂音,这就是“快速瞬间群脉冲”的效果,也称之为EFT。

    3. 以前的老电脑,有的性能不是很好,带电热插拔优盘、移动硬盘等外围设备的时候,内部会产生一个百万分之一秒的电源切换,直接导致电脑出现蓝屏或者重启现象,就是热插拔的“浪涌”效果,称之为Surge。

    … …

    电磁干扰的内容有很多,我们这里不能一一列举,但是有些内容非常重要,后边我们要一点点的了解。这些问题大家不要认为是小问题,比如一个简单的静电放电,我们用手能感觉到的静电,可能已经达到3KV以上,如果用眼睛能看得到的,至少是5KV了,只是因为这个电压虽然很高,电量却很小,因此不会对人体造成伤害。但是我们应用的这些半导体元器件就不一样了,一旦瞬间电压过高,就有可能造成器件的损坏。而且,即使不损坏,在2、3里边介绍的两种现象,也严重干扰到我们正常使用电子设备了。

    基于以上的这些问题,就诞生了电磁兼容(EMC)这个名词。这节课我们仅仅讲一下去耦电容的应用,电磁兼容的处理在我们今后设计电路,对PCB画板布局中应用尤为重要,那是后话,暂且不说。

    3.2 去耦电容的应用

    首先我们来看图3-1。

    图3-1 去耦电容应用
    电容 电容

    左边这张图,过了保险丝以后,接了一个470uF的电容C16,右边这种图,经过开关后,接了一个100uF的电容C19,并且并联了一个0.1uF的电容C10。其中C16和C19起到的作用是一样的,C10的作用和他们两个不一样,我们先来介绍这2个大一点的电容。

    容值比较大的电容,理论上可以理解成水缸或者水池子,同时,大家可以直接把电流理解成水流,其实大自然万物的原理都是类似的。

    • 作用一,缓冲作用。当上电的瞬间,电流从电源处流下来的时候,不稳定,容易冲击电子器件,加个电容可以起到缓冲作用。就如同我们直接用水龙头的水浇地,容易冲坏花花草草的。我们只需要在水龙头处加个水池,让水经过水池后再缓慢流进草地,就不会冲坏花草,起到有效的保护作用。

    • 作用二,稳定作用。我们一整套电路,后级的电子器件功率大小、电流大小也不一样,器件工作的时候,电流大小不是一直持续不变的。比如后级有个器件还没有工作的时候,电流消耗是100mA,突然它参与工作了,电流猛的增大到150mA了,这个时候如果没有一个水缸的话,电路中的电压(水位)就会直接突然下降,比如我们的5V电压突然降低到3V了。而我们系统中有些电子元器件,必须高于一定的电压才能正常工作,电压太低就直接不工作了,这个时候水缸就必不可少了。电容会在这个时候把存储在里边的电流释放一下,稳定电压,当然,随后前级的电流会及时把水缸充满的。

    有了这个电容,可以说我们的电压和电流就会很稳定了,不会产生大的波动。这种电容常用的有以下三种:

    在这里插入图片描述 在这里插入图片描述 在这里插入图片描述
    图3-2 铝电解电容 图3-3 钽电容 图3-4 陶瓷电容

    这三种电容是我们常用的三种电容,其中第一种个头大,占空间大,单位容量价格最便宜,第二种和第三种个头小,占空间小,性能一般也略好于第一种,但是价格也贵不少。当然,除了价格,还有一些特殊参数,在通信要求高的场合也要考虑很多,这里暂且不说。我们板子上现在用的是第一种,只要在符合条件的情况下,第一种470uF的电容不到一毛钱,同样的耐压和容值,第二种和第三种可能得1块钱左右。

    电容的选取,第一个参数是耐压值的考虑。我们用的是5V系统,电容的耐压值要高于5V,一般推荐1.5倍到2倍即可,有些场合稍微高于也可以。我们板子上用的是10V耐压的。第二个参数是电容容值,这个就需要根据经验来选取了,选取的时候,要看这个电容起作用的这块系统的功率消耗情况,如果系统耗电较大,波动可能比较大,那么容值就要选大一些,反之,可以小一些。

    刚开始同学们设计电路也模仿别人,别人用多大自己也用多大,慢慢积累。比如咱上边讲电容作用二的时候,电流从100mA突然增大到150mA的时候,其实即使加上这个电容,电压也会轻微波动,比如从5V波动到4.9V,但是只要我们板子上的器件在电压4.9V以上也可以正常工作的话,这点波动是没有问题的,但是如果不加或者加的很小,电压波动比较大,有些器件就会工作不正常了。但是如果加的太大,占空间并且价格也高,所以这个地方电容的选取多参考经验。

    第二个电容,容值较小,是0.1uF,也就是100nF,是用来滤除高频信号干扰的。比如ESD,EFT等。有一点大家要清楚,我们初中学过电容可以通交流隔直流,但是电容的参数对不同频率段的干扰的作用是不一样的。这个100nF的电容,是我们的前辈根据干扰的频率段,根据板子的参数,根据电容本身的参数所总结出来的一个值。也就是说,以后大家在设计数字电路的时候,在电源处的去耦高频电容,直接用这个0.1uF就可以了,不需要去计算

    还有一点,就是大家看我们的电路图可以看出来,通常在电路中可能瞬间电流较大的地方,会加一个大电容,比如在1602液晶左上角的那个,靠近了单片机的VCC以及1602液晶背光的VCC,起到稳定电压的作用,在左上角电机和蜂鸣器位置有一个,也是起到稳定电压的作用。还有在所有的IC器件的VCC和GND之间,都会放一个0.1uF的高频去耦电容,特别在布板的时候,这个0.1uF电容要尽可能的靠近IC,尽量很顺利的将这个IC的VCC和GND连到一起,这个大家先了解,细节以后再讨论。

    3.3 三极管在数字电路中的应用

    三极管在我们数字电路和模拟电路中都有大量的应用,在我们开发板上也用了多个三极管。在我们板子上的LED小灯部分,就有这个三极管的应用了,图3-5的LED电路中的 Q16就是一个PNP型的三极管。
    在这里插入图片描述

    图3-5 LED电路

    3.3.1 三极管的初步认识

    三极管是一种很常用的控制和驱动器件,常用的三极管根据材料分有硅管和锗管两种,原理相同,压降略有不同,本课程用硅管的参数来进行讲课。三极管共有2种类型,分别是PNP型和NPN型,先来认识一下。

    在这里插入图片描述
    图3-6 三极管示意图

    三极管一共有3个极,从图3-6来看,横向左侧的引脚叫做基极(base),中间有一个箭头,一头连接基极,另外一头连接的是发射极e(emitter),那剩下的一个引脚就是集电极c(collector)。这块是必须要记住的内容,死记硬背即可,后边慢慢用的多了,每次死记硬背一次,多次以后就会深入脑海了。

    3.3.2 三极管的原理

    三极管的应用有截止、放大、饱和三种状态。放大状态主要是对模拟信号而言,而且用法的计算内容比较复杂,暂时我们用不到。而我们数字电路主要使用三极管的开关特性,因此我们只用到了截止与饱和两种状态,所以我们只讲这两种用法。三极管的类型和用法我给大家总结了一句口诀,大家要把这句口诀记牢了:箭头朝内PNP,导通电压顺箭头过,电压导通,电流控制

    下面我们一句一句来解析口诀。大家可以看图3-6,三极管有2种类型,箭头朝内就是PNP,箭头朝外自然就是NPN了,在实际应用中,往往我们要根据实际电路需求来选择到底用哪种类型,大家用几次估计就会了,很简单。

    三极管的用法特点,关键点在于b极(基极)和e级(发射极)之间的电压情况,对于PNP而言,e极电压只要高于b级0.7V以上,这个三极管e级和c级之间就可以顺利导通。也就是说,控制端在b和e之间,被控制端是e和c之间。同理,NPN型三极管的导通电压是b极比e极高0.7V,总之是箭头的始端比末端高0.7V就可以导通三极管的e极和c极。这就是关于“导通电压顺箭头过,电压控制”的解释,我们来看图3-7。

    图片
    图3-7 三极管的用法

    我们以图3-7为例介绍一下。三极管基极通过一个10K的电阻接到了单片机的一个IO口上,发射极直接接到5V的电源上,集电极接了一个LED小灯,并且串联了一个1K的限流电阻最终接到了电源负极GND上。

    如果LEDS6我们程序给一个高电平1,那么基极b和发射极e都是5V,也就是说e到b不会产生一个0.7V的压降,这个时候,发射极和集电极也就不会导通,那么竖着看这个电路在三极管处是断开的,所以没有电流通过,LED2小灯也就不会亮。如果我们程序给LEDS6的位置一个低电平0,而e极是个5V,产生压差就会导通,三极管e和b之间大概有0.7V的电压,那还有(5-0.7)V的电压会在电阻R47上。这个时候,e和c之间也会导通了,那么LED小灯本身有2V的压降,三极管本身e和c之间大概有0.2V的压降,我们忽略不计。那么在R41上就会有大概3V的压降,可以计算出来,这条之路的电流大概是3mA,可以成功点亮LED。

    最后一个概念,电流控制。前边讲过,三极管有截止,放大,饱和三个状态,截止就不用说了,只要e和b之间不导通即可。我们要让这个三极管处于饱和状态,就是我们所谓的开关特性,必须要满足一个条件。三极管都有一个放大倍数β,要想处于饱和状态,b极电流就必须大于e和c之间电流值除以β。这个β,对于常用的三极管大概可以认为是100。那么上边的R47的阻值我们必须要来计算一下了。

    刚才我们算过了,e和c之间的电流是3mA,那么b极电流最小就是3mA除以100等于30uA,大概有4.3V电压会在基极电阻上,那么基极电阻最大值就是4.3V/30uA = 143K。只要比这个值小就可以,当然也不能太小,STC89C52RC的IO口输入电流最大理论值是25mA,我推荐不要超过10mA。

    3.3.3 三极管的应用

    三极管在我们数字电路里的开关特性,常用的一个是控制应用,一个是驱动应用。所谓的控制就是如同我们图3-7里边介绍的,我们可以通过单片机控制三极管的基极来间接控制后边的小灯的亮灭,用法大家基本熟悉了。还有一个控制就是进行不同电压之间的转换控制,比如我们的单片机的IO口是5V系统,如果直接接12V系统会烧坏单片机,所以我们加一个三极管,三极管的工作电压高于单片机的IO口电压,用5V的IO口来控制12V的电路,如图3-8所示。

    图片
    图3-8 三极管控制电路图

    图3-8里所示,当IO口输出高电平5V时,三极管导通,OUT输出低电平0V,当IO口输出低电平时,三极管截止,OUT则由于上拉电阻R2的作用而输出12V的高电平,这样就实现了低电压控制高电压的工作原理。

    所谓的驱动,主要是指电流输出能力。我们再来看这两个图之间的对比

    图片
    图3-9 LED小灯对比示意图

    图3-9中上边的LED灯,和我们第二课讲过的LED灯是一样的,当IO口是高电平时,小灯熄灭,当IO口是低电平时,小灯点亮。

    下边那个图呢,按照这种推理,IO口是高电平的时候,应该有电流流过并且点亮小灯,但是实际并非如此。

    单片机主要是个控制器件,具备四两拨千斤的特点。就如同杠杆必须有一个支点一样,想要撑起整个地球必须有力量承受的支点。单片机的IO口可以输出一个高电平,但是他的输出电流很有限,普通IO口输出高电平的时候,大概只有几十到几百uA的电流,达不到1mA,也就点不亮这个LED小灯或者亮度很低,这个时候如果我们想高电平点亮LED,用上三极管就可以这样来处理,我们板上的这种型号,可以通过500mA的电流,有的三极管通过的电流还更大一些,如图3-10所示。

    图片
    图3-10 三极管驱动LED小灯

    图3-10中,当IO口是高电平,三极管导通,因为三极管的电流放大作用,c极电流就可以达到mA以上了,就可以成功点亮LED小灯。

    虽然我们用了IO口的低电平可以直接点亮LED,但是单片机的IO口作为低电平,输入电流就可以很大吗?这个我想大家都能猜出来,当然不可以。单片机的IO口电流承受能力,不同型号不完全一样,就STC89C52来说,官方手册的81页有对电气特性的介绍,整个单片机的工作电流,不要超过50mA,单个IO口总电流不要超过6mA。即使一些增强型51的IO口承受电流大一点,可以到25mA,但是还要受到总电流50mA的限制。那我们来看电路图的8个LED小灯的这个部分电路,如图3-11所示。

    图片

    图3-11 LED电路图(一)

    3-11图示这里我们要学会看电路图的一个知识点,大家注意看,电路图右侧所有的LED下侧的线最终都连到一根黑色的粗线上去了,大家注意,这个地方不是实际的完全连到一起,而是一种总线的画法,画了这种线以后,表示这是个总线结构,所有的名字一样的是一一对应的连接到一起,其他名字不一样的,是不连到一起的。比如左侧的DB0和右侧的最左边的LED2小灯下边的DB0是连在一起的,而和DB1等其他线不是连在一起的。

    那么我们把3-11电路图里的我们现在需要讲的这部分再摘出来看。

    图片
    图3-12 LED电路图(二)

    大家通过3-12的电路图来计算一下,5V的电压减去LED本身的压降,减掉三极管e和c之间的压降,限流电阻用的是330欧,那么每条支路的电流大概是8mA,那么8路LED如果全部同时点亮的话电流总和就是64mA。这样如果直接接到单片机的IO口,那单片机肯定是承受受不住的,即使短时间可以承受,长时间工作就会不稳定,甚至导致单片机烧毁。

    有的同学会提出来可以加大限流电阻的方式来降低这个电流。比如改到1K,那么电流不到3mA,8路总的电流就是20mA左右。首先,降低电流会导致LED小灯亮度变弱,小灯的亮度可能关系不大,因为我们同样的电路接了数码管,后边我们要讲数码管还要动态显示,如果数码管亮度不够的话,那视觉效果就会很差,所以降低电流的方法并不可取;其次,对于单片机来说,他主要是起到控制作用,电流输入和输出的能力相对较弱,P0的8个口总电流也有一定限制,所以如果接一两个LED小灯观察,可以勉强直接用单片机的IO口来接,但是接多个小灯,从实际工程的角度去考虑,就不推荐直接接IO口了。那么我们如果要用单片机控制多个LED小灯该怎么办呢?

    除了三极管之外,其实还有一些驱动IC,这些驱动IC可以作为单片机的缓冲器,仅仅是电流驱动缓冲,不起到任何逻辑控制的效果,比如我们板子上用的74HC245D这个芯片,这个芯片在逻辑上起不到什么别的作用,就是当做电流缓冲器的,我们通过查看其数据手册,74HC245稳定工作在70mA电流是没有问题的,比单片机的8个IO口大多了,所以我们可以把他接在小灯和IO口之间做缓冲,如图3-13所示

    图片

    图3-13 74HC245功能图

    从图3-13我们来分析,其中VCC和GND就不用多说了,细心的同学会发现这里有个0.1uF的去耦电容噢。

    74HC245是个双向缓冲器,1引脚DIR是方向引脚,当这个引脚接高电平的时候,右侧所有的B编号的电压都等于左侧A编号对应的电压。比如A0是高电平,那么B0就是高电平,A1是低电平,B1就是低电平等等。如果DIR引脚接低电平,得到的效果是左侧A编号的电压都会等于右侧B编号对应的电压。因为我们这个地方控制端是左侧接的是P0口,所以我们要求B等于A的状态,所以1脚我们直接接的高电平。图3-13中还有一排电阻R10到R17是上拉电阻,这个电阻的用法我们在后边介绍。

    还有最后一个使能引脚19脚OE,这个引脚上边有一横,表明是低电平有效,当接了低电平后,74HC245就会按照刚才上边说的起到双向缓冲器的作用,如果OE接了高电平,那么无论DIR怎么接,A和B的引脚是没有关系的,也就是74HC245功能不能实现出来。

    从我们的电路图3-14可以看出来,我们的P0口和74HC245的A端是直接接起来的。这个地方,有个别同学有一个疑问,就是我们明明在电源VCC那地方加了一个三极管驱动了,为何还要再加245驱动芯片呢。这里大家要理解一个道理,电路上从正极经过器件到地,首先必须有电流才能正常工作,电路中任何一个位置断开,都不会有电流,器件也就不会参与工作了。其次,和水流一个道理,从电源正极到负极的电流水管的粗细都要满足要求,任何一个位置的管子过细,都会出现瓶颈效应,电流在整个通路中细管处会受到限制而降低,所以在电路通路的每个位置上,都要保证足够通道足够畅通,这个245的作用就是消除单片机IO这一环节的瓶颈。

    图片
    图3-14 单片机和74HC245接口

    3.3.4 74HC138三八译码器的应用

    在我们设计单片机电路的时候,单片机的IO口数量是有限的,有时并满足不了我们的设计需求,比如我们的STC89C52RC一共是32个IO口,但是我们为了控制更多的器件,就要使用一些外围的数字芯片,这种数字芯片由简单的输入逻辑来控制输出逻辑,比如74HC138这个三八译码器,图3-15是74HC138在我们原理图上的一个应用。

    图片
    图3-15 74HC138应用原理图

    从这个名字来分析,三八译码器,就是把3种输入状态翻译成8种输出状态。从图3-15所看出来的,74HC138一共有1~6一共是6个输入引脚,但是其中4、5、6这三个引脚是使能引脚。使能引脚和我们前边讲74HC245的OE引脚是一样的,这三个引脚如果不符合规定的输入要求,Y0到Y7不管你输入的1、2、3引脚是什么电平状态,总是高电平。所以我们要想这个74HC138正常工作,ENLED那个输入位置必须输入低电平,ADDR3位置必须输入高电平,这两个位置都是使能控制端口。不知道大家是否记得我们第二课的程序有这么两句ENLED = 0;ADDR3 = 1;就是控制使这个74HC138使能的。

    这类逻辑芯片,大多都是有使能引脚的,使能符合要求了,那下面就要研究逻辑控制了。对于数字器件的引脚,如果一个引脚输入的时候,有0和1两种状态;对于两个引脚输入的时候,就会有00,01,10,11这四种状态了,那么对于3个输入的时候,就会出现8种状态了,大家可以看下边的这个真值表——图3-16,其中输入是A2,A1,A0的顺序,输出是从Y0,Y1…Y7的顺序。

    图片
    图3-16 74HC148真值表

    从图3-16可以看出,任一输入状态下,只有一个输出引脚是低电平,其他的引脚都是高电平。我们清楚的知道,8个LED小灯的总开关三极管Q16基极的控制端是LEDS6,也就是Y6输出一个低电平的时候,可以开通三极管Q16,从右侧的希望输出的结果,我们可以推导出我们的A2,A1,A0的输入状态应该是110,那我们再来看下原理图3-17。
    图片

    图3-17 点亮LED小灯整体示意图

    那么我们在整体捋一遍点亮LED小灯的过程,首先看74HC138,我们要让LEDS6为低电平才能导通三极管Q16,所以ENLED = 0;ADDR3 = 1;保证74HC138使能。然后ADDR2 = 1; ADDR1 = 1; ADDR0 = 0;这样保证了三极管Q16这个开关开通,5V电源加到LED上。

    而74HC245左侧是通过P0口控制,我们让P0.0引脚等于0,就是DB_0等于0,而右侧DB0等于DB_0的状态,也是0,那么这样在这一排共8个LED小灯当中,只有最右侧的小灯和5V之间有压差,有压差就会有电流通过,有电流通过我们的LED2就会发光。

    74HC245左侧我们可以看出来,是直接接到P0口上的,而74HC138的ADDR0 ~ ADDR3接在何处呢?
    图片

    图3-18 跳线帽接口部分

    跳线帽是大家以后要常用的一个器件,他的作用就是起到导线的作用,我们可以通过跳线帽来实现连接线的切换。

    图片
    图3-19 跳线实物图

    大家看,跳线帽本身可以占2个针的位置,现在是把右侧和中间的针插到了一起,这样实现的就是图3-18中的P1.0和ADDR0连接到一起,P1.1和ADDR1接一起,P1.2和ADDR2接一起,P1.3和ADDR3接一起。这样就可以透彻理解我们第二课的程序了。

    好了,大家认真再回顾一下我们第二课的那个程序,再领悟一下这几个数字器件的用法。

    3.4 LED闪烁程序

    点亮LED小灯的程序我们第二课完成了,就是让LED = 0;熄灭小灯的程序也很简单,就是LED = 1;亮和灭中间加个时间延时,点亮和熄灭就都学会了,那么我们中间加个延时程序,反复不停的点亮和熄灭小灯,就成了闪烁了。

    我们首先复习一下Keil写程序的过程,建立工程–保存工程–建立文件–添加文件到工程–编写程序–编译–下载程序。

    LED闪烁程序对于有C基础的同学来说很简单,那我先写出来,大家可以先看下。没有C语言基础的同学也可以跟着抄一遍,下节课我会补充部分C语言基础知识,这样你先抄一遍后,再跟着看C语言基础知识的时候也比较容易理解透彻。

    #include<reg52.h>         //包含寄存器的库文件                   
    sbit  LED = P0^0;         //位地址声明,注意:sbit必须小写! 
    sbit  ADDR0 = P1^0;
    sbit  ADDR1 = P1^1;
    sbit  ADDR2 = P1^2;
    sbit  ADDR3 = P1^3;
    sbit  ENLED = P1^4;
    
    void  main()
    {
        unsigned int i = 0;
        ENLED = 0;
        ADDR0 = 0;
        ADDR1 = 1;
        ADDR2 = 1;
        ADDR3 = 1;            //74HC138开启三极管   
    
      while(1)              //程序死循环  
        {
               LED = 0;                //点亮小灯
               for(i=0;i<30000;i++);  //延时一段时间
               LED = 1;                //熄灭小灯
               for(i=0;i<30000;i++);  //延时一段时间
        }
    }
    

    大家把这个程序编译一下,下载到单片机里,会发现LED2这个小灯会闪烁了。关于闪烁灯程序的详解请看:http://www.51hei.com/mcuteach/248.html 里面有c语言和汇编2个版本的.

    展开全文
  • 单片机硬件设计总结

    千次阅读 2018-09-14 14:56:15
    下面是总结的一些设计中应注意的问题,和单片机硬件设计原则,老生常谈了,不过还是写一下:   (1)在元器件的布局方面,应该把相互有关的元件尽量放得靠近一些  例如,时钟发生器、晶振、CPU的时钟输入端都易...

    下面是总结的一些设计中应注意的问题,和单片机硬件设计原则,老生常谈了,不过还是写一下:

     

    (1)在元器件的布局方面,应该把相互有关的元件尽量放得靠近一些

            例如,时钟发生器、晶振、CPU的时钟输入端都易产生噪声,在放置的时候应把它们靠近些。对于那些易产生噪声的器件、小电流电路、大电流电路开关电路等,应尽量使其远离单片机的逻辑控制电路和存储电路(ROM、RAM),如果可能的话,可以将这些电路另外制成电路板,这样有利于抗干扰,提高电路工作的可靠性。

    (2)尽量在关键元件,如ROM、RAM等芯片旁边安装去耦电容。

            实际上,印制电路板走线、引脚连线和接线等都可能含有较大的电感效应。大的电感可能会在Vcc走线上引起严重的开关噪声尖峰。防止Vcc走线上开关噪声尖峰的唯一方法,是在VCC与电源地之间安放一个0.1uF的电子去耦电容。如果电路板上使用的是表面贴装元件,可以用片状电容直接紧靠着元件,在Vcc引脚上固定。最好是使用瓷片电容,这是因为这种电容具有较低的静电损耗(ESL)和高频阻抗,另外这种电容温度和时间上的介质稳定性也很不错。尽量不要使用钽电容,因为在高频下它的阻抗较高。

         在安放去耦电容时需要注意以下几点:
     ·在印制电路板的电源输入端跨接100uF左右的电解电容,如果体积允许的话,电容量大一些则更好。
     ·原则上每个集成电路芯片的旁边都需要放置一个0.01uF的瓷片电容,如果电路板的空隙太小而放置不下时,可以每10个芯片左右放置一个1~10的钽电容。
     · 对于抗干扰能力弱、关断时电流变化大的元件和RAM、ROM等存储元件,应该在电源线(Vcc)和地线之间接入去耦电容。
     ·电容的引线不要太长,特别是高频旁路电容不能带引线。

    (3)在单片机控制系统中,地线的种类有很多,有系统地、屏蔽地、逻辑地、模拟地等。

           地线是否布局合理,将决定电路板的抗干扰能力。在设计地线和接地点的时候,应该考虑以下问题:
     ·逻辑地和模拟地要分开布线,不能合用,将它们各自的地线分别与相应的电源地线相连。在设计时,模拟地线应尽量加粗,而且尽量加大引出端的接地面积。一般来讲,对于输入输出的模拟信号,与单片机电路之间最好通过光耦进行隔离。


     ·在设计逻辑电路的印制电路版时,其地线应构成闭环形式,提高电路的抗干扰能力。
     ·地线应尽量的粗。如果地线很细的话,则地线电阻将会较大,造成接地电位随电流的变化而变化,致使信号电平不稳,导致电路的抗干扰能力下降。在布线空间允许的情况下,要保证主要地线的宽度至少在2~3mm以上,元件引脚上的接地线应该在1.5mm左右。
     ·要注意接地点的选择。当电路板上信号频率低于1MHz时,由于布线和元件之间的电磁感应影响很小,而接地电路形成的环流对干扰的影响较大,所以要采用一点接地,使其不形成回路。当电路板上信号频率高于10MHz时,由于布线的电感效应明显,地线阻抗变得很大,此时接地电路形成的环流就不再是主要的问题了。所以应采用多点接地,尽量降低地线阻抗。
     ·电源线的布置除了要根据电流的大小尽量加粗走线宽度外,在布线时还应使电源线、地线的走线方向与数据线的走线方身一致在布线工作的最后,用地线将电路板的底层没有走线的地方铺满,这些方法都有助于增强电路的抗干扰能力。
     ·数据线的宽度应尽可能地宽,以减小阻抗。数据线的宽度至少不小于0.3mm(12mil),如果采用0.46~0.5mm(18mil~20mil)则更为理想。
     ·由于电路板的一个过孔会带来大约10pF的电容效应,这对于高频电路,将会引入太多的干扰,所以在布线的时候,应尽可能地减少过孔的数量。再有,过多的过孔也会造成电路板的机械强度降低。

    一个单片机应用系统的硬件电路设计包含两部分内容:一是系统扩展,即单片机内部的功能单元,如ROM、RAM、I/O、定时器/计数器、中断系统等不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。二是系统的配置,即按照系统功能要求配置外围设备,如键盘、显示器、打印机、A/D、D/A转换器等,要设计合适的接口电路。


    系统的扩展和配置应遵循以下原则:
    1、尽可能选择典型电路,并符合单片机常规用法。为硬件系统的标准化、模块化打下良好的基础。
    2、系统扩展与外围设备的配置水平应充分满足应用系统的功能要求,并留有适当余地,以便进行二次开发。
    3、硬件结构应结合应用软件方案一并考虑。硬件结构与软件方案会产生相互影响,考虑的原则是:软件能实现的功能尽可能由软件实殃,以简化硬件结构。但必须注意,由软件实现的硬件功能,一般响应时间比硬件实现长,且占用CPU时间。
    4、系统中的相关器件要尽可能做到性能匹配。如选用CMOS芯片单片机构成低功耗系统时,系统中所有芯片都应尽可能选择低功耗产品。
    5、可靠性及抗干扰设计是硬件设计必不可少的一部分,它包括芯片、器件选择、去耦滤波、印刷电路板布线、通道隔离等。
    6、单片机外围电路较多时,必须考虑其驱动能力。驱动能力不足时,系统工作不可靠,可通过增设线驱动器增强驱动能力或减少芯片功耗来降低总线负载。
    7、尽量朝“单片”方向设计硬件系统。系统器件越多,器件之间相互干扰也越强,功耗也增大,也不可避免地降低了系统的稳定性。随着单片机片内集成的功能越来越强,真正的片上系统SoC已经可以实现,如ST公司新近推出的μPSD32××系列产品在一块芯片上集成了80C32核、大容量FLASH存储器、SRAM、A/D、I/O、两个串口、看门狗、上电复位电路等等。


    单片机系统硬件抗干扰常用方法实践


    影响单片机系统可靠安全运行的主要因素主要来自系统内部和外部的各种电气干扰,并受系统结构设计、元器件选择、安装、制造工艺影响。这些都构成单片机系统的干扰因素,常会导致单片机系统运行失常,轻则影响产品质量和产量,重则会导致事故,造成重大经济损失。 
           形成干扰的基本要素有三个:

         (1)干扰源。指产生干扰的元件、设备或信号,用数学语言描述如下:du/dt,di/dt大的地方就是干扰源。如:雷电、继电器、可控硅、电机、高频时钟等都可能成为干扰源。

         (2)传播路径。指干扰从干扰源传播到敏感器件的通路或媒介。典型的干扰传播路径是通过导线的传导和空间的辐射。

         (3)敏感器件。指容易被干扰的对象。如:A/D、D/A变换器,单片机,数字IC,弱信号放大器等。

           干扰的分类干扰的分类有好多种,通常可以按照噪声产生的原因、传导方式、波形特性等等进行不同的分类。

           按产生的原因分:可分为放电噪声音、高频振荡噪声、浪涌噪声。按传导方式分:可分为共模噪声和串模噪声。

           按波形分:可分为持续正弦波、脉冲电压、脉冲序列等等。

           干扰的耦合方式干扰源产生的干扰信号是通过一定的耦合通道才对测控系统产生作用的。因此,我有有必要看看干扰源和被干扰对象之间的传递方式。

            干扰的耦合方式,无非是通过导线、空间、公共线等等,细分下来,主要有以下几种:

           (1)直接耦合:这是最直接的方式,也是系统中存在最普遍的一种方式。比如干扰信号通过电源线侵入系统。 

           (2)公共阻抗耦合:这也是常见的耦合方式,这种形式常常发生在两个电路电流有共同通路的情况。为了防止这种耦合,通常在电路设计上就要考虑。使干扰源和被干扰对象间没有公共阻抗。

           (3)电容耦合:又称电场耦合或静电耦合。是由于分布电容的存在而产生的耦合。

           (4)电磁感应耦合:又称磁场耦合。是由于分布电磁感应而产生的耦合。

           (5)漏电耦合:这种耦合是纯电阻性的,在绝缘不好时就会发生。 


    常用硬件抗干扰技术针对形成干扰的三要素,采取的抗干扰主要有以下手段。

           抑制干扰源抑制干扰源就是尽可能的减小干扰源的du/dt,di/dt。这是抗干扰设计中最优先考虑和最重要的原则,常常会起到事半功倍的效果。减小干扰源的du/dt主要是通过在干扰源两端并联电容来实现。减小干扰源的di/dt则是在干扰源回路串联电感或电阻以及增加续流二极管来实现。

           抑制干扰源的常用措施如下:

         (1)继电器线圈增加续流二极管,消除断开线圈时产生的反电动势干扰。仅加续流二极管会使继电器的断开时间滞后,增加稳压二极管后继电器在单位时间内可动作更多的次数。

         (2)在继电器接点两端并接火花抑制电路(一般是RC串联电路,电阻一般选几K 到几十K,电容选0.01uF),减小电火花影响。

         (3)给电机加滤波电路,注意电容、电感引线要尽量短。

         (4)电路板上每个IC要并接一个0.01μF~0.1μF高频电容,以减小IC对电源的影响。注意高频电容的布线,连线应靠近电源端并尽量粗短,否则,等于增大了电容的等效串联电阻,会影响滤波效果。    

         (5)布线时避免90度折线,减少高频噪声发射。

         (6)可控硅两端并接RC抑制电路,减小可控硅产生的噪声(这个噪声严重时可能会把可控硅击穿的)。

     

    切断干扰传播路径按干扰的传播路径可分为传导干扰和辐射干扰两类。

           所谓传导干扰是指通过导线传播到敏感器件的干扰。高频干扰噪声和有用信号的频带不同,可以通过在导线上增加滤波器的方法切断高频干扰噪声的传播,有时也可加隔离光耦来解决。电源噪声的危害最大,要特别注意处理。

           所谓辐射干扰是指通过空间辐射传播到敏感器件的干扰。一般的解决方法是增加干扰源与敏感器件的距离,用地线把它们隔离和在敏感器件上加蔽罩。

           切断干扰传播路径的常用措施如下:

         (1)充分考虑电源对单片机的影响。电源做得好,整个电路的抗干扰就解决了一大半。许多单片机对电源噪声很敏感,要给单片机电源加滤波电路或稳压器,以减小电源噪声对单片机的干扰。比如,可以利用磁珠和电容组成π形滤波电路,当然条件要求不高时也可用100Ω电阻代替磁珠。

         (2)如果单片机的I/O口用来控制电机等噪声器件,在I/O口与噪声源之间应加隔离(增加π形滤波电路)。

         (3)注意晶振布线。晶振与单片机引脚尽量靠近,用地线把时钟区隔离起来,晶振外壳接地并固定。

         (4)电路板合理分区,如强、弱信号,数字、模拟信号。尽可能把干扰源(如电机、继电器)与敏感元件(如单片机)远离。

         (5)用地线把数字区与模拟区隔离。数字地与模拟地要分离,最后在一点接于电源地。A/D、D/A芯片布线也以此为原则。

         (6)单片机和大功率器件的地线要单独接地,以减小相互干扰。大功率器件尽可能放在电路板边缘。

         (7)在单片机I/O口、电源线、电路板连接线等关键地方使用抗干扰元件如磁珠、磁环、电源滤波器、屏蔽罩,可显著提高电路的抗干扰性能。

     

           提高敏感器件的抗干扰性能提高敏感器件的抗干扰性能是指从敏感器件这边考虑尽量减少对干扰噪声的拾取,以及从不正常状态尽快恢复的方法。提高敏感器件抗干扰性能的常用措施如下:

         (1)布线时尽量减少回路环的面积,以降低感应噪声。

         (2)布线时,电源线和地线要尽量粗。除减小压降外,更重要的是降低耦合噪声。

         (3)对于单片机闲置的I/O口,不要悬空,要接地或接电源。其它IC的闲置端在不改变系统逻辑的情况下接地或接电源。

         (4)对单片机使用电源监控及看门狗电路,如:IMP809,IMP706,IMP813,X5043,X5045等,可大幅度提高整个电路的抗干扰性能。

         (5)在速度能满足要求的前提下,尽量降低单片机的晶振和选用低速数字电路。

         (6)IC器件尽量直接焊在电路板上,少用IC座。

           

           其它常用抗干扰措施交流端用电感电容滤波:去掉高频低频干扰脉冲。

           变压器双隔离措施:变压器初级输入端串接电容,初、次级线圈间屏蔽层与初级间电容中心接点接大地,次级外屏蔽层接印制板地,这是硬件抗干扰的关键手段。次级加低通滤波器:吸收变压器产生的浪涌电压。

            采用集成式直流稳压电源:因为有过流、过压、过热等保护。

            I/O口采用光电、磁电、继电器隔离,同时去掉公共地。

            通讯线用双绞线:排除平行互感。

            防雷电用光纤隔离最为有效。

            A/D转换用隔离放大器或采用现场转换:减少误差。

            外壳接大地:解决人身安全及防外界电磁场干扰。

            加复位电压检测电路。防止复位不充份,CPU就工作,尤其有EEPROM的器件,复位不充份会改变EEPROM的内容。

            印制板工艺抗干扰:

            ①电源线加粗,合理走线、接地,三总线分开以减少互感振荡。

            ②CPU、RAM、ROM等主芯片,VCC和GND之间接电解电容及瓷片电容,去掉高、低频干扰信号。

            ③独立系统结构,减少接插件与连线,提高可靠性,减少故障率。

            ④集成块与插座接触可靠,用双簧插座,最好集成块直接焊在印制板上,防止器件接触不良故障。

            ⑤有条件采用四层以上印制板,中间两层为电源及地。

    展开全文
  • 单片机——硬件基础知识

    千次阅读 2017-06-09 15:04:40
    单片机——硬件基础知识 宗旨:技术的学习是有限的,分享的精神是无限的。 1、单片机内部资源 STC89C52:8KFLASH、512字节RAM、32个IO口、3个定时器、1个UART、8个中断源 (1)Flash...

    单片机——硬件基础知识


    宗旨:技术的学习是有限的,分享的精神是无限的。


    1、单片机内部资源

    STC89C52:8KFLASH、512字节RAM、32个IO口、3个定时器、1个UART、8个中断源

    (1)Flash(硬盘)——程序存储空间 —— 擦写10万次,断电数据不丢失,读写速度慢

    (2)RAM(内存)——数据存储空间 —— 断电数据丢失,读写速度快,无限次使用

    (3)SFR  —— 特殊功能寄存器

     

    2、单片机最小系统


    最小系统:最少组件组成单片机可以工作的系统。

    三要素:

    (1)、 电源电路:5V

    (2)、 晶振电路:11.0592MHZ、两个30PF

    (3)、 复位电路:

    P0:开漏输出,必须加上拉电阻

    准双向口:

    强推挽输出:电流驱动能力强

    高阻态

    上下拉电阻:上拉电路就是将不确定的信号通过一个电阻拉到高电平,同时限流作用。下拉电阻就是下拉到低电平。

    上下拉电阻选取:从降低功耗方面考虑应该足够大,因为电阻越大,电流越小;驱动能力来看,小电阻

     

    3、硬件基础知识

    (1)、电磁干扰(EMI)——静电放电(ESD)、快速瞬间脉冲群(EFT)、浪涌(Surge)

    (2)、去耦电容的使用

    低频滤波电容,平常应用最多的事钽电容,电解电容,陶瓷电容,起到去除电源低频纹波,稳定电源的作用。

    高频滤波电容,电容附近,通常用104电容来进行去除高频干扰。

    (3)、三极管(PNP,NPN) b,c,e  --- 电压驱动

        控制应用

        驱动应用

     

    4LED发光二极管 ——电流驱动


    通常红色贴片LED, 靠电流驱动,电压1.8V~2.2V,电流1~20mA,在1~5mA亮度有所变化,5mA以上亮度基本不变。

     

    VCC 电压是 5V,发光二极管自
    身压降大概是 2V,那么在右边 R34 这个电阻上承受的电压就是 3V。

    R = U/I  —— 1~20mA —— R:150~3K

     

    5C语言基础

    (1)、基本运算符

    +  -   *   /   %   ++   --    =  ==   !=   +=   -=   <<   >>  &&   ||   !   &   |   ~   ^

    (2)、循环(C语言以;表示一条语句)

    for/while/do...while

    for(表达式1;表达式2;表达式3)

    {

           语句;//可以为空

    }

    while(表达式)//表达式为真,执行语句

    {

            语句;//可以为空

    }

    do

    {

            语句;//可以为空

    }while(表达式);

    (3)、函数 (模块化的思想)

    类型  函数名(参数类型 参数)

    {

        函数体;

    }

    (4)、数组

          <1>、具有相同数据类型

          <2>、具有相同的类型

          <3>、在存储器中连续存储

    (5)、51单片机常用延时办法——循环、定时器

    (P0 = ~(1 << i++);)

     

    5、流水灯

    给IO口一个低电平即可点亮LED灯。

    注:单片机对外设的操作其实就是对IO口电平的控制。

    1. #include <reg52.h>   //包含特殊功能寄存器定义的头文件  
    2.   
    3. typedef unsigned int  uint;  
    4. typedef unsigned char uchar;  
    5.   
    6. int  main(void)  
    7. {  
    8.   uint i = 0; // 定义循环变量i,用于软件延时  
    9.   uchar j = 0; // 定义计数变量j,用于移位控制  
    10.   
    11.   while(1)  // 主循环,程序无限循环执行该循环体语句  
    12.   {  
    13.     P0 = ~(1 << j++); // P0等于1左移j位,控制8个LED  
    14.   
    15.     for(i = 0; i < 20000; ++i);  //软件延时  
    16.   
    17.     if(j >= 8)   //移位计数超过7后,再重新从0开始  
    18.     {  
    19.       j = 0;  
    20.     }  
    21.   }  
    22.   
    23.   return 0;  
    24. }  
    展开全文
  • 单片机硬件相关

    2020-07-23 20:36:25
    只读存储器,在单片机运行时,只能从中读取数据,不能向里面写数据。特点是掉电不丢失数据,在单片机中主要用来存储代码和常量等内容。 FLASH 存程序,单片机上电后会自动从这里读代码开始运行。 SRAM 跑程序时候暂...
  • STM32F1系列单片机硬件设计方法

    千次阅读 2018-04-19 17:12:12
    用了很久STM32F1单片机了,现在总结一下STM32F1单片机硬件电路的设计方法。1.电源电源部分主要分为三部分电源,分别是主电源、后备电源和ADC电源。1.1 主电源主电源即引脚上标记为VDD1、VDD2...等引脚,这些引脚每个...
  • 单片机硬件系统设计原则

    千次阅读 2012-11-19 14:07:29
    单片机硬件系统设计原则 一个单片机应用系统的硬件电路设计包含两部分内容:一是系统扩展,即单片机内部的功能单元,如ROM、RAM、I/O、定时器/计数器、中断系统等不能满足应用系统的要求时,必须在片外进行...
  • 51单片机硬件结构

    千次阅读 2015-03-27 13:35:12
    51单片机硬件结构 51单片机不同于冯▪诺依曼结构的8086CPU,它是哈佛结构。(哈佛结构和冯诺依曼结构的异同点).如图所示51系列单片机同样是三总线结构,图中P0.0~P0.7 + P2.0~P2.7组成了16位的地址总线(所以51...
  • 首先,51单片机是不具备硬件乘法器的,低级的单片机大多没有Hardware Multiplier,对计算机了解的朋友应该都知道,CPU进行乘除运算要比一般的加减移位等运算更加耗时。像51单片机进行一次乘除运算就需要四个机器周期...
  • 单片机硬件IIC和软件IIC区别

    千次阅读 2018-07-19 10:47:56
    1. 硬件IIC用法比较复杂,模拟IIC的流程更清楚一些。 2. 硬件IIC速度比模拟快,并且可以用DMA 3. 模拟IIC可以在任何管脚上,而硬件只能在固定管脚上。  4. 软件i2c是程序员使用程序控制SCL,SDA线输出高低电平,...
  • 大家都谈谈,硬件中断电路设计和cpu 架构吧
  • 设计单片机硬件系统应遵循的原则

    千次阅读 2015-08-02 14:25:09
    设计单片机硬件系统应遵循的原则 一个单片机应用系统的硬件电路设计包含两部分内容:一是系统扩展,即单片机内部的功能单元,如ROM、RAM、I/O、定时器/计数器、中断系统等不能满足应用系统的要求时,必须在片外进行...
  • C51单片机硬件基础

    2017-09-21 12:55:04
    1、51单片机P0~P3口的结构有什么不同? P3口有哪些第二功能? 答:P0、P2口除了作为通用I/O口外,P0还可以作为外接存储器的低8位地址和数据端口,P2口可以用来外接存储器的高8位地址;P1口通常只作为输入、输出口...
  • 单片机硬件设计经验总结(转)

    千次阅读 2011-04-05 15:09:00
    下面是总结的一些设计中应注意的问题,和单片机硬件设计原则,希望大家能看完 (1) 在元器件的布局方面,应该把相互有关的元件尽量放得靠近一些,例如,时钟发生器、晶振、CPU的时钟输入端都易产生噪声...
  • stm32使用stlink进行硬件仿真,具有很大的优点,能够实时监测到io电平,对于时序分析和debug具有很大帮助,而对于stc系列单片机, 如果单纯地使用软件仿真,实际中仿真会很不方便,这就为寻求51单片机硬件仿真奠定...
  • 51单片机——硬件基础

    千次阅读 2016-04-21 12:00:32
    单片机——硬件基础知识 宗旨:技术的学习是有限的,分享的精神是无限的。 1、单片机内部资源 STC89C52:8KFLASH、512字节RAM、32个IO口、3个定时器、1个UART、8个中断源 (1)Flash(硬盘)——程序...
  • 单片机硬件结构

    千次阅读 热门讨论 2014-01-12 11:49:53
    硬件部分就是单片机硬件构成,包括:引脚图,存储器(ROM和RAM),时钟,并行口,定时器/计数器,串行口。 其中,考的最多的,就是这里面最简单的引脚图和存储器,和计算波特率了,看看书 AND 做点儿题,也就
  • STC单片机硬件PWM的使用分析

    万次阅读 2017-06-17 15:06:53
    STC单片机(具有PCA功能的),怎么实现可变频率的PWM输出?很多朋友还在使用定时器做可变频PWM, 这里我就介绍怎么使用硬件PWM,在定时器0的分频基数下设计PWM。 首先看CMOD这个寄存器,这里我们主要关注 CPS0,...
  • STC8单片机硬件SPI通信例程W25Q16

    千次阅读 2019-10-13 09:30:24
    SPI全双工通信使用起来相当方便,最常见的是W25Q16存储颗粒的使用了,当重新... 本篇讲的是使用硬件SPI让单片机和W25Q16进行通信,模拟SPI通信将会在下一篇讲。使用W25Q16的步骤如下: 1.配置与SPI有关的寄存器 ...
1 2 3 4 5 ... 20
收藏数 45,843
精华内容 18,337
关键字:

单片机硬件