本刊1990年第11期介绍的TD—Ⅲ自开发型单片机,以其抗干扰能力强,工作可靠性高及价格低等特点,受到广大读者的喜爱,许多读者利用它学习了MCS—51系列单片机后,又直接将它用到各种控制中。我们在广泛听取各方面的意见后,又设计了一种功能更强的单片单板机,它除了具有TD—Ⅲ的优点之外,还具有许多其它单片单板机不易实现的功能。利用这种HH—51单片单板机,不仅可以学习MCS—51系列单片机,而且能做到一次开发成功,缩短学习、开发、应用之间的距离。
一、技术指标:
1.RAM:32k(带掉电保护)
2.EEPROM:8k(也可插6264)
3.ROM:27128(也可用27256)
4.A/D:8路8位A/D(精密参考源)
5.D/A:一路8位D/A(精密参考源)
6.I/O口:22个双向I/O 口
7.显示:8位数码管
8.键盘:30个轻触按键
9.读写EPROM:2764/27128/27256(自动产生写EPROM所需电压)
10.串行口:二路缓冲串行口
11.仿真插座:CPU仿真方式
12.电源:+5V、0.7A
13.晶振:6M(也可外接l~12MHz晶振)
二、硬件介绍:
1.硬件分为主机和显示键盘两部分,显示键盘部分的印制板尺寸与主机部分的完全一样大,可采用折叠方式,以减小占用控制面板的面积和提高抗干扰性能。图1是HH—51的元件排布图,图2是主机部分的电原理图,键盘部分的原理与本刊1992年第4期介绍的HH—98单片单板机的按键盘显示部分相同,有兴趣的读者可查阅。


2.图2中的IC1(8031)、IC2(74LS373)和IC3(27128)构成了MCS—51单片机的最小应用系统。由于8031芯片的PO口是作为低位地址和数据线使用,故使用一片74LS373作低位地址锁存器,8031先将低位地址锁存到74LS373后,又将PO口转作数据口用。
IC4(6264或2864)、IC5(62256)及IC6(8155)内部的RAM作为8031的外部RAM扩展。由于HH—51不但需要将数据保存在IC4和IC5之中,还要运行存放在其中的程序,故使用IC10:C和IC10:D将8031的RD-信号和PSEN-信号作或处理,也就是不论是RD-或是PSEN-信号有效,IC4和IC5的OE-信号便有效。经过这样或处理之后,8031便能将数据存放在IC4和IC5之中,又能运行存放在其中的程序。8155内部有256字节的RAM,由于这一部分空间已由监控程序使用,如果使用者利用监控程序的话,请不要再使用8155内部的这256字节的RAM,一般说来IC4和IC5这40k字节的RAM是足够使用的了。
考虑到在使用HH—51的仿真功能时,使用者有时需使用用户板上的RAM。X11是IC5的使能插座,如果将X11短接,系统中的8031便能对IC5进行正常操作,如果将X11开路,则IC5得不到片选信号,便处于保持状态,这时8031便可对用户板上同一空间的RAM进行操作。
X10是使IC4进入只读状态的插座,如果将X10短接,便可对IC4进行正常读写操作。当IC4使用2864芯片时,为了防止因误操作而将IC4中的程序或数据丢失,则可将X10开路。当X10开路时,只能从IC4中读出数据,而不能将数据写入到IC4之中。
3.IC6(8155)的另一个作用是用作I/O扩展,以满足使用者对I/O控制口的要求,8155I/O口的所有引线都通过X4引出。HH—51对EPROM的读写,也是通过8155来控制,通过一块EPROM读写板进行读写的,这个EPROM读写板是通过电缆与X4相联,关于EPROM读写板的电原理图,请参见本刊1992年第4期。读写EPROM所需的电压都由HH—51产生和自动切换,以避免误操作而损坏芯片。另外8155的PB.7和PC.5经过MC1488和MC1489缓冲后,作为串行服务线用或作为模拟串行口用,以解决某些使用者对多串口的要求。
4.模拟信号转换成数字信号是由IC7(ADC0809)来完成的,ADC0809挂接在8031的P0口上,ADC0809的通道选择则由系统的A0、A1、A2来决定。ADC0809的模拟输入引脚通过X5引出,在实际使用时,输入的模拟信号与X4引脚之间,最好串一只1kΩ左右的电阻,以避免输入信号过大,而又没有限流元件时,将ADC0809损坏。为了使A/D部分有足够的精度和稳定性,设计时采用了TL431作为IC7的基准参考源,由于TL431的这种接法其稳定电压为2.5V,故这时ADC0809的满量程输入电压也为2.5V,但其分辨率仍保持8位不变。采用TL431之后,可免除温度和电源电压波动对A/D的结果的影响。IC10:A和IC10:B是读写转换电路。数字信号转换成模拟信号是由IC8(DAC0832)来完成的,DA0832也挂接在8031的P0口上,同样是为了精度和稳定性问题,D/A部分也采用了TL431作基准参考源。D/A满量程输出为2.5V,分辨率仍为8位。
5.地址空间的分配和切换是由IC9(GAL16V8)来完成的,采用这种芯片后,能做到合理地利用8031的寻址空间,8031外部扩展芯片的片选信号由IC9发出。
为了便于使用者使用8031的复位入口地址和中断入口地址,在设计时将IC5(62256仿真RAM)的地址安排在0000H~7FFFH这部分空间内,使用者可直接使用复位入口地址和中断入口地址,使程序的调试简化。考虑到有些使用者,期望在加电后直接运行自己的程序而同时又能调用监控程序中的子程序,我们又设计了一个定义短路插座X7。将X7的2、3短接,再按下复位键后,就可直接运行62256之中的用户程序了。另外27128之中的0000H~1FFFH这一部分空间也预留给使用者,使用者只要将自己的程序固化到27128的0000H~1FFFH空间之中,然后再将监控程序拷贝到27128的2000H~3FFFH之中,替换下IC3并将X7的1、2短接后,开机便能直接运行固化在IC3之中的用户程序了。当然如果将用户程序拷贝到一片27256之中,然后换下IC5,再将2、3短接,则开机后也可直接运行用户程序。
6.掉电保护检测是由IC12:B6、IC12:C、VT2及外围元件来进行的,LED1和LED2是作为小电流的3.4V稳压管使用的,当电源电压低于4.1V左右时,VT2的集电极下降为低电平,这时IC5的CE-端就呈高电平,IC5进入保持状态,当电源电压继续下降时,后备电源则向IC5提供保持电流。由于62256进入保持状态后,其耗电非常小,大约数个微安,二节钮扣电池便能保证62256之中数据长期不丢失,当供电电源正常时,电源通过电阻R4向后备电池提供充电电流。
7.IC16,VT1等是电压变换电路,IC16(TL474)及外围电路构成+12V电压变换器,它能提供稳定的+12V电压,大约能输出50mA电流。+12V电压供写EPROM、串行通讯和D/A使用。VT1及外围元件也是一个电压变换线路,在TL474脉冲信号的激励下,它能产生大约为-8V的电压,这个-8V的电压主要是供串行通讯使用,D/A所需的负电压,也由它产生。
8.IC11:A、IC11:F等构成了内部晶振时钟电路,当X3的1、2短接时,IC1(8031)就使用板内晶振产生的时钟信号。如果将X3的2、3短接,IC1就可使用板外晶振产生的时钟信号。板内时钟振荡电路还向键盘部分的8279提供时钟信号。
X2是仿真插座,对应8031的各引脚,与它相联可仿真用户板上的8031。当然如果不使用仿真功能时,这个插座也可作为8031的输出插座。
X9是与键盘显示部分相连的插座,有时为了控制的需要可将键盘显示部分与主机部分分开,它们之间则可利用连接电缆相接。如果不使用键盘显示部分,这个插座还可作扩展引线之用。
三、键功能介绍
键盘是由30只轻触按键组成,它们分为16只数字键和14只功能键,大部分键都具有双功能。与HH98类似,读者可参看本刊1992年第5期。
数字键也具有双功能,数字键的第二功能是直接跳转到RAM区内的某一个地址。如SHIFT+0,则程序跳转到RAM区的7F00H处;SHIFT+1则跳转到7F03H处。设置这个功能是为了方便使用者,在不改变监控程序中有关键盘的部分,就能直接使用键发出命令,使程序转跳到自己的程序中或重新定义键盘。
例:使用者将自己的程序存放在IC4(为一片2864)中,其首地址为8000H,当在7F00H处填入02、80、00(LJMP8000H指令),然后再按下SHIFT+0后,程序便会转跳到8000H处去执行用户的程序。从这个例子可以看出,使用者并没有更改有关键盘的程序,就能直接使用键盘发出命令。
通过键盘操作,很容易完成对2764/27128/27256、27C64/27C128/27C256进行读写、比较、检查操作。对EPROM写入电压的控制是自动完成的,这样可避免因误操作而损坏芯片。在写EPROM时HH—51会给出相应的提示,以提醒操作者的注意。HH—51对EPROM的写入是按快速写入方式进行的,写一片2764约为30秒。在EPROM读写板上有一个外接电源插座,也可使用外接EPROM写入电压。外接写入电压与板内写入电压之间的切换,是由HH—51自动完成的,不需使用者事先选择或干预。
四、HH—51组合软件功能介绍
1.在HH—51组合软件的支持下,HH—5l能完成与微机之间的通讯。HH—51能接收微机传来的数据和程序,也能将数据和程序传送到微机之中,并保存在磁盘之中,使HH—51充分享受微机所具有的功能,提高应用程序的开发手段,缩短程序开发时间。
利用组合软件的功能,可直接在微机上编辑,汇编,生成HH—51所能运行的机器码目标文件,再将目标文件传送到HH—51之中,便可直接运行,从而免除手工键入机器码之苦。也可将EPROM之中的程序传送到微机,利用组合软件的反汇编功能,将机器码反汇编,为学习或借鉴成熟程序提供了一条途径。
2.组合软件的启动。将HH—51组合软盘插入微机的A驱动器之中,然后启动微机,进入主菜单后,便有如下提示:
1—EDIT FILE(编辑)
2—MCS—51 ASSEMBLER(汇编)
3—MCS—51 DISASSEMBLER(反汇编)
4—PCTD HH—51(微机中内容传送到HH—51)
5—TDPC (HH—51中的内容传送到微机)
6—RETURN TO DOS(返回磁盘操作系统)
根据这个菜单的提示,键入不同的数字,就能直接进入不同的功能模块,完成各种不同的操作。进入各个功能模块后,屏幕会给出相应的提示符,以提示操作者进行正确操作。
3.在主菜单下键入1后,就能进入编辑状态。操作者可编辑、修改各种源程序,源程序可直接用汇编语言编写,并允许使用许多伪指令或符号。
例:1.ORG 0030H;定义主程序起始地址为0030H
2.MAIN:MOV R0,#40H;将立即数#40H送R0中
3.MOV R7,#10H;将立即数#10H送R7中
4.MOV A,#00;清零A
5.LOOP:MOV ,A;将A中内容送R0指定单元
6.INC A;A加1
7.INC R0;R0加1
8.DJNZ R7,LOOP;R7减1,如果R7中内容不为零则跳
9.HERE:NOP;空操作
10.AJMP HERE;跳转到HERE处。
源程序编辑好后,便可存入磁盘之中,然后退到主菜单状态。
4.在主菜单下只要键入2,便能进入汇编功能模块,在汇编功能模块中时,可根据屏幕提示,将编辑好的源程序汇编成8031能执行的机器码,同时也产生供打印和查阅用的列表文件。如果将上例程序汇编,则可得到如下机器码目标文件:
030003E78407F107400F60408DFFB00013B
目标文件的前8位16进制数,表示了传送到HH—51中RAM区的首末地址,0030H是首地址,003E是末地址。地址之后的代码便是8031能执行的机器码。
此外在监控程序中还固化了检查和演示程序。(朱小华 陈尚品 梁建国)