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

正文內(nèi)容

基于51單片機(jī)的密碼鎖設(shè)計(jì)程序(編輯修改稿)

2025-07-21 01:50 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 顯示倒計(jì)時(shí)15s開門 蜂鳴器慢響 提示15s內(nèi)開門 否則15后關(guān)門 關(guān)閉繼電器 并自動(dòng)返回時(shí)間頁面 6 :選擇key10修改密碼 共兩次 兩次密碼一致時(shí)設(shè)置成功 否則會(huì)一直提示輸入密碼 7 :修改的密碼存入2402中 上電讀出 8 :修改密碼 無限循環(huán) 直到輸入正確為止 可以使用key11:返回鍵 返回 9 :在10s內(nèi)無任何按鍵按下時(shí) 自動(dòng)返回時(shí)間頁面 可重新進(jìn)入 10:在20s內(nèi)無任何按鍵按下時(shí) 進(jìn)入掉電模式 外部中斷喚醒 鍵盤列表: 00 01 02 03 04 05 06 07 08 09 修改 返回 清除 開鎖 切換 開門 修改 modify_flag 返回rst 清除key12 //切換down_flag// 開鎖up_flag 開門open_flag //切換的功能跟返回大致相同 ***********************************************************/includeinclude include //include include include include include define uchar unsigned char define uint unsigned intextern uchar key。extern uchar temp,count,aa,bb,cc。 /*一般將這些變量定義在C文件中 extern聲明 不是定義 當(dāng)主函數(shù)需要時(shí)用extern引用 */extern bit shu_flag,modify_flag,rst。extern bit fun_flag。 //功能鍵標(biāo)志位 沒使用extern bit down_flag,up_flag,open_flag。uchar data lcd1602_line1[]={ 2014/08/02 000}。uchar data lcd1602_line2[]={ 10:42:50 }。uchar data time_data_buff[7]={0x50,0x42,0x10,0x02,0x08,0x06,0x14}。uchar code Weeks[][3]={{SUN},{MON},{TUE},{WED},{THU},{FRI},{SAT},{SUN}}。 //二維數(shù)組 八行三列bit mod_flag,rst_flag。uchar code num_to_char[] = {0123456789ABCDEF}。 uchar k,s,w。bit return_flag=0。//切換時(shí)間頁面標(biāo)志位bit sleep_flag。//進(jìn)入掉電模式標(biāo)志位uchar m,l。bit k_flag=0。bit b_flag=0。 //倒計(jì)時(shí)標(biāo)志位bit flag10。 //保護(hù)標(biāo)志位bit flag3,flag4,flag2,flag1。/*數(shù)字標(biāo)志位 修改密碼標(biāo)志位 返還標(biāo)志位 1 2 3 4 保護(hù)數(shù)據(jù)標(biāo)志位,防重復(fù)寫入*/sbit beep=P2^3。//sbit sda=P2^0。 //IO口定義//sbit scl=P2^1。uchar code table[]={Enter password:}。 uchar code table1[]={Error!try again:}。 uchar code table2[]={Wele to China}。uchar code table4[]={Set password: }。uchar code table5[]={Input again: }。uchar code table6[]={ Fuck you!!! }。uchar code table7[]={ Get out!!!! }。uchar code table8[]={ Set succed }。uchar code table9[]={Be patient...}。uchar code table10[]={ Count down...}。uchar code table12[]={Please select }。uchar code table13[]={KEY10:For modify}。uchar code table14[]={KEY13:For open }。uchar code table15[]={Open the door}。void T0_init(){ TMOD=0x11。 TH0=(6553646080)/256。// ,故所記次數(shù)應(yīng)為46080,計(jì)時(shí)器每隔50000微秒發(fā)起一次中斷。 TL0=(6553646080)%256。//46080的來歷,為50000* 50ms TH1=(6553646080)/256。 TL1=(6553646080)%256。 EA=1。 ET0=1。// 定時(shí)器進(jìn)入中斷倒計(jì)時(shí)和進(jìn)入睡眠 ET1=1。 TR1=1。 EX0=1。//外部中斷用來喚醒睡眠 EX1=1。}void main(void){ uchar a[6],b[6],p[7],i,num。 uchar table3[6]。//={1,1,1,1,1,1}。 /*可將值賦予數(shù)組table3【】 可作變量使用*/ // uchar aa,bb,cc,dd,ee,ff。 lcd_init()。 T0_init()。// write_at2404(10,0x00)。 /*初始化 之后屏蔽掉*/// write_at2404(11,0x00)。 //否則每次上電密碼都是000000// write_at2404(12,0x00)。// write_at2404(13,0x00)。// write_at2404(14,0x00)。// write_at2404(15,0x00)。 table3[0]=read_at2402(10)。 table3[1]=read_at2402(11)。 table3[2]=read_at2402(12)。 table3[3]=read_at2402(13)。 table3[4]=read_at2402(14)。 table3[5]=read_at2402(15)。 display()。 set_real_time(time_data_buff)。//設(shè)置時(shí)間 等效于set_real_time(amp。time_data_buff【0】) while(1) { while(1) { down_flag=0。return_flag=0。 while(sleep_flag==1) { ET0=0。 ET1=0。 PCON=0X02。 while(sleep_flag)。 //0000 0010 }// keyscan()。 //數(shù)組p【7】等效于Curtime[7] get_real_time(p)。//讀出時(shí)間 等效于get_real_time(amp。p【0】)。 lcd1602_line1[3] = num_to_char[p[6]/0x10]。 lcd1602_line1[4] = num_to_char[p[6]%0x10]。 /*年*/ lcd1602_line1[6] = num_to_char[p[4]/0x10]。 lcd1602_line1[7] = num_to_char[p[4]%0x10]。 /*月*/ lcd1602_line1[9] = num_to_char[p[3]/0x10]。 lcd1602_line1[10] = num_to_char[p[3]%0x10]。 /*日*/ for(i=0。i3。i++) lcd1602_line1[i+13]=Weeks[p[5]amp。0x07][i]。 /*星期*/ lcd1602_line2[4] = num_to_char[p[2]/0x10]。 lcd1602_line2[5] = num_to_char[p[2]%0x10]。 /*時(shí)*/ lcd1602_line2[7] = num_to_char[p[1]/0x10]。 lcd1602_line2[8] = num_to_char[p[1]%0x10]。 /*分*/ lcd1602_line2[10] = num_to_char[p[0]/0x10]。 lcd1602_line2[11] = num_to_char[p[0]%0x10]。 /*秒*/ for(i=0。i16。i++) wtite_lcd_1602_dat(i,0,lcd1602_line1[i])。 for(i=0。i16。i++) wtite_lcd_1602_dat(i,1,lcd1602_line2[i])。 if(open_flag) break。 //按下開門鍵 跳出while(1)讀時(shí)間循環(huán) } /*無論是修改密碼還是開門 之后都要對(duì)其成功之前或者 失敗之前的標(biāo)志位清零 否則導(dǎo)致二次掃描時(shí)不顯示*/ while(1) //進(jìn)入while(1)設(shè)置密碼 循環(huán) { open_flag=0。 //清零 // count=0。// keyscan()。 if(!flag3) //防止掃描重復(fù)寫入 flag3 { write_(0x01)。 write_(0x0f)。 write_(0x80)。 //靜態(tài)顯示 定位光標(biāo) 閃爍 for(i=0。i15。i++) write_data(table[i])。 write_(0xc5)。 flag3=1。 //必須使用標(biāo)志位保護(hù)起來 否則連續(xù)掃描閃爍 導(dǎo)致光標(biāo)暗淡 } if(num=2) //輸入密碼錯(cuò)誤次數(shù) 大于三次鎖死 倒計(jì)時(shí) { //這是個(gè)if else 語句 if(shu_flag) //數(shù)字標(biāo)志位 必須是數(shù)字才能采集 { switch(count) //按鍵次數(shù) 用之前最好將count進(jìn)行處理 { case 1:a[count1]=key。break。 case 2:a[count1]=key。break。
點(diǎn)擊復(fù)制文檔內(nèi)容
外語相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1