单板机编程功能的扩展方法(续)

🏠 首页 《无线电》杂志 1987年 🔗 第215期 🔗 第7页 分类:技术市场 🔗 郭唐惠 🔗

2.电路描述:该电路结构简单,工作可靠,关键元件IC\(_{3}\)是一个单稳态触发器,EPROM的编程条件由它及其协作电路共同提供。IC1、IC\(_{3}\)的引脚见图4。

图1
图1 🔍原图 (836×465)

当CPU发出写EPROM命令时,片选及RD-(代替WR-)两个低电平信号经IC\(_{1a}\)相“或”后,输出一个低电平脉冲将IC3触发,在IC\(_{3}\)的输出端Q及Q-,即可获得一对有固定宽度的正负脉冲(宽度约为50ms)。Q-端的负脉冲经过“与门”IC2加到CPU的WAIT-端,WAIT-低电平有效,使CPU进入等待状态,亦即写状态;与此同时,Q端的正脉冲经过“或门”IC\(_{1C}\)后,分别加到EPROM的PGM(即编程允许)端及BG1的基极,使PGM为高电平有效,V\(_{PP}\)因两管导通而有效,对EPROM进行写入。直到脉冲信号结束,即IC3恢复稳态为止。此时WAIT-,PGM等控制信号同时失效,V\(_{PP}\)也断开,一个单元的写入便完成了。

可见写入过程简捷,与写RAM的写入过程一样,只是时间长些。脉冲宽度主要由R\(_{1}\)、C1的取值确定,改变它们的大小即可得到不同的脉宽。C\(_{2}\)在此用来吸收读周期可能产生的干扰(与时序有关),取100P左右即可。

BG\(_{1}\)、BG2等元件组成的开关电路的通与断状态是由PGM信号来控制的,因此保证了只在编程期间+25V才加到V\(_{PP}\)端,平时通过二极管D将Vcc加到V\(_{PP}\)端,这样就避免了+25V电压长期加上,降低了损坏芯片的几率。

另外由于2732的V\(_{PP}\)脚与其OE-(输出允许)合二为一,正常读出时它起OE-的作用,编程写入时才作VPP用,因此2732写入时,+25V电压只能以脉冲的形式加入。

3.脉宽的简易测定法:这里脉冲宽度是指每写一个字节所花的时间,要求在45~55ms之间,一般取50ms。电路装毕后,最好能测出该脉宽的具体值。前面讲过脉冲宽度主要由R\(_{1}\)、C1的大小决定,当单稳态电路IC\(_{3}\)及R1、C\(_{1}\)选定后,该脉冲的精确性与重现性也就确定了。没有示波器时,可以用如下方法来近似测出它的宽度。

程序如下。

2000 110010 LD DE,1000H;EPROM区首地址

2003 010008 LD BC,0800H;字节数。此处为2048字节

2006 EDBO LDIR; 编程(空写)

2008 C30000 JPO;

编程完毕返回监控将此程序利用MEM键输入到单板机中,并让它执行(测试时不要将EPROM插上,或关闭V\(_{PP}\),使编程条件不能满足,以避免写入)。在程序开始执行时,用秒表计下时刻,程序执行完毕(由显示器提示)停止计时,则可由下式近似求得:

脉冲宽度=\(\frac{(秒表)记录时间}{“BC”寄存器对的初始值(字节数)}\)

本测试程序中“BC”的内容为2048,因此只要将记录时间除以2048即可得到脉宽的具体值。若按图中数值选择R\(_{1}\)、C1,则此值应在50ms上下。若小于45ms,可增加R\(_{1}\)或C1;大于55ms,应减小R\(_{1}\)或C1。

4.元件选择:图③中所有的IC均可选用74LS系列的片子,其中IC\(_{0}\),IC2可直接利用单板机上空闲的门电路,如IC\(_{0}\)可取用U33(74LS04)中空闲的门电路(引脚见图3),IC\(_{2}\)由U25(74LS08)提供。或门IC\(_{1a~1c}\)可选用74LS32,单稳态触发器IC3可用74LS123、74LS122、74LS221等,图中给出的是74LS123,74LS221的引脚与它相同,可直接代换。

5.应用方法:使用方法非常简便。少数单元的写入与修改,可直接利用MEM键进行,同读写RAM一样。

成组数据写入时,源数据的首地址不必局限于2000H,可以根据需要任意选定。这只需利用“REG”(寄存器检查修改)键将待写入EPROM的内容的首地址、字节数及目的地址分别送入寄存器HL、BC、DE;然后执行LDIR;RSTO即可完成。但是,写入是否成功并不知道,因为写入的内容未经校验。不过这并不难解决,单板机中有现成的核验程序可以借用。在将有关地址及字节数置于各相应寄存器后,执行程序:

2800 3E01 LD A,01H;置编程校验

2802 32DA2F LD(PRFLG),A;标志

2805 E5 PUSH HL;保存源地址,目的地址及字节数,以备校验用

2806 D5 PUSH DE;

2807 C5 PUSH BC;

2808 EDBO LDIR;编程写入

280A CI POP BC;得到待校验的字节数及有关地址

280B DI POP DE ;

280C EI POP HL;

280D C3 04 06 JP CCS12B;开始校验

上述程序执行完毕,即可完成编程写入与校验工作。若将此段程序固化在EPROM的空闲区,操作就更省事了。

四、几点说明

1.新增加的电路元件可直接装在单板机的布线区,无需另外制板。

2.由于2732的OE-/V\(_{PP}\)共用,因此编写2732时,应将D与VCC断开(参照图3加装一开关K进行切换就更方便),否则不能进行正常的读操作,因为不满足读出条件。

3.原来在PROM2(TP801单板机上用于读、写EPROM的插座)上读写2716是方便的,但由于改用大容量EPROM时,各种EPROM的读写控制信号不尽相同,且引脚多少有别,不便直接插入PROM2进行读写,因此可在布线区加装一个28脚的插座,见图⑤。并参照图1和图3将有关引线接上。注意图3中的K应与K\(_{4}\)配合动作,或干脆用一连动开关。

图2
图2 🔍原图 (591×559)

4.单板机只给PROM2留有2K字节(1000到17FFH)的地址空间,因此对2732等容量超过2K字节的EPROM编程时就需要分段进行。(郭唐惠)