📄 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 /*********************本程序仅限学习交流***************************
2 *********************引用请注明作者 axin***************************
3 *************************文件名main.c******************************
4 *Copyright(C)2008 biti
5 *功能描述:单片机控制tc35iGSM模块收发短信
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液晶显示器子函数
18 * shizhong.c 时间函数
19 * tc35i.c GSM模块子函数
20 *作 者:axin
21 *日 期:2008-4-20
22 *QQ:35714796
23 ********************本程序仅限学习交流****************************
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 *函数名称: 主函数
49 *功能: 延时函数
50 *形参:
51 *返回值:
52 *备注: 调度个子函数,完成通信过程
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 //清除串口接收缓冲区
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 //串口发送"联机"指令
76 1 Send_AT();
77 1 //串口发送"禁止回显"指令
78 1 SendString("ATE0\r");
79 1 zhushi lcd_disp_str("ATE0 ",1);
80 1 delayms_1000ms();
81 1 //串口发送"PDU模式"指令
82 1 SendString("AT+CMGF=0\r");
83 1 zhushi lcd_disp_str("AT+CMGF=0 ",1);
84 1 delayms_1000ms();
85 1 //串口发送"新信息报告"指令
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 //清除串口接收缓冲区前50字节
90 1 ClrBuf(RsBuf,50);
91 1 RsPoint=0;
92 1 ES=1;
93 1 //tc35i向服务台发送请求信息
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 //状态显示
140 2 if(ss&0x01) lcd_disp_str(" |(='.'=)| ",1);
141 2 else lcd_disp_str(" -(='.'=)- ",1);
142 2
143 2 //定时时间到,向服务台发送请求信息
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)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -