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

正文內(nèi)容

基于gsm和ic卡的門禁安防系統(tǒng)的方案設計畢業(yè)論文(編輯修改稿)

2025-06-02 00:19 本頁面
 

【文章內(nèi)容簡介】 break。 default: break。 } WriteRawRC(ComIEnReg,irqEn|0x80)。 //寫RC522寄存器 ClearBitMask(ComIrqReg,0x80)。 //清RC522寄存器位 WriteRawRC(CommandReg,PCD_IDLE)。 //寫RC522寄存器 SetBitMask(FIFOLevelReg,0x80)。 //置RC522寄存器位 for (i=0。 iInLenByte。 i++) //判斷數(shù)據(jù)的字節(jié)長度并把數(shù)據(jù)寫到寄存器中 { WriteRawRC(FIFODataReg, pInData[i])。 } WriteRawRC(CommandReg, Command)。 if (Command == PCD_TRANSCEIVE)//判斷RC522命令字是否等于0x0C { SetBitMask(BitFramingReg,0x80)。 }//置RC522寄存器位 i = 600。 //根據(jù)時鐘頻率調(diào)整,操作M1卡最大等待時間25ms do { n = ReadRawRC(ComIrqReg)。 讀RC522寄存器,并將值賦給n i。 } while ((i!=0) amp。amp。 !(namp。0x01) amp。amp。 !(namp。waitFor))。//判斷n是否等于0x01或waitFor ClearBitMask(BitFramingReg,0x80)。 //清RC522寄存器位 if (i!=0) //判斷i是否等于0 { if(!(ReadRawRC(ErrorReg)amp。0x1B))//判斷ErrorReg寄存器中的值是否為0x1B { status = MI_OK。 //將MI_OK的值賦給status if (n amp。 irqEn amp。 0x01)//判斷n和irqEn的值是否為0x01 { status = MI_NOTAGERR。 } if (Command == PCD_TRANSCEIVE)//判斷RC522命令字是否等于0x0C { n = ReadRawRC(FIFOLevelReg)。 //賦值 lastBits = ReadRawRC(ControlReg) amp。 0x07。 if (lastBits) { *pOutLenBit = (n1)*8 + lastBits。 } else { *pOutLenBit = n*8。 } if (n == 0) { n = 1。 } if (n MAXRLEN)//判斷n是否超過范圍 { n = MAXRLEN。 } for (i=0。 in。 i++) { pOutData[i] = ReadRawRC(FIFODataReg)。 } }//將FIFODataReg寄存器中的值存到pOutData數(shù)組中 } else { status = MI_ERR。 } } SetBitMask(ControlReg,0x80)。 // 清RC522寄存器位 WriteRawRC(CommandReg,PCD_IDLE)。 //寫RC522寄存器 return status。} 語音模塊的軟件設計語音模塊的核心芯片ISD1760可采用SPI串行接口與單片機通信,進行錄音、放音等操作。數(shù)據(jù)在SCLK的上升沿鎖存進芯片在SCLK的下降沿從MISO管腳輸出,并且低位首先移出。ISD1760芯片內(nèi)部寄存器SR0、SRAPC決定著對芯片的各項控制和相關狀態(tài)信息。本程序中所用到的1760SPI指令如表44所示。表44 1760 SPI指令表指令名稱命令字節(jié)數(shù)據(jù)字節(jié)1數(shù)據(jù)字節(jié)2或起始地址字節(jié)1數(shù)據(jù)字節(jié)3或起始地址字節(jié)2結(jié)束地址字節(jié)1/2/3描述PU0x010x00上電STOP0x020x00停止RESET0x030x00復位CLR_INT0x040x00清標志RD_STATUS0x050x000x00讀狀態(tài)寄存器PD0x070x00下電WR_APC20x65D7:D0寫APC2SET_PLAY0x800x00S7:S0 S10:S8E10:E0按地址放音單片機控制ISD1760功能程序如下:void isd_pu( ) //上電{ isd_senddata(0x01)。 isd_senddata(0x00)。 SS1=1。}void isd_clr_int( ) //清楚中斷標志{ isd_senddata(0x04)。 isd_senddata(0x00)。 SS1=1。}void isd_rd_status( ) //讀狀態(tài)寄存器的內(nèi)容{ uchar i。 isd_senddata(0x05)。 isd_senddata(0x00)。 isd_senddata(0x00)。 SS1=1。 for(i=2。i0。i) {。} SR0_L=isd_senddata(0x05)。 SR0_H=isd_senddata(0x00)。 SR1=isd_senddata(0x00)。 SS1=1。 FLAG=SR0_L。}void isd_wr_apc2(uchar apcdatl,apcdath) //設置APC2{ isd_senddata(0x65)。 isd_senddata(apcdatl)。 isd_senddata(apcdath)。 SS1=1。}void isd_set_play(uchar saddl,saddh,eaddl,eaddh) //定點播放{ isd_senddata(0x80)。 isd_senddata(0x00)。 isd_senddata(saddl)。 isd_senddata(saddh)。 isd_senddata(eaddl)。 isd_senddata(eaddh)。 isd_senddata(0x00)。 SS1=1。} 顯示模塊的軟件設計LCD1602的寫操作分為寫數(shù)據(jù)和寫命令。LCD1602使用前必須進行初始化,初始化內(nèi)容為設置顯示模式,光標開閉狀態(tài)、數(shù)據(jù)地址指針模式,清屏。默認初始化設置為162顯示,57點陣,8位數(shù)據(jù)接口;開顯示、不顯示光標、光標不閃爍;當讀或?qū)懸粋€字符后地址指針加一,且光標加一。其寫操作時序如圖44所示。圖44 LCD1602寫操作時序LCD1602運行程序:void write_(uchar )// LCD1602寫命令{ rs=0。 rw=0。 P0=。 Delay1(5)。 lcden=1。 Delay1(5)。 lcden=0。 }void write_data(uchar date) // LCD1602寫數(shù)據(jù){ rs=1。 rw=0。 P0=date。 Delay1(5)。 lcden=1。 Delay1(5)。 lcden=0。 }void write_str(uchar *str,bit line,uint m) //顯示字符串 { uchar num。 if(line==0) { for(num=0。numm。num++) { write_data(str[num])。 Delay1(1)。 } } if(line==1) { for(num=0。numm。num++) { write_data(str[num])。 Delay1(1)。 } }}void init1602( ) //LCD1602初始化{ lcden=0。 write_(0x38)。//設置16x2顯示,5x7點陣,8位數(shù)據(jù)接口 write_(0x0c)。//開顯示,不顯示光標 write_(0x06)。//讀寫一個字符后地址加1,且光標加1 write_(0x01)。//顯示清屏 } 超聲波測距模塊的軟件設計超聲波測距模塊采用電平觸發(fā)模式,當給予TRIG一個10us的高電平時,單片機定時器開始計時,直到ECHO接收到信號后單片機停止計時。通過計時的時間即可用公式:距離=高電平時間*聲速(340M/S)/2 算出距離,其單位為毫米。超聲波模塊時序圖如圖45所示。圖45 超聲波模塊時序圖單片機控制超聲波模塊運行程序: void StartModule( ) //啟動模塊 { TX=1。 //啟動一次模塊 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 TX=0。 } void Conut(void) //計算距離 { time=TH0*256+TL0。 TH0=0。 TL0=0。 S=(time*)/100。 //算出來是CM } 繼電器模塊的軟件設計繼電器模塊通過單片機的一個I/O口進行控制,由PNP三極管驅(qū)動。繼電器線圈起始是斷開的,當單片機輸出為低電平時,三極管導通,繼電器線圈導通,常開觸點閉合,常閉觸點斷開。持續(xù)輸出5s的低電平,則繼電器的常開觸點閉合5s,與常開觸點相連接的LED燈會亮5s。當計時器計滿以后,單片機輸出高電平,繼電器線圈斷開,常開觸點斷開,則與常閉觸點相連的LED燈亮。由此開模擬門鎖的開啟和關閉。 本章小結(jié)本章節(jié)主要介紹了系統(tǒng)各個模塊的軟件設計,先將各個模塊的程序編寫好,然后根據(jù)已經(jīng)畫好的電路圖,用protues連接好電路并且進行仿真,觀察各個模塊的現(xiàn)象就可以判斷程序是否運行正常。將每個模塊的軟件設計號以后再整合到一個程序里面去,再通過protues進行仿真,觀察整個系統(tǒng)的現(xiàn)象,以此來檢驗各個模塊之間是否會相互干擾,修改程序直到程序能正常運行。 第5章 基于GSM和IC卡的門禁安防系統(tǒng)的調(diào)試 MCU模塊的調(diào)試在硬件調(diào)試前,先用DXP軟件畫好電路原理圖,焊接制作實物,再用萬用表檢查電路是否有虛焊、引腳短接等現(xiàn)象。經(jīng)檢查無誤后,用keil軟件編一個LCD1602的顯示程序,將編好的程序用編程器燒寫到單片機中,依次用P0、PP2和P3口作為數(shù)據(jù)口,通過觀察LCD1602的顯示情況判斷單片機最小系統(tǒng)是否焊接正確及芯片引腳是否正常工作。經(jīng)試驗,單片機最小系統(tǒng)可以正常工作。 GSM模塊的調(diào)試GSM模塊是一個已經(jīng)焊接好的成品,其與單片機通過四個接口進行連接,因此只需在板子上焊接四個母座即可,然后通過跳線將這四個引腳分別接至單片機的VCC、TX、RX、GND,再用杜邦線將GSM模塊上的四個接口與板子上的四個引腳連接好即可。在連接好硬件以后再進行軟件調(diào)試,依次來測試硬件連接的可靠性。GSM模塊的軟件調(diào)試主要通過串口調(diào)試助手來完成。先將GSM模塊與PC機通過RS232轉(zhuǎn)USB串口線連接,然后打開串口調(diào)試助手輸入短信息AT命令、通話AT命令,通過串口調(diào)試助手接收區(qū)GSM模塊返回的信息可以判斷該模塊的通信是否正常。其調(diào)試過程如圖51所示。圖51 串口調(diào)試過程圖 IC卡模塊的調(diào)試在焊接好硬件電路以后,將測試程序通過編程器燒寫到單片機上。此程序的功能是讀IC卡的卡號并通過LCD1602顯示出來。其效果圖如圖52所示。圖52 IC卡模塊硬件測試效果圖由上述顯示效果可見,IC卡模塊硬件電路正常。在測試好硬件以后進行軟件調(diào)試。IC卡模塊在本系統(tǒng)中的作用主要是用來開啟門鎖。因此在讀出卡號以后,只要檢測到卡號與系統(tǒng)設定好的卡號相符,就能以此作為開啟門鎖的依據(jù)。用keil軟件編寫好程序以后,通過編程器將程序燒寫到單片機上,觀察繼電器的狀態(tài)以及LCD1602液晶屏的顯示情況就可以確定程序是否正常運行。圖53所示為其測試效果圖。圖53 IC卡模塊軟件測試效果圖 語音模塊的調(diào)試 使用焊接好的語音模塊電路,將模塊設置為獨立按鍵模式。先按下“RST”按鍵初始化模塊,再長按“ERASE”,然后在按下“REC”按
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1