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缺陷檢測中的應用
主站蜘蛛池模板: 波多野结衣亚洲一区| 播五月综合| 国产精品漂亮美女在线观看| 色播五月婷婷| 国产一级毛片yw| www.亚洲国产| 久久精品波多野结衣| 久无码久无码av无码| 99久久精品国产麻豆婷婷| 久久精品91麻豆| 伦伦影院精品一区| 3p叠罗汉国产精品久久| 欧美亚洲一区二区三区导航| 亚洲成年网站在线观看| 亚洲,国产,日韩,综合一区| 国产福利不卡视频| 日韩精品无码免费一区二区三区| 久久黄色小视频| 永久免费无码日韩视频| 在线欧美日韩国产| 国产麻豆精品久久一二三| 波多野吉衣一区二区三区av| 国产精品99在线观看| 国产精品lululu在线观看| 国产精品天干天干在线观看| 久久综合干| 综合亚洲色图| 日韩欧美高清视频| 人妻丰满熟妇啪啪| 亚洲精品午夜天堂网页| 超碰色了色| 久久情精品国产品免费| 国产在线自揄拍揄视频网站| 久久伊伊香蕉综合精品| 人人爽人人爽人人片| 一级毛片中文字幕| 亚洲国产91人成在线| 亚洲国产一区在线观看| 欧美国产日本高清不卡| 国产jizzjizz视频| 亚洲黄网视频| AV老司机AV天堂| 美女被操91视频| 日韩视频免费| 免费在线一区| 最新精品久久精品| 日韩毛片免费观看| 成年人久久黄色网站| 久久天天躁狠狠躁夜夜躁| 五月婷婷丁香色| 狠狠色成人综合首页| 久久午夜影院| 免费国产不卡午夜福在线观看| 91蝌蚪视频在线观看| 亚洲国产成人麻豆精品| 国产高清在线丝袜精品一区| 国产一区二区精品福利| 一本久道热中字伊人| 9啪在线视频| a级毛片毛片免费观看久潮| 久久大香伊蕉在人线观看热2| 国产综合亚洲欧洲区精品无码| www.精品国产| 亚洲日本中文综合在线| 亚洲Av综合日韩精品久久久| 99精品久久精品| 国产喷水视频| 中国精品久久| 日本一区二区三区精品国产| 中文字幕久久波多野结衣| 精品国产成人三级在线观看| 国产美女叼嘿视频免费看| 丁香婷婷激情综合激情| 亚洲bt欧美bt精品| 久久精品视频一| 国产精品久久久久婷婷五月| 国产精品一区不卡| 国产理论最新国产精品视频| 精品国产一区91在线| 亚洲最黄视频| 免费人欧美成又黄又爽的视频| 伊人久久久久久久|