freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

gsm家庭防盜系統(tǒng)設(shè)計畢業(yè)設(shè)計論文說明書-資料下載頁

2025-06-28 08:06本頁面
  

【正文】 yourhouse!}。delay(200)。if(int1==0){ speaker=0。 lcd_wcmd(0x01)。 display(0x00,Alarm!)。 display(0x40,Steal!)。 gsm(sms)。 EX1=0。}}define_at24c02_Hincludeincludeincludedefine W24C02 0xA0 //存儲器的寫地址defineR24C02 0xA1 //存儲器的讀地址sbitSDA=P3^7。 //AT24C02串行數(shù)據(jù) sbitSCL=P3^6。 //AT24C02串行時鐘 unsignedchar_24C02Read(unsignedcharl_address)。//24C02讀函數(shù)void_24C02Write(unsignedchardat,unsignedcharl_address)。//24C02寫函數(shù)voidI2C_write(unsignedchartmp)//I2C寫入一個8位二進制數(shù),高位在前低位在后{ unsignedchari。 for(i=0。i8。i++){ SCL=0。 _nop_()。 _nop_()。 _nop_()。 SDA=(bit)(tmpamp。0x80)。 tmp=1。 _nop_()。_nop_()。_nop_()。_nop_()。_nop_()。 SCL=1。 _nop_()。_nop_()。_nop_()。_nop_()。_nop_()。 } SCL=0。}unsignedcharI2C_read(void)////I2C讀取一個8位二進制數(shù),也是高位在前低位在后{ unsignedchari,tmp。 tmp=0。 for(i=0。i8。i++){ SCL=0。 _nop_()。 _nop_()。 _nop_()。 //加入空指令增加穩(wěn)定性,這關(guān)系到頻率問題 SDA=1。 _nop_()。_nop_()。_nop_()。_nop_()。_nop_()。 SCL=1。 _nop_()。_nop_()。_nop_()。_nop_()。_nop_()。 tmp=1。 if(SDA==1) tmp++。 } SCL=0。 returntmp。 }voidI2C_ACK(bittmp) //根據(jù)tmp的0來決定應(yīng)答信號{ SDA=tmp。 _nop_()。_nop_()。_nop_()。_nop_()。_nop_()。 SCL=1。 _nop_()。_nop_()。_nop_()。_nop_()。_nop_()。 SCL=0。 }voidI2C_start(void) //看看I2C開始的波形,再對應(yīng)SDA、SCL的輸出{ SDA=1。 _nop_()。 SCL=1。 _nop_()。 SDA=0。 _nop_()。 SCL=0。 _nop_()。}voidI2C_stop(void) //I2C結(jié)束{ SDA=0。 _nop_()。 SCL=1。 _nop_()。 SDA=1。 _nop_()。 SCL=0。 _nop_()。}unsignedchar_24C02Read(unsignedcharl_address){ unsignedchartmp=0。 I2C_start()。 //I2C讀數(shù)據(jù)的開始,到下面的結(jié)束是讀一地址的整個過程, I2C_write(W24C02)。 //向I2C總線發(fā)出讀取24C02的地址 I2C_ACK(0)。 //下面就得你們自己結(jié)合I2C串口協(xié)議進行,先看看24C02數(shù)據(jù)手冊是怎么講I2C協(xié)議的 I2C_write(l_address)。//先寫入地址, I2C_ACK(1)。 I2C_stop()。 I2C_start()。 //再開始讀取數(shù)據(jù) I2C_write(R24C02)。 I2C_ACK(0)。 tmp=I2C_read()。 I2C_ACK(1)。 I2C_stop()。 //讀取一個地址的數(shù)據(jù)結(jié)束 delay(20)。 returntmp。}void_24C02Write(unsignedchardat,unsignedcharl_address){ I2C_start()。 //下面是寫一地址數(shù)據(jù)的過程 I2C_write(W24C02)。 //先向總線發(fā)出寫24C02的地址 I2C_ACK(0)。 I2C_write(l_address)。 //寫入地址 I2C_ACK(0)。 I2C_write(dat)。 //然后寫入數(shù)據(jù) I2C_ACK(1)。 I2C_stop()。 delay(20)。}endifdefine_gsm_Hincludeincludeucharsms1[]={AT+CMGF=1\r}。ucharsms2[]={AT+CMGS=13760727792\r}。ucharsms3=0x1A。voidInitCom(void)。voidgsm(uchar*sms)。//初始化串行口voidInitCom(void){ucharTHTL。THTL=0xFD。ET1=0。SCON=0x40。//串口方式1,TMOD=0x20。//定時器1定時方式2TH1=THTL。TL1=THTL。TI=0。TR1=1。//啟動定時器} voidgsm(uchar*sms){ uchari=0,j=0,k=0。 //InitCom()。 longdelay(10)。 while(sms1[i]!=39。\039。) {SBUF=sms1[i]。 while(!TI)。 TI=0。 i++。 } longdelay(10)。 while(sms2[j]!=39。\039。) { SBUF=sms2[j]。 while(!TI)。 TI=0。 j++。 } longdelay(10)。 while(sms[k]!=39。\039。) { SBUF=sms[k]。 while(!TI)。 TI=0。 k++。 }SBUF=sms3。 while(!TI)。TI=0。}endififndef_key1_Hdefine_key1_Hincludeincludecodeunsignedcharkey_tab[17]={0xed,0x7e,0x7d,0x7b, 0xbe,0xbd,0xbb,0xde, 0xdd,0xdb,0x77,0xb7, 0xee,0xd7,0xeb,0xe7,0XFF}。//鍵盤的讀取,我們采用分時掃描unsignedcharl_key=0xff。 //定義變量,存放鍵值 unsignedcharl_keyold=0xFF。 //做為按鍵松開否的憑證 voidReadKey(void)。//掃描鍵盤獲取鍵值voidReadKey(void) //讀鍵盤值{ unsignedchari,j,key。 j=0xfe。 key=0xff。 //設(shè)定初值 for(i=0。i4。i++){ P1=j。 //P1口低4位循環(huán)輸出0,掃描鍵盤 if((P1amp。0xf0)!=0xf0){ //如果有鍵按下,P1高4位不會全為1, key=P1。 //讀取P1口,退出循環(huán),否則循環(huán)下次 break。 } j=_crol_(j,1)。 //此函數(shù)功能為左循環(huán)移位 } if(key==0xff){ //如果讀取不到P1口的值,比如是干擾,不做鍵值處理,返回 l_keyold=0xff。 return。 } if(l_keyold==key){ //檢測按鍵放開否,如 return。 } l_keyold=key。 //獲取鍵碼做為放開的憑證 for(i=0。i17。i++){ //查表獲得相應(yīng)的16進制值存放l_key變量中 if(key==key_tab[i]){ l_key=i。 break。 } }//程序運行到這里,就表明有鍵值被讀取存放于l_key變量中,主程序就可以檢測此變量做相應(yīng)外理。}endififndef_LCD1602_Hdefine_LCD1602_HincludeincludedefineucharunsignedchartypedefbitBOOL。sbitrs=P0^5。sbitrw=P0^6。sbitep=P0^7。voiddelay(uchar)。voidlongdelay(uchar)。voidlcd_wcmd(uchar)。BOOLlcd_bz()。voidlcd_pos(uchar)。voidlcd_wdat(uchar)。voiddisplay(uchar,uchar*)。voidlcd_init()。voiddelay(ucharms){//延時子程序uchari。while(ms){for(i=0。ii++)。}}voidlongdelay(uchars)//長延時{while(s){delay(80)。}}BOOLlcd_bz(){//測試LCD忙碌狀態(tài)BOOLresult。rs=0。rw=1。ep=1。result=(BOOL)(P2amp。0x80)。ep=0。returnresult。}voidlcd_wcmd(ucharcmd){//寫入指令數(shù)據(jù)到LCD//while(lcd_bz())。rs=0。rw=0。ep=0。P2=cmd。ep=1。ep=0。}voidlcd_pos(ucharpos){//設(shè)定顯示位置lcd_wcmd(pos|0x80)。}voidlcd_wdat(uchardat){//寫入字符顯示數(shù)據(jù)到LCD//while(lcd_bz())。rs=1。rw=0。ep=0。P2=dat。ep=1。ep=0。}voidlcd_init(){//LCD初始化設(shè)定lcd_wcmd(0x38)。//functionsetdelay(1)。lcd_wcmd(0x38)。//functionsetdelay(1)。lcd_wcmd(0x08)。//displayon/offdelay(1)。lcd_wcmd(0x01)。//清除LCD的顯示內(nèi)容delay(1)。lcd_wcmd(0x06)。//entrymodesetdelay(1)。lcd_wcmd(0x0c)。//開顯示,并顯示光標delay(1)。}函數(shù)名稱:display()功能:在LCD上顯示數(shù)組的數(shù)據(jù),打印模式說明:先寫顯示地址,后寫顯示數(shù)據(jù)調(diào)用:lcd_wcmd(),lcd_pos()入口參數(shù):pos寫入的位置,q指向要寫入的數(shù)據(jù)所在的數(shù)組返回值:無voiddisplay(ucharpos,uchar*q){lcd_pos(pos)。while(*q!=39。\039。){ delay(10)。 lcd_wdat(*q)。q++。}}55
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1