“Hex专家”应用实例

🏠 首页 《无线电》杂志 2005年 🔗 第9期 🔗 第39页 分类:电脑·单片机·通信 🔗 邢矫健 🔗

Hex文件是由Intel制定的一种记录16进制数据的文件格式。用汇编语言编写好的单片机控制程序,都要用专门的编译软件生成16进制的程序代码,一般都会被保存为Hex文件格式,然后就可以用编程器烧录到单片机的程序存储器中。有些单片机仿真软件也只认Hex文件,不认其他文件。

单片机爱好者都希望能把自己编写的程序直接写入单片机的程序存储器,这可以使用各种各样的串口调试软件来实现。通过计算机串口与单片机串行口用三芯线缆连接,再使用串口调试软件,就可实现简单的16进制数据和代码的“交流”。数据交流是实现了,但是这样的“交流”只能发送和接收文本形式的16进制数据,如“01 1A 7F AB ”,各种串口调试器都无法直接发送以Hex文件格式保存的程序代码数据流,也无法将从单片机端接收到的程序代码数据保存为Hex文件形式。

“Hex专家”软件可以帮您解决上面的问题,它用于将Hex文件转化成可通过串口调试器发送的16进制数据流形式,同时也可以反过来将串口调试器接收到的程序数据代码直接保存为Hex文件形式。其软件界面如图1所示。

图11
图11 🔍原图 (285×324)

使用方法

运行“Hex专家”,点击图1中的“打开Hex文件”按钮,在弹出的对话框中找到并选中要发送的Hex文件,点击确定后,在文本框中就已经出现转换好的16进制数据流。点击“剪切到剪贴板”按钮,将转换好的数据流文本送入剪贴板,然后粘贴到串口调试器的发送框里,就能将Hex文件中的程序代码数据通过计算机串口发送到单片机系统的串行口了。再说明一点,当Hex文件较大时,进度条将显示转换进程,避免使用者因等待而产生焦躁感觉。

当需要将串口调试器接收到的程序代码数据保存为Hex文件形式时,只需将程序代码复制到“Hex专家”的文本框中,再点击“保存为Hex文件”按钮。在弹出的保存对话框中输入一个文件名,点击确定后,已保存了的Hex文件就会出现在相应的保存目录下。同样,当Hex文件较大时,进度条将显示保存的进程。如果程序代码数据不是从第一个存储单元开始的,可以设定“起始单元地址”(四位十六进制数)即可从设定的地址开始记录程序代码内容,不过“起始单元地址”为“0000”时存储速度会更快。

应用实例

笔者购得一个二手的带汉字驱动板的液晶显示模块。液晶显示模块有说明书,但汉字驱动板则没有说明。驱动板上有8031、27256等芯片,通过简单的电路分析,我知道了驱动板上的液晶模块接口与8031口线的关系,还有一个外部接口与8031口线的关系。然而,不知道芯片内保存着的程序代码,只知道汉字驱动板的工作方式,就无法使用驱动板和它的接口。从电路板上看,程序代码和字库数据都应该被保存在27256芯片中。将27256芯片从IC插座上拔下,插入另一块与计算机串口连接的单片机系统板上。将27256 芯片内的程序代码部分的数据(0000H~0FFFH部分)读出并发送到串口调试器中。这里,笔者使用的是串口调试助手软件(见图2,下载地址: http://www.482.com/downinfo/5480.html),这一软件的好处是可以通过缓冲接收较多数据,不溢出,不丢失。具体的读取和串行发送程序,在此就不详述了。

图2
图2 🔍原图 (583×407)

将串口调试器接收框中的数据文本内容,复制到“Hex专家”的文本框中。点击“保存为Hex文件”按钮,将程序代码数据保存为Hex文件形式。

运行一个反汇编程序软件(可参考本刊今年第3期介绍反汇编软件的文章),打开刚才保存的Hex文件。反汇编软件会自动将程序代码转变成汇编语言的程序文本(图3)。继续分析这一汇编语言程序,汉字驱动板的工作原理就完全清楚了,汉字驱动板也就可以为我所用了。

图3
图3 🔍原图 (548×446)

“Hex专家”是笔者编写的一个小巧、实用的免费软件,读者可在本期配刊光盘中找到它。该软件没有加入串口收发的功能。欢迎单片机和VB方面的爱好者相互交流,将“Hex专家”软件不断完善,成为单片机爱好者手中的好工具。

文/邢矫健