第3章 单片机硬件基础知识学习

通过上一课的学习,我们貌似成功的点亮了一个LED小灯,但是还有一些知识大家还没有彻底明白。单片机是根据硬件电路图的设计来写代码的,所以我们不仅仅要学习编程知识,还有硬件知识,也要进一步的学习,这节课我们就要来穿插介绍电路硬件知识。

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.1u F,也就是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 //包含寄存器的库文件

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这个小灯会闪烁了。关于闪烁灯程序的详解请看:https://www.360docs.net/doc/de19191925.html,/mcuteach/248.html里面有c语言和汇编2个版本的.

3.5 作业

1、深刻理解电容的意义,并且在今后的学习电路过程中要多多注意并且参考别人电路中所用到的去耦电路,积累经验。

2、完全背过三极管的导通原理,并且可以熟练应用NPN和PNP这两种三极管在开关特性下的应用方法。

3、学习并且掌握74HC245和74HC138的应用原理,能够在设计电路中正确应用。

4、能够独立实现点亮开发板上的每一个小灯,并且可以实现小灯点亮和关闭以及闪烁功能。

文章中的代码及软件请到51hei单片机论坛下载附件,对本文如有不理解之处请在论坛回帖我会一一解答的.论坛地址: https://www.360docs.net/doc/de19191925.html,/bbs/dpj-19014-1.html 希望大家多多交流.

零基础单片机

零基础单片机 单片机(Microcontroller)是一种集成了微处理器和外围器件的芯片,它通常被用于控制和操作电子设备。具备零基础的人可能对单片机的 原理和应用知之甚少,因此本文将介绍零基础的读者入门单片机的基 本知识和学习路径。 一、单片机的基本概念 单片机是一种集成了微处理器、存储器、输入输出端口和定时器等 功能的芯片。与传统的微处理器相比,单片机具有体积小、功耗低、 成本较低以及易于编程等特点,所以在电子产品中得到了广泛的应用。 在单片机技术中,最常见的芯片类型是基于著名厂商Microchip开 发的PIC系列芯片和基于STMicroelectronics开发的STM32系列芯片。它们具有强大的性能和丰富的外设接口,非常适合初学者学习和开发 实际应用。 二、零基础入门单片机 作为零基础的读者,你可以按照以下步骤来快速入门单片机: 1. 学习基础知识:了解单片机的基本原理、结构和特点。学习计算 机组成原理和数字电路的基础知识,理解二进制和逻辑门的概念。 2. 学习编程语言:掌握单片机编程所需的编程语言,如C语言。C 语言是单片机编程最常用的语言,它具有结构化的特点,易于理解和 使用。通过学习C语言,你将能够编写控制单片机的程序。

3. 硬件选型:选择一款适合初学者的单片机开发板,如Arduino UNO、PIC16F877A学习板或STM32F103C8T6开发板等。这些开发板 具有丰富的资源和强大的社区支持,能够帮助你快速上手。 4. 学习开发环境:根据所选的单片机,配置相应的开发环境。通常,你需要下载安装一个编译器(如MPLAB-X、Keil MDK或Arduino IDE)和一个烧录工具(如PICkit、ST-Link或Arduino ISP)。 5. 进行简单实验:通过写简单的程序控制单片机实现一些基本功能,如LED灯的闪烁、蜂鸣器的鸣叫等。这些实验帮助你熟悉单片机的开 发流程和调试技巧。 6. 学习外设接口:进一步学习单片机的外设接口,如GPIO、串口、ADC、PWM等。了解每个接口的特点和使用方法,掌握如何通过编程 控制它们。 7. 实践项目:尝试完成一些实际的项目,如温湿度监测、智能家居 控制等。通过实践,你能够将所学的理论知识应用于实际场景,并提 升自己的技术能力。 三、学习资源推荐 在学习单片机过程中,有一些优秀的学习资源可以帮助你加快学习 进度。以下是一些学习资源的推荐: 1. 书籍:《单片机原理与应用-基于51单片机的C语言程序设计》、《STM32单片机arm程序设计教程》等。

单片机原理课程教案

(一)课程教学目的和要求 随着科学技术的不断进步,计算机在社会各个领域中的应用也不断得以发展,本课程是信息类基础课程之一,是一门学生学习掌握计算机硬件知识和汇编语言程序设计的入门课程。通过本课程的学习使学生从理论和实践两方面掌握单片机的基本结构、工作原理、汇编语言程序设计方法、接口电路及单片机应用系统的设计方法,以求达到初步的单片机软硬件设计开发能力。并为以后从事电子控制类的设计奠定理论基础和实践能力。 《单片机原理及应用》是信息类专业的一门重要专业基础必修课,是一门理论与实际紧密结合并对学生进行工程训练的课程。通过本课程的教学,学生应掌握51系列单片机CPU、定时/计数器、存储器、串行通信、中断系统、I/O口的硬件结构,能用汇编语言进行程序设计,具备应用单片机知识分析解决工程实际问题,设计较复杂的单片机应用系统能力。 (二)课程教学重点和难点 1、重点:硬件结构;指令系统;系统扩展和应用;外围接口技术。 2、难点:指令系统;外围接口技术。 (三)教学方法 理论与实验相结合 (四)课时安排 总课时:64课时,其中:理论课时48,实验课时16。

(五)考核方式 本课程的考核采取平时的形成性考核和课程结束时的笔试闭卷考试相结合的考核办法。平时的考核主要有三个方面:课堂、课外、实验。课堂考核依据出勤率、听课态度、课堂讨论表现等;课外考核主要依据作业、平时测试、课外的创新和发明等;实验考核依据实验完成的质量和数量等情况来评定。 (六)参考教材 刘湘涛.江世明编著《单片机原理与应用》.电子工业出版社. 2006.

第一章单片机基础知识 教研室:计算机教研室教师姓名:申寿云 教学过程 1、问题牵引、导入新课 (1)单片机是什么?它的主要特点和应用的领域。 (2)计算机中数据有哪些表示?二进制、八进制、十进制、十六进制;原码、反码、补码;ASCII码、BCD码。 2、课程内容 本章的主要知识点有:

单片机_0单片机原理

第一章计算机基础知识 本章简要阐述计算机中最基本的数学知识。本章的内容是必要的入门知识,是以后各章的基础。 第一节数制与编码 数制是人们利用符号来计数的科学方法。数制有很多种,但在计算机的使用上常使用的则为十进制、二进制和十六进制。 一、数制的基与权 数制所使用的数码的个数称为基,数制每一位所具有的值称为权。 1、十进制 十进制的基为“十”,即它所使用的数码为0到9共十个数字。 十进制中,每个(位)数字的值都是以该个(位)数字乘以基数的幂次来表示,通常将基数的幂次称为权,即以10为底的0幂、1幂、2幂等。 2、二进制 二进制的基为“二”,即其使用的数码为0、1,共二个。二进制各位的权是以2为底的幂。 3、十六进制 十六进制的基为“十六”,即其数码共有16个:0、1、2、3、4、5、6、7、8、9、A、 B、C、D、E、F。其中A~F相当于十进制数的10~15。十六进制的权是以16为底的幂。 4、二一十进制 二一十进制数称为二进制编码的十进制数(Binary Coded Decimal),简称BCD码。在BCD码中是用四位二进制数给0一9这十个数字编码。 注意:为了区别以上四种数制,在数的后面加写英文字母来区别,B、D、H、BCD分别表示为二进制数、十进制数、十六进制数、二一十进制数,通常对十进制可不加标志。同时若十六进制数如是字母打头,则前面需加一个0。 二、数制的转换 1、二、十六进制转换成十进制数 只需将二、十六进制数按权展开后相加即可。 2、十进制数转换成二、十六进制数 基本方法为:除基取余。 例:试求十进制数45678所对应的十六进制数。 3、二、十六进制数相互转换 基本方法为:1位十六进制数转换为4位二进制数。 4、BCD码与十进制的相互转换 按照BCD的十位编码与十进制的关系,进行转换。 三、计算机种数的表示 常用的有:原码、反码和补码。

单片机入门手册

单片机入门手册 单片机(Microcontroller)是一种集成电路芯片,具有处理器核心、内存、输入输出接口及各种外设的功能。它广泛应用于各个行业和领域,如家电、通信、汽车、工业控制等。本手册旨在为初学者提供单 片机的基础知识和入门指南,帮助他们迅速上手并理解单片机的工作 原理和应用。 一、单片机简介 单片机作为微型计算机系统,具有体积小、功耗低、功能强大等特点,常用于控制系统和嵌入式设备中。其主要组成部分包括中央处理 单元(CPU)、存储器(ROM、RAM)、输入输出(I/O)端口和定时器计数器等。不同型号的单片机具有不同的内部存储空间、处理能力 和外设接口,因此需要根据实际需求选择适合的型号。 二、单片机开发环境搭建 在开始学习和使用单片机之前,需要搭建相应的开发环境。主要包 括硬件和软件两个方面。 1. 硬件准备 为了进行单片机的开发和调试,需要准备一台电脑、单片机开发板、编程器和相关连接线。其中,开发板是连接电脑和单片机的桥梁,编 程器用于将程序下载到单片机中。此外,还可以选择相应的传感器和 外设模块进行实验和应用。

2. 软件安装 常用的单片机开发软件有Keil、IAR、Code Composer Studio(CCS)等。安装和配置这些软件有助于编写、调试和下载程序到单片机。此外,还需要安装单片机厂商提供的编程软件和驱动程序。 三、单片机基础知识 了解单片机的基础知识对于深入学习和应用至关重要。以下是一些 常用的基础知识点: 1. 单片机的工作原理 单片机通过执行指令和操作数据来完成相应的任务。其工作流程从 复位开始,然后执行初始化程序和主程序,不断重复这一过程。 2. 单片机的编程语言 常用的单片机编程语言有汇编语言和高级语言(如C语言)。汇编 语言直接操作单片机的硬件寄存器和指令集,灵活性较高。高级语言 相对简洁易学,适合快速开发。 3. 单片机的输入输出 单片机的输入输出方式主要通过引脚(Port)和外设(Peripheral) 实现。引脚可以作为输入或输出口,用于和外部环境进行数据交换。 外设包括串口、定时器、ADC(模数转换器)等,扩展了单片机的功能。 四、单片机常见应用

第3章 单片机硬件基础知识学习

通过上一课的学习,我们貌似成功的点亮了一个LED小灯,但是还有一些知识大家还没有彻底明白。单片机是根据硬件电路图的设计来写代码的,所以我们不仅仅要学习编程知识,还有硬件知识,也要进一步的学习,这节课我们就要来穿插介绍电路硬件知识。 3.1 电磁干扰EMI 第一个知识点,去耦电容的应用,那首先要介绍一下去耦电容的应用背景,这个背景就是电磁干扰,也就是传说中的EMI。 1、冬天的时候,尤其是空气比较干燥的内陆城市,很多朋友都有这样的经历,手触碰到电脑外壳、铁柜子等物品的时候会被电击,实际上这就是“静电放电”现象,也称之为ESD。 2、不知道有没有同学有这样的经历,早期我们使用电钻这种电机设备,并且同时在听收音机或者看电视的时候,收音机或者电视会出现杂音,这就是“快速瞬间群脉冲”的效果,也称之为EFT。 3、以前的老电脑,有的性能不是很好,带电热插拔优盘、移动硬盘等外围设备的时候,内部会产生一个百万分之一秒的电源切换,直接导致电脑出现蓝屏或者重启现象,就是热插拔的“浪涌”效果,称之为Surge。 ... ... 电磁干扰的内容有很多,我们这里不能一一列举,但是有些内容非常重要,后边我们要一点点的了解。这些问题大家不要认为是小问题,比如一个简单的静电放电,我们用手能感觉到的静电,可能已经达到3KV以上,如果用眼睛能看得到的,至少是5KV了,只是因为这个电压虽然很高,电量却很小,因此不会对人体造成伤害。但是我们应用的这些半导体元器件就不一样了,一旦瞬间电压过高,就有可能造成器件的损坏。而且,即使不损坏,在2、3里边介绍的两种现象,也严重干扰到我们正常使用电子设备了。 基于以上的这些问题,就诞生了电磁兼容(EMC)这个名词。这节课我们仅仅讲一下去耦电容的应用,电磁兼容的处理在我们今后设计电路,对PCB画板布局中应用尤为重要,那是后话,暂且不说。 3.2 去耦电容的应用 首先我们来看图3-1。

单片机编程入门从零开始学习

单片机编程入门从零开始学习 一、介绍 单片机编程是现代电子技术中的重要组成部分,它广泛应用于各个领域,如嵌入式系统、自动控制等。想要学习单片机编程,需要从基础知识开始,并逐渐深入理解各种概念和技术。本文将从零开始介绍单片机编程的学习路径和必备知识,帮助读者初步掌握单片机编程的基本原理和方法。 二、基础知识 1. 单片机的定义与分类 单片机(Microcontroller)是一种集成了中央处理器、存储器和外设接口的微型计算机系统。它按照功能和性能可以分为多个类别,如8位单片机、16位单片机、32位单片机等。 2. 单片机的工作原理 单片机通过外部引脚接口与外部电路进行通信,并通过程序控制内部电路的工作状态。它通过执行存储在内部存储器中的程序来实现各种功能。 3. 单片机编程的基础工具 学习单片机编程需要了解一些基础工具,如编程软件、开发板等。编程软件用于编写、调试和烧写程序,开发板则提供了与外部电路连接的接口,便于测试程序的运行。

三、学习步骤 1. 学习基本的电子知识 在开始学习单片机编程之前,需要先了解一些基本的电子知识,如 电路原理、电子元件的特性等。这些知识将有助于理解单片机的工作 原理和与外部电路的连接方式。 2. 学习编程语言 单片机编程常用的编程语言有汇编语言和高级语言(如C语言)。 初学者可以从学习C语言开始,因为它更易于理解和掌握。通过学习 编程语言,可以了解如何编写程序、控制单片机的各个功能模块。 3. 学习单片机的特殊功能模块 单片机拥有丰富的功能模块,如GPIO、定时器、串口通信等。学 习这些功能模块的使用方法,可以更好地利用单片机的功能,实现各 种实际应用。 4. 实验与实践 单片机编程需要不断实践,通过完成各种实验和项目来提升自己的 编程能力。可以选择一些简单的项目开始,逐渐挑战难度更高的任务,如LED灯控制、温度传感器应用等。 四、学习资源推荐 1. 电子书籍和教材

单片机

单片机温控理论论文 第一章前言 摘要: 8051单片机是常用于控制的芯片,在智能仪器仪表、工业检测控制、机电一体化等方面取得了令人瞩目的成果,用其作为温湿度控制系统的实例也很多。使用8051单片机能够实现温湿度全程的自动控制,而且8051单片机易于学习,

它集成度高、功能强、存储量大、速度快、抗干扰性强和指令丰富等的优点,使它的应用遍及各个领域。本文设计的系统就是单片机应用于温度控制的一个例子。本系统是一种高精度、测控速度快、自我闭环控制、测控温度范围广的应用性比较强的基于单片机的温度测控系统。 第二章绪论 引言: 电子工业技术的飞速发展,给人类的生活带来了根本的变革,特别是随着集 成电路的诞生而出现了嵌入式微型计算机,更是将人类社会生产带入了一个全新 的控制时代。利用微型计算机的强大功能,人们可以完成各种自动化智能的控制。 然而,微型计算机造价高,对于大多数的简单控制来说,也并不需要微型计算机 那样强大的功能,于是单片机就应运而生了。单片机将微机的CPU、存储器、I/O 接口整合到一起其实就是一个简化的微机。相对微机来说,单片机价格低,非常 适合于应用在简单的控制场合以降低成本。另外,单片机是按照工业控制要求设 计的,其可靠性很高,可在工业现场复杂的环境下运行。单片机依靠其高的可靠 性和极高的性价比,在工业控制,数据采集,智能化仪表,家用电器等方面得到 极为广泛的应用。 第三章整体方案的设计 3.1系统整体设计 使用8051型单片机设计温湿度控制系统,可以及时、精确的反映室内的温度以及湿度的变化。完成诸如升温到特定温度、降温到特定温度、在温度上下限范围内保持恒温等多种控制方式,在湿度控制方面也是如此。 本设计以AT89S52单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机。文中介绍了该控制系统的硬件部分,包括:温度检测电路、温度控制电路、温度显示电路、报警电路和一些接口电路。单片机通过对信号进行相应处理,从而实现温度控制的目的。文中还着重介绍了软件设计部分,在这里采用模块化结构,主要模块有:LCD1602显示程序、键盘扫描及按键处理程序、温度信号处理程序、单片机内部运算比较程序、超温报警程序。 关键词:AT89S52单片机、温度采集模块DS18B20、液晶显示LED,LCD1602。 3.2方案(实现方法): 方案:本设计的整体思路是:利用温度传感器DS18B20检测环境温度并直接输出数字温度信号给单片机AT89C52进行处理,在LED数码管上显示当前环境温度值以及预设温度值。其中预设温度值只能为整数形式,检测到的当前环境

单片机基础知识讲解

注意:本课件为上课内容的一个补充,其中难免存在错误,请读者不吝赐教,如有问题请发送E-mail到zhaojian@https://www.360docs.net/doc/de19191925.html,。 本文根据教学的情况,随时进行修改和完善,所以欢迎同学随时注意本文档在课件中的更新情况。 单片机基础知识 单片机的外部结构: 1、DIP40双列直插; 2、P0,P1,P2,P3四个8位准双向I/O引脚;(作为I/O输入时,要先输出高电平) 3、电源VCC(PIN40)和地线GND(PIN20); 4、高电平复位RESET(PIN9);(10uF电容接VCC与RESET,即可实现上电复位) 5、内置振荡电路,外部只要接晶体至X1(PIN18)和X0(PIN19);(频率为主频的12倍) 6、程序配置EA(PIN31)接高电平VCC;(运行单片机内部ROM中的程序) 7、P3支持第二功能:RXD、TXD、INT0、INT1、T0、T1 单片机内部I/O部件:(所为学习单片机,实际上就是编程控制以下I/O部件,完成指定任务) 1、四个8位通用I/O端口,对应引脚P0、P1、P2和P3; 2、两个16位定时计数器;(TMOD,TCON,TL0,TH0,TL1,TH1) 3、一个串行通信接口;(SCON,SBUF) 4、一个中断控制器;(IE,IP) 针对AT89C52单片机,头文件AT89x52.h给出了SFR特殊功能寄存器所有端口的定义。教科书的160页给出了针对MCS51系列单片机的C语言扩展变量类型。 C语言编程基础: 1、十六进制表示字节0x5a:二进制为01011010B;0x6E为01101110。 2、如果将一个16位二进数赋给一个8位的字节变量,则自动截断为低8位,而丢掉高8 位。 3、++var表示对变量var先增一;var—表示对变量后减一。 4、x |= 0x0f;表示为x = x | 0x0f; 5、TMOD = ( TMOD & 0xf0 ) | 0x05;表示给变量TMOD的低四位赋值0x5,而不改变TMOD 的高四位。 6、While( 1 ); 表示无限执行该语句,即死循环。语句后的分号表示空循环体,也就是{;} 第一章单片机最小应用系统: 单片机最小系统的硬件原理接线图: 1、接电源:VCC(PIN40)、GND(PIN20)。加接退耦电容0.1uF

单片机原理及应用第三章课后答案

单片机原理及应用第三章课后答案第一节:单片机的概念和发展历程 单片机是一种集成了处理器、存储器和各种输入输出接口的微型计 算机系统。它具有体积小、功耗低、功能强大等特点,广泛应用于各 个领域。 单片机的发展经历了几个重要的阶段。首先,20世纪70年代,中 小型计算机开始出现,但体积庞大、功耗高,不适合实际应用。之后,单片机技术的出现解决了这个问题,使得计算机系统可以被集成到一 个芯片中。1980年代,单片机开始应用于各种电子设备中,如家电、 汽车等。如今,随着技术的不断进步,单片机的功能更加强大,应用 范围更为广泛。 第二节:单片机的工作原理 单片机主要由CPU、存储器和外设接口等组成。CPU是单片机的 核心,负责指令的执行和数据的处理。存储器主要用于存储程序和数据。外设接口用于连接各种输入输出设备,如键盘、显示器、传感器等。 单片机的工作原理可以简单地描述为以下几个步骤:首先,单片机 从存储器中获取指令,解析指令并执行相应的操作。其次,单片机将 处理的结果存储到存储器或输出到外设中。最后,单片机不断地重复 执行这些步骤,实现各种功能。 第三节:单片机的应用领域

单片机广泛应用于各个领域,以下是几个典型的应用领域: 1. 家电控制:单片机可用于控制家电设备,如空调、洗衣机、冰箱等。通过编程,实现设备的自动化控制和智能化管理。 2. 工业自动化:单片机在工业领域中起着重要作用。它可以实现生 产线的自动化控制、监测和数据采集等功能,提高生产效率和质量。 3. 汽车电子:单片机在汽车中应用广泛,如引擎控制单元(ECU)、 车载娱乐系统、车载导航系统等。它可以实现发动机控制、车辆诊断、多媒体播放等功能。 4. 智能家居:单片机在智能家居中发挥着重要作用。通过连接各种 传感器和执行器,单片机可以实现家居设备的智能化控制,如灯光控制、门窗监测、安防系统等。 第四节:常见的单片机类型和特点 1. 8051系列:8051是一种经典的单片机系列,具有成熟的开发环 境和丰富的资源。它适用于各种应用场景,如家电控制、汽车电子等。 2. AVR系列:AVR是一种低功耗、高性能的单片机,适用于需要 高速运算和实时控制的应用,如工业自动化、机器人等。 3. PIC系列:PIC是一种低成本、易学易用的单片机,适用于教育 和嵌入式系统开发等领域。

单片机基础理论知识学习和实践

作为一名从业人员,你学过单片机吗?你会运用单片机吗?我想你一定学过,但不一定会运用。因为学习单片机比学习其他学科需要付出更多的努力和代价,不仅要学习理论知识还要练习实际操作,而且主要是在实际操作中才能真正学到单片机技术。此外,学习单片机还需要投入一定的学习成本,随着你学习知识的扩展成本还会增加。学习单片机的动机不外乎有四种:一是为兴趣爱好而学,二是为专业而学;三是为饭碗而学;四是在工作中被逼而学。不管是哪种动机,因主修专业的不同以及电子基础的深浅不同,对于不同的人可能采用不同的学习方法,根据笔者的亲身学习经验和教授徒弟学习的感受,提出笔者的学习方法和步骤。 第一步:基础理论知识学习 基础理论知识包括模拟电路、和C语言知识。模拟电路和数字电路属于抽象学科,要把它学好还得费点精神。在你学习单片机之前,觉得模拟电路和数字电路基础不好的话,不要急着学习单片机,应该先回顾所学过的模拟电路和数字电路知识,为学习单片机加强基础。否则,你的单片机学习之路不仅会很艰难和漫长,还可能半途而废。笔者始终认为,扎实的电子技术基础是学好单片机的关键,直接影响单片机学习入门的快慢。有些同学觉得单片机很难,越学越复杂,最后学不下去了。有的同学看书时似乎明白了,可是动起手来却一塌糊涂,究其原因就是电子技术基础没有打好,首先被表面知识给困惑了。 单片机属于数字电路,其概念、术语、硬件结构和原理都源自数字电路,如果数字电路基础扎实,对复杂的单片机硬件结构和原理就能容易理解,就能轻松地迈开学习的第一步,自信心也会树立起来。相反,基础不好,这个看不懂那个也弄不明白,越学问题越多,越学越没有信心。如果你觉得单片机很难,那就应

单片机课程教案

单片机课程教案 单片机课程教案 课程简介:单片机课程是一门介绍单片机原理、结构和应用的课程,旨在培养学生掌握单片机的编程技术、硬件设计和系统集成的能力。本课程涵盖了单片机基础知识、编程语言、系统设计、接口技术等方面的内容,是一门理论与实践相结合的重要课程。 教学目标:通过本课程的学习,学生将能够: 1、了解单片机的原理、结构和应用领域; 2、掌握单片机的编程语言和编程方法; 3、熟悉单片机系统的设计和开发流程; 4、掌握单片机接口技术的应用方法; 5、能够进行单片机系统的调试和测试。 教学内容:第一章单片机基础知识 1、单片机的定义、发展历程和应用领域; 2、单片机的硬件结构和工作原理; 3、单片机的编程语言和开发环境。

第二章单片机编程基础 1、单片机编程语言的语法和语义; 2、单片机编程中的数据类型和变量; 3、单片机编程的控制语句和程序结构。第三章单片机系统设计 1、单片机系统的设计和开发流程; 2、单片机系统的硬件设计和调试; 3、单片机系统的软件设计和调试。 第四章单片机接口技术 1、单片机接口技术的概念和类型; 2、单片机与外部设备的接口设计; 3、单片机接口技术的实际应用。 第五章单片机系统调试和测试 1、单片机系统的调试和测试方法; 2、单片机系统的故障诊断和排除;

3、单片机系统的性能测试和优化。 教学方法: 1、理论教学:通过课堂讲解、PPT演示等方式,使学生了解单片机的原理、结构和应用领域。 2、实验教学:通过实验操作、程序编写等方式,让学生掌握单片机的编程技术、硬件设计和系统集成的能力。 3、项目实践:通过小组讨论、项目实施等方式,让学生参与实际项目的设计和开发,提高其实践能力。 评估方式: 1、课堂表现:考察学生在课堂上的参与度、问题回答等情况; 2、作业和练习:考察学生完成作业和练习的情况; 3、期末考试:考察学生对课程内容的掌握程度。 课程特色: 1、注重理论与实践相结合,培养学生的实际操作能力; 2、引入最新单片机技术和应用案例,让学生了解行业最新发展动态; 3、开展项目实践,让学生参与实际项目的设计和开发,提高其解决

单片机原理和应用课程教学大纲

《单片机原理及应用》课程教学大纲 一:课程的性质、目的和任务 单片及技术是广泛应用于各个领域的有关测量与控制的一门重要的专业课程,是实现现代控制的必不可少的工具与手段,是控制类专业的一门必修课,是控制类专业技能的重要组成部分。该课程主要讲授单片机结构和基本原理、MCS-51系列单片机及其指令系统、单片机的I/O扩展及应用、单片机的定时与中断系统及单片机的汇编程序设计等内容,通过学习使学生基本掌握单片机的硬件构成,软件组成及一般的程序设计技能,进而使用单片机实现各种检测与控制的目的。 二:课程教学的教学内容、基本要求、学时分配等 该课程的主要内容及基本要求如下: 1、MCS-51单片机结构和原理 该部分主要介绍MCS-51单片机的结构组成,其中主要包括内部RAM与ROM 的组成,I/O口电路的结构,时钟电路与时序机工作方式等。要求学生熟悉单片机的组成原理、指令时序;掌握RAM的组成及功能、ORM的组成及使用、I/O口的主要工能等。 2、MCS-51单片机指令系统 该部分主要介绍MCS-51单片机的指令系统,其中包括数据传送类指令、算术运算及逻辑运算类指令、控制转移类指令极为操作类指令等,通过学习要求掌握MCS-51系列单片机的寻址方式,熟悉各种指令的含义、功能及用法。 3、汇编语言程序设计 该部分主要介绍MCS-51单片机的汇编语言程序设计的基本知识,含汇编语言程序的基本机构、伪指令、汇编语言源程序的编辑与汇编、典型汇编语言程序设计举例等;其中要求熟悉汇编语言程序的基本结构、伪指令,掌握数制的转换、定时、查表等几种典型的汇编语言源程序的设计方法。 4、该部分主要介绍MCS-51单片机的中断系统、定时计数器的使用、 外中断源的扩展方法等;要求熟悉MCS-51的中断系统的组成、工作原理、中断的响应过程,掌握定时器/计数器的编程使用。

51单片机,郭天祥,第三章,PDF,Word

3.4中断概念 中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的,中断功能的存在,很大程度上提高了单片机处理外部或内部事件的能力。它也是单片机最重要的功能之一, 是我们学习单片机必须要掌握的。很多初学者被困在中断中,学了很久仍然不知道中断究竟是个什么东西,大家千万不要认为它有多难,其实只要掌握正确的学习方法,没有哪个知识点是学不会的。 51单片机内部一共有5个中断源,也就是说,有5种情况发生时,会使单片机去处理中断程序。在本章我们只讲解其中的一种中断情况——定时器中断,只要大家从理论和实践中真正明白了中断的概念,其他几种情况便能轻松掌握。 为了能让大家更容易理解中断概念,我们先来举一个生活事例:你打开火,烧上一壶水, 然后去洗衣服,在洗衣服的过程中,突然听到水壶发出水开的报警声,这时,你停止洗衣服动作,立即去关掉火,然后将开水灌入暖水瓶中,灌完开水后,你又回去继续洗衣服。这个过程中实际上就发生了一次中断,其流程图如图3.4.1所示。 对于单片机来讲,中断是指CPU在处理某一事件A时,发生了另一事件B,请求CPU 迅速去处理(中断发生);CPU暂时停止当前的工作(中断响应),转去处理事件B (中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A (中断返回),这一过程称为中断,其流程图如图3.4.2所示。

再回来看前面讲的生活事例,与单片机中断结合分析,你的主任务是洗衣服,水开报警这是一个中断请求,这一时刻相当于断点处,你响应中断去关火,然后将开水灌入暖水瓶中,这一动作实际上就是处理中断程序,灌完开水后再回去继续洗衣服,相当于处理完中断程序后再返回主程序继续执行主程序。这里需要注意的是,水开是随时都有可能的,但是无论什么时候开,只要一开你将立即去处理它,处理完后再回来继续接着洗刚才那件衣服。单片机在执行程序时,中断也随时有可能发生,但无论何时发生,只要一旦发生,单片机将立即暂停当前程序,赶去处理中断程序,处理完中断程序后再返回刚才暂停处接着执行原来的程序。单片机在执行程序时其程序流程图如图3.4.3所示。 引起CPU中断的根源,称为中断源,中断源向CPU提出中断请求,CPU暂时中断原来的事务A,转去处理事件B,对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构)。 中断的开启与关闭、设置启用哪一个中断等都是由单片机内部的一些特殊功能寄存器来决定的,在以前的学习中我们仅对单片机内部的特殊功能寄存器I/O 口寄存器设置过,从下节起我们将会设置单片机内部更多的特殊功能寄存器。 与中断有关的知识点还有一个叫中断嵌套,意思是说:如果单片机正在处理一个中断程序,此时,又有另一个中断现象发生,单片机将会停止当前的中断程序,而转去执行新的中断程序,新中断程序处理完毕后再回到刚才停止的中断程序处继续执行,执行完这个中断后再返回主程序继续执行主程序,流程图如图3.4.4所示。

单片机课程教案

单片机课程教案 一、课程概述 单片机原理及应用是一门涉及微处理器、数字电路和计算机接口技术的综合性课程。本课程的目标是使学生掌握单片机的原理和应用,了解单片机在嵌入式系统设计中的地位和作用,为学生进一步深入学习和应用单片机打下坚实的基础。 二、课程目标 1、理解单片机的内部结构和工作原理。 2、掌握单片机的基本操作和编程方法。 3、熟悉单片机在嵌入式系统中的应用和设计方法。 4、培养学生的创新能力和实践操作能力。 三、课程内容 第一章:单片机概述 1、1单片机的基本概念及发展历程 2、2单片机的特点和应用领域

3、3单片机的主要产品和发展趋势 第二章:单片机的基本结构和工作原理 2、1单片机的内部结构和主要部件功能介绍 21、2单片机的引脚和信号说明 211、3单片机的存储器和寄存器介绍 2111、4单片机的时钟系统和定时器/计数器介绍 第三章:单片机的编程语言和开发环境 3、1单片机的编程语言概述和特点 31、2 C语言在单片机编程中的应用 311、3 Keil C51开发环境和程序设计流程介绍3111、4程序调试和下载方法说明 第四章:单片机的应用实例和实验指导 4、1单片机在LED闪烁和流水灯控制中的应用实例41、2单片机在按键输入和数码管显示中的应用实例

411、3单片机在A/D和D/A转换中的应用实例 4111、4单片机在电机控制和红外线遥控中的应用实例 本文5单片机的实验指导和实验报告要求说明 第五章:单片机的发展趋势和应用领域的扩展 本文1单片机在物联网和智能家居中的应用扩展 本文2单片机在汽车电子和医疗设备中的应用扩展 本文3单片机在工业控制和智能制造中的应用扩展 本文4单片机在人工智能和机器人技术中的应用扩展 第六章:课程总结和答疑解惑 本文1课程总结和学习方法分享 本文2答疑解惑和常见问题解答 1、3学生自我评估和改进建议收集 四、教学方法与手段 本课程采用理论教学和实践操作相结合的方法,以案例分析和程序示

相关文档
最新文档