用C51编程实现流量计界面的汉字显示

   2023-07-11 互联网2730
核心提示:0 引言在开发一个单片机应用系统时,系统程序的编写效率在很大程度上决定了目标系统的最终成效。早期在研制单片机应用系统时,大

    0 引言

    在开发一个单片机应用系统时,系统程序的编写效率在很大程度上决定了目标系统的最终成效。早期在研制单片机应用系统时,大多以汇编语言作为软件工具。只是因其能够直接操作机器硬件,且指令的执行速度快。但由于汇编语言不是一种结构化程序设计语言,程序编写和调试较为困难,因而系统开发效率并不高。随着单片机硬件性能特别是时钟频率的提高,为用高效率程序设计语言开发单片机应用系统提供了条件。

    
    1 C51语言作为单片机应用系统开发的软件工具

    C51语言是一种单片机高级程序设计语言,是C语言的一种特殊扩充。与通用的计算机程序设计语言C语言相似,C51语言既具有高级语言的各种特征,又能直接对计算机的硬件进行操作,采用C51语言编写的源程序能够很容易地在不同类型的计算机之间进行移植,而且可以进行结构化程序设计。此外,用C51语言编写的源程序结构明了、简捷,可读性更好。近年来出现了若干种专为微型计算机设计的C语言编译器,如美国Franklin软件公司推出的FranklinC51就是一种专为8051系列单片机设计的高性能的C编译器,它采用符合ANSI标准的C语言编程,能够产生极高速度和及其简捷形式的目标代码,在代码效率和执行速度上完全可以和汇编语言相比,并且具有十分丰富的库函数可供用户直接调用,从而极大地提高了程序的编写效率。C51编译器支持模块化程序设计,各模块源程序用C51语言编写后由C51编译器生成一个可重新定位的目标文件,并且可为程序调试提供必要的符号信息。C51能够进行多程序模块的连接,可以自动从LIB51库中选出所需要的库函数与各目标模块连接在一起,生成绝对目标输出文件,组成一个完整的应用程序。

    由此可见,采用C51语言编程来解决单片机系统的程序设计问题要比采用汇编语言编程容易和有效得多。笔者用C51语言对T6963C图形液晶显示器进行编程设计了超声波流量计应用软件。经过静态和流态测量试验证实,测量速度与用汇编语言编程的同类产品相比十分接近,而从整个应用系统的开发过程而言,用C51语言编程却显得更为快捷和方便。

    2 用C51语言编程的T6963C图形液晶显示器的显示方法

    用C51语言编程对T6963C图形液晶显示器进行写操作十分方便。T6963C图形液晶显示器具有同时显示汉字与字符的功能,通过对文本特征的设置,可使显示字符闪烁或“负向”显示,内部字符发生器可提供128个字符以代码形式调用。目前常用的各种液晶显示器中,商家一般仅提供汇编语言的使用范例,而用户在设计有关液晶显示器的系统时大多也习惯性地使用汇编进行编程,尽管其程序编写与调试都比较麻烦。而用C51语言就方便多了,只要给子程序的相应形式参数赋以特定的值调用子程序就行了。以下对T6963C图形液晶显示器编程的子程序经反复试验确认正确无误,具有实用性,现介绍如下:

    首先定义T6963C图形液晶显示器状态特征字t6963c及字模数据cgtab[]

    流量计信息网内容图片

    2.1 状态位判断程序

    2.1.1 判状态位t0、t1子程序(读写指令和读写数据状态),在写指令的读、写数据之前这两个标志位必须同时为“1”

    流量计信息网内容图片

    2.1.2 判状态位t3子程序(数据自动写状态),当设置为自动写方式后,计算机可以连续地将显示数据写入显示存储区,每写一次,地址指针自动增加1,直至写操作完,此时设置自动写结束。

    流量计信息网内容图片

    2.2 写指令程序

    以下为通用程序,输入相应的参数后调用程序,便能完成写指令操作。

    2.2.1 写双字节参数指令子程序

    流量计信息网内容图片

    流量计信息网内容图片

    2.2.2 写单字节参数指令子程序

    流量计信息网内容图片

    2.2.3 写指令子程序

    流量计信息网内容图片

    2.3 初始化程序

    该程序为通用设置程序,主要是对显示区域的设置和显示方式的设置,在240×128规模以内的液晶显示模块都适用。这个程序只需在主程序对系统初始化时调用一次就可以了,需要时仍可改变设置。

    流量计信息网内容图片

    文本显示区域首地址

    流量计信息网内容图片

    文本显示区域宽度即每行显示的字节数

    流量计信息网内容图片

    图形显示区域首地址或文本属性区域首地址

    流量计信息网内容图片

    图形显示区域宽度即每行显示的字节数

    流量计信息网内容图片

    2.4 清显示RAM区子程序

    该程序将包含文本显示区、文本特征区、图形显示区和CGRAM的8K显示缓冲区的内容全部清零。可以初始化时使用和在全显示缓冲区需要清零时使用。

    流量计信息网内容图片

    2.5 建立CGRAM子程序(地址设定在代码为80H处起)

    该程序是在内部CGRAM有效时建立CGRAM的子程序,将显示汉字的字模数据先写入CGRAM中,定义相应的代码,再根据字模的代码调用子程序从而将汉字在屏上显示出来。一个汉字字模由4个8×8点阵字符字模组合而成,所以一个汉字要占用4个代码,第一个为该汉字的代码,其余3个为隐含代码。

    流量计信息网内容图片

    流量计信息网内容图片

    2.6 西文字符写入子程序(文本属性显示方式的应用)

    给定显示屏上的显示坐标(单位:字符)和字符代码(字符代码见T6963C内部字符集),用下面的程序可将内部ROM中任一字符在屏上显示出来。

    流量计信息网内容图片

     unsignedinto_x,o_y;//o_x为显示字符屏上X坐标,o_y为显示字符屏上Y坐标

    流量计信息网内容图片

    2.7 汉字写入子程序(文本属性显示方式的应用)

    如果已建立了汉字CGRAM定义了相应的汉字代码,输入显示坐标(单位:字符)、汉字代码和汉字个数,调用本程序可将其在屏上显示出来。

    流量计信息网内容图片

     unsignedinto_x,o_y;//o_x为显示汉字屏上X坐标,o_y为显示汉字屏上Y坐标

     unsignedcharhzCODe,words;//hzcode为汉字代码,words为写入汉字个数

    流量计信息网内容图片

    流量计信息网内容图片

    流量计信息网内容图片

    定义了字模数据以后调用上述子程序,只需输入不同的参数,就可设计出有关流量计的各种汉字菜单界面,通过键盘查询方式逐级调用。与字符显示器相比,界面友好、新颖,用户使用更为方便。下面的例子可在液晶屏上X坐标=12,Y坐标=3处显示“:流量:”光标在“:”下方闪烁。仅用几条语句调用上述子程序就可实现。

    流量计信息网内容图片

    流量计信息网内容图片

    3 结论

    与汇编语言编写的流量计应用系统相比,对相同的数据采样次数、计算模式和测量环境,经过静态和动态试验证明,C51语言编写的应用系统代码效率之高、执行速度之快,完全能够与汇编语言相媲美,而更重要的是程序编写调试更加方便开发时间大大缩短。从这样的意义说,用C51语言开发单片机应用软件是非常有效的。文中给出的子程序经过反复试验证明正确无误,可以直接引用。

    参考文献

    [1]徐爱钧、彭秀华,单片机高级语言C51应用程序设计,北京:电子工业出版社,1998.6
    [2]李维諟、郭强,液晶显示应用技术,北京:电子工业出版社,2000.3


 
举报收藏 0打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  隐私政策  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅