8031单片机电传信号发生器,是取代中小规模数字电路组成的同类信号发生器的换代产品。它具有硬件结构简单,性能稳定可靠,能产生准确的7.5t\(_{s}\)(ts为单位时间)的电传信号等特点。它有3档输出速率和5档输出波形,能依次产生邮电部门规定的《标准试验电文表》中的80种代码信号,以测试和检验收报机的性能和其承受畸变信号的能力,也能对电传机收报印字部分作长时间的稳定性试验。另外,通过本文也可展示出8031在波形产生方面的应用。
硬件结构及原理
硬件原理见图2,主要由8031单片机最小系统、输入开关阵列和输出接口电路组成。

1.8031最小系统及控制原理
8031的P0和P2口仅用于扩展程序存储器2732,其中P0口通过373锁存低8位地址,而高4位地址由P2.0~P2.3输出。系统的基本控制原理是,CPU通过读P1和P3口,检测反映用户使用要求的各开关的状态,对检测到的不同畸变状态,设置能产生相应波形的中断处理地址;对于不同的畸变值,确定定时器T0的中断次数;对于不同的波特率,预置TH0的不同初值;当产生T0溢出中断时,由P3.7逐位输出要求的电传信号。
2.输入开关阵列与编码电路
74LS148是8—3编码器,采用148的目的是为了解决开关状态多,而P1和P3口I/O引脚少的矛盾。编码器分为U1~U3三组,其输入端分别与开关S1~S3相连。S1和S2选择各档畸变值(0%~44%),S3选择6种工作状态。按148真值表,可得开关的状态码。例如S3在图2所示“停止”位时,U3输出状态为A2A1A0=111;软件中正是按状态码来识别开关位置的。S4和S5直接与端口相连,分别选择工作速率和波形。
3.输出接口电路
输出接口电路由信号驱动和3F10-F-8a电子继电器两部分组成。从P3.7引脚输出的矩形波信号是TTL电平,须经3DG12反相放大才能驱动12V、50mA电子继电器,然后由电子继电器把短形波信号转换成电传机能接受的单流信号。电子继电器开启时,送出传号信号;关闭时,送出空号信号。
软件设计
1.电传信号处理及形成

图1中第一行所示为无畸变即标准信号波形,其余四行为畸变信号波形。为便于编程处理,把这种7.5t\(_{s}\)信号,看作8个状态位,从而把信号转换成8位二进制代码。还得指出,在波形图中,除起动位和停止位外,只有中间5位电平可变化,按5位不同排列有2\(^{5}\)种状态,所以标准电文有32种。把所有按规定要试验产生的电文代码存放在2732低端地址区域,也形成了电文表。当从电文表中逐个取出代码,就可以控制P3.7输出与代码值对应的高低电平,即输出矩形波电传信号。输出信号的状态位宽度,可用定时方法解决。
2.主程序设计
主程序框图见图3,着重说明三点。第一、判断开关状态改变,是用开关当前状态与原先状态比较;若两者相同,就查询等待,否则更新原状态。第二、对畸变值处理和波特率设置,只要改变T0溢出次数,就改变了畸变值;只要改变TH0初值,就改变了波特率。第三、主程序中把电文表中代码逐一读入累加寄存器A中,等待T0中断时,把电传信号从P3.7输出。对于四个单一符号信号(间隔、字母、J、Y),它们对应的代码值也能在电文表中查得。(俞国亮)
