摘 要:利用89C51单片机及其外围接口,构建了某型号激光器的控制监视器,以控制激光器出光。该控制监视器系统的软件部分共有5个模块,分别是脉冲信号输出模块、按键控制模块、液晶显示模块、计算模块和主程序模块。分别介绍了各软件模块的具体功能、实现方法、软件流程及其包含的关键技术。
关键词:89C51单片机;外部中断;定时器;液晶显示接口
DOIDOI:10.11907/rjdk.143149
中图分类号:TP311
文献标识码:A 文章编号文章编号:16727800(2014)010007902
作者简介作者简介:孙育红(1978-),女,陕西西安人,西安石油大学机械工程学院讲师,研究方向为机电一体化。
0 引言
某连续波运行的百瓦级二氧化碳激光器被引进时,没有配置控制器,其对外提供了一个15芯接口,输出激光器的工作状态信号并接受外部输入的脉冲信号控制激光器出光。89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器[1]。使用89C51单片机及一系列外围接口电路构建了一套控制监视系统,在激光器接口输入控制信号,同时监控激光器接口输出的状态信号,实现对激光器出光的控制并确保其工作状况正常。
1 控制系统原理
激光器的控制监视器(以下简称控制器)系统构建原理如图1所示。激光器接口的1脚是输入信号接口,由单片机产生TTL脉冲或连续高电平信号,并由其I/O端口P1.7输出至激光器,若是脉冲信号,激光器将按照脉冲信号的频率、占空比和脉冲个数发射脉冲激光;若该信号是连续高电平信号,激光器将连续出光。激光器接口的4、5、6、12、13脚是激光器的5种出错指示输出信号,对外均表现为电压变化。设计外围电路时将错误输出信号变为TTL电平,然后送至单片机I/O口P1.0-P1.4 这5个端口,由单片机程序实时检测,一旦发现有错误产生,单片机发出指令将控制出光的P1.7口输出信号变为低电平送至激光器接口1,激光器将停止工作,出光停止。同时,P1.0-P1.4 这5个端口还连接了5个LED灯,如果出现错误,则有相应亮灯提示。
图1 激光器控制监视器原理
除激光器接口外,单片机外围接口还有液晶模块和控制按键部分。液晶模块采用点阵字符型液晶显示器(LCD)EDM1604B,其内部由显示屏、控制器、列驱动器和偏压电路组成。在控制器的控制下,模块通过数据总线DB0~DB7和E、R/W、RS 3个输入控制端与单片机89C51接口。液晶显示屏分行显示激光器脉冲激光的频率(FREQ)、占空比(DUTY)、脉冲个数(COUNTS)和剩余脉冲个数(REMAINS)。此4项数据由按键设定,单片机根据它们控制P1.7口的TTL脉冲输出,从而控制激光器出光。频率为0时,激光器连续出光。
按键模块有7个复位型按键SET、LEFT、RIGHT、UP、DOWN、START/STOP、RESET。前5个键在液晶屏幕上对脉冲激光的频率、占空比、脉冲个数进行设定。START/STOP是出光开始和停止复用按键,按奇数次时,控制器根据屏幕设定的脉冲通过P1.7向激光器输出,启动激光器出光,同时显示屏上的剩余脉冲个数不停刷新;剩余脉冲为0时自动停止激光器出光;按偶数次时,该键为Stop功能,拉低P1.7口输出信号,停止激光器出光。
单片机加电后,液晶显示默认的出光频率、占空比和脉冲个数,用户可以用控制按键进行调整。RESET按键提供硬件复位功能,万一操作运行出现故障,则按此键复位控制器。
2 控制器软件设计
控制器软件包括5个模块,分别是脉冲信号输出模块、按键控制模块、液晶显示模块、计算模块和主程序模块。
2.1 脉冲信号输出模块(计时器T0中断)
控制器对激光器输出的控制出光的方波脉冲采用计时器T0中断实现,用户按下START键时,将开启定时器中断和计数。在T0的中断处理程序中,首先进行错误检测,若5个错误检测端口中至少有一个检测到错误发生,则禁止计时器计数,关闭计时器中断并置错误发生的标志变量,直接中断返回。
计时器的中断频率设置为1ms。由屏幕设定的频率、占空比可以计算出一周期脉冲的高低电平各持续多长时间,假设高电平Nms,低电平Mms。每周期的高低电平时间均有T0中断来定时。设第一个周期脉冲从低电平开始,P1.7最初为低电平。中断处理程序中,先进行检错判断,随后重置计数初值,然后进入脉冲高低电平判断。若P1.7为低,则进入低电平产生程序,将M减1,若不为0,直接中断返回;若为0,将P1.7变高,中断返回。在判断脉冲高低电平时,若P1.7为高,进入高电平产生程序,将N减1,若不为0,直接中断返回;若为0,将P1.7变低,然后判断屏幕设定的脉冲个数输出完毕否,若未完,直接中断返回,若剩余脉冲个数为0,则置输出完标志变量,禁止计数器计数和中断,随后中断返回。
2.2 按键控制模块(外部中断1)
6个控制键共用一个外部中断INT1,用低电平触发中断的方式。有键按下时,外部电路将产生一个低电平短脉冲,该脉冲送到INT1引脚,激发中断。中断处理中,延时25ms查询击中的键,若没有低电平,则直接中断返回;否则,根据具体按下的键转移到不同的按键处理程序。在某个按键的处理程序中,首先等待按键释放,然后实现该按键的功能。
对于START/STOP键,按键后,根据计时器T0中断是否已被禁止计数判断将要执行的功能。若计时器中断是禁止状态,则用户要执行的是START功能,程序具体处理是:计算出当前要求脉冲的高低电平时间,启动T0计数和中断,输出脉冲。若计时器中断是开中断状态,则用户要执行的是STOP功能,具体处理是:脉冲输出口P1.7电平拉低,禁止计时器计数和中断。
外部中断1的优先级需高于计时器0的中断优先级,89C51的默认设置符合此项条件。
2.3 液晶显示模块
液晶模块与单片机的接口和指令情况具体可参考芯片手册。本控制器由几个子程序分别实现初始化显示、显示各行英文字母、显示某行数据、显示光标等几项功能。
2.4 计算模块
有一些专门的子程序实现计算功能,如频率、占空比决定的高低电平时间的计算、剩余脉冲个数的计算等。
2.5 主程序
主程序首先进行内部寄存器、相关变量和液晶显示的初始化设置,然后进入液晶显示刷新循环,这是一个主循环,只要控制器控制的激光器出光,剩余脉冲个数一直处于刷新状态。外部按键被按下,发生外部中断,程序就会暂时跳出这个循环。在循环中,等待外部按键中断的同时,进行一些判断。首先判断错误是否发生,如果发生,则不断检错,直到错误消失,才回到主循环。接着,判断计时器T0是否禁止计数。如果禁止,则可能是两种情况:①设定脉冲个数输出完毕,若如此,进行相应处理,返回主循环开始处;②输出脉冲的过程处于停止状态(可能是刚开机、出错或者用户按下STOP键),若如此,直接回到主循环开始处,等待用户排错或者按键干预。具体流程如图2所示。
3 结语
以89C51单片机为内核构建的激光器控制器是一个有外部人机交互接口、内部运算处理并且能够对外输出设定方波的综合系统,涉及到了单片机系统开发与应用中的几项关键技术:单片机的外部按键接口、外部液晶显示接口、单片机定时器中断、单片机外部中断等[2]。本文设计思想和方法对其它需要利用嵌入式单片机产生方波脉冲或者需要利用LED液晶和按键作为接口进行人机交互的应用场合具有重要参考意义。
参考文献
[1] 周立功.增强型80C51单片机速成与实战[M].北京:北京航空航天大学出版社,2003.
[2] 李伯成.基于MCS-51单片机的嵌入式系统设计[M].北京:电子工业出版社,2004.
推荐访问: 激光器 监视器 控制 设计 二氧化