999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

四個矩陣按鍵開關單片機檢測程序及其應用特點的分析

2021-06-30 01:43:34長沙市電子工業學校劉國云
電子世界 2021年11期
關鍵詞:程序檢測

長沙市電子工業學校 劉國云

相對于獨立按鍵,矩陣按鍵開關具有占用單片機端口資源少的優點,也有其教學難的缺點。有多種方法實現矩陣按鍵開關檢測功能,作為經驗交流,筆者介紹了四個不同的矩陣按鍵開關檢測程序,并分析了它們的檢測方法和應用特點,與職教同行共同開拓編程思路、提高編程能力和教學能力。

按鍵是單片機控制的重要的指令開關,相對于獨立按鍵,矩陣按鍵開關具有占用單片機端口少的資源優勢,同時也給使用者帶來了難學、難記、難寫、檢測程序復雜的缺點。我在此介紹用四種不同方法編寫的4×4矩陣開關檢測程序,并對程序和它們優缺點進行分析,以加深大家對矩陣開關檢測原理和編程方法的理解,開拓編程思路,掌握多個可以在不同場合應用的矩陣開關檢測程序,以提高大家程序分析能力、編程能力和教學能力。

1 用switch-case語句編寫矩陣按鍵開關檢測程序

圖1所示程序用P3總線控制方式和switch-case語句,對4*4矩陣按鍵開關進行檢測,P3.4-P3.7和P3.3-P3.0分別為行線h0-h3和列線l0-l3的控制端口。其編程思路是用P3總線賦值方式,依次將4根行線電平拉低,每拉低一根行線電平,就依次對4根列線上的按鍵進行檢,如果哪根列線被檢測到低電平,就表示該行該列上的按鍵按下。現以拉低第一行電平、依次檢測4列電平為例,來講解該程序是如何使用switch-case語句捕捉到按鍵和獲得鍵值的。

圖1 switch-case語句矩陣按鍵開關檢測程序

首先讓P3=0xff,排除干擾電平,然后迅速讓P3=0xef,拉低接在P3.4上的第一條行線h0的電平,并讓局部變量i=P3=0xef,接著i與0xf0逐位與(i=0xe0&0xf0=0xe0!=0xf0),執行if(i!=0xf0)條件語句,程序指針指向由switch-case語句組成的4條列線檢測程序。

因為按鍵按下會改變P3值,條件語句中i=P3的i值也會改變,通過switch(i){case 0xe7:jianzhi=1;break;case 0xeb:jianzhi=2;break;case 0xe7:jianzhi=1;break;case 0xeb:jianzhi=2;break;}來檢測列線電平,捕獲按下的按鍵開關和獲取鍵值。

至于while(i!=0xf0){xianshi();xianshi();xianshi();xianshi();

xianshi();i=0xf0;}的作用是通過調用顯示子程序起到延時作用,給按鍵提供釋放時間,最后讓i=0xf0,退出while循環。

該矩陣開關檢測程序的特點是:端口8位總線控制,控制端口選用靈活性不強;程序代碼多。

2 用數組檢測碼編寫矩陣開關檢測程序(圖2)

圖2 用數組檢測碼編寫的矩陣按鍵開關檢測程序

該檢測程序的特點也是端口8位總線控制,檢測端口選用不靈活,但程序代碼少了很多。它的編程思路是:定義了拉低行線電平的數組hl3[4]、依次檢測4條列線電平的二維數組hl1[4][4]及保存鍵值的二維數組hl2[4][4]。然后用兩個嵌套的for循環語句實現按鍵檢測,4次外循環是依次拉低4根行線電平(P3=0xff;P3=hl3[i];)。內循環是依次檢測4根列線,如果檢測到P3值等于檢測碼,就捕獲按鍵,獲取鍵值(if(P3==hl1[i][j])jianzhi=hl2[i][j];)。

語句while(P3==hl1[i][j]);是用來等待按鍵釋放。

3 用循環移動功能函數編寫矩陣按鍵開關檢測程序(圖3)

圖3 用循環功能函數編寫的矩陣開關檢測程序

該檢測程序的最大優點是代碼少。它定義了一個鍵值二維數組ka[4][4],也用兩級嵌套的for循環分別拉低行線電平和依次檢測列線電平。這個程序比圖2中用數組檢測檢測碼編寫的矩陣開關檢測程序代碼更少的原因就是利用了功能循環函數_crol_()來拉低行線電平和檢測列線電平。

外循環的P3=_crol_(0xef,i),通過將0xef左移1、2、3、4位來實現拉低行線電平的。內循環的列線檢測和獲取鍵值是通過if((P3&__cror_(0x08,j))==0)jianzhi=ka[i][j]實現的。

4 用位控制指令編寫矩陣按鍵開關檢測程序

上面3個矩陣按鍵開關檢測程序中的第三個程序最簡單,第一個程序最復雜,但它們都有一個共同特點:采用8位總線控制方式,所以單片機檢測端口選擇的靈活性不強。現在介紹一個程序代碼不是最少,但檢測方法最直觀、編程思路最清晰、端口選用最靈活,如圖4所示的用位控制指令編寫的矩陣按鍵開關檢測程序。

圖4 位控制指令矩陣按鍵開關檢測程序

該程序的編程思路是:先聲明4行和4列位控信號h0-h3和l0-l3(sbit h0=P3^4;sbit h1=P3^5;sbit h2=P3^6;sbit h3=P3^7;sbit l0=P3^0;sbit l1=P3^1;sbit l2=P3^2;sbit l3=P3^3;),然后在矩陣開按鍵關檢測程序jzjc()中,首先讓所有行列信號置1,去除干擾信號,再逐行拉低一行電平,用if-else if-else if-if語句逐列檢測,并取出所檢測到的鍵值k。

還有一個需要特別提醒的是:該矩陣按鍵開關檢測程序不是空函數,而是帶返回值k的子程序。

圖4所示的矩陣按鍵開關檢測程序由于是用位控指令來編寫的,相較前面3個總線控制的矩陣按鍵開關檢測程序,它的最大優點就是檢測端口的選用非常靈活,美中不足就是程序代碼比稍多點,有意使用該程序的話,可以用圖5的形式來簡化。

圖5 圖4程序的簡化程序

結語:作為中職教師,在講解同一個任務的控制程序時,應該具有多種解決方案,以方便學生在不同的應用場合使用,培養他們的開放思維能力和創新應用能力。筆者通過介紹四種不同矩陣按鍵開關檢測程序,希望能與同行分享不同的編程方法,開闊編程視野,共同提高編程能力和教學能力。

猜你喜歡
程序檢測
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
“幾何圖形”檢測題
“角”檢測題
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
小波變換在PCB缺陷檢測中的應用
主站蜘蛛池模板: 亚洲大尺码专区影院| 日韩精品无码不卡无码| 亚洲日本中文综合在线| 波多野结衣二区| 国产区网址| 国产成+人+综合+亚洲欧美 | 国产女人水多毛片18| 亚洲欧美h| 日本欧美中文字幕精品亚洲| 亚洲一区精品视频在线| 亚洲综合专区| 中文字幕首页系列人妻| 欧美日韩久久综合| 91视频99| 偷拍久久网| 国产网站黄| 99久视频| 亚洲熟妇AV日韩熟妇在线| 国产精品浪潮Av| 黄色网址手机国内免费在线观看| 国产综合精品一区二区| 国产女人喷水视频| 欧美综合成人| 日韩精品一区二区三区中文无码 | 99热免费在线| 国产免费久久精品99re不卡 | 亚洲综合九九| 成人日韩欧美| 日韩乱码免费一区二区三区| 亚洲系列中文字幕一区二区| 宅男噜噜噜66国产在线观看| 日韩中文无码av超清| 无码久看视频| 国产精品第三页在线看| 国产靠逼视频| 欧美在线导航| 亚洲AV人人澡人人双人| 精品人妻AV区| 在线另类稀缺国产呦| 不卡无码h在线观看| 人禽伦免费交视频网页播放| 爱爱影院18禁免费| 国产精品三级av及在线观看| 国产伦精品一区二区三区视频优播| 精品国产成人三级在线观看| 日本国产一区在线观看| 日本免费a视频| 欧洲一区二区三区无码| 97国内精品久久久久不卡| 一本色道久久88亚洲综合| 欧美激情综合| 国产欧美视频在线观看| 青青网在线国产| 无码专区第一页| 2021天堂在线亚洲精品专区 | 国产人成乱码视频免费观看| 东京热av无码电影一区二区| 22sihu国产精品视频影视资讯| 香蕉视频在线观看www| 免费久久一级欧美特大黄| 情侣午夜国产在线一区无码| 欧美国产视频| 欧美性精品不卡在线观看| 欧美一区二区三区香蕉视 | 国产经典在线观看一区| 不卡网亚洲无码| 噜噜噜久久| 国产成人a毛片在线| 久久久久无码精品| 一边摸一边做爽的视频17国产| 久久男人资源站| 日韩精品毛片| 91色在线观看| 谁有在线观看日韩亚洲最新视频| 亚洲欧洲日韩综合| 免费一级毛片在线播放傲雪网| 狠狠色丁香婷婷| 啊嗯不日本网站| 欧美性精品| 毛片手机在线看| 精品丝袜美腿国产一区| 欧美日韩在线第一页|