📄 gsm-
字号:
C51 COMPILER V7.06 MAIN 06/13/2010 15:40:35 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: E:\WorkSpace\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /***********************************************
2 程序:单片机控制GSM模块发送信息
3 编译器:Keil UV2
4 日期:2010/06/11
5 ************************************************/
6
7 #include "common.h"
8 uchar Alarm_Temp=32; //报警温度设置为32度
9 void Key_Handle(void); //声明按键处理程序
10 void Show_Temperature(void); //显示温度
11 void Show_Menu(void); //显示菜单
12 void Show_Time(void); //显示时间
13 //系统初始化
14 void Sys_Init()
15 {
16 1 PhoneNum[14]='\0';
17 1 USART_Init(); //串口初始化
18 1 Red_Init(); //红外初始化
19 1 Read_18B20(); //先读取两次温度,初次读取会不准确
20 1 //write_1302_time(times); //第一次编程时设定一个时间,以后就不用了
21 1 LcmInit(); //液晶初始化
22 1 LcmClearTXT(); //清除显示
23 1 LcmClearBMP();
24 1 delay_ms(100);
25 1 PutStr(0,0,"Initial OK !");
26 1 delay_ms(1000);
27 1 LcmClearTXT(); //清除显示
28 1 }
29
30 //主函数
31 void main()
32 {
33 1 Sys_Init(); //系统初始化
34 1 while(1)
35 1 {
36 2 Key_Handle();
37 2 Show_Time();
38 2 Show_Temperature();
39 2 delay_ms(150);
40 2 }
41 1 }
42
43 //显示时间函数
44 void Show_Time(void)
45 {
46 1 read_1302_time(times);
47 1 PutStr(2,0,"日期:");
48 1 PutStr(3,0,"时间:");
49 1 PutTime();
50 1 }
51 //显示温度函数
52 void Show_Temperature(void)
53 {
54 1 PutStr(0,0,"GSM 温度报警系统");
55 1 PutStr(1,0,"环境温度:");
C51 COMPILER V7.06 MAIN 06/13/2010 15:40:35 PAGE 2
56 1 Read_18B20();
57 1 PutTemp(1,5);
58 1 PutStr(1,7,"℃");
59 1 if(zhengshu>=Alarm_Temp)key=72; //温度超过阀值,进入发短信模式,即报警
60 1 }
61
62 //显示主菜单
63 void Show_Menu(void)
64 {
65 1 LcmClearTXT(); //清除显示
66 1 PutStr(0,0,"1.设定手机号码");
67 1 PutStr(1,0,"2.设定报警温度");
68 1 PutStr(2,0,"3.编辑短信内容");
69 1 PutStr(3,0,"4.修改日期时间");
70 1 }
71 //红外按键处理程序
72 void Key_Handle(void)
73 {
74 1 unsigned long temp=0;
75 1 signed char i=0;
76 1 uchar cnt=0;
77 1 if(key!=255) //有键按下
78 1 {
79 2 switch(key) //在这里可以随便添加你的按键处理程序
80 2 {
81 3 case 72: //发送短信
82 3 {
83 4 LcmClearTXT(); //清除显示
84 4 PutStr(0,0,"短信发送模式");
85 4 PutStr(1,0,"请稍候...");
86 4 delay_ms(1000);
87 4 Send_Message(PhoneNum,MsContent);
88 4 while(key==72); //等待有键按下并退出
89 4 Read_18B20(); //再读一次
90 4 break;
91 4 }
92 3 case 14: //进入主菜单
93 3 {
94 4 Show_Menu();
95 4 key=255;
96 4 while(key==255); //等待有键按下
97 4
98 4 switch(key)
99 4 {
100 5 case 1 : //设置手机号码
101 5 {
102 6 key=255;
103 6 LcmClearTXT();
104 6 PutStr(0,0,"请输入手机号码");
105 6 key=255;
106 6 while(key==255);
107 6 WriteCommand(0x30);
108 6 WriteCommand(AC_TABLE[8]); //在第二行开始显示键入值
109 6 while(key!=14) //不是确认键
110 6 {
111 7 if(key<10&&cnt<11) //11位手机号码
112 7 {
113 8 PhoneNum[(cnt++)+3]=key+48;
114 8 WriteData(key+48);
115 8 }
116 7 PhoneNum[14]='\0';
117 7 key=255;
C51 COMPILER V7.06 MAIN 06/13/2010 15:40:35 PAGE 3
118 7 while(key==255); //等待有键按下
119 7 }
120 6 key=255;
121 6 PutStr(2,0,PhoneNum);
122 6 PutStr(3,2,"修改成功!");
123 6 delay_ms(1000);
124 6 break;
125 6 }
126 5
127 5 case 2 : //设置报警温度
128 5 {
129 6 key=255;
130 6 LcmClearTXT();
131 6 PutStr(0,0,"请输入报警温度");
132 6 key=255;
133 6 while(key==255);
134 6 WriteCommand(0x30);
135 6 WriteCommand(AC_TABLE[8]); //在第二行开始显示键入值
136 6 while(key!=14) //不是确认键
137 6 {
138 7 temp=(temp*10)+key;
139 7 WriteData(key+48);
140 7 key=255;
141 7 while(key==255); //等待有键按下
142 7 }
143 6 key=255;
144 6 Alarm_Temp=(uchar)temp; //更新报警温度
145 6 PutStr(3,2,"修改成功!");
146 6 delay_ms(1000);
147 6 break;
148 6 }
149 5
150 5 case 4 : //设置时间
151 5 {
152 6 key=255;
153 6 for(i=6;i>=0;i--)
154 6 {
155 7 if(i!=5) //星期不设置
156 7 {
157 8 LcmClearTXT();
158 8 switch(i)
159 8 {
160 9 case 6:PutStr(0,0,"请输入年:");break;
161 9 case 4:PutStr(0,0,"请输入月:");break;
162 9 case 3:PutStr(0,0,"请输入日:");break;
163 9 case 2:PutStr(0,0,"请输入时:");break;
164 9 case 1:PutStr(0,0,"请输入分:");break;
165 9 case 0:PutStr(0,0,"请输入秒:");break;
166 9 default:break;
167 9 }
168 8 times[i]=0; //清0
169 8 WriteCommand(0x30);
170 8 WriteCommand(AC_TABLE[8]); //在第二行开始显示键入值
171 8 while(cnt<2) //输入的是两位数
172 8 {
173 9 key=255;
174 9 while(key==255); //等待有键按下
175 9 times[i]=(times[i]*10)+key;
176 9 WriteData(key+48);
177 9 cnt++;
178 9 }
179 8 key=255;
C51 COMPILER V7.06 MAIN 06/13/2010 15:40:35 PAGE 4
180 8 while(key==255); //等待有键按下
181 8 cnt=0;
182 8 }
183 7 else times[5]=1;
184 7
185 7 }
186 6 write_1302_time(times); //使时间生效
187 6 PutStr(3,2,"修改成功!");
188 6 delay_ms(1000);
189 6 break;
190 6 }
191 5 default:break;
192 5 }
193 4 break;
194 4 }
195 3 default: //其他
196 3 break;
197 3 }
198 2 LcmClearTXT(); //清除显示
199 2 delay_ms(100);
200 2 key=255; //取消键值
201 2 }
202 1 }
203
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 805 ----
CONSTANT SIZE = 238 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 6
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 + -