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

正文內(nèi)容

電子密碼鎖的設(shè)計畢業(yè)論-資料下載頁

2025-06-07 00:13本頁面
  

【正文】 復(fù)掃描 4*4 鍵盤獲得按鍵參數(shù) if(num==15) {num=255。 Beep_key()。SectorErase(0X2021)。byte_write(0X2021, 0)。} } } ifndef _lcd1602_H_ define _lcd1602_H_ include include define uchar unsigned char define uint unsigned int sbit rs= P2^7。 sbit rw = P2^6。 sbit ep = P2^5。 code uchar LCDnumber[]=0123456789。 void delay22(unsigned char ms) { unsigned char i。 while(ms) { for(i = 0。 i i++) { _nop_()。 _nop_()。 _nop_()。 _nop_()。 } } } bit lcd_bz() { bit result。 rs = 0。 rw = 1。 ep = 1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 result = (bit)(P0 amp。 0x80)。 ep = 0。 return result。 } 28 void lcd_wcmd(unsigned char cmd) { while(lcd_bz())。//判斷 LCD 是否忙碌 rs = 0。 rw = 0。 ep = 0。 _nop_()。 _nop_()。 P0 = cmd。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 ep = 1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 ep = 0。 } void lcd_wdat(unsigned char dat) { while(lcd_bz())。//判斷 LCD 是否忙碌 rs = 1。 rw = 0。 ep = 0。 P0 = dat。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 ep = 1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 ep = 0。 } void lcd_goto_xy(unsigned char x,unsigned char y) { if(y==1) x+=0x40。 x+=0x80。 lcd_wcmd(x)。 } void lcd_putc(unsigned char c) // 寫字符 (傳入的參數(shù)實(shí)際為所需顯示字符的地址 ,即液 29 晶字符產(chǎn)生器中字符的地址 ) { rw = 0。 // RW 置 0,狀態(tài)為寫 rs = 1。 // RS 置 1,寫入數(shù)據(jù) lcd_wdat(c)。 } void lcd_puts(unsigned char *s) // 寫字符串函數(shù) { while(*s) { lcd_wdat(*s)。 s++。 } } /******************************************************************** ** 函數(shù)名稱 : display_char ** 入口參數(shù): x(unsigned char 型 ),y(unsigned char 型 ), dat(unsigned char 型 ) ** 出口參數(shù):無 ** 功能描 述 : 在具體位置顯示單個字符, x 是列號, y 是行號 *********************************************************************/ void lcd_xy_putc(unsigned char x,unsigned char y,unsigned char dat) { lcd_goto_xy(x,y)。 lcd_wdat(dat)。 } /********************************************************************* ** 函數(shù)名稱 : display_string ** 入口參數(shù): x(unsigned char 型 ),y(unsigned char 型 ), s(指針型 ) ** 出口參數(shù):無 ** 功能描述 : 在具體位置顯示字符串,以 /0 結(jié)束, x 是列號, y 是行號 **********************************************************************/ void lcd_xy_puts(unsigned char x,unsigned char y,unsigned char *s) { lcd_goto_xy(x,y)。 while(*s) { lcd_wdat(*s)。 s++。 } } void lcd_number(unsigned char a) //變量數(shù)字顯示 { rw = 0。 // RW 置 0,狀態(tài)為寫 rs = 1。 // RS 置 1,寫入數(shù)據(jù) lcd_wdat(LCDnumber[a])。 } 30 void lcd_init() { lcd_wcmd(0x38)。 delay22(1)。 lcd_wcmd(0x0c)。 delay22(1)。 lcd_wcmd(0x06)。 delay22(1)。 lcd_wcmd(0x01)。 delay22(1)。 } endif ifndef _key_H_ define _key_H_ define uchar unsigned char define uint unsigned int include uint num。//按鍵鍵值 uint temp。//鍵盤參數(shù)記錄變量 uchar temp1。//高兩位記錄變量 uchar temp2。//高兩位記錄變量 char counter=0。 sbit beep=P2 ^ 0。// void delay13(int num) {//延時函數(shù) while(num) 。 } void Beep_key(void){ //揚(yáng)聲器 按鍵音 unsigned char a 。//定義變量用于發(fā)聲的長度設(shè)置 for(a=80。a0。a){//聲音的長度 beep = ~beep。 delay13(150)。 //音調(diào)設(shè)置延時 } beep = 1。 //音樂結(jié)束后揚(yáng)聲器拉高關(guān)閉 } void delay(unsigned int tc) //按鍵延時程序 { while( tc != 0 ) { unsigned int i。 for(i=0。 i100。 i++)。 tc。 } } 31 unsigned char keyscan() //* jianpansaomiao *// { /*********第一行鍵盤的檢測 **********/ P3=0xfe。 //設(shè)置 P1 口的電平為 11111110,也就是讓 口為低電平,其他的口為高電平 temp=P3。 //讀取 P1 口的電平 temp=tempamp。0xf0。 //P1 口的電平跟 11110000 做與操作 while(temp!=0xf0) //檢測到第一行上有鍵盤按下去了 { delay(5)。 //延時 5ms 用來消除按鍵的抖動 temp=P3。 //再次讀取 P1 口的電平 temp=tempamp。0xf0。 //P1 口的電平跟 11110000 做與操作 while(temp!=0xf0) //延時后確實(shí)有人按下了第一行的鍵盤(不是別的干擾導(dǎo)致的) { temp=P3。 //因?yàn)橐呀?jīng)確定按下了鍵,這時就讀取 P1 口的電平 switch(temp) { case 0xee:num=0。 //按下的是第一個鍵,我們就把 1賦值給 num 11 12121212 break。 //跳出 switch 語句 case 0xde:num=1。 //按下的是第二個鍵,我們就把 2賦值給 num 10 10 8888888 break。 //跳出 switch 語句 case 0xbe:num=2。 //按下的是第三個鍵,我們就把 3賦值給 num 555555 4444444444444 break。 //跳出 switch 語句 case 0x7e:num=3。//按下的是第四個鍵,我們就把 4 賦值給 num 00000 break。 //跳出 switch 語句 } while(temp!=0xf0) //等待松手,如果按下去是一直按著的,沒松手的話就一直循環(huán),如果松了手的話,就可以跳出 while 語句了,回到最后的 return 語句,返回 num 的值,接著數(shù)碼管執(zhí)行顯示 num 的值 { temp=P3。 temp=tempamp。0xf0。 } } } /**************第二行鍵盤的檢測 *************/ P3=0xfd。 32 temp=P3。 temp=tempamp。0xf0。 while(temp!=0xf0) { delay(5)。 temp=P3。 temp=tempamp。0xf0。 while(temp!=0xf0) { temp=P3。 switch(temp) { case 0xed:num=4。 //12 131313 break。 case 0xdd:num=5。 //77777 99999999999999 break。 case 0xbd:num=6。 //666666 5555555555555555 break。 case 0x7d:num=7。 //1111111 break。 } while(temp!=0xf0) { temp=P3。 temp=tempamp。0xf0。 } } } /********第三行鍵盤的檢測 *********/ P3=0xfb。 temp=P3。 temp=tempamp。0xf0。 while(temp!=0xf0) { delay(5)。 temp=P3。 temp=tempamp。0xf0。 while(temp!=0xf0) { temp=P3。 switch(temp) { case 0xeb:num=8。 //13 1414 break。 case 0xdb:num=9。 //888 10 break。 case 0xbb:num=10。 //2222 6666666666666 break。 case 0x7b:num=11。 //2222 22222 break。 33 } while(temp!=0xf0) { temp=P3。 temp=tempamp。0xf0。 } } } /*******第四行鍵盤的檢測 *******/ P3=0xf7。 temp=P3。 temp=tempamp。0xf0。 while(temp!=0xf0) { delay(5)。 temp=P3。 temp=tempamp。0xf0。 while(temp!=0xf0) { temp=P3。 switch(temp) { case 0xe7:num=12。 //`14 break。 case 0xd7:num=13。 //9999 11111111 break。 case 0xb7:num=14。 //4444444 77777777777 break。 case 0x77:num=15。 // 3333333333 break。 } while(temp!=0xf0) { temp=P3。 temp=tempamp。0xf0。 } } } return num。 //返回 num 的值給主程序 } endif
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1