- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
例K6-1
//例K5-1.c
//该程序的功能是通过控制芯片CH376对U盘文件和目录进行操作
//在单片机系统中使用U盘,主要目的是长期保存大批量的文件数据,并方便与PC机进行数据交换
//在一般情况下,这些数据会转移到PC机,并由它做进一步的后续处理
//所以该实验安排了以下的硬件环境:51实验主板+keil仿真器+CH376读写U盘扩展板
//在该扩展板上还安排有转接PC机USB口的电缆接口和切换开关
//系统所用CH376为SSOP20封装的CH376T,与单片机的通信采用软件模拟SPI,系统时钟为11.0592MHz,
//该程序首先对CH376按主机工作方式进行初始化,然后等待U盘的插入和就绪
//此后,用户可通过按键以字节操作方式(另一种为扇区操作方式)实现以下功能
//K1键--打开或创建1级子目录/20yy,修改它的生成日期和时间,然后关闭
//K2键--在前一操作的基础上,打开或创建2级子目录/20yy/mm-dd,修改它的生成日期和时间,然后关闭
//K3键--在2级子目录下打开或创建文本文件DEMO1.TXT,追加模拟数据块,修改目录项后关文件
//K4键--第1步:在1级子目录下创建二进制文件DEMO2.DAT,写入18B20测温数据2B和读1302得到的时间数据6B
//修改目录项后关文件;第2步:再次打开该文件,读取文件中的8B数据,先显示十六进制原始数据
//经处理后再显示实际的温度,年月日和时分秒
//若程序运行出错(如中途拔出U盘),它就会进入一个出错处理的死循环,此时实验主板上的8个红色LED会不断闪烁
//注意程序中的C函数分别来自本书作者(函数名全部小写)和沁恒公司(函数名大小写并用)
//由沁恒公司提供的源代码以文件包含的形式被利用,其中
//1,文件SPI_SW.C和HAL_BASE.C中的一些源码要根据系统的具体硬件连接和时钟频率进行修改
//2,文件DEBUG.C中的源码用于系统出错指示和调试时能通过串口来输出调试信息,一般也要适当修改
//3,文件FILE_SYS.C中的源码不会全部用到,对那些没有用到C函数最后应进行清理(一般是将它们注释掉)
//该程序在运行中会输出较多的调试信息,注意它们将显示在串口窗口#1,这些信息与输出到文件中的数据不是一回事
//还要注意程序对文件DEMO1.TXT和DEMO2.DAT的操作有以下不同
//1,文件打开方式不同:前者是打开文件,若原先没有则创建;后者是创建文件,若原先有将抹去重建
//2,数据表示形式不同:前者是写入文本,并以逗号来间隔数据,以回车换行来结束记录;后者是直接写入原始数据
//3,数据写入方式不同:前者是追加数据到文件尾;后者是从头写入数据,所以原有数据将被覆盖
//Program Size: data=121.2 xdata=0 code=7411
//以下头文件由uVision提供,存于系统子目录
#include reg52.h
#include stdio.h
#include string.h
#include intrins.h
#include absacc.h
//以下文件由沁恒公司提供,存于当前项目,有些经过修改
#include CH376INC.H //说明操作CH376需要用到的数据和数据结构
#include HAL.H //说明软件延时函数
#include HAL_BASE.C //经修改,内含2个软件延时函数
#include SPI_SW.C //经修改,内含软件模拟SPI需要用到的一批函数
#include DEBUG.H //说明系统出错处理和UART串口初始化函数
#include DEBUG.C //经修改,内含出错处理和UART串口初始化函数
#define EN_DIR_CREATE 1 //允许新建多级子目录
#include FILE_SYS.H //说明一批文件目录操作类的函数和数据
#include FILE_SYS.C //内含一批文件目录操作类的函数
#define uchar unsigned char
#define uint unsigned int
#define ON 0
#define OFF 1
#define FILE_MODIFY 0
#define FILE_CREATE 1
#define RST_1302 A15=0;A14=A13=1; //1302复位有效
#define NRST_1302 A15=A14=A13=0; //1302复位无效
#define skiprom_cmd1820(); wr_byte18
文档评论(0)