标签:
无标签
图2-2 CPU板原理图
单独把ADμC841和晶振、退耦电容设计到CPU板上,目的是为了方便读者学习、实验:ADμC841采用扁平封装,管脚多且密,不易焊接,如果读者希望自己焊接实验板,只要焊接除CPU板以外的其他实验板上的器件。再一个好处是ADμC841是大规模的集成电路,容易发生静电击穿等损坏器件的现象,采用单独的CPU板的好处是万一ADμC841损坏了,仅仅更换CPU板即可,可以减少损失。
之所以把晶振及其电容和退耦电容焊接CPU板上,是这些器件应该尽可能靠近ADμC841安装才能保证单片机稳定可靠地工作。ADμC841还需要一些外围器件才能正常工作,但不像晶振等那些器件要求尽可能靠近,所以,这些器件安装在实验板(大板)上,如图2-3所示。
图2-3 ADμC841的部分必要外围电路原理图
四只13线的插座把单片机所有输入、输出的口线全部引到实验板上。R10和C6构成单片机的上电复位电路,即在实验板刚加上电源时,由于电容C6上的电压不能发生突变,因此在单片机的复位端RESET上出现高电平,经过3~5倍时间常数(R10×C6)的时间后RESET回落到低电平,相当于在单片机上电时,RESET出现一个高电平,这个电平使得单片机复位。
与C6并联的按键S9用于手动复位。在单片机不能正常工作,如不能下载程序,或运行不正常,可以按下S9,使RESET端出现短暂的高电平,使单片机复位。有关复位的问题,在本书后面还将详细讨论。
短接插座H3用选择使单片机处于调试状态还是运行状态。如果在上电复位前用短路块短接,即单片机PSEN接地(DGND),上电后ADμC841处于下载程序和调试模式。而在上电复位前断开H3,上电后ADμC841处于运行模式,执行单片机片内的程序。
实验板上的串行接口是实验板与PC通信的唯一通道,需调试的程序通过串行接口下载到实验板中,而实验板上程序的运行状态和部分结果也需通过串行接口上传到PC机。
PC机上的串行接口是RS-232,RS-232包括了按位进行串行传输的电气和机械方面的规定。RS-232关于电气特性的要求规定,驱动器输出电压相对于信号地线在-5V~-15V之间为逻辑1电平,表示传号状态;输出电压相对于信号地线在+5V~+15V之间为逻辑0电平,表示空号状态。在接收端,逻辑1电平为-3V~-15V,逻辑0电平为+3V~+15V,即允许发送端到接收端有2V的电压降。这样的RS-232电平和TTL逻辑电路(单片机)产生的电平是不一样的,因此,PC机与单片机之间必须经过一定的电路转换逻辑电平。图2-4给出了实验板上的RS232串行接口逻辑电平转换电路。
图中采用两只晶体管分别构成两个反相器,实现TTL电平至RS232电平和RS232电平至TTL电平的转换:Q1、R11和R31构成的反相器把单片机发出的TXD信号反相送至PC机的PCRXT端,而Q2、R32和R16构成的反相器把PC发出的PCTXD信号反相后送至单片机的RXD端。电路中采用了“窃电”方式产生负电源:在PC机不通信或通信的大部分时间,PCTXD输出-12V的电平(“0”电平),该电平经过D6对C11充电,C11得到的-10V左右(由于二极管的压降和PCTXD的信号源内阻的存在)的电压作为Q1的负电源,因而不需要另外加负电源电路就能输出负电平信号。D7的作用是当PCTXD出现较大的负电平信号时,防止Q2的be结出现较大的负压而损坏。
WH8281是8位/16位LED 数码管显示及键盘接口专用控制芯片,其接口电路如图2-5所示。
图2-5 WH8281的接口电路
通过外接移位寄存器(典型芯片如74HC164,74LS595等,如图2-6所示), 最多可以控制 16 位数码管显示或128只独立的LED。WH8281的驱动输出极性及输出时序均为软件可控,从而可以和各种外部电路配合,适用于任何尺寸的数码管。DIGO~DIG7 为位驱动输出 ,适合连接共阳式的数码管。虽然 DIGO~DIG7接口本身具有一定的驱动能力,但为了保证足够的显示亮度 , 应该另加以外部驱动电路。外部驱动电路比较简单, 只需要 8 只 NPN 型三极管即可 , 三极管接成射极跟随器形式, 因此基极无需限流电阻。而数码管的段驱动则由它的串行数据口通过移位寄存器来实现。
WH8281 最多可以连接 64 个按键 , 按 8×8 矩阵排列 , 矩阵的“行”连接到 WH8281的位驱动 DIGO~DIG7, 矩阵的“列”连接到第 0~7 位显示的段驱动移位寄存器的输出 , 为了防止对显示部分的影响 , 键盘矩阵与显示电路之间必须加入二极管和4.7K的隔离电阻。当使用WH8281 的键盘功能时,DIGO~DIG7 上应加以 100K 的下拉电阻, 且8根引脚必须都接入下拉电阻,即使所用到的按键比较少时,也不能将其中未连接键盘的引脚上的下拉电阻省略。
WH8281芯片内部具有26个寄存器,包括16个显示寄存器和10个特殊功能寄存器,共用一段连续的地址,其地址范围是00H~19H, 其中 OOH~OFH 为显示寄存器,其余为特殊寄存器, 所有的操作均通过对这26个寄存器的访问完成。
WH8281与MCU的接口共需要三根线,只占用很少的I/0口资源和主机时间。它们是数据线DAT, 时钟线CLK和按键指示KEY, 其中CLK 和KEY引脚分别为输入和输出引脚, 而DAT脚则为双向口, 其内部为OPEN DRAIN(OD)结构, 需要外接一个2OKΩ左右的上拉电阻 , 以使其能可靠地输出高电平。
仿真实验板采用了两块4位一体的共阳极LED数码管(如图2-7所示),这种数码管的各同名段连接在一起共用一个引脚引出,各位(每位数码管的公共端)单独引出。
由于段驱动电流较小,为简单起见,由WH8281的串行数据口经移位寄存器直接驱动(加限流电阻)。而LED数码管的位电流较大,故采用三极管来驱动(如图2-8所示)。位扫描信号由WH8281的并行数据口给出。
相比于静态显示方式(1根口线驱动一个LED),动态扫描方式需要的口线要少得多。如仿真实验板上有8位数码管,每位数码管有8个LED,如果采用静态驱动方式,则需要8×8=64根口线来驱动。而采用动态驱动方式,只需要8(段驱动)+8(位驱动)=16根口线。
动态方式利用了人眼的视觉暂留效应,每位数码管依次显示一个较短的时间,虽然每个瞬时只有一位数码管在显示,但对观察者看来,好像所有的数码管是在同时显示一样。
虽然动态显示方式节省了口线,但对编程提高了要求。每位数码管显示的时间(或频率)需要在一个合理的范围:显示频率通常在25Hz以上才能保证较好的显示效果。频率低于25Hz时,观察者能够看出数码管在闪烁,频率在25Hz左右,有相当一部分人能够感觉到数码管的闪烁,当频率增加到50Hz时,数码管看上去就十分流畅、舒服了。但显示频率再增加,几乎没有人能够分辨出显示效果的改善。显示频率过高,显示程序耗时大幅度增加,编程困难,显示亮度下降。
利用显示的位扫描,同样可以实现扫描(阵列)式键盘。在LED数码管显示时,每个瞬时WH8281给出位扫描信号只有1根口线为低电平。由串行数据口经移位寄存器而转换成的口线组成“列”,而由并行数据口的8根线组成“行”,在行列的焦点上放置一个按键(如图2-9所示)。
为了清楚起见,在图2-10中重新给出实验板阵列式键盘接口电路。
图2-8 实验板阵列式键盘和动态扫描显示接口电路
ADμC841最多可以扩展出16M的外部存储器。P0口分时复用分别作为数据总线和地址总线的低8位地址线:在访问(读或写)外部存储器时,P0口先输出需要访问的存储器低8位地址(A7~A0),在ALE(单片机给出的地址锁存信号)作用下,把这8位地址锁存到地址锁存器中(通常采用8位锁存器芯片74HC573或74HC373),然后单片机把要写入到外部存储器的数据送到P0口,通过写控制信号 把数据写到外部存储器中,或在读控制信号 的作用下把外部存储器的数据读到P0口,然后读到单片机的累加器ACC中。这就是P0口的分时复用。在实验板中,采用74HC573作为锁存器锁存P0口给出的低8位地址。
ADμC841的P2口也是分时复用的,它分时输出高8位地址(A23~A16)和中8位地址(A15~A8),先给出高8位地址,也是在ALE信号的作用下使外部地址锁存器锁存高8位地址(与低8位地址在同一时刻和同一ALE脉冲作用下),然后给出中8位地址,这样ADμC841能够外接16M的外部存储器。与标准80C51相同的是,ADμC841P2口自己能够锁存中8位地址(相当于80C51的高8位地址A15~A8),不同的是80C51地址范围为A15~A0,只能外接64k字节的外部存储器,没有A23~A16,所以80C51只锁存输出地址A15~A8。
在实验板中,采用32k字节的随机读写数据存储器(random access memory, RAM)HM62256作为外部数据存储器。由于只需要64k字节以内的存储器空间,所以只采用一片74HC573锁存低8位地址,由P2口直接锁存输出中8位地址,与标准的80C51的使用方法一样(如图2-11所示)。
为了方便实验,在实验板上设计了简单的模拟接口电路,如图2-12所示。
运放U1A接成跟随器的形式,后面还接有R1和C1构成的抗混叠(低通)滤波器,该电路的信号输出到ADμC841的P1.0,即模拟/数字转换器的第0通道ADC0。所以,实验时可以将外部信号接入ADCIN的插座,通过U1A缓冲后输入到ADμC841的模数转换器中。有U1A的保护和缓冲,不容易损坏ADμC841和对被转换的信号源内阻没有很特别的要求。
运放U1B也是接成跟随器的形式,但它作为ADμC841的数字/模拟转换器DAC0的缓冲输出。
运放U1D也是接成跟随器的形式,但它作为ADμC841的参考电源的缓冲输出,可以用于其它外部电路使用。同时,该电路通过R8和C9构成的抗混叠滤波器输入到ADμC841的模拟/数字转换器的第7通道ADC7,用于检验ADμC841的模拟/数字转换器的工作正常与否。
4运放LM324中剩余的一个运放的两个输入端和一个输出端均已引出,让读者用于其它需要扩展的电路中。
为了让读者完成诸如扬声器、蜂鸣器、继电器或功率较大的发光二极管(LED)等,实验板提供了一个简单的功率驱动电路,如图2-13所示。由T0(P3.4)端驱动作为开关的晶体管Q11,需要驱动的负载接到插座H11上。
虽然该电路简单,但该电路很值得初学者注意:
1. 当单片机的T0(P3.4)端输出低电平时,Q11打开。由于单片机的几乎所有的I/O口在复位后的缺省状态都是高电平,除非你希望单片机上电就使外设打开工作,否则,应该使单片机输出低电平时接通外设(负载),即通过程序控制启动负载工作。
2. 单片机的I/O口在低电平时的驱动能力比高电平时要强得多:高电平时一般为数十到数百mA,而在低电平时能到5mA左右,当不考虑逻辑电平时,低电平时的驱动能力最高可达20mA,而高电平不考虑逻辑电平时,驱动能力最高不会超过1mA。
3. 在外接继电器等电感性负载时,需要在负载两端并接一枚二极管进行(续流)保护,二极管正极接地。这是由于电感性的负载在从导通到断开的瞬间,电感中的电流不能产生突变,进而产生高压,很容易损坏单片机和其它器件。这点请读者务必注意。
仿真实验板电源电路如图2-13所示。220V的交流电适配器输出的9V直流由插座H5输入。经过C9和C15的滤波输入到三端稳压器7905。注意:7905是-5V输出的稳压集成电路,因而7905的输出端(3端)比接地端(1端)要抵5V。所以在电路中把3端作为地(DGND),而把1端作为DVDD,以保证单片机的工作电压是所需的、稳定的+5V。图中的LED发光管D3主要用作电源的指示。
图2-13 仿真实验板的电源电路
之所以采用这样不同寻常的电源结构,是为了利用稳压块7905的压降提供一个负电源给运放工作,即7905原本输出的-5V作为地,原来的地就作为+5V,保证单片机的供电为正确的+5V电源,而原来比-5V还低2V未稳压的电源现在作为-2V给运放供电。由于运放具有较高的电源抑制比,虽然-2V没有经过稳压,但对于读者做实验没有什么影响。
仿真实验板的数字电路和模拟电路的电源线采用了各自走线的方法,以减少数字电路和模拟电路之间的相互干扰,特别是数字电路对模拟电路的干扰。如果采用完全独立的两套电源为数字电路和模拟电路分别供电,将显著地增加电路的复杂性和成本。电路中用两个小电阻R5和R6,分别将数字电路和模拟电路的电源隔离。实际电路可以将R5和R6以导线直接短接来代替。这种方法在不怎么增加电路的复杂性和成本的情况下,显著地降低数字电路和模拟电路之间的相互干扰。
发光二极管(LED)D3用作电源指示,R7是限流电阻。
电源电路中的二极管D1用于极性保护,避免读者不小心在接电源时接反了电源极性而损坏电路。顺便提示:如果在插入电源后实验板的D3不亮,请检查电源的极性是否正确,电压值是否合适(太高了7905发热严重,太低了电路不能正常工作,一般应在7V~9V之间)。
图2-15所示为实验板元器件安装图(PCB板的TOPOVERLAY层)。请你与仿真实验板的实物进行对比,认识一下各个主要的元器件、上一节介绍的电路处于什么部位。
下面请做几个简单的实验:
1. 请你把实验板配套的电源连接好,看看电源指示D3是否发光。如果D3不亮,请检查并排除故障。
2. 在断电时拔除H11的短路块(但注意保存、不要弄丢了),将随机的蜂鸣器插到H11中,重新上电,蜂鸣器将断续响三声,LED数码管显示“HELLO”的字样。
3. 断电后重新插回H11的短路块,上电后LED没有任何显示,蜂鸣器也不响,为什么?