📄 main.lst
字号:
C51 COMPILER V8.05a MAIN 06/15/2011 17:32:42 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND TABS(5)
line level source
1 /*-----------------------------------------------------------
2 芯片 :STC12C5A60S2
3 晶振 :11.0592MHZ
4 开发平台:KEIL
5 功能 :向SD卡读写一个扇区,如果成功则激活P0口流水灯,如果失败则无流水灯。并且随程序运行向串口发送运行状
-态。
6 波特率 :9600BPS
7 日期 :11.5.19
8 其他 :本程序软件模拟SPI,随后我会改为硬件SPI
9
10 注意 :下载完程序后请复位系统后运行!(切记!!)
11 -------------------------------------------------------------*/
12
13 #include "STC12C5A60S2.h"
14 #include "uart.h"
15 #include "sd.h"
16 #define uchar unsigned char
17 #define uint unsigned int
18
19 uchar xdata tab[512]; //定义外部ROM,512个字节,数据缓冲区(一个扇区必须写512字节 )
20
21 void delay5ms()
22 {
23 1 uchar a,b;
24 1 for(b=19;b>0;b--)
25 1 for(a=130;a>0;a--);
26 1 }
27
28 void delay500ms()
29 {
30 1 uchar a,b,c;
31 1 for(c=23;c>0;c--)
32 1 for(b=152;b>0;b--)
33 1 for(a=70;a>0;a--);
34 1 }
35
36 void main()
37 {
38 1
39 1 int i;
40 1 uchar flag=0;
41 1
42 1 init(); //初始化串口
43 1 txd_s("串口初始化\n");
44 1
45 1
46 1 SD_Reset(); //复位SD卡
47 1 txd_s("SD卡复位完\n");
48 1
49 1
50 1 SD_Init(); //初始化SD卡
51 1 txd_s("SD卡初始化完\n");
52 1
53 1
54 1
C51 COMPILER V8.05a MAIN 06/15/2011 17:32:42 PAGE 2
55 1 for(i=0;i<512;i++)
56 1 tab[i]=i; //向数据缓冲区中写入0~255 0~255,共512个字节
57 1 txd_s("缓冲区写完\n");
58 1
59 1
60 1
61 1 SD_Write_Sector(20,tab); //将数据缓冲区中的512个字节的数据写入SD卡的第20扇区中
62 1 delay5ms();
63 1 txd_s("扇区写完\n");
64 1
65 1
66 1
67 1 for(i=0;i<512;i++) //清空数据缓冲区
68 1 tab[i]=0;
69 1 txd_s("清缓冲区\n");
70 1
71 1
72 1
73 1 SD_Read_Sector(20,tab); //从SD卡的第20扇区中读取512个字节的数据到数据缓冲区
74 1 txd_s("读扇区完\n");
75 1
76 1
77 1
78 1 for(i=0;i<512;i++)
79 1 if(((uchar)i)!=tab[i]) //对读出的数据进行匹配,如果不吻合则flag=1,否则flag=0
80 1 {
81 2 flag=1;
82 2 break;
83 2 }
84 1 delay5ms();
85 1 txd_s("匹配完毕\n");
86 1
87 1
88 1
89 1 if(flag==0) {
90 2 delay5ms();
91 2 txd_s("匹配对 \n");
92 2 P0=0xfe;
93 2 while(1) {
94 3 P0=P0>>1|P0<<7;
95 3 delay500ms(); }
96 2 }
97 1
98 1 else {
99 2 delay5ms();
100 2 txd_s("匹配错 \n"); }
101 1 while(1);
102 1
103 1 }
104
105
106
107
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 277 ----
CONSTANT SIZE = 108 ----
XDATA SIZE = 512 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 1
IDATA SIZE = ---- ----
C51 COMPILER V8.05a MAIN 06/15/2011 17:32:42 PAGE 3
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -