⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 KZS1212-102Y_stc60s2双485单片机开发板
💻 C
字号:
/*-----------------------------------------------------------
芯片    :STC12C5A60S2
晶振    :11.0592MHZ
开发平台:KEIL
功能    :向SD卡读写一个扇区,如果成功则激活P0口流水灯,如果失败则无流水灯。并且随程序运行向串口发送运行状态。
波特率  :9600BPS
日期    :11.5.19
其他    :本程序软件模拟SPI,随后我会改为硬件SPI

注意    :下载完程序后请复位系统后运行!(切记!!)
-------------------------------------------------------------*/

#include "STC12C5A60S2.h"
#include "uart.h"
#include "sd.h"
#define uchar unsigned char
#define uint unsigned int 

uchar xdata tab[512]; //定义外部ROM,512个字节,数据缓冲区(一个扇区必须写512字节 )

void delay5ms()
{
  uchar a,b;
    for(b=19;b>0;b--)
        for(a=130;a>0;a--);
}

void delay500ms()
{
    uchar a,b,c;
    for(c=23;c>0;c--)
        for(b=152;b>0;b--)
            for(a=70;a>0;a--);
}

void main()
{

	int i;
	uchar flag=0;

	init();                              //初始化串口
	txd_s("串口初始化\n");


	SD_Reset();                         //复位SD卡
	txd_s("SD卡复位完\n");


	SD_Init();	 				//初始化SD卡
	txd_s("SD卡初始化完\n");



	for(i=0;i<512;i++) 
	tab[i]=i;	   				     //向数据缓冲区中写入0~255 0~255,共512个字节
	txd_s("缓冲区写完\n");


	
	SD_Write_Sector(20,tab);          //将数据缓冲区中的512个字节的数据写入SD卡的第20扇区中
 	delay5ms();
 	txd_s("扇区写完\n");

 
 
 	for(i=0;i<512;i++) 			 	//清空数据缓冲区
   	tab[i]=0;
 	txd_s("清缓冲区\n");

 
 
 	SD_Read_Sector(20,tab);			//从SD卡的第20扇区中读取512个字节的数据到数据缓冲区
	txd_s("读扇区完\n");



 	for(i=0;i<512;i++) 
 	if(((uchar)i)!=tab[i])  			//对读出的数据进行匹配,如果不吻合则flag=1,否则flag=0
  	{
   	flag=1;
   	break;
 	 }
	delay5ms();
	txd_s("匹配完毕\n");



 	if(flag==0)	{
	delay5ms();
	txd_s("匹配对 \n");
	P0=0xfe;
	while(1)			{
	P0=P0>>1|P0<<7;	
	delay500ms();			}
				 }

	else 	 		{
	delay5ms();
	txd_s("匹配错 \n");  }
	while(1);

}




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -