📄 main2.lst
字号:
C51 COMPILER V7.20 MAIN2 09/08/2008 20:04:06 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE MAIN2
OBJECT MODULE PLACED IN main2.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main2.c BROWSE DEBUG OBJECTEXTEND
line level source
1
2
3 /*spi isd4004.h*/
4 #include "reg51.h"
5 #include "intrins.h"
6 sbit _cs = P1^0;
7 sbit _sclk= P1^3;
8 sbit _mosi= P1^1;
9 sbit _miso= P1^2;
10 sbit _rac = P3^2;
11 sbit _int = P3^3;
12 sbit an=P2^2;
13 void delay(unsigned int i) //延时程序
14 {
15 1 while(i--);
16 1 }
17 void stopmode() //停止
18 {
19 1 unsigned char m,i,j;
20 1 _cs=1;
21 1 _sclk=0;
22 1 _cs=0;
23 1 m=0x30;
24 1 for(i=0;i<8;i++)
25 1 {
26 2 m=_cror_(m,1);
27 2 j=m<<1;
28 2 _mosi=j;
29 2 _sclk=0;
30 2 _sclk=1;
31 2 }
32 1 _cs=1;
33 1 }
34 void powerdown() //下电
35 {
36 1 unsigned char m,i,j;
37 1 _cs=1;
38 1 _sclk=0;
39 1 _cs=0;
40 1 m=0x10;
41 1 for(i=0;i<8;i++)
42 1 {
43 2 m=_cror_(m,1);
44 2 j=m<<1;
45 2 _mosi=j;
46 2 _sclk=0;
47 2 _sclk=1;
48 2 }
49 1 _cs=1;
50 1 }
51 void powerup()// 上电
52 {
53 1 unsigned char m,i,j;
54 1 _cs=1;
55 1 _sclk=0;
C51 COMPILER V7.20 MAIN2 09/08/2008 20:04:06 PAGE 2
56 1 _cs=0;
57 1 m=0x20;
58 1 for(i=0;i<8;i++)
59 1 {
60 2 m=_cror_(m,1);
61 2 j=m<<1;
62 2 _mosi=j;
63 2 _sclk=0;
64 2 _sclk=1;
65 2 }
66 1 _cs=1;
67 1 }
68
69 void record4004(unsigned int address) //录音 address--录音地址 0---2400
70 {
71 1 unsigned char i,m,j;
72 1 unsigned int datasoute=0;
73 1
74 1 powerup();
75 1 delay(5118);//上电延时
76 1 powerup();
77 1 delay(5118);//上电延时
78 1 delay(5118);//上电延时
79 1 _cs=1;
80 1 _sclk=0;
81 1 m=0xa0;
82 1 _cs=0;
83 1 for(i=0;i<16;i++)
84 1 {
85 2 address=_iror_(address,1);
86 2 datasoute=address<<1;
87 2 _mosi=datasoute;
88 2 _sclk=0;
89 2 _sclk=1;
90 2 }
91 1 for(i=0;i<8;i++)
92 1 {
93 2 m=_cror_(m,1);
94 2 j=m<<1;
95 2 _mosi=j;
96 2 _sclk=0;
97 2 _sclk=1;
98 2 }
99 1 _cs=1;
100 1 _sclk=0;
101 1 m=0xb0;
102 1 _cs=0;
103 1 for(i=0;i<8;i++)
104 1 {
105 2 m=_cror_(m,1);
106 2 j=m<<1;
107 2 _mosi=j;
108 2 _sclk=0;
109 2 _sclk=1;
110 2 }
111 1 _cs=1;
112 1 P1=0xff;
113 1 datasoute=0;
114 1 while(_int==1) //存储地址换行标志
115 1 {
116 2 if(_rac) {delay(20000); datasoute++; } //记录本次录音所占的行数(也就是本次录音有多大)
117 2 if(an==0)
C51 COMPILER V7.20 MAIN2 09/08/2008 20:04:06 PAGE 3
118 2 break;
119 2 // 在这里应该加上自己的程序,就是录音退出程序
120 2 //
121 2 }
122 1 }//while end;
123
124
125 void audioout(unsigned int address) //放音程序
126 {
127 1 unsigned char i,m,j;
128 1 unsigned int datasoute;
129 1
130 1 powerup();
131 1 _cs=1;
132 1 _sclk=0;
133 1 _cs=0;
134 1 m=0xe0;
135 1 for(i=0;i<16;i++)
136 1 {
137 2 address=_iror_(address,1);
138 2 datasoute=address<<1;
139 2 _sclk=0;
140 2 _mosi=datasoute;
141 2 _sclk=1;
142 2 }
143 1 for(i=0;i<8;i++)
144 1 {
145 2 m=_cror_(m,1);
146 2 j=m<<1;
147 2 _sclk=0;
148 2 _mosi=j;
149 2 _sclk=1;
150 2 }
151 1 _cs=1;
152 1 _sclk=0;
153 1 m=0xf0;
154 1 _cs=0;
155 1 for(i=0;i<8;i++)
156 1 {
157 2 m=_cror_(m,1);
158 2 j=m<<1;
159 2 _sclk=0;
160 2 _mosi=j;
161 2 _sclk=1;
162 2 }
163 1 _cs=1;
164 1 P1=0xff;
165 1 while(_int==1)
166 1 {
167 2 }//while end;
168 1 }
169
170 main()
171 {
172 1
173 1 record4004(0);
174 1 audioout(0);
175 1 while(1);
176 1 }
177
178
179
C51 COMPILER V7.20 MAIN2 09/08/2008 20:04:06 PAGE 4
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 445 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 2
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 + -