《獨(dú)立鍵盤和矩陣鍵盤》由會(huì)員分享,可在線閱讀,更多相關(guān)《獨(dú)立鍵盤和矩陣鍵盤(29頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、走 向 高 考 高 考 一 輪 總 復(fù) 習(xí) 人 教 版 化 學(xué) 第 五 章 第 三 節(jié) 鍵 盤 接 口 鍵 盤 是 單 片 機(jī) 應(yīng) 用 系 統(tǒng) 中 使 用 最 廣 泛 的 一種 數(shù) 據(jù) 輸 入 設(shè) 備 。 鍵 盤 是 一 組 按 鍵 的 組 合 。 鍵 通常 是 一 種 常 開 型 按 鈕 開 關(guān) , 常 態(tài) 下 鍵 的 兩 個(gè) 觸 點(diǎn) 處于 斷 開 狀 態(tài) , 按 下 鍵 時(shí) 它 們 才 閉 合 ( 短 路 ) 。 走 向 高 考 高 考 一 輪 總 復(fù) 習(xí) 人 教 版 化 學(xué) 第 五 章 第 三 節(jié) 非 編 碼 鍵 盤 按 組 成 結(jié) 構(gòu) 又 可 分 為 獨(dú) 立 式 鍵 盤 和矩 陣 式
2、鍵 盤 。 獨(dú) 立 式 鍵 盤 的 工 作 過 程 與 矩 陣 式 鍵 盤類 似 , 無 論 是 硬 件 結(jié) 構(gòu) 還 是 軟 件 設(shè) 計(jì) 都 比 較 簡(jiǎn) 單 , 。 通 常 , 鍵 盤 有 編 碼 和 非 編 碼 兩 種 。 編 碼 鍵 盤 通過 硬 件 電 路 產(chǎn) 生 被 按 按 鍵 的 鍵 碼 和 一 個(gè) 選 通 脈 沖 。選 通 脈 沖 可 作 為 CPU的 中 斷 請(qǐng) 求 信 號(hào) 。 這 種 鍵 盤 使用 方 便 , 所 需 程 序 簡(jiǎn) 單 , 但 硬 件 電 路 復(fù) 雜 , 常 不 被單 片 機(jī) 采 用 。 走 向 高 考 高 考 一 輪 總 復(fù) 習(xí) 人 教 版 化 學(xué) 第 五 章
3、第 三 節(jié) S1S4S3S2 P1.4 P1.5 P1.6 P1.7 89S52 +5V圖 8.1 獨(dú) 立 式 鍵 盤 接 口特 點(diǎn) : 每 個(gè) 按 鍵 占 用 一 條 I/O線 , 當(dāng) 按 鍵 數(shù) 量 較 多 時(shí) , I/O口 利 用 率 不 高 , 但 程 序 編 制 簡(jiǎn)單 。 適 用 于 所 需 按 鍵 較 少 的 場(chǎng)合 。 特 點(diǎn) : 電 路 連 接 復(fù) 雜 , 但 提高 了 I/O口 利 用 率 , 軟 件 編 程較 復(fù) 雜 。 適 用 于 需 使 用 大 量按 鍵 的 場(chǎng) 合 。 89s52P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7 +5V圖 8.2 矩 陣
4、式 鍵 盤 接 口 走 向 高 考 高 考 一 輪 總 復(fù) 習(xí) 人 教 版 化 學(xué) 第 五 章 第 三 節(jié)K9 9 K10 AK15 F P10P11P12P13 P14 P15 P16 P17EA/VP31 X119 X218 RESET9 RD17 WR16 INT012 INT113 T014 T115 P101 P112 P123 P134 P145 P156 P167 P178 P00 39P01 38P02 37P03 36P04 35P05 34P06 33P07 32P20 21P21 22P22 23P23 24P24 25P25 26P26 27P27 28 PSEN 29
5、ALE/P 30TXD 11RXD 10VCC 40GND 20 U189S52P10P11P12P13P14P15P16P17 K0 0 K1 1 K2 2 K3 3K5 5 K6 6 K7 7K8 8K4 4 K11 BK12 CK13 DK14 E 走 向 高 考 高 考 一 輪 總 復(fù) 習(xí) 人 教 版 化 學(xué) 第 五 章 第 三 節(jié) 掃 描 法 和 線 反 轉(zhuǎn) 法 89s52P1.0P1.1P1.2P1.3P1.4P1.5P1.6 P1.7 +5V圖 8.2 矩 陣 式 鍵 盤 接 口 走 向 高 考 高 考 一 輪 總 復(fù) 習(xí) 人 教 版 化 學(xué) 第 五 章 第 三 節(jié) 0 1 2
6、3 ee de be 7e 4 5 6 7 ed dd bd 7d 8 9 A B eb db bb 7b C D E F e7 d7 b7 77 走 向 高 考 高 考 一 輪 總 復(fù) 習(xí) 人 教 版 化 學(xué) 第 五 章 第 三 節(jié) 鍵 盤 接 口 的 消 抖 1 消 除 鍵 抖 動(dòng) 鍵 穩(wěn) 定鍵 按 下 前 沿 抖 動(dòng)前 沿 抖 動(dòng)圖 5.2 鍵 合 斷 時(shí) 的 電 壓 抖動(dòng) 走 向 高 考 高 考 一 輪 總 復(fù) 習(xí) 人 教 版 化 學(xué) 第 五 章 第 三 節(jié) if語(yǔ) 句if語(yǔ) 句 是 C51中 的 一 個(gè) 基 本 條 件 選 擇 語(yǔ) 句 , 它 通 常有 三 種 格 式 :( 1) i
7、f ( 表 達(dá) 式 ) 語(yǔ) 句 ; ( 2) if ( 表 達(dá) 式 ) 語(yǔ) 句 1; else 語(yǔ) 句 2; ( 3) if ( 表 達(dá) 式 1) 語(yǔ) 句 1; else if ( 表 達(dá) 式 2) ( 語(yǔ) 句 2; )else if ( 表 達(dá) 式 3) ( 語(yǔ) 句 3; )else if ( 表 達(dá) 式 n-1) ( 語(yǔ) 句 n-1; )else 語(yǔ) 句 n 走 向 高 考 高 考 一 輪 總 復(fù) 習(xí) 人 教 版 化 學(xué) 第 五 章 第 三 節(jié) 【 例 】 if語(yǔ) 句 的 用 法 。( 1) if (x!=y) printf(“x=%d,y=%dn”,x,y);執(zhí) 行 上 面 語(yǔ) 句 時(shí)
8、, 如 果 x不 等 于 y, 則 輸 出 x的 值 和 y的 值 。( 2) if (xy) max=x;else max=y; 執(zhí) 行 上 面 語(yǔ) 句 時(shí) , 如 x大 于 y成 立 , 則 把 x送 給 最 大 值 變量 max, 如 x大 于 y不 成 立 , 則 把 y送 給 最 大 值 變 量 max。 使max變 量 得 到 x、 y中 的 大 數(shù) 。( 3) if (score=90) printf(“Your result is an An”);else if (score=80) printf(“Your result is an Bn”);else if (score=7
9、0) printf(“Your result is an Cn”);else if (score=60) printf(“Your result is an Dn”);else printf(“Your result is an En”); 執(zhí) 行 上 面 語(yǔ) 句 后 , 能 夠 根 據(jù) 分 數(shù) score分 別 打 出 A、 B、 C、 D、 E五 個(gè) 等 級(jí) 。 走 向 高 考 高 考 一 輪 總 復(fù) 習(xí) 人 教 版 化 學(xué) 第 五 章 第 三 節(jié) switch/case語(yǔ) 句 if語(yǔ) 句 通 過 嵌 套 可 以 實(shí) 現(xiàn) 多 分 支 結(jié) 構(gòu) , 但 結(jié) 構(gòu) 復(fù) 雜 。switch是 C51
10、中 提 供 的 專 門 處 理 多 分 支 結(jié) 構(gòu) 的 多 分 支選 擇 語(yǔ) 句 。 它 的 格 式 如 下 :switch ( 表 達(dá) 式 )case 常 量 表 達(dá) 式 1: 語(yǔ) 句 1; break;case 常 量 表 達(dá) 式 2: 語(yǔ) 句 2; break;case 常 量 表 達(dá) 式 n: 語(yǔ) 句 n; break;default: 語(yǔ) 句 n+1; 走 向 高 考 高 考 一 輪 總 復(fù) 習(xí) 人 教 版 化 學(xué) 第 五 章 第 三 節(jié) 說 明 如 下 :( 1) switch后 面 括 號(hào) 內(nèi) 的 表 達(dá) 式 , 可 以 是 整 型 或 字 符 型 表達(dá) 式 。( 2) 當(dāng) 該
11、表 達(dá) 式 的 值 與 某 一 “ case”后 面 的 常 量 表 達(dá) 式 的 值相 等 時(shí) , 就 執(zhí) 行 該 “ case”后 面 的 語(yǔ) 句 , 然 后 遇 到 break語(yǔ) 句退 出 switch語(yǔ) 句 。 若 表 達(dá) 式 的 值 與 所 有 case后 的 常 量 表 達(dá) 式的 值 都 不 相 同 , 則 執(zhí) 行 default后 面 的 語(yǔ) 句 , 然 后 退 出 switch結(jié) 構(gòu) 。( 3) 每 一 個(gè) case常 量 表 達(dá) 式 的 值 必 須 不 同 否 則 會(huì) 出 現(xiàn) 自 相矛 盾 的 現(xiàn) 象 。( 4) case語(yǔ) 句 和 default語(yǔ) 句 的 出 現(xiàn) 次 序 對(duì)
12、 執(zhí) 行 過 程 沒 有 影響 。( 5) 每 個(gè) case語(yǔ) 句 后 面 可 以 有 “ break”, 也 可 以 沒 有 。 有break語(yǔ) 句 , 執(zhí) 行 到 break則 退 出 switch結(jié) 構(gòu) , 若 沒 有 , 則 會(huì)順 次 執(zhí) 行 后 面 的 語(yǔ) 句 , 直 到 遇 到 break或 結(jié) 束 。 走 向 高 考 高 考 一 輪 總 復(fù) 習(xí) 人 教 版 化 學(xué) 第 五 章 第 三 節(jié) 【 例 】 switch/case語(yǔ) 句 的 用 法 。 對(duì) 學(xué) 生 成 績(jī) 劃 分 為 AD, 對(duì) 應(yīng) 不 同 的 百 分 制分 數(shù) , 要 求 根 據(jù) 不 同 的 等 級(jí) 打 印 出 它 的
13、 對(duì) 應(yīng) 百 分 數(shù) ???以 通 過 下 面 的 switch/case語(yǔ) 句 實(shí) 現(xiàn) 。switch( grade)case A; printf( ” 90100n”) ; break;case B; printf( ” 8090n”) ; break;case C; printf( ” 7080n”) ; break;case D; printf( ” 6070n”) ; break;case E; printf( ” y) max=x;else max=y; 執(zhí) 行 上 面 語(yǔ) 句 時(shí) , 如 x大 于 y成 立 , 則 把 x送 給 最 大 值 變量 max, 如 x大 于 y不 成
14、 立 , 則 把 y送 給 最 大 值 變 量 max。 使max變 量 得 到 x、 y中 的 大 數(shù) 。( 3) if (score=90) printf(“Your result is an An”);else if (score=80) printf(“Your result is an Bn”);else if (score=70) printf(“Your result is an Cn”);else if (score=60) printf(“Your result is an Dn”);else printf(“Your result is an En”); 執(zhí) 行 上 面 語(yǔ)
15、 句 后 , 能 夠 根 據(jù) 分 數(shù) score分 別 打 出 A、 B、 C、 D、 E五 個(gè) 等 級(jí) 。 走 向 高 考 高 考 一 輪 總 復(fù) 習(xí) 人 教 版 化 學(xué) 第 五 章 第 三 節(jié) switch/case語(yǔ) 句 if語(yǔ) 句 通 過 嵌 套 可 以 實(shí) 現(xiàn) 多 分 支 結(jié) 構(gòu) , 但 結(jié) 構(gòu) 復(fù) 雜 。switch是 C51中 提 供 的 專 門 處 理 多 分 支 結(jié) 構(gòu) 的 多 分 支選 擇 語(yǔ) 句 。 它 的 格 式 如 下 :switch ( 表 達(dá) 式 )case 常 量 表 達(dá) 式 1: 語(yǔ) 句 1; break;case 常 量 表 達(dá) 式 2: 語(yǔ) 句 2; br
16、eak;case 常 量 表 達(dá) 式 n: 語(yǔ) 句 n; break;default: 語(yǔ) 句 n+1; 走 向 高 考 高 考 一 輪 總 復(fù) 習(xí) 人 教 版 化 學(xué) 第 五 章 第 三 節(jié) 說 明 如 下 :( 1) switch后 面 括 號(hào) 內(nèi) 的 表 達(dá) 式 , 可 以 是 整 型 或 字 符 型 表達(dá) 式 。( 2) 當(dāng) 該 表 達(dá) 式 的 值 與 某 一 “ case”后 面 的 常 量 表 達(dá) 式 的 值相 等 時(shí) , 就 執(zhí) 行 該 “ case”后 面 的 語(yǔ) 句 , 然 后 遇 到 break語(yǔ) 句退 出 switch語(yǔ) 句 。 若 表 達(dá) 式 的 值 與 所 有 cas
17、e后 的 常 量 表 達(dá) 式的 值 都 不 相 同 , 則 執(zhí) 行 default后 面 的 語(yǔ) 句 , 然 后 退 出 switch結(jié) 構(gòu) 。( 3) 每 一 個(gè) case常 量 表 達(dá) 式 的 值 必 須 不 同 否 則 會(huì) 出 現(xiàn) 自 相矛 盾 的 現(xiàn) 象 。( 4) case語(yǔ) 句 和 default語(yǔ) 句 的 出 現(xiàn) 次 序 對(duì) 執(zhí) 行 過 程 沒 有 影響 。( 5) 每 個(gè) case語(yǔ) 句 后 面 可 以 有 “ break”, 也 可 以 沒 有 。 有break語(yǔ) 句 , 執(zhí) 行 到 break則 退 出 switch結(jié) 構(gòu) , 若 沒 有 , 則 會(huì)順 次 執(zhí) 行 后 面
18、的 語(yǔ) 句 , 直 到 遇 到 break或 結(jié) 束 。 ( 6) 每 一 個(gè) case語(yǔ) 句 后 面 可 以 帶 一 個(gè) 語(yǔ) 句 , 也 可 以 帶 多 個(gè)語(yǔ) 句 , 還 可 以 不 帶 。 語(yǔ) 句 可 以 用 花 括 號(hào) 括 起 , 也 可 以 不 括 。( 7) 多 個(gè) case可 以 共 用 一 組 執(zhí) 行 語(yǔ) 句 。 走 向 高 考 高 考 一 輪 總 復(fù) 習(xí) 人 教 版 化 學(xué) 第 五 章 第 三 節(jié) 【 例 】 switch/case語(yǔ) 句 的 用 法 。 對(duì) 學(xué) 生 成 績(jī) 劃 分 為 AD, 對(duì) 應(yīng) 不 同 的 百 分 制分 數(shù) , 要 求 根 據(jù) 不 同 的 等 級(jí) 打 印 出 它 的 對(duì) 應(yīng) 百 分 數(shù) ???以 通 過 下 面 的 switch/case語(yǔ) 句 實(shí) 現(xiàn) 。switch( grade)case A; printf( ” 90100n”) ; break;case B; printf( ” 8090n”) ; break;case C; printf( ” 7080n”) ; break;case D; printf( ” 6070n”) ; break;case E; printf( ” 60n”) ; break;default; printf( ” error”n)