📄 main.lst
字号:
C51 COMPILER V7.10 MAIN 09/29/2005 20:22:10 PAGE 1
C51 COMPILER V7.10, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Program Files\KEIL\C51\BIN\C51.EXE main.c ROM(SMALL) OPTIMIZE(5,SPEED) BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg2051.h>
2 #include "Dialer_program.h"
3
4 unsigned char data p[16];
5 unsigned char keybuf[20];
6 unsigned char data nkey;
7 unsigned char data timetype0;
8 unsigned char data count;
9 unsigned char data systime1;
10 unsigned char data timetype1;
11 unsigned char data audiocount;
12 bit section;
13 bit play_bit;
14 bit timeup;
15 bit dialbit;
16
17
18 void sysinit (void){
19 1 unsigned char i;
20 1 // IE = 0X97;
21 1 PT0 = 1; //设定定时0优先
22 1 // ET1 = 1; //开定时中断1
23 1 ET0 = 1;
24 1 PCON |= 0x00; //10000000开smod
25 1 SCON = 0x50;
26 1 TMOD= 0x21; //0001,0001 定时器1模式0,定时器0模式0
27 1
28 1 TH1 = 0XFC; //3.57_2330
29 1 TL1 = 0XFC;
30 1 // TH1 = 0XFC; //11.0592_9600
31 1 // TL1 = 0XFE;
32 1 TR1 = 1;
33 1 // REN = 1; //Serial接受允许
34 1 // ES = 1;
35 1 EX0 = 1; //开中断0
36 1 EA = 1;
37 1
38 1 nkey = 0;
39 1 dialbit=0;
40 1
41 1 for (i=0;i<17;i++)p[i] = 0x00;
42 1 for (i=0;i<21;i++)keybuf[i] = 0x00;
43 1
44 1 EEReadPage(&p[0],0x00,0x00,16); //读出IP号码
45 1 EEReadPage(&p[0],0x00,0x00,16); //读出IP号码
46 1 EEReadPage(&p[0],0x00,0x00,16); //读出IP号码
47 1
48 1 }
49 void play (unsigned char ch){
50 1 timetype0 = ch;
51 1 TR0 = 1;
52 1 }
53 void clrbuf(void){
54 1 setbit = 0; //key标志
55 1 count = 0; //dialkey count
C51 COMPILER V7.10 MAIN 09/29/2005 20:22:10 PAGE 2
56 1 play_bit = 1;
57 1 }
58 void main(void){
59 1
60 1 Polarity = 1;
61 1 still = 0; //0 Still SOUND;1 Enable SOUND
62 1 audiopin = 0;
63 1 led = 1;
64 1 delay(0x50);
65 1 sysinit();
66 1
67 1 while (!dialbit);
68 1 dial ("17968\0");
69 1 delay(0x90);
70 1 dial (0x3c);
71 1 delay(0x90);
72 1 dial (0x3c);
73 1 delay(0x90);
74 1 dial (&keybuf[0]);
75 1 // still = 1;
76 1 // putbuf(0x70);
77 1 // polarity_detect();
78 1 Polaridy_audio_HZ();
79 1 while (1);
80 1
81 1 }
82 //**************************************************************************拨号函数
83 void dial(unsigned char *str){
84 1 while (*str){
85 2 senddtmf(*str - 0x30);
86 2 delay(0x15);
87 2 senddtmf(0xff);
88 2 delay(0x5);
89 2 str ++;
90 2 }
91 1 }
92 //**************************************************************************
93 void time0 (void) interrupt 1 {
94 1 static unsigned char i=0,j=0,k=0,m=0; //i 450HZ count ;j 0Hz count; k audio count;
95 1 timeup = 0;
96 1 // led = ~led;
97 1
98 1 if ((audiocount > 40)&&(audiocount < 50)){ //450hz
99 2 i ++ ;
100 2 j = 0;
101 2 k = 0;
102 2 if (i == 4){
103 3 m++;
104 3 audiopin = 0;
105 3 }
106 2 }
107 1 else if (audiocount < 5){ //0hz
108 2 i = 0;
109 2 j ++ ;
110 2 k = 0;
111 2 }
112 1 else { //audio hz
113 2 // led = ~led;
114 2
115 2 i = 0;
116 2 j = 0;
117 2 k ++ ;
C51 COMPILER V7.10 MAIN 09/29/2005 20:22:10 PAGE 3
118 2 }
119 1 TR0 = 0;
120 1 if (m > 0){
121 2 led = 0;
122 2 if(k>1){
123 3 led = 1;
124 3 still = 1; //0 Still SOUND;1 Enable SOUND
125 3 Polarity = 0;
126 3 while (1);
127 3 }
128 2 }
129 1 }
130
131 /*
132 void time1 (void) interrupt 3 {
133 TF1 = 0;
134
135 switch(timetype1){
136 case polaritytime:
137 // if (systime1 == 0x00){
138 timeup = 1;
139 TR1 = 0;
140 // }
141 // else systime1 --;
142 break;
143 }
144 } */
145 //**************************************************************************
146 void polarity_detect(void){
147 1 /* unsigned char i=0,j=0,k=0,L=0; //i计音频个数,J计450的计数,k计非450的计数
148 1 bit STATUS_AUDIO=0;
149 1
150 1 while(1){
151 1 timetype0 = polaritytime;
152 1 // systime1 = 0x01;
153 1 TH0 = 0x8c;
154 1 TL0 = 0x00;
155 1 TR0 = 1; //启动定时器2-100毫秒检测
156 1
157 1 timeup = 0;
158 1 while (!timeup){
159 1 if(!audio_detect){
160 1 while (!audio_detect);
161 1 i++;
162 1 }
163 1 }
164 1
165 1 if ((i < 0x3f) && (i > 0x26)){
166 1 j++;
167 1 k=0;
168 1 i=0;
169 1 L=0;
170 1 led = 1;
171 1 if ( j==5 )STATUS_AUDIO = 1;
172 1 }
173 1 else if (i>40){
174 1 // putbuf(i);
175 1 k=0;
176 1 i=0;
177 1 L++;
178 1 led = 0;
179 1 }
C51 COMPILER V7.10 MAIN 09/29/2005 20:22:10 PAGE 4
180 1 }*/
181 1 }
182
183 void Polaridy_audio_HZ (void ){
184 1 unsigned char i;
185 1 timetype0 = polaritytime;
186 1 i = 100;
187 1 while (1){
188 2 TH0 = 0x8c;
189 2 TL0 = 0x00;
190 2 timeup = 1;
191 2 audiocount=0;
192 2 TR0 = 1;
193 2 while (timeup){
194 3 if (!audio_detecy){
195 4 while (!audio_detecy & timeup );
196 4 audiocount++;
197 4 }
198 3 }
199 2 }
200 1 }
201
202 void putbuf(unsigned char ch){
203 1 TI = 0;
204 1 SBUF = ch;
205 1 while (!TI);
206 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 359 ----
CONSTANT SIZE = 7 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 46 4
IDATA SIZE = ---- ----
BIT SIZE = 4 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -