久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区


曙海教育集團論壇單片機專區單片機初中級 → 單片機鍵盤輸入編程


  共有8768人關注過本帖樹形打印

主題:單片機鍵盤輸入編程

美女呀,離線,留言給我吧!
wangxinxin
  1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


加好友 發短信
等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
單片機鍵盤輸入編程  發帖心情 Post By:2010-12-7 14:42:44

線接P1.4~P1.7。行列式鍵盤輸入適合于按鍵輸入多的情況,如有16個按鍵輸入,用簡單按鍵輸入用要占用2個輸入口(共16位),而使用行列式鍵盤輸入只需占用一個輸入口(8位)。但行列式鍵盤輸入軟件編寫較復雜,對初學者而言有一定的難度。
  
  以上略談了一下按鍵輸入的情況。在很多狀態下,按鍵輸入的值要同時要在LED數碼管上顯示出來。如一個按鍵設計為輸入遞增(加法)鍵,可以設計成每點按一下,數值遞增加1,同時在LED數碼管上顯示出來;也可設計成持續按下時,數值以一定時間間隔(如0.3秒)累加。但是當欲輸入值較大時(如三位LED數碼管作輸入顯示時的輸入值最大為999),則可能按下鍵的時間太長(最長達300秒),看來這種方式只適用于一位或至多兩位數值(最大99)的輸入。當然你也可多設幾個鍵,每個鍵只負責一位數值的輸入,但這樣會占用較多的口線,浪費寶貴的硬件資源。
  大家可能見到過,一些進口的溫度控制器(如日本RKC INSTRUMENT INC. 生產的REX_C700溫控器)的面板設計為:溫度測量值用4位LED數碼管顯示,輸入設定值顯示也用4位LED數碼管,輸入按鍵只有4個,一個為“模式設定鍵”,一個為“左移鍵”,另兩個為“加法鍵”、“減法鍵”。欲輸入設定值(溫控值)時,按一下“模式設定鍵”,程序進入設定狀態,此時輸入設定值顯示的4位LED數碼管中,個位顯示最亮(穩定顯示),而十、百、千位顯示較暗(有閃爍感),說明可對個位進行輸入。按下“加法鍵”或“減法鍵”,即可輸入個位數的值;點按一下“左移鍵”,變為十位顯示最亮,而個、百、千位顯示較暗,說明可對十位進行輸入。按下“加法鍵”或“減法鍵”,即可輸入十位數的值;……這樣可完成4位數的輸入。完成輸入后,再按一下“模式設定鍵”,程序即退出設定狀態,進入工作運行。用這種輸入方法,不僅輸入4位數用4個鍵即可,再多位(5位至24位)的輸入也用這4個鍵就夠了。
  
大家了解了這種新穎的按鍵輸入方式后,一定很感興趣,也想掌握設計方法。為了便于大家理解,這里結合筆者設計的一款“節能時控器”,詳細進行講解。“節能時控器”用于定時控制大功率電器工作,因現采用分時計費方法,可起到節約開支的作用,對工業生產成效顯著。
  
圖3為“節能時控器”硬件構成原理圖。“節能時控器”共有4個輸入按鍵:set--模式設定鍵,left--左移鍵,up—加法鍵,on/off--定時1、2啟動/關閉鍵。單片機IC1(AT89C2051)只有15條I/O線,由于受I/O線數量限制,因此P1口中的P1.0~P1.3既作為驅動4位LED數碼管的數據輸出一部分,同時也用作按鍵的輸入。無疑,這種方式大大節約了硬件的I/O線,但也給編程者提出了更高的技術要求。限于篇幅,我們只對要詳解的按鍵輸入程序進行分析,其它部分只略作介紹。如讀者需“節能時控器”詳細的源程序,可以Email圖片點擊可在新窗口打開查看uyuandz@163.com與作者聯系。

  圖4為主程序狀態流程圖。可見主程序只負責進行走時或調整時間的運算及顯示,而判斷按鍵輸入則放在T1定時中斷(10mS)服務子程序中。T0作為走時的基準被設置為100mS定時中斷。這種設計的優點是大大簡化了主程序設計,并且CPU會定時關心鍵盤,只要定時中斷時間足夠短(如為幾十mS),就不會漏掉每一次的按鍵輸入。
  
下面為判斷按鍵輸入的T1定時中斷服務子程序,序號為解釋方便而加。

序號  
1:void zd1(void) interrupt 3
        
2:{
        
3:uchar i,j;i=P1;j=P3;
        
4:TH1=-(5000/256);
        
5:TL1=-(5000%256);
        
6:if(m==1)n++;
        
7:if(n>=30){n=0;m=0;}
        
8:P3_7=0;
        
9:P1=0xff;
        
10:if(P1!=0xff)
        
11:{
        
12:if(n==0)m=1;
        
13:{if(n==1)
        
14:{
        
15:if(P1_0==0){set++;left=0;}
        
16:if(set>=4)set=0;
        
17:if(set==1)flag=0x55;
        
18:if(P1_1==0)left++;
        
19:if(left>=4)left=0;
        
20:if(P1_2==0){up++;
        
21:switch(left)
        
22:{
        
23:case 0:{if(up>=10)up=0;}break;
        
24:case 1:{if(up>=6)up=0;}break;
        
25:case 2:{if(up>=10)up=0;}break;
        
26:case 3:{if(up>=3)up=0;}break;
        
27:default:break;
        
28:}
        
29:}
        
30:if(P1_2==0){
        
31:switch(set)
        
32:{case 0:break;
        
33:case 1圖片點擊可在新窗口打開查看[left]=up;break;
        
34:case 2:{y[left]=up;if(P1_3==0)o_f1=!o_f1;}break;
        
35:case 3:{z[left]=up;if(P1_3==0)o_f2=!o_f2;}break;
        
36:default:break;
        
37:}
}
        
38:else {
        
39:switch(set)
        
40:{case 0:break;
        
41:case 1:up=x[left];break;
        
42:case 2:{up=y[left];if(P1_3==0)o_f1=!o_f1;}break;
        
43:case 3:{up=z[left];if(P1_3==0)o_f2=!o_f2;}break;
        
44:default:break;}
45   
:}}
        
46:}}
        
47:P1=i圖片點擊可在新窗口打開查看3=j;
        
48:}
  
序號1(程序解釋,以下同):聲明定時1中斷函數。
  
序號2:定時1中斷函數開始。
  
序號3:定義i、j為無符號字符型局部變量。將當時的P1口、P3口狀態送i、j暫存。
  
序號4、5:定時器T1重新載入10mS初值。
  
序號6:如變量m等于1,則變量n遞增。說明:m、n為整個程序開始時定義的無符號字符型全局變量。
  
序號7:如變量n大于等于30,則m、n清零。
  
序號8:P3.7置0,準備讀取按鍵輸入。
  
序號9:P1口置全1,準備讀取按鍵輸入。
  
序號10:如果P1口不等于全1,說明4個按鍵中有鍵按下。
  
序號11:進入if(P1!=0xff)語句范圍。
  
序號12:如果n等于0,進入if(n==0)語句,m置1。
  
序號13:如果n等于1,進入if(n==1)語句,同時進行下面的具體判斷按鍵語句。作用效果為:開始時m、n均賦0,一旦有鍵按下,第一次中斷產生時m賦1;第二次中斷產生時n遞增。當n等于1時(第二次中斷產生)進入下面的具體判斷按鍵語句。若持續按下鍵,則第三次中斷產生~第三十一次中斷產生時,程序不進入具體的判斷按鍵語句過程(因這時n不等于1)。由于中斷每10mS產生一次,這樣可實現每0.31秒(31x10=0.31秒)進行一次加法或移位的操作,與人眼的視覺特性相吻合。
  
序號14:進入具體判斷按鍵語句范圍。
  
序號15:如果P1.0等于0(即電路中的set鍵按下),變量set遞增,變量left清0。說明:set、left是為了判斷模式設定及左移而在整個程序開始時定義的無符號字符型全局變量。
  
序號16:如果set大于等于4,則set清0。說明:set值只能在0~3間變化,只有4種工作模式(走時及輸出控制模式、走時調整模式、定時1調整模式、定時2調整模式)。
  
序號17:在set等于1時,向RAM區標志變量flag寫入55H。說明:flag是在整個程序開始時定義的無符號字符型全局變量,用作判斷RAM區是否受干擾的依據。


支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部

返回版面帖子列表

單片機鍵盤輸入編程








簽名
久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区
欧美日韩电影在线播放| 欧美激情综合五月色丁香小说| 不卡的av在线| 午夜精品久久久久久久99水蜜桃 | 国产一区二区精品在线| 精品亚洲国内自在自线福利| 亚洲伦在线观看| 精品国产91乱码一区二区三区| 日本高清视频一区二区| 精品国产乱码久久久久久蜜柚 | 337p日本欧洲亚洲大胆色噜噜| 一区二区日本伦理| 精品国产乱码久久久久久蜜柚 | 国产毛片精品一区| 亚洲影视在线观看| 中文在线一区二区| 日韩免费视频线观看| 欧美亚洲国产一区在线观看网站| 精品午夜一区二区| 97人人澡人人爽| 成人一区在线观看| 九色|91porny| 日韩av二区在线播放| 亚洲综合色视频| 中文字幕一区免费在线观看| 2014亚洲片线观看视频免费| 777午夜精品视频在线播放| 宅男av一区二区三区| 人偷久久久久久久偷女厕| 国产精品一区在线播放| 91小视频在线免费看| 国产成人午夜精品5599| 久久99国产精品麻豆| 青娱乐精品视频| 亚洲成人资源在线| 亚洲激情在线激情| 亚洲欧美日韩人成在线播放| 日本一区免费视频| 国产亚洲综合性久久久影院| 欧美精品一区二区精品网| 欧美一级夜夜爽| 欧美久久久久久久久中文字幕| 日本高清视频一区二区| 伊人久久av导航| 亚洲巨乳在线观看| 亚洲欧美日本国产有色| 亚洲蜜桃av| 亚洲乱码一区二区三区三上悠亚| 欧美一卡2卡3卡4卡无卡免费观看水多多| 国产精品一区二区三区免费 | eeuss鲁片一区二区三区在线看| 国产乱码字幕精品高清av| 国产在线看一区| 国产精品一区二区在线观看网站| 精品中文字幕一区二区小辣椒| 日本中文一区二区三区| 蜜桃精品视频在线观看| 另类小说图片综合网| 激情丁香综合五月| 国产成人在线电影| www.av亚洲| 成人激情直播| 久久国产精品 国产精品| 国产乱码精品一区二区三区日韩精品| 99久久伊人精品影院| 粉嫩av一区二区三区免费观看| 国产精品久久久久久久小唯西川| 国产二区不卡| 久久久久久久久四区三区| 蜜桃成人在线| 亚洲 日韩 国产第一区| 中文字幕一区二区三区精彩视频| 一本久久a久久免费精品不卡| 色94色欧美sute亚洲线路一ni| 欧美网站大全在线观看| 欧美丰满美乳xxx高潮www| 日韩免费电影一区| 国产日韩欧美高清在线| 日韩毛片精品高清免费| 亚洲五月六月丁香激情| 日韩综合小视频| 国内精品久久久久影院一蜜桃| 成人综合在线视频| 成人免费视频观看视频| 免费日韩av电影| 在线播放豆国产99亚洲| 欧美人妇做爰xxxⅹ性高电影| 日韩欧美一二三| 中文字幕第一页久久| 亚洲激情五月婷婷| 青娱乐精品视频在线| 国产成人在线视频播放| 粉嫩高清一区二区三区精品视频| 欧美日韩大片一区二区三区| 色悠悠亚洲一区二区| 91精品免费在线| 国产女主播视频一区二区| 一区二区欧美在线观看| 麻豆久久一区二区| 成人av先锋影音| 久久精品日产第一区二区三区精品版| 一级做a爰片久久| 欧美一卡二卡三卡四卡| 中文一区一区三区高中清不卡| 亚洲一区在线看| 国产美女精品一区二区三区| 99re在线观看| 亚洲国产午夜伦理片大全在线观看网站| 欧美中文字幕亚洲一区二区va在线| 日韩欧美资源站| 亚洲人成亚洲人成在线观看图片| 蜜臀av一区二区| 99久久99久久| 中文字幕免费在线不卡| 精品电影一区二区| 亚洲国产色一区| 成人app网站| 五月天亚洲综合| 日韩欧美成人激情| 一卡二卡欧美日韩| 风间由美一区二区三区在线观看 | 欧美国产日韩一二三区| 午夜精品久久久久久| 成人av在线一区二区三区| 日韩色妇久久av| 日韩一二三区不卡| 一二三区精品福利视频| 国产成人精品免费视频网站| 久久精品日产第一区二区三区| 欧美日韩中文国产| 日韩一区有码在线| 国产在线播精品第三| 精品一区二区三区国产| 欧美日韩美少妇| 一区二区三区在线高清| 成人激情午夜影院| 尤物国产精品| 国产欧美视频一区二区| 精品在线播放免费| 欧美二区在线| 欧美电视剧免费全集观看| 亚洲午夜一区二区三区| 99久久er热在这里只有精品66| 亚洲在线色站| 中文字幕欧美国产| 国产一区二区三区久久久 | 国产精品人妖ts系列视频| 九九**精品视频免费播放| 精品久久一区二区三区蜜桃| 91精品婷婷国产综合久久| 亚洲欧美日韩在线播放| 成人综合在线观看| 色香色香欲天天天影视综合网| 国产精品五月天| 国产精品一二三区在线| 亚洲精美视频| 日本一区二区三区在线不卡| 国产一区二区视频在线| 青青草国产精品| 国产日韩欧美一区二区三区乱码| 狠狠色综合日日| 色噜噜狠狠色综合网| 中文文精品字幕一区二区| 国产成人综合视频| 色猫猫国产区一区二在线视频| 亚洲欧洲性图库| 高清在线不卡av| 一本色道亚洲精品aⅴ| 亚洲人成在线播放网站岛国| 91免费版pro下载短视频| 欧美另类高清zo欧美| 午夜欧美在线一二页| 国内精品国语自产拍在线观看| 欧美v日韩v国产v| 国内精品久久久久影院一蜜桃| 亚洲v日韩v欧美v综合| 国产精品免费网站在线观看| 成人午夜在线播放| 欧美日韩国产美| 天堂va蜜桃一区二区三区| 看高清中日韩色视频| 国产精品亲子乱子伦xxxx裸| 不卡视频在线观看| 欧美日韩国产小视频在线观看| 亚洲a一区二区| 欧美连裤袜在线视频| 国产女同互慰高潮91漫画| 成人丝袜18视频在线观看| 欧美日韩在线直播| 美女诱惑一区二区| 伊人情人网综合| 亚洲老妇xxxxxx| 精品网站在线看| 国产精品久久久久国产精品日日| 99久久99久久精品免费看蜜桃| 日韩欧美在线一区二区三区| 国产河南妇女毛片精品久久久| 欧美日韩一区三区四区| 美腿丝袜亚洲色图| 在线免费视频一区二区|