【文章內(nèi)容簡介】
: 設(shè)計(jì)一 4X4掃描鍵盤系統(tǒng),能夠響應(yīng)按鍵,輸出相應(yīng)的鍵值。 0 1 234 5 678 9 + * / = d e lr o w [ 0 ]r o w [ 1 ]r o w [ 2 ]r o w [ 3 ]c o l [ 0 ] c o l [ 1 ] c o l [ 2 ] c o l [ 3 ]鍵 盤 掃 描c o d e [ 0 ]c o d e [ 1 ]c o d e [ 2 ]c o d e [ 3 ]k e y f l a g圖 2022/2/16 桂林電子科技大學(xué) 信息與通信學(xué)院 29 0 1 234 5 678 9 + * / =d e lr o w [ 0 ]r o w [ 1 ]r o w [ 2 ]r o w [ 3 ]c o l [ 0 ] c o l [ 1 ] c o l [ 2 ] c o l [ 3 ]鍵 盤 掃 描c o d e [ 0 ]c o d e [ 1 ]c o d e [ 2 ]c o d e [ 3 ]k e y f l a g掃描鍵盤原理 (1)如何判斷按鍵按下? (2)判斷鍵位?在 列向量依次加掃描 信號(hào),由 行向量的值 判斷那個(gè)按鍵按下。 (3)鍵盤一般會(huì)有 5~10ms抖動(dòng),應(yīng)去抖動(dòng)。 1 1 1 1 0 0 02022/2/16 桂林電子科技大學(xué) 信息與通信學(xué)院 30 0 1 234 5 678 9 + * / =d e lr o w [ 0 ]r o w [ 1 ]r o w [ 2 ]r o w [ 3 ]c o l [ 0 ] c o l [ 1 ] c o l [ 2 ] c o l [ 3 ]鍵 盤 掃 描c o d e [ 0 ]c o d e [ 1 ]c o d e [ 2 ]c o d e [ 3 ]k e y f l a g掃描鍵盤原理 1 1 1 1 0 0 0變量 : 輸入 row 輸出 col code keyflag code=F[row,col] keyflag=G[row,col] 2022/2/16 桂林電子科技大學(xué) 信息與通信學(xué)院 31 開始 等按鍵 按鍵防抖 有鍵按下? No 鍵盤掃描 Yes 找閉合鍵? 置有效位 閉合鍵釋放? YES NO No Yes 計(jì)算鍵值 需要考慮以下問題: ( 1)如何防按鍵抖動(dòng)? 硬件防按鍵抖動(dòng) ,延遲防抖 ( 2)如何進(jìn)行鍵盤掃描? 依次置 col=000 00 0100、 1000,查看 row的值 ( 3)如何計(jì)算鍵值? row col 按鍵 0001 0001 0 0001 0010 1 0001 0100 2 0001 1000 3 … …. ….. 2022/2/16 桂林電子科技大學(xué) 信息與通信學(xué)院 32 開始 Wait_key Col=15 delay 10ms? Row=0? YES Col=1 NO Row=0? YES NO Row=0? Col=2 Row=0? YES NO Col=4 Row=0? Col=8 Row=0? YES YES YES C_reg=col R_reg=row Code=() Row=0? Col=15 YES NO NO NO NO 2022/2/16 桂林電子科技大學(xué) 信息與通信學(xué)院 33 例 2: 設(shè)計(jì)一個(gè)十字路口交通燈控制系統(tǒng)。 東西道為主道,南北道為副道。如果東西道 (EW)及南北道(NS)均有車,則東西道每次通行 60秒 (綠燈 ),南北道每次通行 40秒 (綠燈 )。如果僅有一個(gè) 通道有車 ,則禁止 無車通道 (紅燈 );如果兩通道均無車,則 禁止南北道 。通道轉(zhuǎn)換時(shí),綠燈通道均需 停車 3秒 (黃燈 )。 控制信號(hào): 輸出燈光信號(hào) NSRed NSGeen NSYellow EWRed EWGeen EWYellow 2022/2/16 桂林電子科技大學(xué) 信息與通信學(xué)院 34 開始 東西道通行 南北道禁止 南北 有車 且東西無車或南北東西均有車且達(dá)到 60秒 東西停車 南北停車 3秒 東西道禁止 南北道通行 南北無車且東西有車或南北東西均有車且達(dá)到 40秒 南北停車 東西停車 3秒 0 0 1 1 分析:由題目得十字路口交通燈控制器大致流程圖 細(xì)化問題: (1)如何判斷有無車? 傳感器: NSCAR EWCAR (2)如何定時(shí)?如何啟動(dòng)定時(shí)? 定時(shí)器: TM60 ENTM60 TM40 ENTM40 TM3 ENTM3 2022/2/16 桂林電子科技大學(xué) 信息與通信學(xué)院 35 START EWPASS,NSSTOP NSCAR=1? EWCAR=1? 60秒 ? 3秒 ? 0 0 0 0 1 1 1 1 EWSTOP,NSPASS NSCAR=1? EWCAR=1? 40秒 ? 3秒 ? 0 0 0 EWHOLD,NSHOLD 0 1 1 1 1 EWHOLD,NSHOLD 十字路口交通燈算法流程圖: 2022/2/16 桂林電子科技大學(xué) 信息與通信學(xué)院 36 ? 當(dāng)遇到難以 分解的計(jì)算過程 時(shí),采用 數(shù)學(xué)分析對(duì) 其進(jìn)行 數(shù)值近似 ,轉(zhuǎn)換成多項(xiàng)式或 某種迭代過程 ,然后畫出其算法流程圖的方法稱之為解析法 2022/2/16 桂林電子科技大學(xué) 信息與通信學(xué)院 37 例: 設(shè)計(jì) 的算法流程圖 ab? 最簡單的除法實(shí)現(xiàn),采 循環(huán)減除數(shù) ,減到不能再 減為止 ,循環(huán) 次數(shù)太多, 采用移位減法計(jì)算除法,可以大大減少循環(huán)次數(shù),即 a與除數(shù) b的左移位作比較:例 1200247。 3 3 0 20 6 1 21 12 2 22 24 3 23 48 4 24 96 5 25 192 6 26 384