資源簡介
基于51單片機的短信收發設計,采用1602作為輸出顯示端口

代碼片段和文件信息
/*************************文件名main.c******************************
*功能描述:單片機控制tc35iGSM模塊收發短信
*所需模塊: 名稱 型號 廠家
* 單片機 STC89c58RD+ STC
* GSM模塊 tc35i 西門子
* 液晶顯示器 1602(16腳)
* 串口 MAX232
* 蜂鳴器
* 電源、連接線若干
*所需文件: 名稱 描述
* reg52.h 特殊功能寄存器
* stdlib.h NULL
* intrins.h _nop_()
* 1602_lcd.h 1602液晶顯示器子函數
* shizhong.h 時間函數
* tc35i.h GSM模塊子函數
*日????期:2009-5-22
*****************************************************************/
#include?
#include?
#include?
extern?void?delayms_48us();
extern?void?delayms_1ms();
extern?void?delayms_10ms();
extern?void?delayms_100ms();
extern?void?delayms_1000ms();
#define?uchar?unsigned?char
#define?uint??unsigned?int
#define?ulong?unsigned?long
#define?zhushi?;
sbit?P3_7=P3^7;
#include?“1602_lcd.h“
#include?“shizhong.h“
#include?“tc35i.h“
/*****************************************************************
*函數名稱:?主函數
*功能:? 延時函數
*形參:
*返回值:
*備注: 調度個子函數,完成通信過程
*****************************************************************/
void?main(void)
{?char?i=0; //uint?j=0; char?*p;
//定時器初始化
Time0Init();
zhushi?delayms_10ms();Bell();
//初始化LCD1602
delayms_1ms();lcd_init();
delayms_1ms();lcd_init();
delayms_1ms();lcd_init();
delayms_1ms();lcd_init();delayms_100ms();
//顯示開機畫面
zhushi?lcd_disp_str(“?How?are?you?!??“1);
zhushi?lcd_disp_str(“???Welcome!?????“2);
//延時5s
for(i=0;i<5;i++)delayms_1000ms();
//清除串口接收緩沖區
zhushi?lcd_disp_str(“??Clear?RsBuf???“1);
zhushi?lcd_disp_str(“????????????????“2);
ClrBuf(RsBufRsBuf_N);
//串口初始化?定時器初始化
UART_init();delayms_100ms();
//串口發送“聯機“指令
Send_AT();
//串口發送“禁止回顯“指令
SendString(“ATE0\r“);
zhushi?lcd_disp_str(“ATE0????????????“1);
delayms_1000ms();
//串口發送“PDU模式“指令
SendString(“AT+CMGF=0\r“);
zhushi?lcd_disp_str(“AT+CMGF=0???????“1);
delayms_1000ms();
//串口發送“新信息報告“指令
SendString(“AT+CNMI=11021\r“);
zhushi?lcd_disp_str(“ATCNMI=11021“1);
delayms_1000ms();
//清除串口接收緩沖區前50字節
ClrBuf(RsBuf50);
RsPoint=0;
ES=1;
//tc35i向服務臺發送請求信息
RequestDWW();
delayms_1000ms();
while(1){
//delayms_100ms();
??if(RsPoint){
//信息報告?“+CDSI:?“SM“xx“
ReturnCommandOffSet=mystrstr(RsBuf“+CDSI:?\“SM\““);
if(ReturnCommandOffSet!=NULL){
RsPoint=0;
*(ReturnCommandOffSet+1)=0xa5;
*(ReturnCommandOffSet+2)=0xa5;
zhushi?Bell();
zhushi?lcd_disp_str(“Have?new?Report?“1);
ReciveNewStatusReport();
//ClrBuf(RsBuf8);
//RsPoint=0;
}?
delayms_100ms();
//有新信息 “+CMTI:?“SM“xx“
ReturnCommandOffSet=mystrstr(RsBuf“+CMTI:?\“SM\““);
if(ReturnCommandOffSet!=NULL){
RsPoint=0;
*(ReturnCommandOffSet+1)=0xa5;
*(ReturnCommandOffSet+2)=0xa5;
zhushi?Bell();for(i=0;i<16;i++)dis2[i]=*(ReturnCommandOffSet+i);
zhushi?lcd_disp_str(“Have?new?Message“1);
zhushi?lcd_disp_str(dis22);delayms_1000ms();
ReciveNewMsg();
ClrBuf(RsBuf8);
RsPoint=0;
}?
// RsPoi
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????4798??2009-05-22?19:05??應用\main.c
?????文件??????39197??2009-05-24?22:01??應用\main.plg
?????文件???????2182??2009-05-24?22:00??應用\1602_lcd.h
?????文件???????1293??2009-05-24?21:57??應用\shizhong.h
?????文件??????14778??2009-05-24?21:58??應用\tc35i.h
?????文件?????????40??2009-05-24?22:01??應用\main.lnp
?????文件??????42113??2009-05-24?22:01??應用\main.M51
?????文件??????11541??2009-05-24?22:01??應用\main.hex
????.......?????????0??2009-05-22?19:05??應用\main_Uv2.Bak
?????文件???????1975??2009-05-22?19:08??應用\main.Uv2
????.......??????1493??2009-05-22?20:02??應用\main_Opt.Bak
?????文件??????10176??2009-05-24?22:01??應用\main.LST
?????文件??????43065??2009-05-24?22:01??應用\main.OBJ
?????文件??????34809??2009-05-24?22:01??應用\main
?????文件???????1485??2009-05-24?22:01??應用\main.Opt
?????目錄??????????0??2009-05-22?19:04??應用
-----------?---------??----------?-----??----
???????????????208945????????????????????16
評論
共有 條評論