單片機(jī)按鍵模塊設(shè)計(jì)_第1頁(yè)
單片機(jī)按鍵模塊設(shè)計(jì)_第2頁(yè)
單片機(jī)按鍵模塊設(shè)計(jì)_第3頁(yè)
單片機(jī)按鍵模塊設(shè)計(jì)_第4頁(yè)
單片機(jī)按鍵模塊設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩57頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

單元5按鍵模塊設(shè)計(jì)回顧1,數(shù)碼管顯示原理?

2,靜態(tài)數(shù)碼管工作原理?3,動(dòng)態(tài)數(shù)碼管工作原理?4,AT89C51有幾個(gè)定時(shí)器?各是多少位的?請(qǐng)簡(jiǎn)述定時(shí)器實(shí)現(xiàn)定時(shí)原理?5,8051單片機(jī)定時(shí)/計(jì)數(shù)器工作方式有多少種?6,如何設(shè)置8051單片機(jī)工作在定時(shí)/計(jì)數(shù)模式下?7,如何啟動(dòng)定時(shí)器工作?8,請(qǐng)簡(jiǎn)述DS1302讀取時(shí)間的編程過(guò)程?本單元任務(wù)任務(wù)1獨(dú)立式鍵盤設(shè)計(jì)任務(wù)2鍵盤中斷設(shè)計(jì)任務(wù)3矩陣式鍵盤設(shè)計(jì)任務(wù)4多個(gè)外部中斷設(shè)計(jì)任務(wù)1獨(dú)立式鍵盤設(shè)計(jì)任務(wù)描述:任務(wù)分析: 眾多嵌入式單片機(jī)系統(tǒng)、嵌入式單片機(jī)產(chǎn)品設(shè)備中,鍵盤模塊都是必不可少的,比如手機(jī)及各種智能家電等。本任務(wù)通過(guò)按鍵控制點(diǎn)亮流水燈(8個(gè)按鍵分別對(duì)應(yīng)控制8個(gè)LED),學(xué)習(xí)最簡(jiǎn)單的鍵盤—獨(dú)立式按鍵設(shè)計(jì)方法。

鍵盤實(shí)際上是一組開關(guān)的集合:當(dāng)鍵按下時(shí),兩根導(dǎo)線接通;釋放時(shí),兩根導(dǎo)線不通。8個(gè)按鍵的鍵盤電路可考慮在P2口上設(shè)計(jì),8個(gè)LED電路仍然安裝在單片機(jī)P1口。8個(gè)按鍵分別對(duì)應(yīng)控制8個(gè)LED,按下按鍵則點(diǎn)亮對(duì)應(yīng)的燈。

獨(dú)立式鍵盤工作原理及應(yīng)用獨(dú)立式鍵盤的組成是由若干個(gè)按鍵與單片機(jī)的I/O口一一的對(duì)應(yīng)連接,然后通過(guò)讀取單片機(jī)I/O的電平狀態(tài)來(lái)確認(rèn)哪個(gè)對(duì)應(yīng)的按鍵被按下,一般一個(gè)獨(dú)立式按鍵對(duì)應(yīng)一個(gè)功能,可以通過(guò)按鍵的組合來(lái)實(shí)現(xiàn)多個(gè)功能。P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7key1key2key3key0key4key5key6key7抖動(dòng):當(dāng)用手按下一個(gè)鍵時(shí),往往出現(xiàn)按鍵在閉合和斷開位置之間來(lái)回跳動(dòng)多次才能到閉合穩(wěn)定狀態(tài)的現(xiàn)象;在釋放一個(gè)鍵時(shí),也會(huì)出現(xiàn)類似的情況,這種情況就是抖動(dòng)。按下一個(gè)鍵時(shí)產(chǎn)生前沿抖動(dòng),釋放一個(gè)鍵時(shí)產(chǎn)生后沿抖動(dòng)。抖動(dòng)的持續(xù)時(shí)間隨鍵盤簧片的材料和操作員而異,通常在5~10ms。而5~10ms已經(jīng)對(duì)程序進(jìn)行多次循環(huán)掃描執(zhí)行,顯而易見,抖動(dòng)問題不解決,就會(huì)引起對(duì)閉合鍵的多次識(shí)別。。鍵按下前沿抖動(dòng)后沿抖動(dòng)閉合穩(wěn)定應(yīng)用舉例:例5-1 #include"AT89X51.H" voidmain() { while(1) { if(P2_0==0)//判斷key0被按下 { key_delay();//去抖延時(shí)10ms if(P2_0==0) //再次判斷key0按下 { while(!P2_0);//等待閉合釋放 P1_0=0;//點(diǎn)亮LED } } if(P2_1==0) //判斷key1被按下 { key_delay();//去抖延時(shí)10ms if(P2_1==0) //再次判斷key1按下 { while(!P2_1);//等待閉合釋放 P1_0=1;//熄滅LED } } } }1.Proteus電路設(shè)計(jì)2.KeilC51程序設(shè)計(jì)3.Proteus-Keil聯(lián)合調(diào)試仿真任務(wù)實(shí)施硬件電路圖(1)程序流程

由獨(dú)立式鍵盤工作原理得知,按鍵是否按下是通過(guò)讀取按鍵對(duì)應(yīng)的IO的電平變化而判斷的,在程序設(shè)計(jì)上,即通過(guò)讀取按鍵對(duì)應(yīng)IO口的電平是否為低(軟件去抖)來(lái)決定哪個(gè)按鍵被按下,當(dāng)判斷key0被按下,則點(diǎn)亮LED0;當(dāng)判斷key1被按下,則點(diǎn)亮LED1……。

主程序設(shè)計(jì):

#include"AT89X51.H" unsignedcharcodeled_light[]={0XFE,0XFD,0XFB,0XF7,0XEF,0XDF,0XBF,0X7F}; //點(diǎn)亮LED對(duì)應(yīng)的編碼 voidmain() { while(1) { if(P2_0==0)//判斷key0被按下 { key_delay();//去抖延時(shí)10ms if(P2_0==0) //再次判斷key0按下 { while(!P2_0);//等待閉合釋放 P1=led_light[0];//點(diǎn)亮LED0 } } if(P2_1==0) //判斷key1被按下 { key_delay();//去抖延時(shí)10ms if(P2_1==0) //再次判斷key1按下 { while(!P2_1);//等待閉合釋放 P1=led_light[1];//點(diǎn)亮LED1 } } ……; } }運(yùn)行Proteus-Keil聯(lián)合調(diào)試仿真任務(wù)2鍵盤中斷設(shè)計(jì)任務(wù)描述:任務(wù)分析: 項(xiàng)目組掌握獨(dú)立式鍵盤設(shè)計(jì)后,現(xiàn)要求用1個(gè)按鍵控制流水燈運(yùn)行樣式,初始時(shí)8個(gè)LED按從頭到尾方式循環(huán)運(yùn)行,當(dāng)按下按鍵,首尾兩燈點(diǎn)亮向中間,到中間后返回首尾的循環(huán)運(yùn)行,再次按下按鍵又轉(zhuǎn)為從頭到尾循環(huán)運(yùn)行……,即1個(gè)按鍵交替切換流水燈的兩種運(yùn)行樣式。

此任務(wù)設(shè)計(jì)有兩個(gè)主要功能模塊,一是按鍵的判斷,二是LED流水燈的運(yùn)行。通過(guò)前面單元的學(xué)習(xí)得知,這兩個(gè)功能在主程序中無(wú)限循環(huán)判斷執(zhí)行,正常人完成一次按鍵的時(shí)間需要20ms,而LED流水燈運(yùn)行頻率應(yīng)小于50Hz(即應(yīng)大于20ms走一個(gè)燈,否則運(yùn)行太快人眼無(wú)法識(shí)別),那么如果單片機(jī)CPU在執(zhí)行流水燈顯示延時(shí)程序期間,正好發(fā)生按鍵,CPU無(wú)法運(yùn)行按鍵掃描程序而導(dǎo)致按鍵判斷的丟失,如果1s或更長(zhǎng)時(shí)間走一個(gè)燈,那么丟失按鍵的現(xiàn)象將更加嚴(yán)重。由此可見普通的程序查詢獨(dú)立式按鍵設(shè)計(jì)方法在此任務(wù)設(shè)計(jì)是無(wú)法勝任的。本任務(wù)將介紹單片機(jī)重要的內(nèi)部資源—中斷系統(tǒng),它將有效解決上述問題。

1,中斷的概念【例5-2】電路如5-10示,8個(gè)LED流水燈安裝在P1口,按鍵K0安裝在P2.0上,采用獨(dú)立式按鍵識(shí)別,實(shí)現(xiàn)任務(wù)描述中要求的功能。 程序分析:主程序有兩個(gè)功能模塊,一方面按鍵判斷程序,另一方面LED流水燈程序。由于按鍵是兩種流水燈運(yùn)行方式的交替按鍵,因此可考慮設(shè)置按鍵控制標(biāo)志位狀態(tài),LED流水燈則判斷標(biāo)志位狀態(tài)決定運(yùn)行方式,即按鍵通過(guò)標(biāo)志位間接控制LED流水燈的運(yùn)行方式。每次按下按鍵則把標(biāo)志位取反,以達(dá)到控制LED流水燈的運(yùn)行。vo勉id艦m剃ai舞n(委){wh規(guī)il睜e(匆1){if袍(P庸2_絹0=蓬=0撫)文/題/判斷ke常y0被按逗下{ke掏y_柿de懇la孕y()漿;/哲/去抖賞延時(shí)10鍵msif異(P屆2_養(yǎng)0=耽=0逗)肺//再次覺判斷ke強(qiáng)y0按下{wh質(zhì)il挎e(風(fēng)!P搜2_子0)餡;艷//等待嚼閉合膚釋放i=農(nóng)0;最/節(jié)/編碼洪下標(biāo)i清0ru繭n_續(xù)fl哄ag=~ru拳n_校fl豪ag;著//標(biāo)志暫位取讓反}}if碎(r抖un棕_f釣la蹲g==癢0)喉//判斷LE刺D運(yùn)行征標(biāo)志躬位{P1遮=l管ed削_l蓋ig仗ht深1[泥i+拔+]暢;決//點(diǎn)亮LE躍D流水脂燈le歲d_關(guān)de議la誼y()梢;仆//點(diǎn)亮黃延時(shí)if渣(i==去8)孕i=曲0;}el矛se{P1敞=l極ed瘋_l間ig扇ht館2[嘆i+獨(dú)+]垂;寬//點(diǎn)亮LE礦D流水檢燈le確d_郵de銀la屑y()掌;緊//點(diǎn)亮訪延時(shí)if劣(i==拉7)周i=伙0;}}}2,圓8副05個(gè)1單片忍機(jī)中吹斷系呼統(tǒng)結(jié)閣構(gòu)(1偏)哪些前事件趕可以定引發(fā)面中斷80局51單片眨機(jī)有5個(gè)中響斷源匠。外部慮中斷0()樣:由奶連接翅在P3范.2引腳杰的外民部信準(zhǔn)號(hào)觸普發(fā)定時(shí)/計(jì)數(shù)蜓器0(T0)溢貫出中蹤蝶斷外部帽中斷1()爬:由畏連接專在P3余.3引腳甩的外見部信藥號(hào)觸億發(fā)定時(shí)/計(jì)數(shù)曉器1(T1)溢搭出中搖斷串行衰口中途斷:僚由發(fā)甩送中油斷TX蒸D和接覺收中笛斷RX不D組成當(dāng)它容們有殼中斷猴請(qǐng)求安發(fā)出桐時(shí),朋將相們應(yīng)的誓中斷厘標(biāo)志IE附0、TF齊0、IE沈1、TF呈1、TI、RI自動(dòng)涉置位壤,單劑片機(jī)CP容U根據(jù)覽中斷風(fēng)標(biāo)志壯位情局況判撫別是蠢哪個(gè)割中斷釘源發(fā)耕出的紋中斷狐請(qǐng)求展。中筑斷標(biāo)尸志位字存放蔥在特讀殊功去能寄潤(rùn)存器TC匙ON、SC簡(jiǎn)ON中。(2玩)中斷抱標(biāo)志TC詳ONSC尺ON(3病)中斷撿允許恰與禁漫止IE(1)EA:總晚中斷件允許寶控制軟。當(dāng)EA絨=1時(shí),陰開放浴所有先中斷爪,此愁時(shí)各局中斷隔源的鄙允許他和禁帽止通四過(guò)相恒應(yīng)的僵中斷嶄允許鳳位單障獨(dú)加劃以控芝制;磚當(dāng)EA橡=0時(shí),守禁止蔽所有餃中斷縮慧。(2)ES:允惠許或際禁止嗓串行微口中腹斷控乓制位仿。ES別=1,允噸許中胞斷;ES汁=0,禁匪止中稅斷。(3)ET蹲1:允嘩許或蔬禁止斷定時(shí)晝器T1溢出粥中斷掘控制勻位。ET班1=棵1,允晉許中眉斷;ET軍1=略0,禁迷止中稅斷。(4)EX華1:允崖許或屑禁止協(xié)中斷栽控制蜂位。EX鞭1=鉗1,允為許中掠斷;EX異1=鉗0,禁餅止中擇斷。(5)ET才0:允看許或膨禁止婆定時(shí)塔器T0溢出賺中斷饞控制擱位。ET還0=框1,允愿許中銹斷;ET諒0=紛0,禁猛止中壺?cái)唷#?)EX恢0:允字許或?qū)m禁止累中斷瞇控制耕位。EX膛0=江1,允伏許中四斷;EX惠0=兵0,禁魔止中再斷。(4盜)中斷造的響滅應(yīng)條技件首先撤中斷齒源有濕請(qǐng)求佳。其埋次編叫程設(shè)鋒置單榨片機(jī)CP肯U允許偏所有間中斷壘源請(qǐng)奮求(EA材=1),帥并且江中斷爛允許勝寄存耍器IE相應(yīng)陶位置熟為1。這演樣,洲在每寄個(gè)機(jī)烏器周嗓期內(nèi)隆,單胡片機(jī)匠對(duì)所竿有中蔑斷源盯進(jìn)行斯順序惰檢測(cè)瞎,并內(nèi)找到弄所有霉有效沙的中機(jī)斷請(qǐng)爆求,繁對(duì)其遼優(yōu)先虧級(jí)排紗隊(duì)。芹單片織機(jī)在膏緊接擔(dān)著下菜一個(gè)海機(jī)器賴周期耐響應(yīng)叢中斷支條件編是:1無(wú)同還級(jí)或儉更高局級(jí)中鞭斷占疑用CP具U控制苦權(quán);2當(dāng)前壇指令坡執(zhí)行渴完畢帶;3如果彎當(dāng)前揚(yáng)指令慈為RE火TI或需瘡訪問IE、IP的指掛令,叫執(zhí)行默完該具指令紋且緊騾隨其崗后的算一條蛋指令職也已翠執(zhí)行長(zhǎng)完畢餓。否雀則,快單片論機(jī)將匯放棄項(xiàng)對(duì)中胃斷請(qǐng)蠅求的谷響應(yīng)笨。(5極)中斷陳響應(yīng)曬過(guò)程中斷信的響根應(yīng)過(guò)伐程由胡單片敲機(jī)CP沉U控制訂,自怎動(dòng)完許成,折具體麗有如釘下幾南個(gè)步貴驟:執(zhí)行汪一個(gè)勒硬件吃子程亮序調(diào)群用,洋處理嚴(yán)優(yōu)先殃級(jí)最朗高的濁中斷課請(qǐng)求伴,清符除中首斷請(qǐng)培求標(biāo)哥志位躺(TI和RI除外孔);掩硬件團(tuán)子程旦序?qū)⒁m單片嚇機(jī)當(dāng)籃前執(zhí)賊行的宣內(nèi)容零的地控址壓夫入堆膀棧,律轉(zhuǎn)入挽執(zhí)行圾相應(yīng)這中斷丈服務(wù)份程序憐的第擠一條礙指令鬼。中斷農(nóng)處理充程序桑從入耕口地映址開水始一領(lǐng)直執(zhí)吹行到等最后朱為止黎;系統(tǒng)趨返回猛原來(lái)患被打篇斷的付程序粘處開讀始繼傍續(xù)執(zhí)懼行。3,中斷萬(wàn)編程勉結(jié)構(gòu)(1圓)編寫揉中斷漏初始序化程污序?yàn)槭共纹鄼C(jī)CP趁U在執(zhí)幼行主傭程序擊過(guò)程勞中能山夠響級(jí)應(yīng)中愛斷,沙就必仇須先艇對(duì)使遲用中由斷的蕉相關(guān)略寄存任器(TM脖O(jiān)D、SC昌ON、IE等)脆進(jìn)行際初始房誠(chéng)化?!纠?-挪3】假設(shè)餐單片稍機(jī)系乳統(tǒng)允沖許外邪部中裝斷0、定倡時(shí)/計(jì)數(shù)挑器T0中斷悠,并榜設(shè)定鋸采用析邊沿綠觸發(fā)售,則礦主程斗序中遇的中援?dāng)喑踔S始化摘程序狠如下瞞:IT起0=曬1;懇//設(shè)置欣為下傾降沿堤觸發(fā)EX慣0=袖1;終//允許賓中斷ET出0=池1;愛//允許T0中斷EA塊=1輛;拔/愉/開放芹所有鈴中斷(2帥)編寫唯中斷勞服務(wù)提程序中斷轟程序畝入口石。C5抓1規(guī)定壯了80喊51單片峽機(jī)每牲種中籠斷類公型對(duì)沙應(yīng)中區(qū)斷服哥務(wù)程城序的俘入口鳥編號(hào)中斷類型C51中斷處理程序的中斷號(hào)外部中斷00定時(shí)/計(jì)數(shù)器0溢出中斷1外部中斷12定時(shí)/計(jì)數(shù)器1溢出中斷3串行口中斷4現(xiàn)場(chǎng)暮保護(hù)屑。如么果中緣瑞斷服強(qiáng)務(wù)程湊序中紫要使感用與戀主程望序有墳關(guān)的去寄存康器,逝那么CP扣U在執(zhí)單行中鄙斷服老務(wù)程鑒序之約前要虜保護(hù)絮這些線寄存勒器的蔽內(nèi)容鍛,即督“保稈護(hù)現(xiàn)疼場(chǎng)”交,中質(zhì)斷返魯回時(shí)鍛再恢卡復(fù)它筐們的針值。遙在使?fàn)C用Ke駁iluV蟻is議on脂4集成墻開發(fā)囑環(huán)境騙時(shí),介其C5陷1編譯黃器為鳳中斷狀服務(wù)倆程序摟提供最自動(dòng)蔬現(xiàn)場(chǎng)敵保護(hù)蹲以及癢返回睜時(shí)內(nèi)相容恢切復(fù)的肝功能巨,為串用戶情編程返提供愧了方援便。常用渾的中圾斷服朝務(wù)程捆序的繼結(jié)構(gòu)壺如下勤。vo瓣id中斷甩程序棟名(夸)催in宵te社rr衫up住t中斷象號(hào)us爪in裕g險(xiǎn)n{……部;}其中驚“中六斷程言序名揉”最美好依晃據(jù)中后斷服遷務(wù)程頂序的叨功能懇,取岡一個(gè)夢(mèng)比較豪直觀竊淺顯啊的名雀稱;惠“in外te針rr徐up控t”是中掩斷服軟務(wù)程尤序的拆關(guān)鍵惹字;寫“冬中斷條號(hào)”朗則根制據(jù)表5-抖1所示釀,如析果使綿用外京部事賴件0中斷穴,則別“中溫?cái)嗵?hào)頸”為0;us以in卸g定義取工作炒寄存客器組誰(shuí);n為寄岸存器培組編凳號(hào)(0~擺3),蘇默認(rèn)牙為0;“{恢}此”內(nèi)部疼為中能斷服庫(kù)務(wù)要亮執(zhí)行番的程族序。4,按鍵減與外燒部事違件中魔斷(1)IT肥0:設(shè)添置為1,選鎮(zhèn)擇外戚部中教斷0由下罵降沿縫觸發(fā)子,即咐當(dāng)出砌現(xiàn)一尼個(gè)下童降沿硬表示臥有一堵個(gè)外巷部中掙斷0的請(qǐng)素求信柳號(hào)。田為什慶么將IT湖0設(shè)置德為1呢?胳任務(wù)1學(xué)習(xí)崗得知?jiǎng)Γ▓D6-撫3),斃按鍵屈按下華將會(huì)爺產(chǎn)生安一個(gè)尾從高靠電平孝到低篇電平烈的邊黨沿跳攔變(況稱為鋒“下合降沿伐”)幫,按且鍵松禾開產(chǎn)彈生從雕低電杏平到稀高電旱平的若邊沿內(nèi)跳變冷(稱建為“使上升部沿”護(hù))。均因此1次按批鍵信勝號(hào)(負(fù)產(chǎn)生插一次奮下降摔沿)緊正好里轉(zhuǎn)化往成外亡部中騙斷0信號(hào)日。(2)IE閃0:無(wú)績(jī)需初茄始,介它由那硬件和自動(dòng)帝設(shè)置艷。(3)EX四0:設(shè)販置為1,即夠允許CP兆U響應(yīng)椅外部遣中斷0請(qǐng)求似。(4)EA:設(shè)類置為1,允分許CP別U響應(yīng)旗所有緣瑞中斷導(dǎo)請(qǐng)求期。1.拘P停ro咱te痛us電路刮設(shè)計(jì)2.Ke膀ilC5到1程序噸設(shè)計(jì)3.眉P鄉(xiāng)豐ro枕te剩us輪-Ke摟il聯(lián)合悟調(diào)試夾仿真任務(wù)左實(shí)施硬件凳電路蘆圖(1)程麥序流液程主程跌序根幼據(jù)標(biāo)識(shí)志位斷狀態(tài)械,無(wú)榴限循畝環(huán)執(zhí)兆行LE氧D流水嘉燈程奇序;殼按鍵膽的判奴斷轉(zhuǎn)止化成瀉中斷國(guó)處理子,按蘭下按義鍵則胸意味素著一捎次中倆斷事酸件發(fā)咽生,齒單片算機(jī)處筍理按藝鍵任萬(wàn)務(wù),坊即跳煉轉(zhuǎn)到IN滲T0中斷師處理墳程序債中,挎交替盈將LE嚴(yán)D流水業(yè)燈標(biāo)棄志位喪置1/清0。主程板序設(shè)市計(jì):vo狼id治m使ai令n(邪){IT乓0遮=登1彩;拒/真/設(shè)置縣外部?jī)?cè)中斷0觸發(fā)鬧方式梳位,1為邊夠沿觸輸發(fā)EX飼0勸=鳳1;喇/地/外部乎中斷0中斷基允許炭位EA斤=狂1;鎮(zhèn)//允許蹤蝶總中具斷標(biāo)群志位wh刮il醫(yī)e(如1){if盒(r爬un甲_f蛋l(fā)a營(yíng)g==夠0)隆/救/判斷日運(yùn)行柔標(biāo)志刊位狀賀態(tài){P1見=尖l蛛ed敲_l姜ig畝ht緊1[幻玉i+捧+]掛;de離la威y(座);if遮(i==給8)喉i=避0;}el割se{P1稍=l室ed朵_l謊ig依ht路2[習(xí)i+紅+]愉;夾//點(diǎn)亮LE士D流水奴燈de侄la專y(聲);盯/險(xiǎn)/點(diǎn)亮餓延時(shí)if冰(i==必7)液i=隸0;}}}中斷哈程序疤:vo寸id罪i裹nt剃0(撤)脖in衰te軋rr急up螞t忍0//中斷四服務(wù)救函數(shù)凡入口{EX新0機(jī)=點(diǎn)0;i=叉0;ru御n_窮fl包ag=~ru男n_卡fl渠ag;//每按找一下朽按鍵毛,行浙標(biāo)志膀位取煮反EX暗0撿=填1;}運(yùn)行Pr尿ot計(jì)eu階s-Ke怎il聯(lián)合社調(diào)試叢仿真任務(wù)3矩陣戒式鍵閃盤設(shè)欄計(jì)任務(wù)快描述山:任務(wù)沖分析飛:當(dāng)嵌雙入式斃產(chǎn)品維、設(shè)昨備中所的按貸鍵數(shù)筍目較鄰多時(shí)蟻,將魄采用裂更普密遍的怠按鍵唯設(shè)計(jì)活方法—矩陣盯式鍵罷盤。桶本任付務(wù)要斯求運(yùn)雀用矩煤陣式姥鍵盤凈的設(shè)暢計(jì)方刪法設(shè)碼計(jì)9個(gè)按喉鍵控鎮(zhèn)制點(diǎn)妙亮1個(gè)數(shù)證碼管儲(chǔ)分別博顯示1~響9。獨(dú)立復(fù)式鍵攝盤的悄每個(gè)仰按鍵歸都要青獨(dú)占壤一位I/榨O,當(dāng)闖按鍵量較多誰(shuí)就會(huì)決嚴(yán)重研耗費(fèi)視單片狂機(jī)的I/稿O資源位。比駛?cè)缬?jì)調(diào)算機(jī)牧的鍵群盤功衫能有10藥0多個(gè)爸,如虛果采栗用獨(dú)肝立式畜方法食設(shè)計(jì)潔,就疲需要10腸0多個(gè)I/帳O,因諒此獨(dú)擴(kuò)立式葉鍵盤至設(shè)計(jì)爛在按糠鍵較休多的辟情況館下不默再適姥合。淘本任譽(yù)務(wù)將累探討特新的奶方法—矩陣目式鍵亂盤設(shè)裝計(jì),毀盡可累能少乞占用I/贏O資源榆又?;笞C設(shè)佩計(jì)的舞效果愿。矩陣逼式鍵宰盤工啄作原欠理及膚應(yīng)用矩陣橡式鍵漲盤是扎利用首幾根I/孕O口線瞎作為晴列,霜幾根癢作為銜行,依行跟語(yǔ)列相握交叉錯(cuò),在彩交叉蘆點(diǎn)用嫌按鍵嘩連接纖列和巾行的I/伍O口線絹。2341掃描銜循環(huán)矩陣處式鍵釀盤的工作體原理是單晌片機(jī)供通過(guò)拆定時(shí)冊(cè)掃描照的方妄式來(lái)任查詢首按鍵經(jīng)的狀匹態(tài),何如先吊從行掃遼描,在華掃描拾第一塘行的模時(shí)候嬸查詢蝕在這策一行研上與缸列相探交叉菊的按槽鍵有怪沒有衣被按虜下,炕如果伙沒有鬼按鍵挑按下粉就以巷掃描爬第一秒行的斜方式閘掃描計(jì)第二渠行,拘這樣循環(huán)適掃描賓所有覽的行,如果撿有就役作出趕相應(yīng)釣的處尖理,統(tǒng)處理醒實(shí)現(xiàn)翠后再宇繼續(xù)吃重新居掃描。由欣于在掙掃描白第1行的折時(shí)候P2蝦.3春=0攤,但行P2院.3與列P2鳴.7交叉訪處的您按鍵維被按模下時(shí),P桶2.決7就會(huì)夾從本電來(lái)的罵高電碰平變懷為低猴電平,從而飛確定經(jīng)是哪北個(gè)按羊鍵被產(chǎn)按下.應(yīng)用使舉例心:例5-鞏5#d錢ef耽in裕ePo擴(kuò)rt崗ke匙yP2泛/附/鍵盤詞控制哀端巾列線P2額.0做P識(shí)2.差1#d柿ef正in狠e社K訊ey鴨Co蝕lm錢1圍P險(xiǎn)2_汽2目//行線P2災(zāi).2素P邀2.壤3Po罩rt適ke騎y=0仇xf兔f;侄//矩陣掛按鍵賓全輸坡出1Ke落yC跡ol尼m1攀=0棵;龍//選擇片掃描抱第一鐵行ke除y_茄te賓mp=Po架rt爭(zhēng)ke灘y;驕//讀按墾鍵控系制端ke腸y_陰te遣mp=k慨ey秩_t奇em倘p&由0x矮03蠶;產(chǎn)//暴00滅00膊,0床01捏1讀取簡(jiǎn)列線淹鍵值if尋(k清e(cuò)y籌_t邀em虜p!=采0x抵03反)活/戚/如果吧鍵值財(cái)不等林于0x奶03{ke那y_必de筐la苗y()腳;疲/炎/去抖很延時(shí)ke傅y_右te惠mp=Po抬rt斧ke偏y;啟//讀按繳鍵控勻制端ke頃y_鞋te仙mp=k勉ey獄_t槽em其p&榨0x奔03染;義//金00謠00壩,0綿11救1讀取矛列線拿鍵值if卡(k疑ey蠅_t堂em花p!=駱0x艙03鳥)成/煙/如果終鍵值頓仍不蜘等于0x虎03{sw槽it預(yù)ch劇(k菌ey封_t祥em訊p)紗//對(duì)讀崇取的貓鍵盤歲分配筋相應(yīng)羞鍵碼{ca役se效0暴x0征2:隊(duì)//段00尤00經(jīng)0患01抖0,ke壘y0被按夜下br監(jiān)ea所k;ca資se畜0構(gòu)x0南1:悉/植/0貞00鎖0班00東01,ke怒y1被按br刺ea鍵k;}}}1.致P央ro擁te廉us電路藥設(shè)計(jì)2.Ke疏ilC5膠1程序橫設(shè)計(jì)3.淘P艙ro感te扣us逗-Ke扛il聯(lián)合捐調(diào)試余仿真任務(wù)南實(shí)施硬件介電路烈圖(1)程弊序流糞程程序吸設(shè)計(jì)階最重盆要的聲部分單就是探矩陣常鍵盤燭的掃浴描,浙此電局路為3×燦3鍵盤圈,編絲式程從奧行開令始逐疤行掃早描,客掃描歪至第熄三行課,重串新開艷始循暮環(huán)第墓一行氏掃描換。主程采序設(shè)產(chǎn)計(jì):ma強(qiáng)in點(diǎn)(){綠ke政y=積9;關(guān)//初始遺顯示爸關(guān)閉wh性il高e(搖1){Po疲rt峰ke豪y=0款xf容f;廁/鳴/矩陣您按鍵玩全輸奏出1Ke玻yC撇ol褲m1卷=0菠;桃/稅/選擇價(jià)掃描袖第一蘆行ke扇y_寺te畫mp=Po召rt戒ke暗y;敵//讀按斜鍵控揀制端ke促y_豪te棒mp=k置ey丙_t結(jié)em鴉p&緞0x里07拴;芒//蒼00總00日,0裹11也1讀取伸鍵值if替(k弱ey眨_t內(nèi)em蠅p!=盡0x釘07籮)藝/握/如果泉鍵值屈不等擴(kuò)于0x歸07{ke熱y_嫂de梨la停y()擱;慰/并/去抖至延時(shí)ke背y_企te引mp=Po聯(lián)rt定ke弄y;勝//讀按鞭鍵控隊(duì)制端ke覽y_斷te顯mp=k娘ey逝_(tái)t飲em家p&臥0x象07舞;西//筆00劈燕00脖,0胞11坡1讀取泄鍵值if吊(k礎(chǔ)ey單_t重em譜p!=亦0x茂07真)喚/擁/如果膽鍵值掩仍不歇等于0x忠07{sw建it植ch嫌(k脈ey就_t普em扎p)折//對(duì)讀邀取的眼鍵盤余分配變相應(yīng)除鍵碼{ca概se西0摸x0坦6:芽//俊00貝00符0面11軋0,k0被按域下ke優(yōu)y=照0;假/晨/顯示妹內(nèi)容晉變量br顧ea顛k;ca桶se芒0辯x0推5:泥/份/0取00饒0壘01備01,k1被按沈下ke價(jià)y=娛1;br受ea罷k;ca鉆se尼0榜x0盡3:曠/歪/0晚00辰0弓00奴11,k2被按幸下ke克y=掩2;br網(wǎng)ea具k;}}}……煙;運(yùn)行Pr節(jié)ot歐eu炮s-Ke更il聯(lián)合百調(diào)試腐仿真【課堂傻練習(xí)】構(gòu)建2×晌2矩陣洋式鍵收盤(K0、K1、K2、K3),檢控制2個(gè)共掀陽(yáng)極盈數(shù)碼吳管對(duì)刪應(yīng)顯清示23、68、77、19。任務(wù)4多個(gè)溝外部湯中斷壟設(shè)計(jì)任務(wù)錦描述變:任務(wù)宰分析準(zhǔn):在實(shí)摔際項(xiàng)向目設(shè)存計(jì)中請(qǐng),有嫌些時(shí)奔候可具能需陵要將致不止載一個(gè)陰事件俯設(shè)計(jì)畢成中俯斷處浩理任貌務(wù),屆這就外涉及狐到多促個(gè)中省斷并肉存的婚情況扮。本圓任務(wù)士要求籍設(shè)計(jì)笛兩個(gè)它按鍵冰分別窗控制LE灣D流水丑燈工迷作流叼程,菊當(dāng)k0按下媽,流床水燈暗從兩幅頭向貨中間益運(yùn)行臥,達(dá)劍到中慎間返維回兩久頭,賤來(lái)回謹(jǐn)往返老;當(dāng)k1按下則,流型水燈旺先點(diǎn)鄙亮紅木燈,疲再點(diǎn)桐亮藍(lán)絕燈,卸即重揭復(fù)點(diǎn)嫂亮紅鏈燈、童藍(lán)燈屆。按鍵區(qū)控制掠流水彈燈工卸作狀握態(tài),狼不能筑采用歲獨(dú)立款式按舞鍵設(shè)腥計(jì)。蒙因此爺兩個(gè)化按鍵聰都應(yīng)擔(dān)運(yùn)用些“中增斷”真的設(shè)召計(jì)方劍法,89江C5舊1有IN話T0、IN喜T1兩個(gè)弱外部襯中斷押,可筍以滿瞧足兩啟個(gè)按指鍵的伍設(shè)計(jì)啟要求味。中斷閱優(yōu)先趟級(jí)當(dāng)幾碑個(gè)中免斷源糟同時(shí)討向單兵片機(jī)CP萄U發(fā)出真中斷眾請(qǐng)求導(dǎo)時(shí),CP蒼U應(yīng)優(yōu)佳先響景應(yīng)最灣需緊竊急處迷理的弦中斷奮請(qǐng)求潛。為足此,廈需要糟規(guī)定唯各個(gè)舍中斷老源的披優(yōu)先憲級(jí),職使CP插U在多巷個(gè)中冊(cè)斷源源同時(shí)繩發(fā)出霉中斷慢請(qǐng)求板時(shí)能煌找到粒優(yōu)先鑒級(jí)最燙高的垃中斷缸源,腸響應(yīng)艘它的蜻中斷柳請(qǐng)求狹。高蒜優(yōu)先組級(jí)的蘋中斷欲請(qǐng)求守處理唯完畢方以后煙,再次響應(yīng)畢優(yōu)先撒級(jí)低燭的中群斷請(qǐng)甘求。中斷碌源的形響應(yīng)嫂優(yōu)先筐級(jí)由樸寄存慘器IP確定太,中煉斷系御統(tǒng)可樂以在IP定義艇兩個(gè)紀(jì)優(yōu)先暴級(jí)水想平,扒即高隊(duì)優(yōu)先塵級(jí)水章平和雄低優(yōu)顏先級(jí)所水平豈;同左時(shí)規(guī)誼定了別同一站水平產(chǎn)下不頂同中鞭斷源切的優(yōu)乳先級(jí)富。特殊滲功能憶寄存糖器IP1.蘇P且ro悼te樣us電路我設(shè)計(jì)2.Ke椅ilC5阻1程序阻設(shè)計(jì)3.豆P卷ro暑te到us面-Ke釘il聯(lián)合朝調(diào)試磨仿真任務(wù)沈?qū)嵤┯布耠娐窓n圖兩個(gè)勁按鍵墾對(duì)應(yīng)難為外咳部中自斷0、外么部中籌斷1,因息此鍵警盤電顏路必被須設(shè)量計(jì)在油外部海中斷誼口上鴉,如放圖5-新30示將抽按鍵k0、k1分別折設(shè)計(jì)買在P3添.2藥/I皇NT喚0、P3倚.3員/I踩NT艇1管腳乖上,LE釋D電路類依然那設(shè)計(jì)羽在P1口上員。(1)程栽序流許程由于括兩個(gè)液按鍵獎(jiǎng)分別岸控制說(shuō)流水軌燈不翅同運(yùn)暗行狀威態(tài),嚷因此爺程序廳設(shè)計(jì)欣中采批用兩瞎個(gè)運(yùn)葡行標(biāo)途志位桂進(jìn)行程相應(yīng)粥的判進(jìn)斷;捧而兩凡個(gè)按風(fēng)鍵的血都轉(zhuǎn)予化成嘉中斷網(wǎng)處理鹽,按韻下按搬鍵k0,代歉表IN背T0中斷叫事件閃發(fā)生具,按腎下按前鍵k1,代北表IN猜T1中斷刊事件燦發(fā)生衫,單淘片機(jī)全響應(yīng)鐮按鍵艘,即敬跳轉(zhuǎn)倉(cāng)到響間應(yīng)中便斷的車處理款程序阻中,休將對(duì)商應(yīng)的咬運(yùn)行緣瑞標(biāo)志援位置1。在捉使用兩“中甩斷”膀時(shí),旗都應(yīng)含初始灑兩個(gè)緊中斷歇相關(guān)絲式的寄桃存器綁。主程族序設(shè)貌計(jì):ma餓in刪(){IT測(cè)0拳=屠1浙;墊/壟/設(shè)置授外部痰中斷0觸發(fā)崗方式贈(zèng)位,1為邊莫沿觸掉發(fā)EX籍0眼=卵1;籃/份/外部佩中斷0中斷夢(mèng)允許侵位IT倘1賀=懲1犬;叉/齊/設(shè)置搖外部走中斷1觸發(fā)君方式莫位,1為邊耍沿觸恰發(fā)EX猾1眾=無(wú)1;威/馬/外部斤中斷1中斷欺允許伙位EA腔=省1;擱//允許夸總中笛斷標(biāo)尿志位wh廚il帝e(鼓1){牌if壟(l輪ed鏡_r在un窗ni區(qū)ng隆1=專=1縮慧)鹽//判斷l(xiāng)e炎d_帖ru客nn纖in月g1標(biāo)志熄位是翻否為1{P1圣=描l某

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論