日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]1 什么是矩陣鍵盤?    這里補一個鍵盤的定義                      大家看原理圖,這就是矩陣鍵盤(4*4)    四行 分別連到P3.0 P3.1 P3.2(INT0) P3.3(INT1) (從上到下)   

1 什么是矩陣鍵盤?

    這里補一個鍵盤的定義

    

    

      

    

    大家看原理圖,這就是矩陣鍵盤(4*4)

    四行 分別連到P3.0 P3.1 P3.2(INT0) P3.3(INT1) (從上到下)

    四列 分別連到P3.4(LCDEN) P3.5(RS) P3.6(WR) P3.7(RD)(左到右)

2    

    獨立鍵盤一端固定位低電平! 檢驗較為方便

    但矩陣鍵盤不一樣,他兩邊都與單片機的I/O相連接。所以檢測方法有些不同

    要人為送出低電平,我們采取以下的檢測方法:

    1.  先送一列為低電平,其余幾列都為高電平(用此來確定列數(shù))

    2.  然后立即輪流檢測每一行是否有低電平(確定行數(shù))

    

    我們寫一個函數(shù),用兩個變量接受列和行的數(shù)據(jù) cord_l cord_h

    P3 = 0xf0; // 1111 0000

    

    判斷是否有按鍵按下: 例如 S6按下  

    1.

    

    2. 假設(shè)S6按下

      

    此刻S6按下導通P3.4接口LCDEN為低電平(可以這樣理解是P3.0與P3.4 0&1=0)

      此時的P3口為 1110 0000 (0xe0)

     P3 & 0xf0   ?。≒3和0xf0按位與)

      P3 = 1110 0000

      0xf0 = 1111 0000  

         = 1110 0000 = 0xe0

      這時成立

       表示有按鍵按下

    3 延時消抖

        

    4 儲存值

         

          P3   = 1110 0000

          0xf0 = 1111 0000

          cord_l = 1110 0000

          

          cord_l = 1110 0000

          0x0f = 0000 1111

          P3 = 1110 1111 = 1110 1110(按下的是s6 P3.0 與 P3.1 與)

          

          P3 = 1110 1110

          0x0f = 0000 1111

          cord_h = 0000 1110

          

          cord_l = 1110 0000

          cord_h = 0000 1110

           返回值 = 1110 1110 = 0xee

          這樣我們就確定了一個值0xee 意味著是s6按下

          

2   程序編寫 要求:按順序按下s6~s21 依次顯示0~f 6個數(shù)碼管靜態(tài)顯示即可

           

矩陣鍵盤

        

        

          這里讓數(shù)碼管一開始顯示一個-

          用了一個循環(huán)讓其一直執(zhí)行

          

          注意switch中的表達式就是我們通過掃描鍵盤掃描出的鍵值碼。

          

          

3 補充:

  c語言中的一些運算符      

       

運算符

范例

說明

+

a+b

a變量值和b變量值相加

-

a-b

a變量值和b變量值相減

*

a*b

a變量值乘以b變量值

/

a/b

a變量值除以b變量值

%

a%b

取a變量值除以b變量值的余數(shù)

=

a=6

將6設(shè)定給a變量,即a變量值等于6

+=

a+=b

等同于a=a+b,將a和b相加的結(jié)果又存回a

-=

a-=b

等同于a=a-b,將a和b相減的結(jié)果又存回a

*=

a*=b

等同于a=a*b,將a和b相乘的結(jié)果又存回a

/=

a/=b

等同于a=a/b,將a和b相除的結(jié)果又存回a

%=

a%=b

等同于a=a%b,將a變量值除以b變量值余數(shù)又存回a

++

a++

a的值加1,即a=a+1

--

a--

a的值減1,即a=a-1

>

a>b

測試a的值是否大于b

<

a

測試a的值是否小于b

=

a=b

測試a的值是否等于于b

>=

a>=b

測試a的值是否大于或等于b

<=

a<=b

測試a的值是否小于或等于b

!=

a!=b

測試a的值是否不等于b

&&

a&&b

a和b做邏輯做AND,兩個變量都是“真”,結(jié)果才為“真”否則結(jié)果為“0”

||

a||b

a和b做邏輯做OR,只要任何一個變量為“真”,結(jié)果就為“真”

!

!a

將a變量的值取反,即原來為“真”則變“假”,為“假”則變?yōu)椤罢妗?/p>

>>

a>>b

將a按位右移b個位

<<

a<

將a按位左移b個位,右側(cè)補“0”

|

a|b

a和b的按位做OR運算

&

a&b

a和b的按位做AND運算

^

a^b

a和b的按位做XOR運算

~

~a

將a的每一位取反

&

a=&b

將b變量的地址存入a寄存器

*

*a

用來取寄存器所指地址內(nèi)的值



本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉