znFAT.docx

上传人:b****3 文档编号:3938845 上传时间:2022-11-26 格式:DOCX 页数:85 大小:43.80KB
下载 相关 举报
znFAT.docx_第1页
第1页 / 共85页
znFAT.docx_第2页
第2页 / 共85页
znFAT.docx_第3页
第3页 / 共85页
znFAT.docx_第4页
第4页 / 共85页
znFAT.docx_第5页
第5页 / 共85页
点击查看更多>>
下载资源
资源描述

znFAT.docx

《znFAT.docx》由会员分享,可在线阅读,更多相关《znFAT.docx(85页珍藏版)》请在冰豆网上搜索。

znFAT.docx

znFAT

#ifndef__UART_H__

#define__UART_H__

//UART相关函数------------------------

voidUART_Init();

voidUART_Send_Byte(unsignedcharmydata);

voidUART_Send_Str(char*s);

voidUART_Send_Enter();

voidu32tostr(unsignedlongdat,char*str);

unsignedlongstrtou32(char*str);

voidUART_Put_Num(unsignedlongdat);

voidUART_Put_Inf(char*inf,unsignedlongdat);

voidbinary(unsignedchardat);

//UART----END-------------------------------

#endif

#ifndef_MYFUN_H_

#define_MYFUN_H_

原创程序模块公共函数部分|

voiddelay(unsignedinttime);//延时函数

voidu32tostr(unsignedlongdat,char*str);//将一个32位的变量dat转为字符串

unsignedlongstrtou32(char*str);//将一个字符串转为32位的变量

#endif

#include

#include

#include"uart.h"

#include"myfun.h"

/**

|振南电子原创程序模块STC51串口操作|

**************************/

/**************************************************************************

-功能描述:

51单片机的串口初始化

-隶属模块:

STC51串口操作

-函数属性:

外部,使用户使用

-参数说明:

-返回说明:

-注:

振南的很多产品均采用串口来进行操作,所以正确的初始化串口十分重要

**************************************************************************/

voidUART_Init()

{

PCON|=0x80;//PCON的最高位SMOD=1时波特率加倍

TMOD=0x20;//时器1为方式2初值自动装入产生波特率

TH1=0xfd;//定时器初始为0XFd,晶振为22.1184MHz,本函数实际产生的波特率为38400bps

TL1=0xfd;//同上

SCON=0x50;//串口设置为方式1,REN=1,允许接收

TR1=1;//启动定时器1

ES=1;//使能串口接收中断,

EA=1;//打开所有中断

}

/**************************************************************************

-功能描述:

51单片机的串口中断处理函数

-隶属模块:

STC51串口操作

-函数属性:

外部,使用户使用(在此中断函数中常用来处理从串口收到的数据)

-参数说明:

-返回说明:

-注:

振南的很多产品,都是配合“超级终端”来进行演示的,在“超级终端”中

敲入的命令就是从计算机的串口发出,由单片机从串口接收,接收到的串口

数据就在此中断函数中进行处理,完成命令接收及处理、命令解析等工作。

**************************************************************************/

voidsio_int()interrupt4using3//串口中断函数

{

ES=0;

//串口中断处理

/*

if(RI)

{

if(SBUF!

=0x08)//如果接收到的是退格(ASCII码为0x08)

cmd_buf[counter++]=SBUF;

else

counter--;

RI=0;

}

if(SBUF==0x0d)

{

cmd_buf[counter-1]=0;

counter=0;

flag=1;

}

*/

ES=1;

}

/**************************************************************************

-功能描述:

51单片机的串口发送字节的函数

-隶属模块:

STC51串口操作

-函数属性:

外部,使用户使用

-参数说明:

mydata:

要发送的一个字节

-返回说明:

-注:

发送一个字节,是串口发送的基础操作

**************************************************************************/

voidUART_Send_Byte(unsignedcharmydata)

{

ES=0;

TI=0;

SBUF=mydata;

while(!

TI);

TI=0;

ES=1;

}

/**************************************************************************

-功能描述:

51单片机的串口发送0d0a,即回车换行

-隶属模块:

STC51串口操作

-函数属性:

外部,使用户使用

-参数说明:

-返回说明:

-注:

此函数就是发送0d0a这两个字节,在“超级终端”上会有回车换行的效果

**************************************************************************/

voidUART_Send_Enter()

{

UART_Send_Byte(0x0d);

UART_Send_Byte(0x0a);

}

/**************************************************************************

-功能描述:

51单片机的串口发送字符串

-隶属模块:

STC51串口操作

-函数属性:

外部,使用户使用

-参数说明:

s:

指向字符串的指针

-返回说明:

-注:

如果在字符串中有'\n',则会发送一个回车换行

**************************************************************************/

voidUART_Send_Str(char*s)

{

intlen=strlen(s)-1;

inti;

for(i=0;i

UART_Send_Byte(s[i]);

if(s[i]=='\n')

{

UART_Send_Enter();

}

else

{

UART_Send_Byte(s[i]);

}

}

/**************************************************************************

-功能描述:

51单片机的串口发送数值

-隶属模块:

STC51串口操作

-函数属性:

外部,使用户使用

-参数说明:

dat:

要发送的数值

-返回说明:

-注:

函数中会将数值转为相应的字符串,发送出去。

比如4567转为"4567"

**************************************************************************/

voidUART_Put_Num(unsignedlongdat)

{

chartemp[20];

u32tostr(dat,temp);

UART_Send_Str(temp);

}

/**************************************************************************

-功能描述:

51单片机的串口发送调试信息

-隶属模块:

STC51串口操作

-函数属性:

外部,使用户使用

-参数说明:

inf:

指向提示信息字符串的指针

dat:

一个数值,前面的提示信息就是在说明这个数值的意义

-返回说明:

-注:

此函数在振南的工程中会经常看到,是方便调试用的

**************************************************************************/

voidUART_Put_Inf(char*inf,unsignedlongdat)

{

UART_Send_Str(inf);

UART_Put_Num(dat);

UART_Send_Str("\n");

}

/*

voidbinary(unsignedchardat)

{

unsignedchari;

unsignedchara[17];

for(i=0;i<8;i++)

{

a[i]=((dat<

'o':

'';

}

a[i]=0;

for(i=0;i

{

UART_Send_Byte(a[i]);

UART_Send_Byte('');

}

}

*/

UART.c

#include

#include

#include"uart.h"

#include"myfun.h"

/*******************************************************

+-----------------------------------------+

|振南电子原创程序模块STC51串口操作|

+-----------------------------------------+

此源码版权属振南全权享有,如欲引用,敬请署名并告知

严禁随意用于商业目的,违者必究,后果自负

振南电子

->产品网站

->产品论坛

->产品网店

->产品咨询QQ:

987582714MSN:

yzn07@

WW:

yzn07

********************************************************/

/**************************************************************************

-功能描述:

51单片机的串口初始化

-隶属模块:

STC51串口操作

-函数属性:

外部,使用户使用

-参数说明:

-返回说明:

-注:

振南的很多产品均采用串口来进行操作,所以正确的初始化串口十分重要

**************************************************************************/

voidUART_Init()

{

PCON|=0x80;//PCON的最高位SMOD=1时波特率加倍

TMOD=0x20;//时器1为方式2初值自动装入产生波特率

TH1=0xfd;//定时器初始为0XFd,晶振为22.1184MHz,本函数实际产生的波特率为38400bps

TL1=0xfd;//同上

SCON=0x50;//串口设置为方式1,REN=1,允许接收

TR1=1;//启动定时器1

ES=1;//使能串口接收中断,

EA=1;//打开所有中断

}

/**************************************************************************

-功能描述:

51单片机的串口中断处理函数

-隶属模块:

STC51串口操作

-函数属性:

外部,使用户使用(在此中断函数中常用来处理从串口收到的数据)

-参数说明:

-返回说明:

-注:

振南的很多产品,都是配合“超级终端”来进行演示的,在“超级终端”中

敲入的命令就是从计算机的串口发出,由单片机从串口接收,接收到的串口

数据就在此中断函数中进行处理,完成命令接收及处理、命令解析等工作。

**************************************************************************/

voidsio_int()interrupt4using3//串口中断函数

{

ES=0;

//串口中断处理

/*

if(RI)

{

if(SBUF!

=0x08)//如果接收到的是退格(ASCII码为0x08)

cmd_buf[counter++]=SBUF;

else

counter--;

RI=0;

}

if(SBUF==0x0d)

{

cmd_buf[counter-1]=0;

counter=0;

flag=1;

}

*/

ES=1;

}

/**************************************************************************

-功能描述:

51单片机的串口发送字节的函数

-隶属模块:

STC51串口操作

-函数属性:

外部,使用户使用

-参数说明:

mydata:

要发送的一个字节

-返回说明:

-注:

发送一个字节,是串口发送的基础操作

**************************************************************************/

voidUART_Send_Byte(unsignedcharmydata)

{

ES=0;

TI=0;

SBUF=mydata;

while(!

TI);

TI=0;

ES=1;

}

/**************************************************************************

-功能描述:

51单片机的串口发送0d0a,即回车换行

-隶属模块:

STC51串口操作

-函数属性:

外部,使用户使用

-参数说明:

-返回说明:

-注:

此函数就是发送0d0a这两个字节,在“超级终端”上会有回车换行的效果

**************************************************************************/

voidUART_Send_Enter()

{

UART_Send_Byte(0x0d);

UART_Send_Byte(0x0a);

}

/**************************************************************************

-功能描述:

51单片机的串口发送字符串

-隶属模块:

STC51串口操作

-函数属性:

外部,使用户使用

-参数说明:

s:

指向字符串的指针

-返回说明:

-注:

如果在字符串中有'\n',则会发送一个回车换行

**************************************************************************/

voidUART_Send_Str(char*s)

{

intlen=strlen(s)-1;

inti;

for(i=0;i

UART_Send_Byte(s[i]);

if(s[i]=='\n')

{

UART_Send_Enter();

}

else

{

UART_Send_Byte(s[i]);

}

}

/**************************************************************************

-功能描述:

51单片机的串口发送数值

-隶属模块:

STC51串口操作

-函数属性:

外部,使用户使用

-参数说明:

dat:

要发送的数值

-返回说明:

-注:

函数中会将数值转为相应的字符串,发送出去。

比如4567转为"4567"

**************************************************************************/

voidUART_Put_Num(unsignedlongdat)

{

chartemp[20];

u32tostr(dat,temp);

UART_Send_Str(temp);

}

/**************************************************************************

-功能描述:

51单片机的串口发送调试信息

-隶属模块:

STC51串口操作

-函数属性:

外部,使用户使用

-参数说明:

inf:

指向提示信息字符串的指针

dat:

一个数值,前面的提示信息就是在说明这个数值的意义

-返回说明:

-注:

此函数在振南的工程中会经常看到,是方便调试用的

**************************************************************************/

voidUART_Put_Inf(char*inf,unsignedlongdat)

{

UART_Send_Str(inf);

UART_Put_Num(dat);

UART_Send_Str("\n");

}

/*

voidbinary(unsignedchardat)

{

unsignedchari;

unsignedchara[17];

for(i=0;i<8;i++)

{

a[i]=((dat<

'o':

'';

}

a[i]=0;

for(i=0;i

{

UART_Send_Byte(a[i]);

UART_Send_Byte('');

}

}

*/

#ifndef_MYTYPE_H_

#define_MYTYPE_H_

#defineUINT8Xunsignedcharxdata

#defineUINT8unsignedchar

#defineUINT16Xunsignedintxdata

#defineUINT16unsignedint

#defineUINT32Xunsginedlongxdata

#defineUINT32unsignedlong

#defineINT8Xcharxdata

#defineINT8char

#defineINT16Xintxdata

#defineINT16int

#defineINT32Xlongxdata

#defineINT32long

#endif

#ifndef__ZNFAT_H__

#define__ZNFAT_H__

#include"mytype.h"//类型重定义

/*******************************************************

+-----------------------------------------+

|振南电子原创程序模块znFAT文件系统5.18|

+-----------------------------------------+

********************************************************/

//znFAT的裁减宏---------------------------------------------------------

//#defineZNFAT_ENTER_DIR//有此宏,函数znFAT_Enter_Dir()参与编译

//#defineZNFAT_OPEN_FILE//有此宏,函数znFAT_Open_File()参与编译

//#defineZNFAT_SEEK_FILE//有此宏,函数znFAT_Seek_File()参与编译

//#defineZNFAT_READ_FILE//有此宏,函数znFAT_Read_File()参与编译

//#defineZNFAT_READ_FILEX//有此宏,函数znFAT_Read_FileX()参与编译

//#defineZNFAT_ADD_DAT//有此宏,函数znFAT_Add_Dat()参与编译

//#defineZNFAT_CREATE_DIR//有此宏,函数znFAT_Create_Dir()参与编译

//#defineZNFAT_CREATE_FILE//有此宏,函数znFAT_Create_File()参与编译

//#defineZNFAT_DEL_FILE//有此宏,函数znFAT_Del_File()参与编译

//#defineZNFAT_XCOPY_FILE//有此宏,函数znFAT_XCopy_File()参与编译

//#defineZNFAT_RENAME_FILE//有此宏,函数znFAT_Rename_File()参与编译

//#defineZNFAT_GET_TOTAL_SIZE//有此宏,函数znFAT_Get_Total_Size()参与编译

//#defineznFAT_GET_REMAIN_CAP//有此宏,函数znFAT_Get_Remain_Cap()参与编译

#include"cj.h"

#include"cj.h"

//----------------------------------------------------------------------

#def

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文化宗教

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1