?? main.lst
字號:
C51 COMPILER V7.06 MAIN 04/20/2008 17:32:26 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*********************本程序僅限學(xué)習(xí)交流***************************
2 *********************引用請注明作者 axin***************************
3 *************************文件名main.c******************************
4 *Copyright(C)2008 biti
5 *功能描述:單片機控制tc35iGSM模塊收發(fā)短信
6 *所需模塊: 名稱 型號 廠家
7 * 單片機 STC89c58RD+ STC
8 * GSM模塊 tc35i 西門子
9 * 液晶顯示器 1602(16腳)
10 * 串口 MAX232
11 * 蜂鳴器
12 * 電源、連接線若干
13 *所需文件: 名稱 描述
14 * reg52.h 特殊功能寄存器
15 * stdlib.h NULL
16 * intrins.h _nop_()
17 * 1602_lcd.c 1602液晶顯示器子函數(shù)
18 * shizhong.c 時間函數(shù)
19 * tc35i.c GSM模塊子函數(shù)
20 *作 者:axin
21 *日 期:2008-4-20
22 *QQ:35714796
23 ********************本程序僅限學(xué)習(xí)交流****************************
24 ********************引用請注明作者 axin***************************
25 *****************************************************************/
26 #include <reg52.h>
27 #include <stdlib.h>
28 #include <intrins.h>
29
30 extern void delayms_48us();
31 extern void delayms_1ms();
32 extern void delayms_10ms();
33 extern void delayms_100ms();
34 extern void delayms_1000ms();
35
36 #define uchar unsigned char
37 #define uint unsigned int
38 #define ulong unsigned long
39 #define zhushi ;
40
41 sbit P3_7=P3^7;
42
43 #include "1602_lcd.c"
44 #include "shizhong.c"
45 #include "tc35i.c"
46
47 /*****************************************************************
48 *函數(shù)名稱: 主函數(shù)
49 *功能: 延時函數(shù)
50 *形參:
51 *返回值:
52 *備注: 調(diào)度個子函數(shù),完成通信過程
53 *****************************************************************/
54 void main(void)
55 { char i=0; //uint j=0; char *p;
C51 COMPILER V7.06 MAIN 04/20/2008 17:32:26 PAGE 2
56 1 //定時器初始化
57 1 Time0Init();
58 1 zhushi delayms_10ms();Bell();
59 1 //初始化LCD1602
60 1 delayms_1ms();lcd_init();
61 1 delayms_1ms();lcd_init();
62 1 delayms_1ms();lcd_init();
63 1 delayms_1ms();lcd_init();delayms_100ms();
64 1 //顯示開機畫面
65 1 zhushi lcd_disp_str(" How are you ! ",1);
66 1 zhushi lcd_disp_str(" Welcome! ",2);
67 1 //延時5s
68 1 for(i=0;i<5;i++)delayms_1000ms();
69 1 //清除串口接收緩沖區(qū)
70 1 zhushi lcd_disp_str(" Clear RsBuf ",1);
71 1 zhushi lcd_disp_str(" ",2);
72 1 ClrBuf(RsBuf,RsBuf_N);
73 1 //串口初始化 定時器初始化
74 1 UART_init();delayms_100ms();
75 1 //串口發(fā)送"聯(lián)機"指令
76 1 Send_AT();
77 1 //串口發(fā)送"禁止回顯"指令
78 1 SendString("ATE0\r");
79 1 zhushi lcd_disp_str("ATE0 ",1);
80 1 delayms_1000ms();
81 1 //串口發(fā)送"PDU模式"指令
82 1 SendString("AT+CMGF=0\r");
83 1 zhushi lcd_disp_str("AT+CMGF=0 ",1);
84 1 delayms_1000ms();
85 1 //串口發(fā)送"新信息報告"指令
86 1 SendString("AT+CNMI=1,1,0,2,1\r");
87 1 zhushi lcd_disp_str("ATCNMI=1,1,0,2,1",1);
88 1 delayms_1000ms();
89 1 //清除串口接收緩沖區(qū)前50字節(jié)
90 1 ClrBuf(RsBuf,50);
91 1 RsPoint=0;
92 1 ES=1;
93 1 //tc35i向服務(wù)臺發(fā)送請求信息
94 1 RequestDWW();
95 1 delayms_1000ms();
96 1
97 1 while(1){
98 2 //delayms_100ms();
99 2 if(RsPoint){
100 3 //信息報告 "+CDSI: "SM",xx"
101 3 ReturnCommandOffSet=mystrstr(RsBuf,"+CDSI: \"SM\"");
102 3 if(ReturnCommandOffSet!=NULL){
103 4 RsPoint=0;
104 4 *(ReturnCommandOffSet+1)=0xa5;
105 4 *(ReturnCommandOffSet+2)=0xa5;
106 4 zhushi Bell();
107 4 zhushi lcd_disp_str("Have new Report ",1);
108 4 ReciveNewStatusReport();
109 4 //ClrBuf(RsBuf,8);
110 4 //RsPoint=0;
111 4 }
112 3
113 3 delayms_100ms();
114 3 //有新信息 "+CMTI: "SM",xx"
115 3 ReturnCommandOffSet=mystrstr(RsBuf,"+CMTI: \"SM\"");
116 3 if(ReturnCommandOffSet!=NULL){
117 4 RsPoint=0;
C51 COMPILER V7.06 MAIN 04/20/2008 17:32:26 PAGE 3
118 4 *(ReturnCommandOffSet+1)=0xa5;
119 4 *(ReturnCommandOffSet+2)=0xa5;
120 4 zhushi Bell();for(i=0;i<16;i++)dis2[i]=*(ReturnCommandOffSet+i);
121 4 zhushi lcd_disp_str("Have new Message",1);
122 4 zhushi lcd_disp_str(dis2,2);delayms_1000ms();
123 4 ReciveNewMsg();
124 4 ClrBuf(RsBuf,8);
125 4 RsPoint=0;
126 4 }
127 3 // RsPoint=0;
128 3 }
129 2
130 2 //while(!RsPoint){
131 2 //時間顯示 "time is 00:00:00";
132 2 dis2[0]='t';dis2[1]='i';dis2[2]='m';dis2[3]='e';dis2[4]=0x20;
133 2 dis2[5]='i';dis2[6]='s';dis2[7]=0x20;
134 2 dis2[8]=hh/10+48;dis2[9]=hh%10+48;dis2[10]=0x3a;
135 2 dis2[11]=mi/10+48;dis2[12]=mi%10+48;dis2[13]=0x3a;
136 2 dis2[14]=ss/10+48;dis2[15]=ss%10+48;
137 2 lcd_disp_str(dis2,2);
138 2
139 2 //狀態(tài)顯示
140 2 if(ss&0x01) lcd_disp_str(" |(='.'=)| ",1);
141 2 else lcd_disp_str(" -(='.'=)- ",1);
142 2
143 2 //定時時間到,向服務(wù)臺發(fā)送請求信息
144 2 if((T0800||T2000)&&DWW_Flag){
145 3 DWW_Flag=0;
146 3 zhushi lcd_disp_str("It's time to ",1);
147 3 zhushi lcd_disp_str(" send Request. ",1);
148 3 zhushi Bell();
149 3 zhushi delayms_1000ms();
150 3 RequestDWW();delayms_1000ms();
151 3 }
152 2 //}
153 2
154 2 //zhushi lcd_disp_str(" ",1);//delayms_100ms();
155 2 //zhushi lcd_disp_str(" ",2);
156 2 }
157 1
158 1 }
159
160 /*
161 if(ss==58){
162 zhushi lcd_disp_str("( ^o^)| ",1);delayms_100ms();delayms_100ms();delayms_100ms();
163 zhushi lcd_disp_str("( ^.^)/-~ ",1);delayms_100ms();delayms_100ms();delayms_100ms();
164 zhushi lcd_disp_str("( ^.^)/--~ ",1);delayms_100ms();delayms_100ms();delayms_100ms();
165 zhushi lcd_disp_str("( ^.^)/---~ ",1);delayms_100ms();delayms_100ms();delayms_100ms();
166 zhushi lcd_disp_str("( ^.^)/----~ ",1);delayms_100ms();delayms_100ms();delayms_100ms();
167 zhushi lcd_disp_str("( ^.^)/-----~ ",1);delayms_100ms();delayms_100ms();delayms_100ms();
168 zhushi lcd_disp_str("( ^o^)/----- *",1);delayms_1000ms();
169 }
170
171
172 */
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2705 ----
CONSTANT SIZE = 877 ----
XDATA SIZE = 400 ----
PDATA SIZE = ---- ----
C51 COMPILER V7.06 MAIN 04/20/2008 17:32:26 PAGE 4
DATA SIZE = 54 62
IDATA SIZE = ---- ----
BIT SIZE = 2 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -