编者按:当今大家对计算机已经不陌生了。从铺天盖地的计算机学习班广告到有关任职必须具备计算机知识的通知,已经使我们自觉不自觉地进入了计算机的世界。但是还有一类计算机我们可能并不熟悉,它就在我们面前,这就是单片机。单片机顾名思义就是将计算机集成到一个芯片上,正因为如此,它已经深入到电饭堡:洗衣机、录象机、电话、汽车、火车、飞机、火箭、医疗器械等各个地方,甚至在微机里也有单片机在默默地工作。因此了解单片机的工作原理、掌握它的使用方法就成了十分有意义的事情。本刊从本期开始,系统地、通俗地介绍这方面的知识。
一、从晶体管到单片机
为了有个对比,在搭乘单片机列车之前,先回顾一下我们已经熟悉的传统的电子世界。在传统的电子世界里,电子管已经退役多时了,虽然现在“胆机”在音响发烧友中间又流行起来,但是在控制领域电子管已经远远的离开了舞台,我们不再花时间讨论。晶体管是电子爱好者们熟悉的器材,我们对于二极管的整流原理和三极管的放大原理非常熟悉,但是对于它们所构成的逻辑电路是否也很熟悉呢?我们不妨共同做一简要复习。
图1:是用二极管构成的与门电路,它是怎样工作的?读者不妨自己先叙述一下,看看我们想的是否相同。当A和B都接到地时,C端由于两个二极管都导通,二极管的导通压降是很小的,可以近似认为是0伏,也就是处于低电平。当A接地,B接到+5V时,C端没有发生根本变化。这是因为二极管D1的导通使C点仍为低电平,B点虽然接到+5V, 但是D2未导通,所以C点仍为低电平。当A接十5V,B接地 时情况同样如此。只有A和日同时接到+5V时,两只二极管都不导通了,此时C点升到+5V。
结论是: 与门电路的输入端只有一个接低电平,输出就为低电平,只有全部输入都为高电平时,输出才为高电平。简单说就是:A为高“与”B为高,输出才为高。把电路改变一下接法就构成了或门电路(图2),工作原理 不再赘述,只把结论写在这里: 或门电路的输入端只要有一个接高电平,输出就为高电平, 只有输入端全部接低电平时,输出才为低电平。简化为:A为高 “或”B为高,输出就为高。
还有一种“非”门电路:当输入为高时,输出为低;当输入为低时,输出为高。用一个三极管就可以构成非门电路。当三极管的基极输入为高电平时三极管饱和,集电极输出近似为0V也就是低电平;反之,当基极接低电平时三极管截止,集电极输出接近+5V为高电平。输入和输出总是相反,故称之为非门(图3)。
与、或、非电路是逻辑电路的基本形式。由理论可知:
? ? 一切逻辑电路都可以通过这三种基本逻辑电路的组合形成。在逻辑电路中为了突出电路之间的逻辑关系,不再关心是用什么器件产生的逻辑关系,也不考虑电路的输入是接到三极管的基极还是接到二极管的阳极,而是用一个逻辑符号表示之间的联系。三种基本逻辑电路对应的符号标在图的下部。
随着技术的进步和社会发展的需要,直接由三极管构成逻辑电路在体积和功能上已经不能满足需要了,于是产生了集成电路。早期集成电路----一片芯片集成了几个或几十个晶体管,称之为小规模集成电路。后来集成度提高到几百,几千个晶体管, 称之为大规模集成电路,现在一个芯片可以集成相当于几十万、几百万或更多的晶体管称为超大规模集成电路。这样从电子管时间算起,电子电路经历了四代变迁。
从集成电路来看,比晶体管在性能上有极大提高,体积大 大缩小、功能也更加完善,单以74类门电路为例就有LLS、HC等不同系列,每个系列都有几百个品种。用它们可以组合出各种各样的电路。逻辑集成电路的出现为逻辑电路的广泛应用打下了基础。
逻辑电路可以分为两种类型:组合电路和时序电路。 像上面介绍的单个与、或、非门电路就属于“组合电路”。 这类电路的特点是:输出状态跟随输入状态变化,输入状态一旦发生变化,输出立即改变。并且输出状态和输入状态一一对 应:每一种输入状态对应唯一的输出状态。
另一类逻辑电路称“时序电路”;这类电路的输出不但和当时的输入状态有关,还与以前的状态有关。计数器就是一种典 型的时序电路。计数器的输入端每接受一个脉冲,输出端的状态就发生一次变化,并且输出的状态是与前一次状态有关的。以 74LS161为例,这个集成电路有一个时钟输入端、四个输出端和一些辅助端。当按器件规定接好线路后,在时钟端每输入一个脉冲,输出状态就变化一次。最初清零后四个输出端QA、 QB、QC、QD均为0。第一个脉冲到来后QA=1,其余输出仍为0。第二个脉冲到来后QA=0、QB=1,其余为0。依次输入脉冲,其结果如表1(对不起,文件已丢失)。
可以看到从同一个输入端进入信号,输出却有不相同变化。 计数器的应用非常广泛。将前端接上机械开关或光电开关就可作为流水线产品计数;把标准时间脉冲作为输入,就可以作为精确的定时器。
因为栏目所限,基础部分不能写的很多、很细,那些知识可以由三极管原理、数字电路知识等类似的学习材料得到,不能完全包含在本栏目的范围内。同样原因,对于单片机的原理也不会是全面的、系统的讲解,而是从使用者的角度,将最基本、最常角的内容做一简单介绍,达到“人门”的目的。
预计通过阅读这个栏目,配合基本练习,可以掌握单片机的基本知识;学会使用单片机的基本方法;能够进行简单程序(几十行)的阅读;基本程序(上百行)的编写,为进一步深造打下基础。需要强调的一点是:计算机(自然包括单片机)是实践性很强的一门技术。一定要通过实践来理解基本原理,至少要将文中介绍的实验亲手实践一遍,最好举一反三用自己编写的程序验证所学习的知识。到底情况如何,可以通过实践体会一下。 如果真的还有什么困难,我也愿和大家一起克服,共同进入单片机世界。
在本次驶往单片机世界的列车即将启动的时候,请旅客检查一下:自己希望乘座的列车车次、日期、方向是否和本车相符,如果有误请及时更换,以免延误您的行程。
初识单片机
? ? 1.单片机的类型
? ? 单片机到底是什么样的呢?顾名思义“单片机”就是将计算机的主要部分集成在一块芯片之中。从外观看来与普通集成电路没有多大区别,大多数为40个引脚的双列直插式,也有20、48或更多引脚的。
? ? 单片机有许多种类,从生产厂家看,有Intel、Motorola、Epson、NEC、Phlips等公司;按位数分有四位机、八位机、十六位机----也就是可以同时对四位、八位或十六位二进制码进行运算;从用途上又可以分为通用和专用。
? ? 在众多单片机的家族中我们只介绍一种----Intel公司的 MCS-51系列。这种芯片属于8位机的系列,性能可能满足大多数应用的需要。它应用广泛、价格便宜、技术成熟,适于初学者学习。 在MCS-51系列中又有许多型号,包括8031、8051、8751等。其中8051的程序已经由工厂做在单片机内部(称做掩膜), 是为批量用户定制的,对于我们学习不适用。8751是在芯片内有可擦写的程序存储器,这种芯片是为做掩膜前验证电路用的, 也用于一些有特殊要求的场所。8031内部没有程序存储器,它的程序存储器接在芯片外面,这样恰好便于在开发过程中对程序存储器进行控制,因此选8031学习是比较适宜的。其实这几种型号的原理完全一样,学会8031其它型号也就掌握了。
? ? 2.单片机的引脚
? ? 8031是一个40引脚的集成电路,引脚如图:它有4个输入/输出口(英文简写为I/O口),每个口有8条线共占32个引脚。剩余8个引脚分别为:电源、地线、接石英晶体(两根)、复位和三个特殊功能引脚(ALE、EA、PSEN)。先学习看引脚图。
? ? 从单片机的引脚图可以看出,它和门电路有些不同,门电路每个引脚只有一个名称,可是单片机的大部分引脚都有几个名称,这是由单片机的特性决定的。单片机的功能很多,但是引脚的数目有限,只好将几个功能安排在一个管脚上。在图中图框内是引脚的通用功能;图框外的第一组是引脚的顺序号,由于单片机的外围电路较多,线路也复杂,在单片机的电路图上,一般不是按引脚的顺序绘图,而是按功能将有关引脚集中在附近,这样就需要标注引脚的序号;图框外的第二组是该引脚的另一名称。有的引脚名称用斜线分开两个部分,表示当单片机工作在不同状态时,这个引脚具有不同的用途。有的引脚名称上有一个横线,这个横线说明当此脚为低电平时此功能有效,无横线的在高电平时有效。
? ? 各引脚功能:4个I/O口分别为P1、 P2、P3、 P4。每个引脚再加小标号,比如P1.0……p1.7等。在应用中,PO口和P2口一般用于扩展存储器;P3口的WR和RD配合扩展存储器使用;只有P1脚可以全部独立使用。
? ? 初次接触只需要了解管脚的名称和位置,待熟悉了再进一步开发它们的功能。
? ? 3.单片机开发器
? ? 是否购买一片8031就可以开始实验了呢? 从上面解释可以了解到单片机的引脚多、功能强大、外围电路复杂。对于开发者来说,不能只购买一片8031就能进行实验,通常需要借助一种叫“开发器”的设备对软件和硬件进行调试。
? ? 开发器是用单片机组装的一块功能齐全的电路板。它将单片机所需要的外接电路如:数据存储器、程序存储器等,预先连接好,一般还配有键盘、显示器等。除了基本电路以外,还配有“监控程序”。这个程序提供输入、修改、调试程序的功能。 用户使用开发器就可以把精力集中在软件调试和自己特定需要的外围设备的调试上。
? ? 一旦调试成功,就可以根据需要设计电路,经过排版加工, 配合调试通过的程序,就可以工作了。也可以购买标准的单片机电路板,只设计自己扩展的部分相配合。还有的开发器称为“自开发”系统,就是说当开发实验通过后,将开发器连同实验板直接应用到实用设备中,减少了开发的时间,也减少了由于再次做系统板可能产生的故障。
? ? 市场上流行的开发器有许多品牌,主要功能大致相同,但是有一种品牌必须使用PC机才能工作,这种不大适于初学者。学习用的开发器最好具有键盘输入功能,这样可以从最基本的原理了解单片机技术。在本讲座中以北京市单片机协会的开发器为例。如果读者有自己的开发器,只要在操作上按照相应的说明适当变通同样可以掌握单片机的原理。单片机协会的开发器有两个不同的型号: DP-851和DP-851K。二者相差一个“K”字,前者面向学习,适于学校、培训点、公共实验室等人员流动大,重复进行初级课程的教学场合。在初级学习阶段所需的功能它都能满足,但是对于后续开发缺乏支持。K型面向开发,它兼容了前者的全部功能,并在实用方面做了重大改进,支持初步学习及之后的继续深造,直到最终开发出实用的产品,但是价格较高。它们有不同的配套实验板,初学者若购买K型产品可申明配实验板,不配语音板,既可满足需要,也可节省一 些费用。单片机是一门实践性很强的技术,所以必须动手实践。 具体采用什么方式,读者可以根据自己的情况决定。
? ? 下面以Dp一851K单片机开发装置为例简单介绍使用方法。 Dp一851的电路和K型不同,但是对使用者而言外型相似,操作方法也一样。如果使用其它品牌机器需要阅读原机的使用说明。
? ? DP-851K的面板上有32个键,分为两组:数码键(0-F)和十六个功能键。16个功能键中经常使用的是:RDI(读程序/数据)、WRI(写入程序/数据)、STEP(单步运行)、EXE(连续运行)、MON(回到监控),在下面的实验中将会用到。
? ? 在主板上有一个电源插座。它外层接地,内芯接+5V稳压电源。还有一个三芯插座是供与计算机通讯使用的。主机板的左侧有一个40针插座称为“总线插座”,单片机对外控制线路全部从这个插座引出。我们将使用的光电、声音或其它实验板就是通过一根扁平40芯电缆和这个插座相连。主板上的红色按钮是复位键,按一下它可以使开发器复位,一切工作强行重新开始。主板上有6个LED七段数码管,单片机操作的结果全反映在这6个数码管上,是人机对话的窗口。
? ? 4.单片机实验准备
? ? 作为单片机实验室必备的装置有:开发器一套;5V稳压电源一个;实验板一块(在购买开发器时都已包含在内)。在购置了开发器和实验板之后,还要做一点准备工作:将实验板内部电路按图2连接好。连接时将单股细导线脱去一段绝缘层,用所附的绕线器将导线绕接在插针上,不要用烙铁焊接,连接中注意二极管的极性,之后用40芯电缆连接到主板上。
? ? 如果自制实验电路板还需要:发光二极管、270欧姆电阻各8只,电烙铁一把,万用表一个,改锥,镊子,细导线,焊锡等。
? ? 最后接通曳源,按一下复位钮,应当显示,‘DPJ-51’,表示电路工作正常。如果显示全“8”,就是电路有故障,立即断电检查,找到故障并排除。
含延时程序的灯光显示
