表8表9是一个实用的采样程序。表8是用6502汇编语言写的采样子程序。这个程序的执行过程是:首先选择第15号通道,使增益为1;将控制字写入增益/通道寄存器GMAR,然后用软件启动采样,禁止中断响应;将控制字写入命令状态寄存器CSR,判断是否转换完毕。若已转换完毕,将数据高位取到A累加器中,再将累加器A中数值取反,恢复原数值,存入0A单元;接着将数据低位取到累加器A中将A中的数值取反,存入0B号单元,返回主程序。现将程序中用到的汇编语言介绍一下LDA#$F0是将F0存入A中,STA#C500即将A中的数存入C500存储单元。AND“与”算运,BEQ#620A,测试BUSY位,若BUSY=1则执行下一条指令,否则跳到620A。EOR将A中的数值取反。RTS返回主程序。

表9是用BASIC语言编写的采样显示主程序。前者作为后者的一个子程序。在执行时,只要在BASIC状态下执行表9程序,就可以在屏幕上反复显示采样的结果。每条程序意义见其右边的注释。

在上述程序中,有几点需要说明:①由于该模板的基本地址设定为C500H,则与软件编程有关的四个内部寄存器地址是:增益/通道寄存器GMAR=C500H;命令/状态寄存器CSR=C501H,数据高位字节寄存器DRH=C502H;数据低位字节寄存器DRL=C503H。②由于该模板输出模式设定为反码输出,所以,在汇编语言程序中,写入GMAR、CSA中的数据都是取反后写入的。如:按表3所示,若选择通道15,增益=1时,应在GMAR中写入二进制数码00001111(0FH)现在取反后,变为11110000(F0H)。同理在读出数据时,也要取反之后,才能恢复原二进制的值,于是就出现了6214、621B条语句,将累加器A中数据取反之后,存入相应内存0A与0B单元。③由于该模板的模拟量电压输入范围设定为±10V。为了使内存0A,0B(对应BASIC语言中的第10、第11号单元的二进制数与以10进制数表示的±10V范围的模拟电压值相当并打印出来。所以出现了20语句那样的数学运算公式。④按该模板的技术说明书要求,调试时应对模板上前置放大器的增益,失调电压和满度转换电压进行调整。在进行这一步工作时只须执行表9中程序,并调整模板上相应的电位器即可。(林在荣)