微型机与应用
MICROCOMPUTER & ITS APPLICATIONS
1999年 第18卷 第4期 Vol.18 No.4 1999



NEC单片机78P014在X光检查仪控制器中的应用
岳胜利
　　摘　要：介绍了使用NEC单片机78P014构成的X光检查仪控制器，以及对检查仪的工作过程控制及电池组维护的原理及软硬件设计。
　　关键词：X光检查仪控制器　78P014单片机　锯齿波
　　X光检查仪主要用于安全检查。X光可穿透被测物体，并使放于物体后面的X光底片曝光，达到检查目的。检查仪以脉冲方式发射X光，每个脉冲的剂量为3mR，可通过预置脉冲个数来控制底片曝光量。X光的产生需120kV高电压，因此升压电路需较大的工作电压和电流。本设备为便携式，内置24节Ni-Cd可充电电池，因为工作时必须由电池组供电，所以在实际应用中，电池组的维护非常重要。为了减轻记忆效应，需定时对电池组进行充放电维护，因此检查仪控制器须完成的功能主要是：接受设置、启动检查仪工作电源发射X光，并对其进行计数控制、测量电池组电压及对其进行充放电维护。
1　硬件组成
　　78P014内置32KBROM、1KBRAM、P0～P6共46条I/O口线、8通道8位A/D转换器、WATCHDOG等功能，只需外接晶振和复位电路即可正常工作。根据MPU的资源及检查仪控制器须完成的功能，其硬件组成如图1。


图1　硬件组成图
　　(1)功能键输入。控制器共8个功能键，由于78P014的口资源很丰富，不需要用3*3键盘，只将8个键分别接至P3.0～P3.7口，简化了软件设计。
　　(2)LED显示。控制器由2只7段数字LED显示脉冲数，分别接至P5、P6口，直接由单片机驱动（78P014的口输出电流最大20mA）。
　　(3)功率驱动输出。78P014的P2.1、P2.2口分别为充放电控制，经电平转换后驱动相应的大功率开关管。P2.3口输出放大后驱动继电器，由继电器控制启动X光高压电源。
　　(4)A/D转换。由于78P014内置A/D转换器，模拟量转换电路非常简单，只需对电池组电压、充电电压取样后接至78P014的A/D转换输入角即可，其基准电压为＋5V，直接由＋5V电源提供，其他工作均由软件完成。
　　(5)计数脉冲整形。X光高压电源启动后，X光以脉冲方式发射，脉冲宽度100ns，间隔约0.3s。在此过程中其内部传输线路可输出一负极性锯齿波电压，其下降沿与X光脉冲相对应，整形后可用于计数控制。
2　软　件
　　本系统的软件部分主要由主程序模块、X光发射模块、电池维护模块以及被这3个模块调用的读键盘子程序、A/D转换子程序、BCD码转换子程序、LED显示子程序、定时器中断服务子程序等组成。其流程图如图2。




图2　流程图
　　(1)主程序模块。主程序模块完成的任务是根据功能键的输入，完成发射脉冲数的设置、RECALL（重复上1次脉冲数）、RESET等功能，并调用其它模块完成X光发射、电池组充放电功能。78P014完成以上工作只需很少的时间资源，因此大多数时间处于等待状态。为了减少系统的电流消耗，78P014在等待时进入休眠状态，此时CPU停止工作，时钟信号只供内部定时器工作，定时器溢出后CPU解除休眠，重新回到主程序。
　　(2)X光发射控制模块。当主模块接收到发射命令后，即调用X光发射控制模块。该模块首先判断是否需要延时，如需要则延时10s后启动脉冲高压电源。在发射过程中该模块对检查仪返回的信号（即整形后的锯齿波）去抖动、计数。当发射的脉冲数与设定相等时，关闭脉冲高压电源，并记录已发射的脉冲数。
　　(3)电池维护模块。当“充电键”被按下、且220V充电电缆插头已接通时，主程序调用电池组维护模块。该模块首先检测“充电键”是否放开，如该键持续按住3s，则程序进入放电－充电模式，否则进入充电模式。在放电过程中，当电池电压下降到额定放电电压以下时，停止放电，转入充电模式。在充电过程中，A/D转换器每隔100ms检测1次电池组电压（检测过程中充电暂时停止），并计算电池组电量是否充满。电池组电量充满的算法：
　　①电池组电压是否高于额定电压Vmax？
　　②电池组电压是否开始下降？
　　③充电时间到。
　　当以上3个条件中的任1条满足时，即可确认电池组电量已充满，此时停止充电，返回主程序。
　　该控制器已于1998年5月正式取代原来的分立元件控制器，工作稳定可靠、未出现异常情况。
作者单位：北京瑞琦时代公司技术开发部（100080）
参考文献
　1　NEC公司.NEC单片机用户手册
　2　NEC公司.RA78K0汇编程序包（操作）
　3　NEC公司.RA78K0汇编程序包（汇编语言）
收稿日期：1998-10-03
