📄 main.lst
字号:
C51 COMPILER V7.20 MAIN 09/09/2008 10:50:26 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "SM8958k.H"
2
3 #define OSC_FREQ 11059600L
4 #define RCAP2_10ms 65536L - OSC_FREQ/1200L
5 #define uchar unsigned char
6 #define uint unsigned int
7 sfr16 RCAP2LH = 0xCA;
8 sfr16 T2LH = 0xCC;
9
10 sbit led=P0^6;
11
12 sbit SS = P1^1; //片选
13 sbit SCLK = P1^0; //ISD4004时钟
14 sbit MOSI = P1^2; //数据输入
15 sbit MISO = P1^3; //数据输出
16 sbit LED = P1^7; //指示灯
17 sbit AN = P2^2; //执行
18 sbit STOP = P1^5; //复位
19 sbit PR = P2^3; //PR = 0录音,PR = 1放音
20 sbit INT = P1^4; //中断
21 bit reccon;
22
23
24 void delay_10ms (unsigned int _10ms)
25 {
26 1 RCAP2LH = RCAP2_10ms;
27 1 T2LH = RCAP2_10ms;
28 1 ET2 = 0; // Disable timer2 interrupt
29 1 T2CON = 0x04; // 16-bit auto-reload, clear TF2, start timer
30 1
31 1 while (_10ms--)
32 1 {
33 2 while (!TF2)
34 2 {
35 3
36 3 }
37 2 TF2 = 0;
38 2 }
39 1 TR2 =0;
40 1
41 1 }
42
43 void putbyte(unsigned char c)
44 {
45 1 SBUF=c;
46 1 while(!TI);TI=0;
47 1 }
48
49 urtinit()
50 { TMOD = 0x21;
51 1 PCON = 0x80;
52 1 SCON = 0x50;
53 1 TH1=0xFD; TL1=0xFD; TR1=1;
54 1 IP = 0x10;//0x04;
55 1 // EA=1;
C51 COMPILER V7.20 MAIN 09/09/2008 10:50:26 PAGE 2
56 1 putbyte(1);
57 1 putbyte(2);
58 1 putbyte(3);
59 1 putbyte(4);
60 1 putbyte(5);
61 1 }
62 void ledflash(uint k,uchar h)
63 {
64 1 while(h--)
65 1 {
66 2 led=1;
67 2 delay_10ms(k);
68 2 led=0;
69 2 delay_10ms(k);
70 2 }
71 1 }
72
73
74 /* ISD4004 SPI 写入程序 */
75
76 void ISDX( unsigned char d)
77 {
78 1 unsigned char i,j;
79 1 SS = 0; //开片选
80 1 SCLK = 0; //时钟 SCLK = 0
81 1 j = d;
82 1 for( i = 0;i < 8;i++)
83 1 {
84 2 if( j & 0x01 ) //数据写 MOSI
85 2 {
86 3 MOSI = 1;
87 3 }
88 2 else
89 2 {
90 3 MOSI = 0;
91 3 }
92 2 SCLK = 1; //时钟 SCLK = 1
93 2 j = j >> 1;
94 2 SCLK = 0; //时钟 SCLK = 0
95 2 }
96 1 }
97
98
99
100 /* ISD 上电 */
101
102 void powerup( )
103 {
104 1 ISDX(0x20 ); //发 00100XXXXXXXXXXX
105 1 SS = 1; //关片选
106 1
107 1 }
108 //停止当前操作<< STOP >> 8位
109 void STOPP( )
110 {
111 1 ISDX(0x30 ); //发 0X110XXX
112 1 SS = 1; //关片选
113 1 }
114
115 //;停止当前操作掉电<< STOPPWRDN >> 8位
116 void DSTOP( )
117 {
C51 COMPILER V7.20 MAIN 09/09/2008 10:50:26 PAGE 3
118 1 ISDX(0x10 ); //发 0X010XXXXXXXXXX
119 1 SS = 1; //关片选
120 1 delay_10ms(5); //延时 50 ms
121 1 delay_10ms(5); //延时 50 ms
122 1 }
123
124
125
126 void record4004() //录音 address--录音地址 0---2400
127 {
128 1 powerup(); //发送上电命令
129 1 delay_10ms(5); //延时50ms
130 1 powerup();//发送上电命令
131 1 delay_10ms(5);//上电延时
132 1 delay_10ms(5);//上电延时
133 1 ISDX(0); //从00开始录音
134 1 ISDX(0);
135 1 ISDX(0xB0); //发送录音命令
136 1
137 1 }
138
139 checkanjian()
140 {if(AN==0)
141 1 delay_10ms(20);
142 1 if(AN==0)
143 1 {
144 2 if(reccon==1)
145 2 {reccon=0;
146 3 //led=0;
147 3 }
148 2 else
149 2 {reccon=1;
150 3 // led=1;
151 3 }
152 2
153 2 }
154 1 }
155
156 main()
157 {
158 1
159 1
160 1 unsigned char delay; //延时参数
161 1 unsigned char isdl,isdh; //ISD高、低位
162 1 unsigned char n1;
163 1 urtinit();
164 1 reccon=1;
165 1 DSTOP(); //ISD掉电
166 1 delay_10ms(50);
167 1 checkanjian();
168 1 if(reccon==1)
169 1 {led=1;//亮灯 放音
170 2 powerup(); //发送上电命令
171 2 delay_10ms(5); //延时50ms
172 2 ISDX(0);
173 2 ISDX(0);
174 2 ISDX(0);
175 2 delay_10ms(5);
176 2 ISDX(0xf0);
177 2 }
178 1 else
179 1 {led=0;//灭灯 录音
C51 COMPILER V7.20 MAIN 09/09/2008 10:50:26 PAGE 4
180 2
181 2 delay_10ms(5);
182 2 powerup(); //发送上电命令
183 2 delay_10ms(5); //延时50ms
184 2 powerup();//发送上电命令
185 2 delay_10ms(5);//上电延时
186 2 delay_10ms(5);//上电延时
187 2 ISDX(0); //从00开始录音
188 2 ISDX(0);
189 2 ISDX(0);
190 2 ISDX(0xB0 );
191 2 // if( INT )
192 2 // {LED = 1; //指示灯
193 2 // STOPP(); //停止当前操作
194 2 // reccon=1;
195 2 // }
196 2
197 2 }
198 1
199 1 while(1)
200 1 {;
201 2
202 2 }
203 1
204 1 }
*** WARNING C280 IN LINE 160 OF MAIN.C: 'delay': unreferenced local variable
*** WARNING C280 IN LINE 161 OF MAIN.C: 'isdl': unreferenced local variable
*** WARNING C280 IN LINE 161 OF MAIN.C: 'isdh': unreferenced local variable
*** WARNING C280 IN LINE 162 OF MAIN.C: 'n1': unreferenced local variable
205
206
207
208
209
210
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 306 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 4
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 4 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -