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

正文內(nèi)容

基于51單片機(jī)的紅外密碼鎖設(shè)計(jì)及測(cè)試報(bào)告(參考版)

2025-06-03 08:57本頁面
  

【正文】 }//24c02 向相應(yīng)地址寫入數(shù)據(jù)46voi。delay_us(5)。i = readx()。writex(0xa1)。clock()。clock()。start()。delay_us(2)。(i255))i++。while ((sda==1)amp。scl = 1。return k。scl = 0。else j = 0。delay_us(2)。i++){45delay_us(2)。for (i=0。delay_us(2)。}}//從 24c02 讀一字節(jié)數(shù)據(jù)uchar readx(){uchar i,j,k。delay_us(2)。delay_us(2)。delay_us(2)。i++){sda = (bit)(tempamp。for (i=0。delay_us(2)。delay_us(2)。delay_us(2)。delay_us(2)。delay_us(2)。delay_us(2)。delay_us(2)。delay_us(2)。delay_us(2)。 //時(shí)鐘線sbit sda = P3^7。 //松鍵檢測(cè)} return x。 // 7default: break。 // 8case 0x77: x=7。 // 9case 0x7B: x=8。 // 設(shè)定修改密碼case 0x7D: x=9。 // 4 case 0x7E: x=10。 // 5case 0xB7: x=4。 // 6case 0xBB: x=5。 // 確認(rèn)case 0xBD: x=6。 // 1case 0xBE: x=11。 // 2case 0xD7: x=1。 // 3case 0xDB: x=2。 // 取消case 0xDD: x=3。 // 0case 0xDE: x=12。 // 密碼輸入case 0xE7: x=0。43switch(keydown) //判斷按鍵值{case 0xED: x=14。}P1 = 0x0F。P1 = 0xF0。P1 = 0xF0。}endif ② 矩陣鍵盤掃描 /*判斷按鍵按下及按鍵值確定 */uint keyin(){uchar t, keydown。lcd_w(0x06)。}// 1602 初始化void lcd_init(){lcd_w(0x38)。en = 1。P0 = dat。}// 1602 寫數(shù)據(jù)子函數(shù)void lcd_wdat(uchar dat){rs = 1。en = 1。P0 = 。}//1602 寫命令子函數(shù)void lcd_w(uchar ){42rs = 0。y0。x0。void delay(uint n){uint x,y。uchar code table8[]=Modify Fail!。uchar code table6[]=New password:。uchar code table4[]=Enter password:。uchar code table2[]=Wrong!。 //背光燈端口//table 中存放相應(yīng)必要提示語uchar code table[] =Wele!。sbit en=P2^5。6. 終端程序部分 ① 1602 顯示//1602 頭文件ifndef _LCD1602_Hdefine _LCD1602_Hinclude define uchar unsigned chardefine uint unsigned intsbit rs=P2^3。當(dāng)修改密碼成功時(shí)將新的密碼寫入 24c02 中,掉電不丟失。矩陣鍵盤的掃描方式采用線反轉(zhuǎn)法。3. 矩陣鍵盤的掃描鍵盤設(shè)計(jì)為 4*4 矩陣鍵盤。重新修改密碼時(shí)需輸入兩次密碼,第一次為新設(shè)定的密碼,第二次為新密碼的確認(rèn)修改密碼成功時(shí) LCD 提示修改成功并有 led 閃爍。2. 密碼的修改 通過按下密碼修改鍵,重現(xiàn)設(shè)定密碼。設(shè)定初始密碼為{1,2,3,4} ,通過按輸入鍵開始輸入密碼,依次輸入 4 個(gè)數(shù)字,最后與 24C02 當(dāng)中儲(chǔ)存的密碼相比較,密碼相等則開鎖,綠燈亮。 // 目的:跳過尖峰干擾脈沖intx0f = 1。 // 若原碼和反碼不等,則本次接收的數(shù)據(jù)無效}} }//// 中斷服務(wù)子程序////// void INTX0_ISR (void)////// 函數(shù)功能: 外 0 中斷服務(wù)程序,接收到紅外信號(hào)(下降沿)響應(yīng)中斷// 入口參數(shù): 無// 出口參數(shù): 無// 全局變量: intx0f:初始為 0。 // 暫存信號(hào)此時(shí)的電平狀態(tài)}} } if (~tmp[0] == tmp[1]) // 將原碼取反后與反碼進(jìn)行比較,若兩者的值相同則完成解碼{ch = tmp[0]。 // 先接收低位數(shù)據(jù)if (HONGWAI) // 若該信號(hào)為高電平 ,則延時(shí) 1ms 等待高電平結(jié)束{Delay_1ms(1)。 // 等待系統(tǒng)識(shí)別碼第一位數(shù)據(jù)的上升沿Delay_882us()。 j8。 i2。 // 高電平開始后,用 882us 的時(shí)間尺檢測(cè)信號(hào)的電平狀態(tài)if (HONGWAI) // 若該信號(hào)為高電平,則延時(shí) 1ms等待高電平結(jié)束{Delay_1ms(1)。 j++) // 檢測(cè) 26 位系統(tǒng)識(shí)別碼{while (!HONGWAI)。 // 延時(shí) 5ms,屏蔽引導(dǎo)碼中的 高電平for (j=0。}}if (irvalidf){while (!HONGWAI)。 // 延時(shí) 882usif (HONGWAI) // 若信號(hào)為高電平,則為干擾信號(hào){ irvalidf = 0。 i10。tmp[1]:暫存反碼數(shù)據(jù)irvalidf = 1。uchar tmp[2]。 }}//// void Decoder (void)////// 函數(shù)功能: 遙控解碼// 入口參數(shù): 無// 返回參數(shù): 無// 全局變量: irvalidf: 紅外解碼有效標(biāo)志位,為 1 表示有效// ch:紅外原碼數(shù)據(jù)存放單元// 調(diào)用模塊: Delay_882us()。 i0。 j) {。 i) {for(j=20。for (i=20。} while (t)。} while (i)。do {i = 165。 // 紅外解碼解碼有效標(biāo)志位,為 1 表示有效//// 功能程序區(qū)////// void Delay_1ms (unsigned char t)//// 函數(shù)功能: 時(shí)基為 1ms 的延時(shí)// 例子提示: 調(diào)用 Delay_1ms(20),得到 20ms 延時(shí)// 入口參數(shù): 無符號(hào) 8bit 整數(shù)// 返回參數(shù): 無// 全局變量: 無 37// 調(diào)用模塊: 無// 注意事項(xiàng): 基于使用外 12MHz 晶振的標(biāo)準(zhǔn) 8051(如 AT89S51)單片機(jī)/* 令 x=165,y=2,n=1,則延時(shí)時(shí)間 ={[3y+(n+2)xy+3]*t+5}T=(999t+5)T 單位: 1SYSCLK SYSCLK=12MHz 誤差Delay_1ms(1):延時(shí) 1 004 4usDelay_1ms(2):延時(shí) 2 003 3usDelay_1ms(3):延時(shí) 3 002 2usDelay_1ms(5):延時(shí) 5 000 0usDelay_1ms(10): 延時(shí) 9 995 5usDelay_1ms(20): 延時(shí) 19 985 15usDelay_1ms(40): 延時(shí) 39 965 35usDelay_1ms(60): 延時(shí) 59 945 55usDelay_1ms(100):延時(shí) 99 905 95usDelay_1ms(200):延時(shí) 199 805 195usDelay_1ms(255):延時(shí) 254 750 250us*///void Delay_1ms (unsigned char t){unsigned char i,j。 // 初始為 0。 // 外 0 中斷服務(wù)程序,接收到紅外信號(hào)(下降沿)響應(yīng)中斷endif//紅外接收子程序//說明:?jiǎn)纹瑱C(jī)使用晶振為 12MHzinclude include include //// 全局變量:內(nèi) RAM 存儲(chǔ)單元定義//uchar ch。 // 時(shí)基為 882us 的延時(shí)extern void Decoder (void)。 // 紅外解碼解碼有效標(biāo)志位,為 1 表示有效//// 外部函數(shù)聲明//extern void Delay_1ms (unsigned char t) 。 // 初始為 0。 // 紅外接收數(shù)據(jù)線//// 外部變量聲明//extern uchar ch。依次循環(huán),直到 8 位原碼和 8 位反碼數(shù)據(jù)讀完,將 8 位原碼數(shù)據(jù)取反后與原碼數(shù)據(jù)比較:若相等,則保存原碼數(shù)據(jù),完成解碼;若不相等,則退出解碼。依次循環(huán),直到 16 位系統(tǒng)識(shí)別碼讀完為止。 紅外接收解碼部分1. 單片機(jī)解碼過程① 單片機(jī)外中斷 0 以中斷方式檢測(cè)紅外信號(hào)的第一個(gè)下降沿。下面一一列舉程序流程圖:35。 33圖 323 立即地址讀時(shí)序 元器件列表元器件 規(guī)格 /型號(hào) 數(shù)量Lcd 1602 1繼電器 Hrs4hsdc12 1三極管 SR9013 2紅外接收頭 1838 1電阻 27k 8電阻 10k 3電阻 1k 1電解電容 瓷片電容 30pF 2單片機(jī) AT89C51 1Eeprom 24c02 1Usb 接口 母口 1按鍵 X 16Led X 4 34第四章 系統(tǒng)的軟件設(shè)計(jì)設(shè)計(jì)綜述:此設(shè)計(jì)能實(shí)現(xiàn)通過紅外發(fā)送進(jìn)行密碼的解鎖,同時(shí)在開鎖終端設(shè)備上也能進(jìn)行解鎖的操作,并修改密碼和儲(chǔ)存密碼。如果N=E,這里對(duì)24WC01 E=12對(duì)24WC02 E=25對(duì)24WC04 E=51對(duì)24WC08 E=102對(duì)24WC16 E=2047 則計(jì)數(shù)器將翻轉(zhuǎn)到0且繼續(xù)輸出數(shù)據(jù)。圖322 字節(jié)寫時(shí)序1讀操作對(duì)CAT24WC01/02/04/08/16 讀操作的初始化方式和寫操作時(shí)一樣僅把R/W 位置為1 有三種不同的讀操作方式立即地址讀、選擇讀和連續(xù)讀。當(dāng) CAT24WC01/02/04/08/16 工作于讀模式時(shí),在發(fā)送一個(gè) 8 位數(shù)據(jù)后釋放 SDA 線并監(jiān)視一個(gè)應(yīng)答信號(hào),一旦接收到應(yīng)答信號(hào) CAT24WC01/02/04/08/16 ,繼續(xù)發(fā)送數(shù)據(jù),如主器件沒有發(fā)送應(yīng)答信號(hào),器件停止傳送數(shù)據(jù)且等待一個(gè)停止信號(hào)。從器件 8 位地址的最低位作為讀寫控制位,1 表示對(duì)從器件進(jìn)行讀操作,0 表示對(duì)從器件進(jìn)行寫操作,在主器件發(fā)送起始信號(hào)和從器件地址字節(jié)后,CAT24WC01/02/04/08/16 監(jiān)視總線并當(dāng)其地址與發(fā)送的從地址相符時(shí),響應(yīng)一個(gè)應(yīng)答信號(hào)通過 SDA ,CAT24WC01/02/04/08/16 再根據(jù)讀寫控制位 R/W 的狀態(tài)進(jìn)行讀或?qū)懖僮?,?yīng)答信號(hào) I2C 總線數(shù)據(jù)傳送時(shí)每成功地傳送一個(gè)字節(jié)數(shù)據(jù)后,31接收器都必須產(chǎn)生一個(gè)應(yīng)答信號(hào)應(yīng)答的器件,在第 9 個(gè)時(shí)鐘周期時(shí)將 SDA 線拉低,表示其已收到一個(gè) 8 位數(shù)據(jù)。30圖 317 總線時(shí)序圖 318 寫周期時(shí)序圖 319 起始/停止時(shí)序器件尋址 主器件通過發(fā)送一個(gè)起始信號(hào)啟動(dòng)發(fā)送過程,然后發(fā)送它所要尋址的從器件的地址,8 位從器件地址的高 4 位固定為 1010,接下來的 3 位 A2 A1 A0 為器件的地址位用來定義哪個(gè)器件以及器件的哪個(gè)部分被主器件訪問。? 起始信號(hào):時(shí)鐘線保持高電平期間數(shù)據(jù)線電平從高到低的跳變作為I2C 總線的起始信號(hào)。I2C 總線協(xié)議I2C 總線協(xié)議定義如下? 只有在總線空閑時(shí)才允許啟動(dòng)數(shù)據(jù)傳送。當(dāng)使用 24WC0
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1