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

正文內(nèi)容

帶紅外全鍵盤遙控及防控系統(tǒng)的保險(xiǎn)柜電子密碼鎖畢業(yè)論-在線瀏覽

2024-08-07 14:22本頁面
  

【正文】 111213141516第一行000102030405060708090A0B0C0D0E0F第二行404142434445464748494A4B4C4D4E4F表36 1602指令碼及其功能指令碼功能0x01清屏0x38雙行顯示,8位方式傳送和接收數(shù)據(jù),5X7點(diǎn)陣字型0x0C開LCM顯示屏,光標(biāo)不顯0x08關(guān)屏0x06每顯示一個(gè)字后,LCM顯示屏的字型不變,光標(biāo)右移表37 1602各引腳分布、功能及連接引腳號(hào)引腳名功能與單片機(jī)關(guān)聯(lián)1VSS接地端(GND)GND2VDD電源端(+5V)VCC3VO亮度調(diào)整VCC4RS選擇寄存器,0為指令寄存器,1為數(shù)據(jù)寄存器P255R/W讀寫選擇端,0寫入LCM數(shù)據(jù),1讀取LCM數(shù)據(jù)P266ELCM啟用信號(hào)P277DB0DB7數(shù)據(jù)總線(輸入輸出)P10P17表38 LCM1602A主要函數(shù)及其功能所在模塊函數(shù)功能LCD顯示模塊void delay( uchar xms)xms延時(shí)程序void LCD_busy( )1602忙標(biāo)志和查詢當(dāng)前AC地址Void LCDWCmd(uchar cmd)1602寫入控制字void LCDWRdata(uchar dat)1602寫入數(shù)據(jù)VoidDisplayonechar(uchar x,uchar y,uchar m )在第x行第y列顯示mvoid Displaynum(uchar x,uchar y,uchar num)在第x行第y列顯示兩位數(shù)字numvoid Displaystring(uchar x,uchar y,uchar *p )在第x行第y列顯示字符串void LCDInit( )LCD初始化 時(shí)間日期顯示模塊時(shí)間日期顯示模塊中時(shí)間更新主要是通過中斷實(shí)現(xiàn)的,中斷時(shí)間為50ms,當(dāng)時(shí)間滴答Ticks由初始值0加為20時(shí),即中斷20次時(shí)剛好經(jīng)過了一秒,此時(shí)秒鐘加1,顯示刷新時(shí)間;當(dāng)秒鐘加到60時(shí)秒鐘重置初值0,分鐘加1,顯示刷新時(shí)間;當(dāng)分鐘加到60時(shí),分鐘重置0,小時(shí)加1,顯示刷新時(shí)間;當(dāng)小時(shí)加到24小時(shí)時(shí),小時(shí)置初值0,日期天加1,顯示刷新日期;當(dāng)日期加到超過當(dāng)年當(dāng)月最大日期時(shí),日期置初值1,月份加1,顯示刷新日期;當(dāng)月份加到13時(shí),月份恢復(fù)初值1,年份加1,顯示刷新日期。中斷函數(shù)(時(shí)間日期顯示模塊)所使用函數(shù)主要函數(shù)如表39所示,星期顯示流程圖如圖34。中斷開始時(shí)INTbz置0,結(jié)束時(shí)置1,主函數(shù)初始將INTbz置1。是否是 中斷初始化中斷標(biāo)志INTbz置0Ticks是否為20?否時(shí)間滴答重置0秒數(shù)置0秒數(shù)置0秒數(shù)是否為60?是是分鐘是否為60?秒數(shù)加1否分鐘加1否分鐘加1時(shí)是否為24?小時(shí)置0日期加1日是否超出當(dāng)年月的日最大值?月份是否超過12否是是否中斷返回開 始日期置0月份加1月份置0年份加1中斷標(biāo)志INTbz加1圖33 時(shí)間日期更新流程圖對(duì)應(yīng)位置顯示年月日判斷當(dāng)年是否為閏年?2月天數(shù)更新為29天是Days為以2000年為基準(zhǔn)累積年周余數(shù),并除七取余判斷當(dāng)年是否為2000?否否判斷當(dāng)月是否為1月?Days加上當(dāng)年本月以前月周余數(shù)除7取余是Days加上當(dāng)月日期除7取余是否星期為星期(Days+1)對(duì)應(yīng)位置顯示星期開 始返 回 圖34 日期顯示模塊流程圖表39 時(shí)間日期顯示模塊流程圖時(shí)間日期顯示模塊函數(shù)功能void display_time( )時(shí)間顯示void display_date( )日期星期顯示void IntInit( )中斷初始化void Timer0_ISR(void) interrupt 1 using 1中斷計(jì)數(shù)更新時(shí)間日期 密碼輸入模塊錯(cuò)誤次數(shù)+1,輕微報(bào)警鍵盤獲取密碼并暫存從93C66獲取設(shè)定密碼 輸入與密碼位數(shù)是否相同?密碼輸入輸入與密碼是否完全吻合? 提示密碼輸入成功,并開鎖是是否否 錯(cuò)誤次數(shù)是否為3?否緊急報(bào)警,鎖定5分鐘,并錯(cuò)誤次數(shù)清0返回主程序 13號(hào)鍵按下當(dāng)按下C鍵,判斷密碼輸入次數(shù)標(biāo)志mimabz是否為3,若是則緊急報(bào)警并鎖定5分鐘,若不是則提示“Input Password:”,進(jìn)行密碼輸入。若不同則輕微報(bào)警,mimabz加1并返回mimabz判斷;若相同則進(jìn)行密碼比對(duì),吻合則開鎖并提示“Right”,不吻合則輕微報(bào)警,mimabz加1并返回mimabz判斷。圖35 密碼輸入流程圖表310 密碼輸入模塊基本函數(shù)密碼輸入模塊函數(shù)功能uint getsecret(uchar x,uchar y)密碼輸入子函數(shù):獲取一位輸入密碼并顯示39。緊急聲光報(bào)警 時(shí)間日期修改模塊按下D鍵即可進(jìn)行時(shí)間修改,每當(dāng)輸入一位09數(shù)字,如不符合實(shí)際則輸入報(bào)警,若符合則光標(biāo)移入下一位數(shù)字所在位置,繼續(xù)輸入。開 始輸入小時(shí)十位數(shù)小時(shí)十位數(shù)是否大于2?輸入小時(shí)個(gè)位數(shù)小時(shí)是否大于23?輸入分鐘十位數(shù)分鐘十位數(shù)是否大于59?輸入分鐘個(gè)位數(shù)分鐘是否大于59?輸入秒鐘十位數(shù)秒鐘十位數(shù)是否大于5?輸入秒鐘個(gè)位數(shù)秒鐘是否大于59?時(shí)間修改成功輸入報(bào)警否否否否否否是是是是是是是是是返回主程序 圖36 時(shí)間日期修改流程圖表311 時(shí)間日期模塊基本函數(shù)及其功能時(shí)間日期修改模塊函數(shù)功能uint gettime(uchar x,uchar y)時(shí)間修改子函數(shù):獲取一位輸入時(shí)間并顯示void display_time( )時(shí)間顯示void display_date( )日期顯示void Alarm_input_error( )輸入有誤,警鈴響一聲,警燈亮一下以示警告 密碼修改模塊按下E鍵,進(jìn)入密碼修改模塊。密碼修改時(shí)要輸入兩次新密碼,若前后兩次輸入密碼吻合,則密碼修改成功并提示密碼修改成功。提示密碼修改錯(cuò)誤開 始密碼輸入模塊新密碼輸入是否輸入正確?新密碼再次輸入兩次輸入是否一樣?密碼修改成功并提示否是是否時(shí)間日期顯示返回主程序圖37 密碼修改流程圖表312 密碼修改模塊基本函數(shù)及其功能密碼修改模塊函數(shù)功能uint getsecret(uchar x,uchar y)密碼輸入子函數(shù):獲取一位輸入密碼并顯示39。void get_password( )輸入密碼讀取并暫存函數(shù)uint check_password( )密碼核對(duì)函數(shù)uint input_newpassword( )密碼修改函數(shù),設(shè)置有真假返回void Alarm_input_error( )輸入內(nèi)容有誤,警鈴響一聲,警燈亮一下以示警告Alarm_jinji_error( )。如果從 低電平過后,開始延時(shí), 以后,若讀到的電平為低,說明該位為“1”,反之則為“0”,為了可靠起見,延時(shí)必須比 長些,但又不能超過 ,否則如果該位為“0”,讀到的已是下一位的高電平,因此?。?)/2= 最為可靠,一般取 左右均可。紅外解碼程序時(shí)是通過外部0中斷中實(shí)現(xiàn)的,將紅外接收器的SM0038的輸出腳3接到INT0,每當(dāng)來一個(gè)下降沿,外部0中斷便被觸發(fā)。當(dāng)外部0中斷觸發(fā)后,每接收完一位后位接收計(jì)數(shù)標(biāo)志JSbz則加1,若JSbz為32則接收完畢,否則繼續(xù)接收。具體流程圖如圖38所示。//,判斷INT0是否為1,若是則接收為0 if(INT0==1) JSsz[JSbz]=0。 JSbz++。 Uchar j=0,i。i16。amp。} if(j==32) { keyno=i。 } }開 始INT0下降沿外部0中斷開始JSbz是否為32?接收正確?無操作判斷INT0是否為1?接收位為0JSbz加1接收位為1確定按鍵執(zhí)行操作否是否是否是 中斷返回}圖38 紅外接收解碼操作 掉電存儲(chǔ)模塊掉電存儲(chǔ)模塊主要由AT93C66組成。數(shù)據(jù)讀取與寫入時(shí)只要通過AT93C66的SK、DI、D0即可。AT93C66各引腳功能、和控制器連接以及相應(yīng)置0置1操作如表313所示。= 0xF7PA |= 0x082CLK時(shí)鐘輸入PA2PA amp。= 0xFDPA |= 0x024DO串行數(shù)據(jù)輸出端PA0PA amp。數(shù)據(jù)寫入流程圖如圖39所示。開 始是否忙碌?寫允許,片選依脈沖寫入8位寫禁止是否返 回圖39 數(shù)據(jù)寫入流程圖 電機(jī)控制模塊電機(jī)控制模塊主要是為了實(shí)現(xiàn)鎖模塊,其驅(qū)動(dòng)芯片為L298N,L298N控制電機(jī)工作原理如表314所示,L298所用到引腳功能、其與控制器連接、置0、置1如表315所示。表314 L298N與直流電機(jī)工作原理ENAIN1IN2電機(jī)狀態(tài)101轉(zhuǎn)動(dòng)00停轉(zhuǎn)表315 L298N各引腳分布、功能及相應(yīng)操作引腳號(hào)引腳名功能與控制關(guān)聯(lián)置0操作置1操作5IN1輸入端1PA4PA amp。= 0xCFPA |= 0x206ENAININ2輸入使能端PB0PB amp。//ENA置1,即ININ2輸入有效 PA amp。//IN1置0 PA |= 0x20。//ENA置1,即ININ2輸入有效 PA amp。//IN1置0 PA amp。//IN2置1,電機(jī)轉(zhuǎn)動(dòng) } 8255擴(kuò)展模塊擴(kuò)展模塊電路由單片機(jī)和地址鎖存器74LS273以及8255A共同組成的51單片機(jī)并行I/O口擴(kuò)展電路,擴(kuò)展原因是并行I/O口可能不夠用(基于考慮到可能擴(kuò)展電話報(bào)警模塊)。8255A各口絕對(duì)地址如下:define PA XBYTE[0x7FFC]//A口地址define PB XBYTE[0x7FFD]//B口地址define PC XBYTE[0x7FFE]//B口地址define CON XBYTE[0x7FFF]//控制口地址表316 8255A各引腳分布、連接及相應(yīng)操作引腳連接置0置1PA093C66_DOPA amp。= 0xFDPA |= 0x02PA293C66_CLKPA amp。= 0xF7PA |= 0x08PA4L298_INT1PA amp。= 0xCFPA |= 0x20PA6555_RPA amp。= 0xFEPB |= 0x01PC7水銀開關(guān)PC amp。表317 8255A各引腳分布、連接及相應(yīng)操作A組控制B組控制D7D6D5D4D3D2D1D010001000方式選擇控制字1有效A組工作方式0A口為輸出口C口高四位為輸出B組工作方式0B口為輸出C口低四位為輸出 防控模塊當(dāng)15鍵按下,首先顯示密碼輸入界面,當(dāng)且僅當(dāng)密碼輸入正確后方可布防,標(biāo)志位operation置為15,其密碼輸入過程如密碼輸入模塊一樣,這里不再重述。待防控系統(tǒng)啟動(dòng)后,若不按11鍵正確解除防控狀態(tài),按下任意鍵均報(bào)警。布防系統(tǒng)簡(jiǎn)要流程圖如圖310,解防系統(tǒng)流程圖就不再贅述了。系統(tǒng)檢測(cè)到PC7為低,則報(bào)警。其中PC7的控制對(duì)應(yīng)PC口控制如表318。= 0x7FPC amp。檢測(cè)具體內(nèi)容及相應(yīng)操作如下代碼:while(PCamp。//緊急報(bào)警 delays(300)。//緊急報(bào)警5分鐘后跳出死循環(huán) }檢測(cè)PC7口狀態(tài)PA7是否為0?
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1