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

正文內(nèi)容

超市存物箱模擬裝置設(shè)計(jì)-本科畢業(yè)論文終-資料下載頁

2025-06-07 08:41本頁面
  

【正文】 cReadByte() { uchar i,temp,dat=0。 SCL_P=0。 Delay6us()。 SDA_P=1。 Delay6us()。 for (i=0。i8。i++) { SCL_P=1。 Delay6us()。 temp=SDA_P。 Delay6us()。 dat=(dat1)|temp。 SCL_P=0。 Delay6us()。 } return(dat)。 } // IIC總線響應(yīng) void IIcRespons() { uchar i=0。 SCL_P=1。 Delay6us()。 while((SDA_P==1)amp。amp。(i250)) { i++。 31 } SCL_P=0。 Delay6us()。 } // IIC讀出數(shù)據(jù) uchar IIcReadDat(uchar addr) { uchar dat。 IIcStart()。 // 開始信號(hào) IIcWriteByte(0xa0)。 // 寫芯片地址 (寫 ) IIcRespons()。 // 等待應(yīng)答 IIcWriteByte(addr)。 // 寫內(nèi)存地址 (0255) IIcRespons()。 // 等待應(yīng)答 IIcStart()。 // 開始信號(hào) IIcWriteByte(0xa1)。 // 寫芯片地址 (讀 ) IIcRespons()。 // 等待應(yīng)答 dat=IIcReadByte()。 // 讀取一個(gè)字節(jié)數(shù)據(jù) IIcRespons()。 // 等待應(yīng)答 IIcStop()。 // 結(jié)束信號(hào) DelayMs(2)。 // 簡短延時(shí) return dat。 // 返回讀取到的數(shù)據(jù) } // IIC寫入數(shù)據(jù) void IIcWriteDat(uchar addr,uchar dat) { IIcStart()。 // 開始信號(hào) IIcWriteByte(0xa0)。 // 寫芯片地址 (寫 ) IIcRespons()。 // 等待應(yīng)答 IIcWriteByte(addr)。 // 寫內(nèi)存地址 (0255) 32 IIcRespons()。 // 等待應(yīng)答 IIcWriteByte(dat)。 // 寫入數(shù)據(jù) IIcRespons()。 // 等待應(yīng)答 IIcStop()。 // 結(jié)束信號(hào) DelayMs(2)。 // 簡短延時(shí) } // 矩陣鍵盤掃描程序 uchar KeyScanf() { uchar ret,temp1,temp2。 P1=0x0f。 if(P1!=0x0f) { DelayMs(15)。 if(P1!=0x0f) { temp1=P1。 // 判斷出是哪一行按鍵按下 P1=0xf0。 DelayMs(5)。 temp2=P1。 // 判斷出是哪一列按鍵被按下 ret=temp1|temp2。 // 通過行和列的值,確定是哪個(gè)按鍵被按下 switch(ret) { case 0xe7: return 1。 case 0xd7: return 2。 case 0xb7: return 3。 case 0x77: return 12。 case 0xeb: return 4。 case 0xdb: return 5。 33 case 0xbb: return 6。 case 0x7b: return 13。 case 0xed: return 7。 case 0xdd: return 8。 case 0xbd: return 9。 case 0x7d: return 14。 case 0xee: return 10。 case 0xde: return 0。 case 0xbe: return 11。 case 0x7e: return 15。 } return ret。 } } return 99。 } // 液晶顯示密碼 void LcdPrintCode(uchar num) { LcdGotoXY(row,column)。 // 液晶顯示定位 LcdWriteData(num+0x30)。 // 顯示輸入的密碼 DelayMs(150)。 // 等待 150毫 秒 LcdGotoXY(row,column)。 // 重新回到剛剛的顯示位置 LcdWriteData(39。*39。)。 // 顯示 “*”替換剛剛顯示的數(shù)字 column++。 // 液晶顯示光標(biāo)的縱坐標(biāo)加 1 } // 清除密碼輸入緩沖區(qū)的內(nèi)容 void ClearCodeBuff() { 34 uchar i。 for(i=0。i6。i++) // 循環(huán)執(zhí)行 6次 { ArrCodeBuff[i]=39。 39。 // 每次清除一位密碼緩沖區(qū) } inputNum=0。 // 輸入的密碼位數(shù)為 0 } // 密碼輸入初始化 void inputInit() { LcdGotoXY(0,0)。 // 光標(biāo)定位 LcdPrintStr( state:lock )。 // 液晶第 0行顯示 State:lock LcdGotoXY(1,0)。 // 光標(biāo)定位 LcdPrintStr(Password: )。 LcdGotoXY(1,9)。 // 液晶第 1行顯示 Password: ClearCodeBuff()。 // 清除密碼緩沖區(qū) } // 密碼初始化 void CodeInit() { uchar dat,i。 dat=IIcReadDat(10)。 if(dat!=88) // 如果是第一次使用 AT24C02芯片 { IIcWriteDat(0,1)。 // 給 AT24C02第 0個(gè)內(nèi)存寫入第一個(gè)密碼 “1” IIcWriteDat(1,2)。 // 給 AT24C02第 1個(gè)內(nèi)存寫入第二個(gè)密碼 “2” IIcWriteDat(2,3)。 // 給 AT24C02第 2個(gè)內(nèi)存寫入第三個(gè)密碼 “3” IIcWriteDat(3,4)。 // 給 AT24C02第 3個(gè)內(nèi)存寫入第四個(gè)密碼 “4” IIcWriteDat(4,5)。 // 給 AT24C02第 4個(gè)內(nèi)存寫入第五個(gè)密碼 “5” 35 IIcWriteDat(5,6)。 // 給 AT24C02第 5個(gè) 內(nèi)存寫入第六個(gè)密碼 “6” IIcWriteDat(10,88)。 // 給 AT24C02第 10個(gè)內(nèi)存寫入數(shù)字 “88”,代表密碼初始化好了 } for(i=0。i6。i++) // 從 AT24C02讀取 6個(gè)密碼,賦值給密碼數(shù)組 ArrCode { ArrCodeUnlock[i]=IIcReadDat(i)。 } } //**************************************************** //獲取壓力 1 //**************************************************** void Get_yali2() { yali2 = HX711_Read()。 yali2 = yali2 yali1。 //獲取壓力 2的值 if(yali2 = 0) { yali2 = (unsigned long)((float)yali2/GapValue)。 //計(jì)算實(shí)際壓力值 } else { yali2 = 0。 } } //獲取壓力 2 void Get_yali1() { yali1 = HX711_Read()。 36 } // 毫秒級(jí)的延時(shí)函數(shù), time是要延時(shí)的毫秒數(shù) void DelayMs(uint time) { uint i,j。 for(i=0。itime。i++) for(j=0。j112。j++)。 } void MingJiao(uint time) { Beep_P=0。 // 蜂鳴器開始鳴叫 DelayMs(time)。 // 延時(shí) Beep_P=1。 // 蜂鳴器停止鳴叫 } // 主函數(shù),程序 從這里開始執(zhí)行 void main() { uchar i。 // 臨時(shí)變量 uchar keyVal。 // 按鍵掃描的返回值 uchar ArrCodeTemp[6]。 // 臨時(shí)數(shù)組 LcdInit()。 // 液晶初始化 inputInit()。 // 密碼輸入初始化 CodeInit()。 Get_yali1()。 Get_yali1()。 DelayMs(2021)。 //延時(shí) 2s Get_yali1()。 Get_yali1()。 //獲取壓力 1,多次測量有利于 HX711穩(wěn)定 while(1) 37 { if(inputNum==6) // 如果輸入了 6位密碼了 LcdWriteCmd(0x0c)。 // 關(guān)閉光標(biāo)閃爍 else // 如果輸入不夠 6位密碼 LcdWriteCmd(0x0f)。 // 開啟光標(biāo)閃爍 keyVal=KeyScanf()。 // 掃描按鍵是否有按鍵 if(keyVal!=99) // 如果有按鍵被按下了 { MingJiao(50)。 // 那么蜂鳴器鳴叫 50 毫秒 } /* 09 數(shù)字 */ if(keyVal10) // 如果數(shù)字鍵被按下 { if(inputNum6) // 如果輸入的密碼不到 6位 { ArrCodeBuff[inputNum]=keyVal。 // 給 ArrCodeBuff緩沖區(qū)加入一個(gè)新的密碼記錄 inputNum++。 // inputNum 加 1,代表當(dāng)前的密碼輸入多了一位 LcdPrintCode(keyVal)。 // 將輸入的密碼顯示出來 } while(KeyScanf()!=99)。 // 等待按鍵釋放 } /* 刪除一個(gè)密碼 */ if(keyVal==10) // 如果刪除鍵被按下 { if(inputNum0) // 如果當(dāng)前已經(jīng)有輸入密碼了 { column。 // 光標(biāo)退回上一個(gè)位置 LcdGotoXY(row,column)。 38 LcdWriteData(39。 39。)。 // 顯示空格 LcdGotoXY(row,column)。 // 光標(biāo)退回上一個(gè)位置 inputNum。 // inputNum 減 1,代表當(dāng)前的密碼刪掉了一位 ArrCodeBuff[inputNum]=39。 39。 // 清除一位 密碼緩沖區(qū) } while(KeyScanf()!=99)。 // 等待按鍵釋放 } /* 清除全部密碼 */ if(keyVal==11) // 如果取消鍵
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1