⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 debug.h

📁 51单片机收发短信的程序
💻 H
字号:
//#include <reg52.h>
#include <absacc.h>
#include <intrins.h>
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "ctype.h"
#include "w77c468.h"
////////////////////////////////////////////////////////
#define uchar unsigned char
#define uint  unsigned int
#define CR          0x0d     //carriage return
#define LF          0x0a     //line feed(new line)
#define PROMPT      0x3e     //">"
#define NUMBASE     48       //ASCII "0",hex:0x30
#define ALPHABASE   55       //ASCII "A",hex:0x41
//////////////////////////STC89LE58RD+专用寄存器/////////////////////////////////////////
//sfr  AUXR= 0x8e;   //STC89LE58RD+的特列功能寄存器,第0位是ALEOFF,第1位是EXTRAM
//sfr WDT_CONTR=0xe1;   //STC89LE58RD+的内部看门狗寄存器
//sfr  PMR = 0x0c4;    //W77E58的寄存器,第0位为DME0: 1:使用片内1K SRAM 0:禁用

sbit SID  = P3^4;              //液晶的串行数据位
sbit SCLK = P3^5;              //液晶的时钟
sbit IGT  = P3^2;              //手机模块点火引脚

////////////////////////////////////////////////////////////////////////////////////
char idata display_type=0;       //0:蔬菜品种界面;1:价格界面;2:已存信息内容界面
char idata vege_page_index=0;         //蔬菜品种页面索引:0到9
char idata info_page_index=0;
char idata info_count=0 ;        //已存的蔬菜信息的条数
char idata vege_type[3];  //蔬菜品种字符串组,保存蔬菜品种的字符串
char idata vege_price[6];  //蔬菜价格字符串,最长为5位
//char idata vege_info[31];  //已经存储的蔬菜信息
//uchar send_or_not;       //输入的内容是否被发送出去 send(1) or not(0)
///////////////////////////////////////////////////////////////////////////////////////////////
volatile char xdata RcvBuf[180]                _at_ 10;//0x0010;  //通过串口接收手机模块的信息
volatile char xdata ListBuf[180]               _at_ 190;  //当接收到新的的短信时,拷贝RcvBuf[]
char  xdata         PDUBuf[100]                _at_ 370;  //存储接收到的PDU数据
volatile char xdata SendBuf[90]               _at_ 470;  //存储要发送的PDU数据  180
char  xdata         CMDBuf[20]                 _at_ 610;  //命令寄存器
char  xdata         center_phone[15]           _at_ 630;  //上位机号码
char  xdata         list_indexlist[75]         _at_ 645;  //存储接收到的短信内容
char  xdata         PhoneNumLen = 13   ; //                _at_ 820;  //存储通讯的手机号码长度
//////以上共766个字节
//////////////////////////////////////////////////////////////////////////////////////////////////////////
struct tag_SMS_DELIVER
{                            //PDU转换为SMS,将数据分别存储到下列寄存器
    uchar SMSCLen;
    char  AddressType[3];
    char  ServiceCenter[15];
    char  SMSDeliver1[3];
    uchar PhoneNumLen;
    char  PhoneNumType[3];
    char  PhoneNumber[15];
    char  ProtocolFlag[3];
    char  EncodeType[3];
    char  TimePost[15];
    uchar PDUDataLen;
    char  PDUData[50];            // 地址 0x33D
};
volatile struct tag_SMS_DELIVER xdata sms_deliver    _at_ 720; //共113个字节
int    RcvIndex          = 0;    //接收缓冲区数据索引
char   LFCount           = 0;    //LF计数值
int    listchar_count    = 0;    //接受到的数据字符的个数
char   listcmd_count     = 0;    //短信条数
char   listcmdindex      = 0;    //短信索引值的字节长度
int    list_index_begin  = 0;    //短信开始索引值
int    list_index_end    = 0;    //短信结束索引值
int    list_PDU_begin    = 0;    //pdu数据的起始地址,即LF后的第一个字节
int    list_PDU_end      = 0;    //pdu数据的结束地址
char     bListEnd        = 0;    //接受到的数据传送结束,原程序中为BIT类型
char     bResponsed      = 0;    //上位机有短信返回,原程序中为BIT类型
////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////以下变量为临时调试用///////////////////////////////
//char idata rcv[20];


////////////////函数定义///////////////////////////////////
void delay_1s(void) ;
//void Rst_Dog();
void delay();
void delay_160ms();
void delay_500ms();
void write_cmd( char  cmdData);
void write_data( char  datData);
void init_LCD();
void put_string( uchar displayStartAddr,char *strSource);
void type_screen();
void price_screen();
void key_num(char x);
void key_dot();
void key_cancel();
void key_confirm();
void key_pageup();
void key_pagedown();
void key_send();
//char *trans_price(void);//变换vege_price为能保存的字符串
void info_screen();
char *info_string(char x); //返回第x条已存信息字符串
void init(void);
////////////////////有关手机模块发短信的函数//////////////////////////
char init_GSM();
//uchar hex2int1(uchar idata * str);                   //两个字节合并成一个字节(判断品种)
uchar hex2int(uchar  * str);            //两个字节合并成一个字节
void  int2hex(uchar   num,uchar  * dest);        //一个字节分解成两个字节
uchar PDU7BitEncode(char * str,char  * dest);
void  PDU7BitDecode(char   * str,char   * dest);
void  send_response(void);                     //发送短信
void  PDU2SMS(char  *buf);
void  PDUHalf8bitDecode(char   * str,uchar   len,char  * dest);
void  receive_SMS(void);
void  Data_processing(void);
char  ascii_verify(uchar  * dest);
void encode_message(void);
void send_string(char  * str);
//uchar encode_phone(char idata* phone,char idata* dest);
uchar encode_phone(char  *phone);
char itoa(char  num , char  *str);
void wait_5s(void);
uchar byte_read(uint  byte_addr);
uchar sequential_write(uint begin_addr, uint counter, uchar array[]);
void ISP_enable(void);
void ISP_disable(void);
uchar byte_program(uint byte_addr, uchar original_data);
char find_OK_ERROR();
void startup_init();   //开机初始化





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -