智能仪表火灾报警仪数据编辑与菜单管理研究
2010-05-10万明明
艾 红,万明明
(北京信息科技大学 自动化学院 控制工程系,北京 100192)
0 引言
高新技术的迅猛发展,为仪器仪表的发展提供了强大的推动力。仪器仪表产品的高科技化必将成为仪器仪表科技与产业的发展主流。仪表的发展朝着数字化、智能化、网络化、多功能化的方向快速趋近。同时仪表性能也不断提高,如速度更快、灵敏度更高、稳定性更好等[1]。智能仪表火灾报警仪监控系统能够通过人机交互实现仪表功能。可以使火灾报警仪当温度超出上限时实现报警。可以设置时间实现实时显示时间。可以设置房间号和对应报警上限值。智能仪表的数据输入编辑、光标闪烁、选择菜单中相应功能、时间设置、实时时间显示等监控程序在火灾报警仪中起着关键的作用。
1 智能仪表火灾报警仪监控系统实现的功能
智能仪表火灾报警仪监控系统实现的功能有显示当前时间、设置时间值、设置报警上限、定检查询、查看报警信息、温度巡检及系统初始化。进入这些功能的主要方式是从功能菜单进入,火灾报警仪设置了一个主菜单和一个二级菜单。当屏幕处于任何状态下,按下键盘中的菜单键即可进入系统主菜单,主菜单将显示四行汉字,分别是“时间信息”,“设置上限”,“定检”和“报警信息”。通过上下键选中某一行后可以执行相应功能,当选中“时间信息”并按下确认键时,屏幕将显示二级菜单,二级菜单显示两行汉字,提供了两项选择“显示时间”与“设置时间”
1.1 智能仪表时间设置功能
智能仪表火灾报警仪需要记录报警发生的时间。允许操作员实现设置时间值的功能。操作员手工从键盘置入年、月、日、时、分、秒信息。具有当前输入位的光标闪烁功能,具有时间值输入错误时的退格删除功能,具有输入错误数据时的错误提示功能。时间设置功能的显示画面如图1所示。
图1 设置时间值功能画面
在菜单处理程序中,程序设置了一个功能号存储单元。当操作员通过键盘操作选中了设置时间,那么当按下确认键时,程序将使用功能跳转执行调用设置时间程序,完成执行设置时间的操作。
1.2 智能仪表火灾报警仪实时时间显示功能
智能仪表火灾报警仪采用DS1302时钟芯片实现时间的实时显示。能够及时刷新屏幕保证时间显示的准确性。时间显示功能为操作员提供当前的时间信息,也可以对时间设置功能进行验证。为了时间显示不打断正常的温度采集程序,时间值的刷新功能放在了整个温度采集周期的最后一个阶段,即当完成了整个温度采集周期后才刷新一次显示时间。又由于一个温度采集周期的时间不能保证为一秒钟,因此为了显示时间的准确,时间显示功能提供的时间值只精确到了“分”。为了补偿因为缺少“秒”时间的跳动而造成的死板界面,该功能在显示时间界面上增加了一个动态显示,在每次刷新时间时,界面的上下沿都会增加一个点或者消除一个点,让人能够感到时间在走动。显示时间的画面如图2所示。
图2 时间显示画面
1.3 智能仪表系统初始化功能
火灾报警仪中采用DS18B20数字温度传感器作为感温元件,系统中存储器由24C256组成,用于存储报警信息。系统初始化功能完成的任务是重写存储器E2PROM中的传感器序列号,重写报警上限值和清空报警信息存储区,同时还将对传感器写入默认报警上限值。其目的是在系统第一次运行或更换了E2PROM芯片后执行系统初始化功能,以写入系统正常运行所必需的信息。由于系统初始化功能可能会丢失一些有用信息,因此初始化功能并没有在主菜单中显示,而需要操作员在菜单状态下输入功能码方可实现,因此具有一定的级别并防止误操作。在执行初始化程序之前,屏幕还将提示是否进行初始化的确认信息,以防误操作引起不必要的损失。
2 显示器地址排列与显示程序基本思路
2.1 液晶显示器的显示地址排列
智能仪表监控功能的实现需要键盘和显示器的密切配合。火灾报警仪中使用的RT12864M液晶显示器不仅可以显示汉字,而且在一个汉字位置可以显示两个ASCII码所对应的字符。在进行显示操作时,为了方便显示数据的定位,显示器为每个汉字显示位定义了一个地址,地址在实际显示屏中的相对位置如表1 所示。
2.2 显示程序基本思路
基于串行接口的汉字液晶显示器RT12864M,为了实现正确显示,需要向液晶显示器串行传送3个字节。当向液晶显示器发送指令或数据时,如果发送第1个字节为F8H,则后续字节2和字节3为指令内容。如果发送第一个字节为FAH,则后续字节2和字节3即为要显示数据的ASCII码或汉字机内码的高字节和低字节。向液晶显示器发送三个字节的子程序为PR1。PR1子程序中将使用DATA3和DATA2存储器单元的内容。单片机内部RAM的DATA2单元存放有要发送的指令或数据,DATA3单元存放有要发送的第1个字节内容。
2.3 屏幕显示方式
屏幕显示是为了对操作过程输出可视化信息,是实现监控功能不可缺少的一部分。设计中采用的液晶显示器操作方式,按照一次性显示字符的多少,可分为单个地址显示和连续多个地址显示两种方式。单个地址显示的含义是,每次显示时都要先向显示器发送一个字节的显示地址,然后发送两个字节的显示数据;而连续多个地址显示的含义是,一开始时先向显示器发送一个字节的显示起始地址,然后接着向显示器发送一串连续显示的数据。
单个地址显示通常用于显示单个数据或多个地址不连续的数据。如时间显示就采用了单个地址显示方式。在每次时间更新时,屏幕上的内容:“年”、“月”、“日”、“时”、“分”并不更新,而更新的仅是时间数据。由于在该界面下,时间数据的显示地址并不连续,因此只能用单个地址显示方式显示。
连续多个地址显示通常用于显示多个连续地址的数据。例如监控功能实现中各种功能界面的切换,由于各功能的界面差异较大,因此在刚进入时需要调用刷屏显示,此时的显示可以用连续多个地址显示方式。这时只需发送给显示器一个首地址,然后连续将显示数据发送给显示器,这样能够节省多次发送地址的时间,提高显示效率。
3 数据输入与编辑时光标闪烁功能
数据输入与编辑功能包括了一段光标闪烁功能,实现原理是由一位状态标记位来决定光标的显示或隐藏。光标闪烁程序根据目前光标的显示位置以及光标状态亮和灭的标记位来更新光标所在的显示地址内容。程序设计时MARK15为光标亮或灭的标志。MARK15=1表示光标亮,而MARK15=0表示光标灭。光标闪烁即实现闪烁下划线__的功能。在程序设计时要考虑光标__所处的位置。由于一个汉字显示位置为两个数字,两个数字的显示需要向液晶显示器发送两个数字的ASCII码。5FH为光标__的ASCII码,执行此程序前高位数字的内容存放在R5寄存器中,低位数字的内容存放在R6寄存器中。程序执行时如果光标在高位,则R5=5FH,R6的内容为数字。如果光标在低位,则R5的内容为数字,R6=5FH。程序中首先根据标志MARK15判断光标是亮还是灭,如果MARK15=1,说明光标处于亮的状态,则显示器将显示R5和R6对应的内容。如果MARK15=0说明光标处于灭的状态,则要判断此时光标处于高位还是低位,光标在高位时,使R5寄存器值=20H,R6的内容保持不变,此时显示器对应地址的高位显示空格即灭,而显示器对应地址的低位显示R6寄存器的内容。如果MARK15=0光标处于灭的状态,而光标在低位时,高位R5的内容保持不变,使R6寄存器值=20H,此时显示器对应地址的高位显示R5寄存器内容,而显示器对应地址的低位显示空格即灭。程序执行前R7寄存器内容为要显示数字所在显示器地址。实现光标闪烁程序如下:
光标状态亮和灭的标记位MARK15在温度采集程序运行一个周期后,将MARK15进行一次求反操作,并调用一次光标闪烁程序。通过与上述程序的结合就可以解决在数据输入和编辑时光标的闪烁问题。
4 菜单管理功能
在软件编程方面,菜单的编写主要集中在如何实现由键盘控制按键即控制向上键↑或向下键↓的移动选中相应功能,以及按下确定键OK时执行相应功能的程序跳转。由于火灾报警仪采用的液晶显示器RT12864M在相邻的行与行之间,显示器显示字符的地址不连续。因此,在键盘按键操作向上键↑向上选中一行或向下键↓向下选中一行时,程序需要逐行比较以确定所选中的行。选中行在显示器上用行号标志→来指示。
程序设计时为了实现功能跳转,对不同功能设置了不同功能号,温度巡检界面功能号为00H,刚进入主菜单时功能号为01H,此后功能号根据向上键↑和向下键↓进行加减或者由程序改变功能号。以输入向上按键↑为例,当操作员按下键盘上的↑键时,选中上一行菜单,显示器上新选中的一行将重新显示选中行号标志 →。按键↑实现上移一行以及对应功能号计算的程序如下所示。
程序中设计了显示二级菜单MARK27标志。MARK27=1,表示处于显示二级菜单状态。存储单元LINE_NUM表示存放当前指针行号。一级菜单即主菜单中,当行号标志 → 指示在第1行、第2行、第3行和第4行时,功能号分别为01H、02H、03H和04H。二级菜单中,当行号标志 → 指示在第1行和第2行时,功能号分别为0AH和09H。
SEC_M为二级菜单中按键↑的处理程序。CL_PRINT为换行显示子程序。当对主菜单或二级菜单进行操作时,选中一行汉字,则有对应行号标志指示。行号标志为 →。程序设计时显示器显示当前选中行号标志 → 的汉字机内码为A1FAH,每次根据新行号决定了当前选中行号标志 → 的显示地址。新行号的显示地址在R2寄存器中存放。而原行号的显示地址在LINE_NUM内存单元中存放。菜单在显示器第1行、第2行、第3行和第4行的显示地址分别为81H、91H、89H和99H。由于显示地址为汉字显示地址,因此清除原行号的选中标志 → 时,需在原行号的相应地址向液晶显示器发送两个空格的ASCII码20H。
5 结束语
近年来新型微处理器技术与智能化技术的不断发展和推广应用,迅速改变着仪器仪表的本质特征,并使其具备和拥有了传统仪器仪表无法实现的、全新的功能[2]。智能仪表人机交互功能使用户能够对智能仪表进行状态干预和数据输入;也能够向用户报告运行状态与处理结果。内含微处理器的智能仪表不仅精度高、测量范围广,而且在复杂数据处理,人机对话过程中都具有常规仪表所无法比拟的优点[3]。设计的智能仪表火灾报警仪监控程序可靠性高,性能稳定,实现了多点温度监视与报警功能。
[1] 孙迎远,郭国选,张婷.控制仪表在我国测控领域中的应用及展望[J].内江科技,2008,(1):41-43.
[2] 吴铮,周剑利.智能测温仪表的研究与实现[J].仪器仪表与分析监测,2007,(3):30-31.
[3] 周燕玲,王羡欠.工业控制中通用型智能仪表系统设计[J].微计算机信息,2008.