制作AT89C51单片机实验电路板(上)

🏠 首页 《无线电》杂志 2003年 🔗 第7期 🔗 第38页 分类:电脑与单片机 🔗 华旭东 🔗

学习单片机离不开实验,随着Flash型单片机的广泛应用,很多单片机工程师采用软件模拟加写片验证的方法进行开发工作,对于初学者而言,这也是一种很好的入门方法。目前,流行的单片机开发软件Keil可以获得免费的限制版(下载地址为www.zlgmcu.com/keitC51/keil-websits.asp),虽然最终代码有2K的限制,但对入门已够了,专门用于写89C51类芯片的编程器价格十分低廉(不足百元),而且编程器也是将来使用单片机必备的工具,相比之下,用于实验的电路板制作比较麻烦,用万用板搭接,只能做些很简单的电路,稍复杂的电路一般要用到双面板,而双面板在业余条件下是很难制作的。

为此,笔者在多年单片机教学(包括从事网络教学)的基础上,开发了一块使用单面板的单片机实验板,适合于业余爱好者自制。这块实验板采用89C51为主芯片,板上安装了5位数码管、8个发光二极管、4个按钮开关、音响输出、1个用555集成电路做的振荡信号源、AT24CXX类芯片插座、X5045芯片插座、RS232串行接口。利用这块实验板除可以进行常规的编程练习,如人机界面程序设计、音响、中断、计数器等实验外,还可以学习I2C接口芯片使用、SPI接口芯片使用、与PC机进行串行通讯。

一、原理图分析


1.发光二极管接口

图1
图1 🔍原图 (850×1231)

图1是该实验板的电路原理图,从图中可以看到,主芯片(U1)的P1端口接了8个发光二极管,这些发光二极管的负端接到端口引脚,而其正端则通过一个排电阻(标号为JP4,阻值为470Ω)接到正电源端,这样,这些发光二极管发光的条件就是相应的端口为低电平,也就是说如果P1口某引脚输出为0,则相应的灯亮,如果输出为1,则相应的灯灭。


例:MOV P1,#0FH

图2
图2 🔍原图 (589×343)

该行程序将使发光二极管L1~L4熄灭,而L5~L8点亮。


2.数码管接口

图3
图3 🔍原图 (588×121)

P0口和P2口的部分引脚构成了5位LED数码管驱动电路,这里LED数码管采用了共阳型。共阳型数码管端口(即对应abcdefgh)的引脚是二极管的负极,所有二极管的正极连在一起,构成公共端,即片选端。对于这种数码管的驱动,要求在片选端提供输出电流,为此,使用了PNP型的三极管8550作为片选端的驱动,共使用5只8550型三极管,所有三极管的发射极连在一起,接到正电源端,而它们的基极则分别连到P2.0~P2.4。当P2.0~P2.4中某引脚输出是高电平时,三极管不导通,不能给相应位的数码管供电,该位数码管一定不亮;反之,如果某引脚是低电平时,三极管导通,可以给相应的数码管供电,该位数码管是否点亮,点亮哪些笔段,就取决于这些笔段引脚是高或低电平了。从图中可以看出,所有5位数码管的笔段连在一起,通过限流电阻后接到P0口,因此,究竟哪些笔段会亮,取决于P0口的8根线是输出高电平还是低电平了。注意,为了简化线路板设计,减少跳线,P0口与笔段的连接并不“规矩”,即不是一种很有规律的一一对应的连接关系。具体的连接方法可以参考电路图,这是单片机开发中常见的一个问题。表1列出了根据这种连线方式而写的字形码表,表2则列出了位驱动线P2口线的关系。


3.串行接口

通讯功能是目前单片机应用中经常要用到的,本实验板设计了232接口芯片,这样,该板就可以和PC机进行通讯了。51单片机的P3口的引脚P3.0和P3.1的第二功能是串行口RXD与TXD,其内部的串行接口电路具有异步通讯功能,但是单片机输出的信号是TTL电平,也必须以TTL电平作为输入,而PC机是标准的RS232接口,以12V为高电平,0V为低电平。为获得电平匹配,实验板上扩充了一片HIN232芯片,该芯片是一个电平变换芯片,利用该芯片,可以将单片机的TTL电平变换为RS232所要求的电平,该芯片内部有电荷泵,只要单一5V电源供电即可自行产生高电压,使用非常方便,HIN232的外围电路也很简单,只要4只电容即可,电容的值可以从0.1μF到22μF,这里使用4只0.1μF的电容,实践证明,它们工作得很好。

要让实验板与PC机进行通讯,必须配通讯电缆,通讯电缆可以使用普通的3芯线来制作,3芯线的一端安装3芯插座,以便插到实验电路板上,另一端接一个DB9插座(母)以便插入PC机后的串行口(COM1或COM2)中。


4.按键输入

P3口的P3.2~P3.5接了4个按钮开关,由于是实验板,没有过多考虑抗干扰等问题,所以没有给这4个引脚接上拉电阻,直接利用了单片机芯片内部的弱上拉,读者在设计自己的线路板时,最好是给作为输入的管脚加上适当的上拉电阻。


5.计数实验

U2是一块555集成电路,该集成电路与相关阻容元件R2、R3、E3及C5构成了一个典型的多谐振荡电路,输出方波。在输出端接有一个发光二极管,用于显示振荡器的输出,该方波被用于单片机的计数信号输入。89C51的P3.3引脚的第二功能是T0端,即计数输入端,因此我们就把计数信号接到这个引脚 ,但是,如果将该引脚直接接到T0端,那么P3.3就不能作为输入脚使用了,为此,使用JP2作为选择,JP2是一个三引脚的插针,我们使用其中的两根分别连到T0引脚和555集成电路的输出引脚,在需要时用短路子将其相连,该引脚就可以作为计数输入端,否则该引脚可以作为输入引脚使用。


6.音响实验

P3.2上除了接有按钮输入端外,还作为音响的输出端使用,电路板上利用8050三极管驱动一个无源发声器,为了避免按键操作对发声电路的影响,使用JP3插针,只在需要时才用短路子将两个引脚连起来,这时P3.2即作为输出口来使用。


7.串行I2C接口

在单片机应用中,经常会有一些数据需要保存,传统的方法是用RAM,但RAM最大缺点是掉电之后数据即丢失,因此需要用比较复杂的后备电池供电电路进行断电保护,从而增加了成本。近年来,非易失性存储器技术发展很快,EEPROM就是其中的一种。由于EEP-ROM不能够无限多次地反复擦除和写入,这是它的缺点,但是断电之后,不需要特殊的断电保护措施,这是其优点,因此RAM和EEPROM各有自己的应用场合。而EEPROM中近年来应用非常广泛的是具有串行接口的EEPROM,其中24系列就是一种,该系列芯片采用二线制I2C接口,为了学习该存储芯片的使用及学习I2C的接口,实验板设计了24系列芯片插座(即U4),该插座可以插入常用24系列(如AT24C01A之类)的芯片进行试验。具体的连线请参考电路图,其中SDA为I2C总线中的数据线,SCL为I2C中的时钟线,而WP引脚是该芯片的写保护线。注意,I2C的数据线(SDA)是开漏输出,必须在该引脚和VCC之间接一个上拉电阻,一般使用5.1kΩ的电阻即可。


8. X5045接口与复位电路

X5045是一片多功能芯片,它具有以下的一些功能:上电复位、电压跌落检测、看门狗定时器及EEPROM。该芯片采用三线制SPI与单片机相连,这也是目前一个应用比较广泛的芯片。通过学习这块芯片与单片机接口的方法,还可以了解和掌握三线制SPI总线接口的工作原理及一般编程方法。电路图标号U5即X5045,其中CS为片选线,SO为数据输出线,SI为数据输入线,WP为写保护,SCK是时钟线,RESET是复位输出端。

电路板上设计了两套复位电路,一套是传统的阻容复位电路,使用E1(22μF)与R1(1kΩ)构成,另一套就是由X5045构成的复位电路。这两套复位电路的输出分别接到3线插针JP1的两端,JP1的中间脚接到单片机的复位端(⑨脚)通过使用短路子分别接通这两路复位电路,这样在暂不需要学习X5045的特性时,可以用阻容复位电路,避免不熟悉5045的特性而影响其他实验的进行。

(华旭东)