2 、C语言移植
由于C语言具有良好的可移植性,编写文件管理程序,推荐在PC机上先实现,再移植至单片机平台。在PC机实现,硬件上只要求PC机有USB口;而软件方面,PC机编程具有以下特点:(1)读写扇区有专用函数;(2)要使用伪指令#pragma pack(1),使编译后的结构体字节对齐;(3)读写字或双字数据不必进行大小端模式的转换。
对于读写扇区,主要有以下两种方案:
其一,调用Windows API函数进行基本扇区读写。开发工具Dev—c++,包含头文件windows.h。方法是调用CreateFile( )打开设备端口;接着用SetFilePointer( )调整字节位置;最后用ReadFile( )或WriteFile( )进行扇区读写。
其二,调用DOS函数进行扇区读写。有两组函数供调用:(1)biosdisk( ),功能是使用中断0x13,直接调用BIOS进行磁盘操作;(2)absread( )及abswrite( ),可读写U盘的逻辑扇区,调用前须确定存储设备盘符,需指定待操作的逻辑扇区号。
在PC机上编写文件管理程序,无需外接硬件,操作简易;软件调试通过之后,代码可高效移植至单片机平台,极大提高了项目的开发效率。
3、 结果比较
项目中本部分程序篇幅670行,文件管理层自编程序进行调试,在型号ATMega64的AVR单片机平台上测试通过。表1为采用ICCAVR编译后资源占用情况的对比,可见自编代码占用资源仅占后者的70%,远胜于后者。至于执行单步调试、修改延时等方面,其直观灵活性更明显。
4 、结束语
在所涉及项目中,通过自编文件管理操作代码,使程序更为优化,极大减小了主系统的负担。按此方法设计的测温系统,能实时记录危险时刻的温度、时间数据,操作者只需往USB接口插入存储设备,系统即将数据以文本写入设备,简单实用,易于推广。通过分析读取到的数据,对确定电力部件发热状况、找出危险因素并进行预防,均有实用价值。