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


曙海教育集團(tuán)論壇單片機(jī)專區(qū)單片機(jī)初中級 → 單片機(jī)鍵盤輸入編程


  共有8767人關(guān)注過本帖樹形打印

主題:單片機(jī)鍵盤輸入編程

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


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

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

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

序號  
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圖片點(diǎn)擊可在新窗口打開查看[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圖片點(diǎn)擊可在新窗口打開查看3=j;
        
48:}
  
序號1(程序解釋,以下同):聲明定時1中斷函數(shù)。
  
序號2:定時1中斷函數(shù)開始。
  
序號3:定義i、j為無符號字符型局部變量。將當(dāng)時的P1口、P3口狀態(tài)送i、j暫存。
  
序號4、5:定時器T1重新載入10mS初值。
  
序號6:如變量m等于1,則變量n遞增。說明:m、n為整個程序開始時定義的無符號字符型全局變量。
  
序號7:如變量n大于等于30,則m、n清零。
  
序號8:P3.7置0,準(zhǔn)備讀取按鍵輸入。
  
序號9:P1口置全1,準(zhǔn)備讀取按鍵輸入。
  
序號10:如果P1口不等于全1,說明4個按鍵中有鍵按下。
  
序號11:進(jìn)入if(P1!=0xff)語句范圍。
  
序號12:如果n等于0,進(jìn)入if(n==0)語句,m置1。
  
序號13:如果n等于1,進(jìn)入if(n==1)語句,同時進(jìn)行下面的具體判斷按鍵語句。作用效果為:開始時m、n均賦0,一旦有鍵按下,第一次中斷產(chǎn)生時m賦1;第二次中斷產(chǎn)生時n遞增。當(dāng)n等于1時(第二次中斷產(chǎn)生)進(jìn)入下面的具體判斷按鍵語句。若持續(xù)按下鍵,則第三次中斷產(chǎn)生~第三十一次中斷產(chǎn)生時,程序不進(jìn)入具體的判斷按鍵語句過程(因這時n不等于1)。由于中斷每10mS產(chǎn)生一次,這樣可實現(xiàn)每0.31秒(31x10=0.31秒)進(jìn)行一次加法或移位的操作,與人眼的視覺特性相吻合。
  
序號14:進(jìn)入具體判斷按鍵語句范圍。
  
序號15:如果P1.0等于0(即電路中的set鍵按下),變量set遞增,變量left清0。說明:set、left是為了判斷模式設(shè)定及左移而在整個程序開始時定義的無符號字符型全局變量。
  
序號16:如果set大于等于4,則set清0。說明:set值只能在0~3間變化,只有4種工作模式(走時及輸出控制模式、走時調(diào)整模式、定時1調(diào)整模式、定時2調(diào)整模式)。
  
序號17:在set等于1時,向RAM區(qū)標(biāo)志變量flag寫入55H。說明:flag是在整個程序開始時定義的無符號字符型全局變量,用作判斷RAM區(qū)是否受干擾的依據(jù)。


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

返回版面帖子列表

單片機(jī)鍵盤輸入編程








簽名
久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区
亚洲一区高清| 一区二区成人在线视频| 精品视频一区二区| 成人精品一二区| 99国精产品一二二线| 91丝袜美腿高跟国产极品老师| 精品一区二区免费看| 国产呦萝稀缺另类资源| 国产精品2024| 99热这里都是精品| 不卡一区在线观看| 99久久99久久精品国产片| 91精品国产高清久久久久久91裸体 | 亚洲免费成人av| 亚洲女与黑人做爰| 亚洲图片一区二区| 免费观看日韩av| 国产经典欧美精品| 国产a一区二区| 日韩欧美亚洲日产国| 色偷偷88欧美精品久久久| 精品视频一区二区三区免费| 精品日韩99亚洲| 1024成人网色www| 日韩国产精品大片| 国产美女一区二区| av资源一区二区| 日韩高清av| 欧美放荡的少妇| 精品成人佐山爱一区二区| 亚洲国产精品成人综合色在线婷婷 | 亚洲大片免费看| 乱中年女人伦av一区二区| 国产精品一品二品| 国产日韩欧美一区二区三区四区| 欧美一级爱爱| 欧美精品少妇一区二区三区| 久久影音资源网| 中文字幕日韩av资源站| 老鸭窝一区二区久久精品| 成人a免费在线看| 欧美日韩高清在线一区| 欧美一区午夜视频在线观看| 亚洲欧洲精品一区二区三区| 日韩高清欧美激情| av日韩免费电影| 中日韩在线视频| 欧美韩日一区二区三区| 欧美96一区二区免费视频| 99国产精品一区| 色狠狠av一区二区三区| 国产女人18毛片水真多成人如厕| 午夜欧美2019年伦理| 成人免费在线看片| 久久精品国产亚洲高清剧情介绍| 91精品黄色| 欧美亚洲精品一区| 国产精品毛片无遮挡高清| 国产一区二区视频在线| 热re99久久精品国产99热| 精品剧情在线观看| 麻豆一区二区在线| 国偷自产av一区二区三区小尤奈| 欧美三级韩国三级日本三斤| 国产精品午夜在线观看| 国产原创一区二区| 亚洲精品一区二区毛豆| 国产日韩精品视频一区| 另类人妖一区二区av| 日韩欧美第二区在线观看| 国产清纯美女被跳蛋高潮一区二区久久w | 国产精品无圣光一区二区| 精东粉嫩av免费一区二区三区| 久久精品成人一区二区三区蜜臀 | 欧美性猛片aaaaaaa做受| 国产精品乱码妇女bbbb| 国产成人自拍高清视频在线免费播放| 神马欧美一区二区| 久久精品夜夜夜夜久久| 国产精品一级二级三级| 一区二区成人国产精品 | 精品国产乱码久久久久久久久| 日本午夜精品一区二区三区电影| 国产精品乱码视频| 久久综合给合久久狠狠狠97色69| 狠狠久久亚洲欧美| 欧美色综合久久| 日韩在线一二三区| 亚洲 日韩 国产第一区| 中文字幕在线不卡视频| 国产精品免费观看高清| 久久久精品影视| 成人丝袜高跟foot| 欧美精品成人一区二区三区四区| 轻轻草成人在线| 色综合色狠狠综合色| 亚洲激情男女视频| 久久av免费一区| 欧美国产一区在线| 97人人干人人| 久久影视一区二区| a级国产乱理论片在线观看99| 欧美电影精品一区二区| 亚洲色图视频网站| 精品伦理一区二区三区 | 亚洲va欧美va国产va天堂影院| 蜜桃视频在线观看91| 国产精品灌醉下药二区| 精品国产乱码久久久久久蜜柚| 国产亚洲综合在线| 国产一区二区在线网站| 国产精品全国免费观看高清| 久久爱av电影| 亚洲自拍欧美精品| 色噜噜狠狠色综合中国| 久久99国产精品麻豆| 欧美精品v日韩精品v韩国精品v| 国产在线精品一区在线观看麻豆| 欧美精品一二三| 成人污视频在线观看| 日本一区二区三区电影| 免费成人深夜夜行视频| 亚洲影视在线观看| 在线观看免费视频综合| 国产成人免费9x9x人网站视频| 欧美成人艳星乳罩| 97碰碰视频| 亚洲女人的天堂| 在线观看日韩羞羞视频| 精品亚洲国产成人av制服丝袜| 欧美高清激情brazzers| 99免费精品在线观看| 亚洲视频狠狠干| 在线观看视频欧美| 99在线精品一区二区三区| 中文字幕日本不卡| 中文字幕久久综合| 成人性生交大片免费| 国产精品九色蝌蚪自拍| 亚洲欧美日韩精品综合在线观看| 久久av资源站| 国产欧美精品区一区二区三区| 欧美激情论坛| 国产一区二区三区在线观看免费视频 | 国产欧美日韩在线| 日韩免费av电影| 国产精品69毛片高清亚洲| 中文字幕免费不卡在线| 在线看成人av电影| 成人午夜伦理影院| 国产精品初高中害羞小美女文| 伊人久久婷婷色综合98网| 成人免费的视频| 亚洲午夜免费电影| 欧美一级日韩一级| 欧美精品123| 国产一区激情在线| 亚洲日本一区二区三区| 欧美日韩成人在线| 国产综合色一区二区三区| 免费成人av在线播放| 国产精品午夜久久| 欧美午夜在线观看| 精品国产乱码久久久久久久软件| 日韩精品国产精品| 中文字幕av一区二区三区免费看| 一本一本大道香蕉久在线精品| 3d精品h动漫啪啪一区二区| 免费人成精品欧美精品| 国产精品久久久久7777按摩| 欧美中文字幕不卡| 乱一区二区三区在线播放| 国产毛片精品国产一区二区三区| 亚洲色图一区二区三区| 日韩欧美一区中文| 91久久精品一区二区| 久久久精品国产一区二区三区| 国产成人午夜片在线观看高清观看| 亚洲精品久久嫩草网站秘色| 精品三级av在线| 色菇凉天天综合网| 免费看成人av| 91老司机福利 在线| 国产麻豆精品视频| 亚洲成人av一区二区三区| 国产欧美一区二区精品秋霞影院 | 精品日韩一区二区三区| 色琪琪一区二区三区亚洲区| 国产精品嫩草在线观看| 成人一区二区三区视频| 另类中文字幕网| 午夜视频在线观看一区二区| 国产精品久久久99| 欧美精品一区视频| 欧美精品一二三四| 在线视频一区二区三区| 婷婷久久青草热一区二区| 国产中文一区二区| 91一区二区三区| 99国产欧美久久久精品|