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

正文內(nèi)容

單片機項目實踐教程劉燎原-項目四倒計時-資料下載頁

2025-01-23 21:09本頁面
  

【正文】 2P 1 . 23P 1 . 34P 1 . 45P 1 . 56P 1 . 67P 1 . 78P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I NT 012P 3 .3 /I NT 113P 3 .4 /T 014P 3 .7 / R D17P 3 . 6 / W R16P 3 .5 /T 115P 2 .7 /A 1 528P 2 .0 / A 821P 2 .1 / A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427U1A T 8 9 C5 1X1CR Y S T A LC13 0 pC23 0 pR91 0 kC31uFL S 1S P E A K E R?實驗:在上次試驗倒計時的基礎(chǔ)上,增加三個按鍵( K1:初值加 1。 K2:初值減 1。 K3:開始。 ) ? 三、鍵盤 ? 鍵盤由一組規(guī)則排列的按鍵組成,一個按鍵實際上是一個開關(guān)元件。 ? 編碼鍵盤:電腦鍵盤,內(nèi)部含編碼芯片,每按一個鍵,由編碼芯片產(chǎn)生鍵值,如 ASCII碼鍵盤、 BCD碼鍵盤 ? 非編碼鍵盤:靠軟件編程來識別健值的鍵盤。 在單片機的各種系統(tǒng)中,最常用的是非編碼鍵盤。非編碼鍵盤又分為獨立式按鍵和矩陣式鍵盤(如電話,取款機鍵盤)。 2. 矩陣式鍵盤 ( 1)結(jié)構(gòu) ? 單片機系統(tǒng)中,若使用按鍵較多時,通常采用矩陣式鍵盤,其結(jié)構(gòu)如下圖所示,可以節(jié)省 I/O口。 ? 采用行列式結(jié)構(gòu)并按矩陣形式排列 ,如圖所示 。 在行列的交點上都對應(yīng)有一個單觸點按鍵 。 一個 4 4的行 、 列結(jié)構(gòu) , 可以構(gòu)成一個含有 16個按鍵的鍵盤 , ? 無鍵按下時 , 各行 、 列線彼此相交但不相連;當(dāng)按鍵被按下時則其交點的行線和列線接通 。 ( 2) 按鍵原理 ? 控制方式: ? :行線都輸出低電平,然后讀列線的值。若列線都為高電平,說明無鍵按下;否則,有鍵按下。 ? ,延時消抖,再判斷,確定有鍵按下。 ? c. 再判斷哪一鍵按下,并得到鍵號。 ? ,根據(jù)鍵號轉(zhuǎn)向不同的功能程序。 ( 3)判斷哪個鍵按下的方法( c步驟): 掃描法 (一)掃描法(行掃描) (1) 判別鍵盤上有無鍵閉合 其方法為:讓 ~ (行線)全輸出 0, ~ (列線)作輸入口 然后讀 P3口(列線值)。 若高 4位 ~ (列線)全為 1,則鍵盤上沒有閉合鍵, 若 ~ 1,則有鍵處于閉合狀態(tài)。 (2) 去除鍵的機械抖動 其方法為:當(dāng)判別到鍵盤上有鍵閉合后,延時一段時間再判別鍵盤的狀態(tài),若仍有鍵閉合,則認(rèn)為鍵盤上有一個鍵處于穩(wěn)定的閉合狀態(tài),否則認(rèn)為鍵抖動。 (3) 判別閉合鍵的鍵號(逐行掃描) 其方法為:對鍵盤的行線進行掃描 ,逐行進行掃描 (一)掃描法(行掃描) (1) 判別鍵盤上有無鍵閉合 (2) 去除鍵的機械抖動 (3) 判別閉合鍵的鍵號(逐行掃描) 建立一個鍵值數(shù)組: 把 16個按鍵按下時讀出的 P3值按順序?qū)懗梢粋€數(shù)組。 jp[]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77}。 掃描值 讀過來 P3口的值 ~ ~ 第一行 0111 0: ee 1:de 2:be 3: 7e 第二行 1011 4: ed 5:dd 6: bd 7: 7d 第三行 1101 8: eb 9:db A:bb B:7b 第四行 1110 C: e7 D:D7 E:b7 F:77 逐行掃描 :對鍵盤的每一行進行掃描,判斷此行是否有鍵按下。 對每一行掃描時,讀 P3口的值,把該值 和數(shù)組中的值進行逐個比較, 找到相等時數(shù)組的序號即為鍵號。 ? 掃描法的每個按鍵的 掃描值(編碼) 會隨著按鍵連接的不同而不同 圖 1 圖 2 eeh deh beh 7eh edh ddh bdh 7dh ebh dbh bbh 7bh e7h d7h b7h 77h (一)掃描法(行掃描) (1) 判別鍵盤上有無鍵閉合 (2) 去除鍵的機械抖動 (3) 判別閉合鍵的鍵號(逐行掃描) (4) 使 CPU對鍵的一次閉合僅作一次處理 采用的方法是等待閉合鍵釋放以后再作處理 eeh deh beh 7eh edh ddh bdh 7dh ebh dbh bbh 7bh e7h d7h b7h 77h ? 例:用 1位數(shù)碼管顯示按鍵的鍵號。 ? 電路 X T A L 218X T A L 119A L E30EA31P S E N29RS T9P 0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 1 . 01P 1 . 12P 1 . 23P 1 . 34P 1 . 45P 1 . 56P 1 . 67P 1 . 78P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I NT 012P 3 .3 /I NT 113P 3 .4 /T 014P 3 .7 / R D17P 3 . 6 / W R16P 3 .5 /T 115P 2 .7 /A 1 528P 2 .0 / A 821P 2 .1 / A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427U1A T 8 9 C5 1X1CR Y S T A LC13 0 p FC23 0 p FC31 0 u FR11 0 k12345678161514131211109R N 13 0 0? 程序 ? include ? include ? unsigned char code sz1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}。 //數(shù)碼管段值數(shù)組 ? unsigned char code jp[]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77}。 //矩陣鍵盤的鍵值數(shù)組 ? unsigned char c=0。 //定義 c變量,用來存放鍵號 ? ? void delay(unsigned int t) ? { ? unsigned char i。 ? while(t) ? { ? for(i=0。i125。i++)。 ? } ? } X T A L 218X T A L 119A L E30EA31P S E N29RS T9P 0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 1 . 01P 1 . 12P 1 . 23P 1 . 34P 1 . 45P 1 . 56P 1 . 67P 1 . 78P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I NT 012P 3 .3 /I NT 113P 3 .4 /T 014P 3 .7 / R D17P 3 . 6 / W R16P 3 .5 /T 115P 2 .7 /A 1 528P 2 .0 / A 821P 2 .1 / A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427U1A T 8 9 C5 1X1CR Y S T A LC13 0 p FC23 0 p F C31 0 u FR11 0 k12345678161514131211109R N 13 0 0? void sm() //鍵盤掃描子程序 ? { unsigned char j,n,a,m=0xfe。 ? P2=0xf0。 //~ (行線)全輸出 0, ~ (列線)作輸入口 ? k=P2。 //讀 P2口 ? k=k0xf0。 // 只要得到高 4位 (列線值)。 ? if(k!=0xf0) // 如果列值全為 1( 1111即 F),有鍵按下 ? { delay(5)。 //延時消抖 ? if(k!=0xf0) //再判斷是否按下 ? { for(j=0。j4。j++) //4行掃描 ? { P2=m。 //掃描值給 P2 ? n=P2。 //讀 P2值(含有列值)給 n ? for(a=0。a16。a++) //與數(shù)組中的值逐個進行比較 ? { if(jp[a]==n) ? {c=a。 while(P2==jp[a])。} //如果找到相等的,則序號即為鍵號 ,等待按鍵釋放 ? } m=_crol_(m,1)。 //左移一位得到下一行的掃描值 ? } ? } ? } ? void main() ? {while(1) ? { sm()。 //掃描子程序 ? P1=sz1[c]。} //顯示鍵號 ? } ? }
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1