📄 _main.lst
字号:
C51 COMPILER V8.09 _MAIN 05/19/2011 23:29:38 PAGE 1
C51 COMPILER V8.09, COMPILATION OF MODULE _MAIN
OBJECT MODULE PLACED IN _main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE _main.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "c8051f340.h"
2 #include "uart0_f340.h"
3 #include "Delay.h"
4 #include "znFAT.h"
5 #include "sd.h"
6 #include "string.h"
7
8 #include "test_mp3.h"
9 /*********************/
10 #include<f340_init.h>
11 #include<intrins.h>
12
13 sbit yy=P2^4;
14 sbit Tt=P0^1;
15 sbit ki=P0^2;
16 static k;
17 unsigned int Xx,Z,time;
18 /****************************/
19 unsigned long i,h,AddrTemp,sector,fla;
20 unsigned char Dev_No; //设备号
21 struct znFAT_Init_Arg *pArg; //用于指针文件系统参数集合的指针
22 struct znFAT_Init_Arg Init_Arg_SDCARD; //文件系统参数集合,用于记录文件系统的重要参数
23 struct FileInfoStruct FileInfo;
24 uchar buffer[512];
25 /******************************************************/
26 unsigned int code num[]={100,106,112,118,124,130,136,142,148,153,
27 158,163,168,172,177,180,184,187,190,192,
28 195,196,198,199,199,200,199,199,198,196,
29 195,192,190,187,184,180,177,172,168,163,
30 158,153,148,142,136,130,124,118,112,106,
31 100,93,87,81,75,69,63,57,51,46,41,36,31,
32 27,22,19,15,12,9,7,4,3,1,
33 0,0,0,0,0,1,3,4,7,9,
34 12,15,19,22,27,31,36,41,46,51,
35 57,63,69,75,81,87,93,99
36 };
37 void main()
38 {
39 1
40 1 h=0;
41 1 fla=1;
42 1 f340_io_osc_init();
43 1 OSCICN=0x83; //内部高频振荡器控制寄存器
44 1
45 1
46 1 /*******************************/
47 1 Init_Device();//oscilator,IO口,uart初始化,uart为高优先级
48 1 znFAT_Device_Init(); //存储设备初始化,即SD卡初始化,SD卡复位
49 1 pArg=&Init_Arg_SDCARD; //指针指向SD卡文件系统参数集合,znFAT将从这个集合中获取参数
50 1 Dev_No=SDCARD; //设备号为SDCARD,znFAT依照此设备号选择存储设备驱动
51 1 znFAT_Init(); //文件系统初始化
52 1 UART_Put_Inf("总存储容量:(字节)",pArg->Total_Size); //从串口输出各种参数信息
53 1 UART_Put_Inf("每扇区字节:(个)",pArg->BytesPerSector);
54 1 UART_Put_Inf("每簇扇区:(个)",pArg->SectorsPerClust);
55 1
C51 COMPILER V8.09 _MAIN 05/19/2011 23:29:38 PAGE 2
56 1
57 1 //"\\解脱-~1."\\飘雪-8~1.WAV"
58 1 // "\\*.wav"
59 1 if(!znFAT_Open_File(&FileInfo,"\\*.WAV",0,1)) //打开SD卡根目录下的test.txt文件
60 1 {
61 2 UART_Send_Str("打开文件成功\n"); //从串口输出文件参数信息
62 2 UART_Send_Str("文件名为:");
63 2 UART_Send_Str(FileInfo.FileName);
64 2 UART_Send_Enter();
65 2 UART_Put_Inf("文件大小(字节):",FileInfo.FileSize);
66 2 k=FileInfo.FileSize/512;//文件大小/512
67 2 UART_Put_Num(k);
68 2 UART_Put_Inf("文件在当前扇区位置:",FileInfo.FileCurPos);
69 2 UART_Put_Inf("文件当前扇区:",FileInfo.FileCurSector);
70 2 AddrTemp=FileInfo.FileCurSector;//文件的当前扇区
71 2 UART_Put_Num(AddrTemp);
72 2 UART_Put_Inf("文件当前偏移量(字节):",FileInfo.FileCurOffset);
73 2 UART_Send_Str("文件创建时间:\n");
74 2 UART_Put_Num(FileInfo.FileCreateDate.year);UART_Send_Str("年");
75 2 UART_Put_Num(FileInfo.FileCreateDate.month);UART_Send_Str("月");
76 2 UART_Put_Num(FileInfo.FileCreateDate.day);UART_Send_Str("日");
77 2 UART_Put_Num(FileInfo.FileCreateTime.hour);UART_Send_Str("时");
78 2 UART_Put_Num(FileInfo.FileCreateTime.min);UART_Send_Str("分");
79 2 UART_Put_Num(FileInfo.FileCreateTime.sec);UART_Send_Str("秒");
80 2 UART_Send_Enter();
81 2 }
82 1 else
83 1 {
84 2 UART_Send_Str("打开文件失败\n");
85 2 }
86 1
87 1 /******************************/
88 1 TMR2H=0xfa; //定时器2附初值,定时50ms,进入中断
89 1 TMR2L=0x24;
90 1 TMR2RLH=0Xfa; //重载寄存器
91 1 TMR2RLL=0x24;
92 1 ET2=1;//开定时器2中断
93 1 EA=1; //开总中断
94 1 TR2=1; //开定时器2
95 1 /*******************************************************/
96 1 if(yy==1) {
97 2 TH1=(65536-Xx)/256;
98 2 TL0=(65536-Xx)%256;
99 2 yy=0;}
100 1 else { TH1=(64036+Xx)/256;
101 2 TL1=(64036+Xx)%256;
102 2 yy=1;}
103 1 TMOD=0X10;
104 1 CKCON=0X08;
105 1 ET1=1;
106 1 EA=1;
107 1 TR1=1;
108 1
109 1
110 1 while(1)
111 1 { if(sector==k)sector=0;
112 2 if(fla==1 && sector<k )
113 2 {
114 3 fla=0;
115 3 SD_Read_Sector(AddrTemp+sector,buffer);
116 3 sector++;
117 3
C51 COMPILER V8.09 _MAIN 05/19/2011 23:29:38 PAGE 3
118 3 }
119 2 }
120 1
121 1 }
122 /*while(1)
-
123 {Tt=0;//if(time==2)TR1=0;
124 }*/
125
126 /***************************************************/
127 void time1() interrupt 3
128 { Tt=0; if(yy==1) {TH1=(65536-Xx)/256;TL1=(65536-Xx)%256;yy=0;}
129 1 else { TH1=(64036+Xx)/256;TL1=(64036+Xx)%256;yy=1;}
-
-
130 1
131 1 }
132 /*******************************************/
133 void time2(void) interrupt 5
134 { ki=0;
135 1
-
-
-
136 1 TF2H=0;//清定时器高字节溢出标志位
137 1
138 1 if(time==0)
139 1 {Z=220;time++;
140 2 Xx=buffer[Z];
141 2 }
142 1 else
143 1 { Xx=buffer[Z];
144 2 }
145 1 Z++;
146 1 if(Z>511){Z=0;fla=1;}
147 1 /* Xx=num[Z];
148 1 Z++;
149 1 if(Z>99)Z=0;
150 1 */
151 1
152 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1279 ----
CONSTANT SIZE = 30409 ----
XDATA SIZE = 636 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
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 + -