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

正文內(nèi)容

基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)-預(yù)覽頁(yè)

 

【正文】 頻率的控制從而實(shí)現(xiàn)不同的響聲。 圖 初始密碼程序設(shè)定流程圖 密碼輸入 初始化畫面顯示 鍵盤掃描 按鍵 C是 否按下 Y 鍵盤掃描 顯示設(shè)置密碼 開(kāi)始 結(jié)束 按鍵 D 是否按下 Y N N 10 開(kāi)始系統(tǒng)初始化信息提示報(bào)警、語(yǔ)音播報(bào)開(kāi)鎖狀態(tài)信息提示判斷密碼是否正確NOYES 密碼輸入、語(yǔ)音提示是否重設(shè)密碼鍵盤掃描 輸入密碼、語(yǔ)音提示NOYES閉鎖 圖 密碼鎖工作主程序流程圖 11 1)寫初始密碼部分: LCD 顯示初始化狀態(tài),系統(tǒng)進(jìn)入鍵盤掃描,僅當(dāng) C 鍵按下后,系統(tǒng)進(jìn)入密碼設(shè)定階段,其他鍵對(duì)系統(tǒng)不產(chǎn)生作用,進(jìn)入設(shè)定階段后,可以自定義設(shè)定六位的密碼。僅當(dāng)按下 A鍵后,蜂鳴器響三聲, LCD 顯示請(qǐng)輸入密碼提示進(jìn)入開(kāi)鎖進(jìn)程,此時(shí)有三次輸入密碼機(jī)會(huì)。 主要程序設(shè)計(jì) 1)初始密碼設(shè)定 在程序中包含蜂鳴器驅(qū)動(dòng)子函數(shù)、延時(shí)子函數(shù)、 4*4 鍵盤掃描函數(shù)、開(kāi)機(jī)液晶顯示子函數(shù)、寫密碼子函數(shù)、讀密碼子函數(shù) 、 1602 驅(qū)動(dòng)子頭文件函數(shù)、 AT24C04驅(qū)動(dòng)頭文件函數(shù)(見(jiàn)附件)。 lcd_init()。 while(line1_data[i] != 39。 } lcd_wcmd(0x40|0x80)。) { lcd_wdat(line2_data[i])。 if(key==0x0c)WriteCode()。其主函數(shù)如下所示: void main() { 13 TMOD=0x21。 //開(kāi)總中斷 ET0=1。 //波特率 9600bps fosc=11.0592MHz TL1 = 0xfd。 //液晶初始化 I2C_init()。//開(kāi)機(jī)畫面顯示 read_nbyte (0xa0,0x00,code_buf,6)。//鍵盤掃描 if(key!=0x0a)goto SCAN。 beep()。 //調(diào)用密碼輸入函數(shù) while(1) { if(flag_p==1) { MatrixKey()。 //若按下了 E 鍵 ,則跳轉(zhuǎn)到標(biāo)志 START 處重新開(kāi)始 } if(key==0x0e)goto START。TL0=0x00。 } if(sec==2) { flag_2s=1。再把密碼鎖工作程序生成的 hex 導(dǎo)入單片機(jī)中, E 鍵位功能復(fù)位鍵,按下 A 鍵系統(tǒng)進(jìn)入密碼輸入狀態(tài),輸入密碼后,按下 B 鍵后系統(tǒng)進(jìn)入密碼重設(shè)狀態(tài)。 圖 設(shè)定初始密碼讀密碼仿真圖 密碼鎖工作仿真 導(dǎo)入密碼鎖工作 hex 文件后,系統(tǒng)進(jìn)入初始狀態(tài),仿真圖同圖 所示。 圖 若連續(xù)三次輸入密碼錯(cuò)誤, LCD 提示密碼輸入,仿真圖如圖 所示。 本設(shè)計(jì)也存在不足,缺陷一,單重的密碼鎖不能滿足較高的安全需要。在這次設(shè)計(jì)中還讓 ,讓我了解了實(shí)時(shí)控制的原理,懂得怎樣合理的使用芯片,發(fā)揮其功能。 sbit SCL = P3^3。 void I2C_stop()。 uchar RecByte()。 void delayNOP() { _nop_()。 } void I2C_start() { SDA = 1。 23 delayNOP()。 delayNOP()。 } void I2C_init() { SCL = 0。 delayNOP()。 SCL = 1。 } uchar RecByte() { uchar i,read_data。 i 8。 delayNOP()。 delayNOP()。 i 8。 _nop_()。 write_data = 1。 delayNOP()。 delayNOP()。 SendByte(SLA)。 for(s=0。 pdat++。 I2C_start()。 if(ack==0) return(0)。 for(s=0。 pdat++。 } 1602頭文件 include include define uchar unsigned char define uint unsigned int 27 sbit LCD_RS=P2^0。 bit lcd_busy()。 void lcd_init() 。i) for(j=110。 LCD_RS = 0。 _nop_()。0x80)。 LCD_RS = 0。 _nop_()。 _nop_()。 _nop_()。 } void lcd_wdat(uchar dat) { while(lcd_busy())。 P0 = dat。 _nop_()。 _nop_()。 Delay_ms(5)。 lcd_wcmd(0x38)。 lcd_wcmd(0x0c)。 lcd_wcmd(0x01)。 uchar temp。 BEEP=1。 temp=P1。 temp=P1。 switch(temp) { case 0xee:key=0。 case 0xeb:key=2。 } temp=P1。 while(temp!=0x0f) { temp=P1。 P1=0xdf。 if (temp!=0x0f) { 32 Delay_ms(10)。 if (temp!=0x0f) { temp=P1。break。break。 0x0f。 } } } P1=0xff。 0x0f。 0x0f。 case 0xbd:key=9。 case 0xb7:key=11。 temp=temp amp。 0x0f。 temp=temp amp。 34 temp=temp amp。break。break。 beep()。 temp=temp amp。 uchar code line2_data[] = { PASSWORD }。 uchar code R_line2_data[] = {NUM: }。 if(P1!=0xf0) { MatrixKey()。 lcd_wcmd((0x44+lcd_x)|0x80)。 } } }while(count6)。 lcd_clr()。\039。 i = 0。 i++。 lcd_clr()。\039。 i = 0。 i++。j++) 37 { lcd_wcmd((0x44+j)|0x80)。 start: Delay_ms(10)。 i = 0。 i++。\039。 if(P1!=0xf0) 38 { MatrixKey()。 } } } 密碼鎖工作程序 include include include include define uchar unsigned char define uint unsigned int uchar code_buf[6]。 sbit BEEP=P3^7。 bit flag_p=0。 。 //重新設(shè)定密碼 //const uchar suoding[]=G 請(qǐng)稍后再試。 BEEP=1。 //等待發(fā)送完成 TI = 0。 TI=0。 temp=P1。 temp=P1。 switch(temp) { case 0xee:key=0。 case 0xeb:key=2。 } temp=P1。 while(temp!=0x0f) { temp=P1。 41 P1=0xdf。 if (temp!=0x0f) { Delay_ms(10)。 if (temp!=0x0f) { temp=P1。break。break。 0x0f。 } } } P1=0xff。 0x0f。 0x0f。 case 0xbd:key=9。 case 0xb7:key=11。 temp=temp amp。 0x0f。 43 temp=temp amp。 temp=temp amp。break。break。 beep()。 temp=temp amp。 44 /************密碼輸入畫面 *******************/ uchar code in_line1[] = { PLEASE INPUT }。 /************密碼輸入錯(cuò)誤畫面 *******************/ uchar code inerr_line1[] = {INPUT PASSWORD }。 /************密碼修改成功畫面 *******************/ uchar code setok_line1[] = {MODIFY PASSWORD }。 lcd_wcmd(0x00|0x80)。) { lcd_wdat(line1_data[i])。 while(line2_data[i] != 39。 } } /********以下是密碼輸入畫面顯示函數(shù) ********/ void CodeInDisp() { uchar i。 while(in_line1[i] != 39。 } lcd_wcmd(0x40|0x80)。) { lcd_wdat(in_line2[i])。 46 lcd_wcmd(0x00|0x80)。) { lcd_wdat(inerr_line1[i])。 while(inerr_line2[i] != 39。 } } /********以下是密碼輸入正確顯示函數(shù) ********/ void CodeInOk() { uchar i。 while(inok_line1[i] != 39。 } lcd_wcmd(0x40|0x80)。) 47 { lcd_wdat(inok_line2[i])。 lcd_wcmd(0x00|0x80)。) { lcd_wdat(modify_line1[i])。 while(modify_line2[i] != 39。 } } /********以下是密碼設(shè)置成功畫面顯示函數(shù) ********/ void CodeSetOk() { uchar i。 while(setok_line1[i] != 39。 } lcd_wcmd(0x40|0x80)。) { lcd_wdat(setok_line2[i])。 //密 碼計(jì)數(shù)器,注意是靜態(tài)局部變量 static uchar code_n=0。 //密碼輸入畫面 do{ P1=0xf0。 if((key=0)amp。 lcd_wdat(0x2a)。 //密碼小于 6位 if(count=6){count=0。 beep()。//設(shè)置標(biāo)志位 code_n=0。 if(code_n=3) { 50 CodeInErr()。 } } /*****************密碼設(shè)置函數(shù) *****************/ void PassSet() { static uchar lcd_x=0。//開(kāi)機(jī)顯示函數(shù) Uart_SendString(chongse)。 while(P1!=0xf0)。//存入鍵值 lcd_wcmd((0x49+lcd_x)|0x80)。 } 51 } }while(count6)。beep()。 lcd_clr()。 //5ms 定時(shí)初值 TL0=0x00。 //串口工作方式為 1 , 串行允許接收 TR1 = 1。 //開(kāi)串口中斷 Delay_ms(10)。//繼電器關(guān)閉 lcd_clr()。 while(P1==0xf0)。 //語(yǔ)音播報(bào)密碼錯(cuò)誤 TR0=1。//若 2s到 ,則將 2s標(biāo)志位清 0 else goto SCAN。 //調(diào)入密碼設(shè)置函數(shù) MatrixKey()。 if(key==0x0e)goto START。 if(count_5ms==200) { count_5ms=0。 } }
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1