資源簡(jiǎn)介
基于單片機(jī)的GSM智能快遞箱設(shè)計(jì)
該項(xiàng)目包括原理圖電路圖 程序源碼 演示視頻講解文檔全套資料
三分拿去 超值了
代碼片段和文件信息
#include??//包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義
#include?//_nop_
#include??//調(diào)用?strstr?字符串對(duì)比函數(shù)
sbit?led?=?P1^6;
//sbit?beep=P1^7; ??//蜂鳴器
sbit?beep=P1^5; ??//蜂鳴器
sbit?JDQ=P1^4; ??//繼電器
#define?KeyDataPort?P2
void?keydelay(unsigned?int?i); //按鍵延時(shí)
unsigned?char?jvzhenjiance(); //矩陣鍵盤
unsigned?int?j=0;//計(jì)數(shù)變量???只有奇數(shù)時(shí)才發(fā)送短信???偶數(shù)時(shí)表示是取快遞的人開(kāi)的箱子???此時(shí)不發(fā)送短信
bit?Send_Mes_flag=0;
//LCD1602液晶屏
sbit?RS?=?P1^0;???//定義LCD1602端口?
sbit?RW?=?P1^1;
sbit?EN?=?P1^2;
#define?RS_CLR?RS=0?
#define?RS_SET?RS=1
#define?RW_CLR?RW=0?
#define?RW_SET?RW=1?
#define?EN_CLR?EN=0
#define?EN_SET?EN=1
#define?DataPort?P0
//液晶屏
void?LCD1602_Delay5ms(); ??//@11.0592MHz
bit?LCD1602_Check_Busy(void);//?判忙函數(shù)
void?LCD1602_Write_Com(unsigned?char?com);//寫入命令函數(shù)?
void?LCD1602_Write_Data(unsigned?char?Data);//寫入數(shù)據(jù)函數(shù)?
void?LCD1602_Init(void);//初始化函數(shù)
void?LCD1602_Clear(void);//清屏函數(shù)?
void?LCD1602_SetPos(unsigned?char?Xunsigned?char?Y); //設(shè)置坐標(biāo)
void?LCD1602_Write_Char(unsigned?char?xunsigned?char?yunsigned?char?Data);//寫入字符函數(shù)??x--第幾行 ?y--第幾列
void?LCD1602_Write_String(unsigned?char?xunsigned?char?yunsigned?char?*s);//寫入字符串函數(shù)???x--第幾行 ?y--第幾列
void?Uart0_Init();//串口初始化
void?Uart0_SendChar(unsigned?char?x); //發(fā)送一個(gè)字節(jié)的數(shù)據(jù),形參d即為待發(fā)送數(shù)據(jù)。
void?Uart0_SendString(unsigned?char?*s);//發(fā)送一個(gè)字符串
//短信模塊運(yùn)行參數(shù)
#define?BUF_MAX?200? //緩存長(zhǎng)度200
unsigned?char?sim900a_i?=?0;???????????????//定義緩存指針
unsigned?char?xdata?sim900a_rec_buf[BUF_MAX];????//定義緩存數(shù)組
unsigned?char?phone_number[11]=“15733722032“;????//定義緩存數(shù)組
void?SIM900A_Delay100ms(unsigned?char?y);// //@11.0592MHz
void?SIM900A_Clr_Buf(void); //清除緩存數(shù)據(jù)函數(shù)
bit?SIM900A_Hand(unsigned?char?*a); //判斷緩存中是否含有指定的字符串函數(shù)
void?SIM900A_Init(void); //初始化函數(shù)
void?SIM900A_Read_Message(void); //讀取第一條短信內(nèi)容?存于sim900a_rec_buf[]數(shù)組中?注意:該函數(shù)讀取短信后并未清除緩存?待判斷短信內(nèi)容后一定要清除
void?SIM900A_Delete_Message(void); //刪除第一條短信內(nèi)容
void?SIM900A_Send_TEST_Message(void); //發(fā)送驗(yàn)證碼短信
unsigned?char?keytemp=0xffkeynumber=0xff;//矩陣鍵值
unsigned?char?test[4]=0;//測(cè)試
unsigned?char?i=0;//存儲(chǔ)密碼循環(huán)變量
unsigned?char?errortimes=0;//錯(cuò)誤次數(shù)?5次報(bào)警
unsigned?char?default_password[4]=“1234“;//默認(rèn)密碼
unsigned?char?input_password1[5]=“00000“;//輸入密碼1?第五位用來(lái)緩存?不做處理
unsigned?char?input_password2[5]=“00000“;//輸入密碼2
void?Input_PasswordA(); //把輸入密碼存入input_password1數(shù)組中
void?Input_PasswordB(); //把輸入密碼存入input_password2數(shù)組中
bit?Compare_Password(unsigned?char?*s1unsigned?char?*s2); //比較1?2?數(shù)據(jù)是否相同?相同返回1?不同返回0?
void?Empty_Password(unsigned?char?*s1); //清空該數(shù)組數(shù)據(jù)
void?Change_Password(); //修改默認(rèn)密碼數(shù)據(jù)
void?Delay100ms() //@11.0592MHz
{
unsigned?char?i?j;
i?=?180;
j?=?73;
do
{
while?(--j);
}?while?(--i);
}
/*------------------------------------------------
????????????????????主函數(shù)
------------------------------------------------*/?
void?main(void)?
{
LCD1602_Init();?//液晶屏初始化
LCD1602_Clear();//清屏
/////*************************012345678
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????47104??2018-03-14?10:10??基于單片機(jī)的GSM智能快遞箱設(shè)計(jì)任務(wù)書(shū).doc
-----------?---------??----------?-----??----
????????????????47104????????????????????1
評(píng)論
共有 條評(píng)論