|
|
供大家參考內(nèi)附有電路圖,棒棒
Altium Designer畫(huà)的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
單片機(jī)源程序如下:
- /************************************************************
- 程序說(shuō)明:
- 1.將自己的51單片機(jī)的串口1連接到GSM 232上
- 2.找到程序中前面的#define處,根據(jù)說(shuō)明修改好自己的單片機(jī)配置,編譯程序
- 2.下載程序
- 3.等待發(fā)送成功
- *************************************************************/
- #include <REG51.H>
- #define uchar unsigned char
- #define uint unsigned int
- #define FOSC_110592M
- //#define FOSC_12M
- //無(wú)論接收到信號(hào)還是發(fā)送完信號(hào),都會(huì)進(jìn)中斷服務(wù)程序的
- /*初始化程序(必須使用,否則無(wú)法收發(fā)),次程序?qū)?huì)使用定時(shí)器1*/
- void SerialInti()//初始化程序(必須使用,否則無(wú)法收發(fā))
- {
- TMOD=0x20;//定時(shí)器1操作模式2:8位自動(dòng)重載定時(shí)器
- #ifdef FOSC_12M //在這里根據(jù)晶振大小設(shè)置不同的數(shù)值初始化串口
- TH1=0xf3;//裝入初值,波特率2400
- TL1=0xf3;
- #else
- TH1=0xfd;//裝入初值,波特率9600
- TL1=0xfd;
- #endif //end of SOC_12M
-
- TR1=1;//打開(kāi)定時(shí)器
- SM0=0;//設(shè)置串行通訊工作模式,(10為一部發(fā)送,波特率可變,由定時(shí)器1的溢出率控制)
- SM1=1;//(同上)在此模式下,定時(shí)器溢出一次就發(fā)送一個(gè)位的數(shù)據(jù)
- REN=1;//串行接收允許位(要先設(shè)置sm0sm1再開(kāi)串行允許)
- EA=1;//開(kāi)總中斷
- ES=1;//開(kāi)串行口中斷
- }
- /*串行通訊中斷,收發(fā)完成將進(jìn)入該中斷*/
- void Serial_interrupt() interrupt 4
- {
- // a=SBUF;
- P2=SBUF;
- RI=0;//接收中斷信號(hào)清零,表示將繼續(xù)接收
- // flag=1;//進(jìn)入中斷的標(biāo)志符號(hào)
- }
- void Uart1Send(uchar c)
- {
- SBUF=c;
- while(!TI);//等待發(fā)送完成信號(hào)(TI=1)出現(xiàn)
- TI=0;
- }
- //串行口連續(xù)發(fā)送char型數(shù)組,遇到終止號(hào)/0將停止
- void Uart1Sends(uchar *str)
- {
- while(*str!='\0')
- {
- SBUF=*str;
- while(!TI);//等待發(fā)送完成信號(hào)(TI=1)出現(xiàn)
- TI=0;
- str++;
- }
- }
- //延時(shí)函數(shù)大概是1s鐘,不過(guò)延時(shí)大的話(huà)不準(zhǔn)...
- void DelaySec(int sec)
- {
- uint i , j= 0;
- for(i=0; i<sec; i++)
- {
- for(j=0; j<65535; j++)
- {
- }
- }
- }
- void main()
- {
- uchar i = 0;
- SerialInti();
- //程序執(zhí)行到這里,模塊已經(jīng)注冊(cè)到了網(wǎng)絡(luò),可以將讓模塊開(kāi)機(jī),等待模塊注冊(cè)到網(wǎng)絡(luò),然后開(kāi)單片機(jī)電源。
- Uart1Sends("AT+CMGF=1\r\n");
- DelaySec(3);//延時(shí)3秒 //延時(shí)不準(zhǔn),此處加了這么長(zhǎng)的延時(shí) 就是單純?yōu)榱?能讓模塊執(zhí)行此條指令,實(shí)際中最好加判斷,判斷模塊是否執(zhí)行成功
- Uart1Sends("AT+CSCS=\"UCS2\"\r\n");
- DelaySec(3);//延時(shí)3秒
- Uart1Sends("AT+CSCA?\r\n");
- DelaySec(3);//延時(shí)3秒
- Uart1Sends("AT+CSMP=17,167,0,25\r\n");
- DelaySec(3);//延時(shí)3秒
- //下面的短信號(hào),短信內(nèi)容都為UNICON編碼,可以用UNICON編碼工具來(lái)獲取
- Uart1Sends("AT+CMGS=\"00310033003800310038003200370030003000360039\"");//此處修改為對(duì)方的電話(huà)號(hào) 注意此條指令后不要加回車(chē)換行
- DelaySec(5);//延時(shí)3秒
- Uart1Sends("4F60597D00680065006C006C006F");
- Uart1Send(0x1a);
- DelaySec(15);//延時(shí)20秒
-
- }
復(fù)制代碼
所有資料51hei提供下載:
防幼兒誤鎖車(chē)內(nèi)裝置設(shè)計(jì)(含電路圖原理圖,程序).7z
(1.49 MB, 下載次數(shù): 39)
2020-3-25 18:05 上傳
點(diǎn)擊文件名下載附件
|
評(píng)分
-
查看全部評(píng)分
|