單片機(jī)及接口技術(shù)并行擴(kuò)展_第1頁
單片機(jī)及接口技術(shù)并行擴(kuò)展_第2頁
單片機(jī)及接口技術(shù)并行擴(kuò)展_第3頁
單片機(jī)及接口技術(shù)并行擴(kuò)展_第4頁
單片機(jī)及接口技術(shù)并行擴(kuò)展_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

單片機(jī)及接口技術(shù)并行擴(kuò)展第一頁,共二十四頁,編輯于2023年,星期日單片機(jī)并行擴(kuò)展1.用并行I/O口擴(kuò)展鍵盤電路MCUI/O……VCC獨(dú)立式鍵盤RMCUVCC行列式鍵盤列行RP1.0P1.1P1.2P2.0P2.1P2.2(1)鍵盤電路第二頁,共二十四頁,編輯于2023年,星期日單片機(jī)并行擴(kuò)展(2)鍵盤原理

(3)按鍵的抖動(dòng)問題:按鍵在穩(wěn)定前有抖動(dòng)過程,因此需要消除抖動(dòng)影響。采用延時(shí)再讀按鍵狀態(tài)的方法。行列式鍵盤原理:a.列線和行線不相連;b.列線輸出,行線輸入。c.逐列掃描,再檢查行線狀態(tài)以得知是否按下了哪個(gè)鍵。獨(dú)立式鍵盤原理:第三頁,共二十四頁,編輯于2023年,星期日(4)鍵盤操作方式:查詢和中斷

中斷操作方式單片機(jī)并行擴(kuò)展MCUI/O……VCC列行&INT(平)R操作:列掃描,若有中斷請(qǐng)求,說明掃描列有鍵按下,則查詢哪一行的值為0第四頁,共二十四頁,編輯于2023年,星期日(5)鍵盤應(yīng)用舉例

a.硬件設(shè)計(jì):單片機(jī)并行擴(kuò)展MCUVCC獨(dú)立式鍵盤P1.0P1.1P1.2R例1:用80C51P1口構(gòu)成一個(gè)3鍵的獨(dú)立式鍵盤第五頁,共二十四頁,編輯于2023年,星期日IO51K8:MOVP1,#0FFH;置P1口為輸入

MOVA,P1;查詢P1口狀態(tài)

JNBACC.0,PROM0JNBACC.1,PROM1JNBACC.2,PROM2

SJMPIO51K/*以上均為鍵盤輸入處理程序*/鍵盤管理程序包括鍵輸入處理程序和鍵操作程序

PROM0:…LJMPIO51K8PROM1:…LJMPIO51K8PROM2:…LJMPIO51K8/*以上為鍵操作程序*/b.軟件設(shè)計(jì)(鍵盤管理程序)單片機(jī)并行擴(kuò)展第六頁,共二十四頁,編輯于2023年,星期日IO51K8:MOVP1,#0FFHMOVA,P1;查詢P1口狀態(tài)

CPLAJZIO51K8LCALLD10MS;調(diào)延時(shí)子程序,延時(shí)10msMOVA,P1;再次查詢P1口狀態(tài)

JNBACC.0,PROM0JNBACC.1,PROM1JNBACC.2,PROM2SJMPIO51K8單片機(jī)并行擴(kuò)展練習(xí):在上述程序的基礎(chǔ)上增加按鍵的消抖處理。第七頁,共二十四頁,編輯于2023年,星期日單片機(jī)并行擴(kuò)展PGM0:…LJMPIO51K8PGM1:…LJMPIO51K8PGM2:…LJMPIO51K8D10MS:…;延時(shí)子程序

RET

第八頁,共二十四頁,編輯于2023年,星期日2.并行I/O擴(kuò)展的LED顯示電路

1)LED顯示器由8位發(fā)光二極管組成gabfceddpLED顯示器單片機(jī)并行擴(kuò)展共陰極ab…dpab…dp共陽極VCC第九頁,共二十四頁,編輯于2023年,星期日2)LED顯示器的段碼表如共陰極,顯示數(shù)碼‘2’由LED顯示器的圖可看出:要顯示‘2’,需從發(fā)光二極管a,b,d,e,g的非共極端輸入1,并從發(fā)光二極管c,f,dp的非共極段輸入0,因此從LED顯示器的非共極段輸入的數(shù)值為01011011B,即‘2’的段碼為:5BHdpgfedcba01011011單片機(jī)并行擴(kuò)展gabfceddpab…dpCOM第十頁,共二十四頁,編輯于2023年,星期日練習(xí):共陽極LED顯示器數(shù)碼‘2’的段碼要顯示‘2’,需從發(fā)光二極管a,b,d,e,g的非共極端輸入0,并從發(fā)光二極管c,f,dp的非共極段輸入1,因此從LED顯示器的非共極段輸入的數(shù)值為10100100B,即‘2’的段碼為:A4Hdpgfedcba10100100單片機(jī)并行擴(kuò)展gabfceddpab…dpVCC(+)COM第十一頁,共二十四頁,編輯于2023年,星期日單片機(jī)并行擴(kuò)展3)LED顯示器的電路設(shè)計(jì)

(1)LED顯示器靜態(tài)顯示方式80C51I/O端口驅(qū)動(dòng)器共極端(COM)非共極端原理:每個(gè)LED顯示器的共極端固定接電源或地,非共極端接單片機(jī)的I/O端口,通過從8個(gè)端口位送段碼來控制顯示器顯示數(shù)碼。因?yàn)镃OM端狀態(tài)不能改變,所以LED顯示器不能共用數(shù)據(jù)線,因而每個(gè)LED顯示器占用一個(gè)端口。第十二頁,共二十四頁,編輯于2023年,星期日單片機(jī)并行擴(kuò)展問題:同一個(gè)I/O口能否用以控制兩個(gè)LED顯示器?當(dāng)輸入其中一個(gè)顯示器的段碼時(shí),另一個(gè)顯示器也同時(shí)有顯示,因此一個(gè)I/O端口只能用于控制1個(gè)LED顯示器,1臺(tái)80C51單片機(jī)只能控制4個(gè)LED顯示器。#080C51I/O端口驅(qū)動(dòng)器共極端(COM)非共極端#1第十三頁,共二十四頁,編輯于2023年,星期日單片機(jī)并行擴(kuò)展80C51P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7驅(qū)動(dòng)器P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7驅(qū)動(dòng)器#1#0編程舉例:分別用P0和P1口控制#0和#1兩個(gè)共陰極LED顯示器。設(shè)有兩個(gè)9以內(nèi)的無符號(hào)整數(shù)分別存放在片內(nèi)RAM30H和31H兩個(gè)單元,編寫程序顯示這兩個(gè)數(shù)。已知共陰極段碼表為:01234567893FH06H5BH4FH66H6DH7DH07H7FH6FH第十四頁,共二十四頁,編輯于2023年,星期日單片機(jī)并行擴(kuò)展解:用查表程序TAB:DB3FH,06H,5BH,4FH,66H;段碼表

DB6DH,7DH,07H,7FH,6FHMOVDPTR,#TABMOVA,30HMOVCA,@A+DPTRMOVP1,AMOVA,31HMOVCA,@A+DPTRMOVP0,ASJMP$第十五頁,共二十四頁,編輯于2023年,星期日單片機(jī)并行擴(kuò)展(2)LED顯示器動(dòng)態(tài)顯示方式為節(jié)省端口資源,若能在時(shí)刻僅一個(gè)LED顯示器能顯示,其余n-1LED顯示器都不能顯示,則能用一個(gè)端口控制n個(gè)LED顯示器。方法:用另外的I/O端口位控制LED顯示器的共極端,使在某時(shí)刻僅有一個(gè)LED顯示器的共極端有效。第十六頁,共二十四頁,編輯于2023年,星期日單片機(jī)并行擴(kuò)展80C51P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7驅(qū)動(dòng)器P3.0P3.1驅(qū)動(dòng)器#0#1例如,設(shè)#0和#1兩個(gè)LED顯示器均為共陰極顯示器。MOVA,#0FEHMOVP3,AMOVP1,#0的段碼RLAMOVP3,AMOVP1,#1的段碼第十七頁,共二十四頁,編輯于2023年,星期日原理:每個(gè)LED顯示器的公共端各用一個(gè)端口位控制(控制字),用8個(gè)公共的端口位送數(shù)據(jù)(段碼)。通過掃描的方式(逐個(gè)送),使n個(gè)LED顯示器的公共端逐個(gè)有效,同時(shí)從公共的數(shù)據(jù)線(非公共端)送段碼,從而使n個(gè)LED顯示器逐個(gè)顯示數(shù)字。用兩個(gè)端口可以使用8個(gè)LED顯示器用三個(gè)端口可以使用16個(gè)LED顯示器用四個(gè)端口可以使用24個(gè)LED顯示器單片機(jī)并行擴(kuò)展LED顯示器動(dòng)態(tài)顯示方式:各顯示器逐個(gè)顯示(不同時(shí)顯示)一段時(shí)間,然后熄滅在視覺上產(chǎn)生連續(xù)顯示的錯(cuò)覺。第十八頁,共二十四頁,編輯于2023年,星期日練習(xí):設(shè)

有4個(gè)10以內(nèi)的數(shù)存放在片內(nèi)RAM首址為50H的數(shù)據(jù)塊中,將該數(shù)據(jù)塊的值顯示出來。設(shè)采用共陰極LED顯示器,已有延時(shí)1ms的子程序DELAY。80C51P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7驅(qū)動(dòng)器P3.0P3.1P3.2P3.3驅(qū)動(dòng)器LED顯示器動(dòng)態(tài)顯示方式單片機(jī)并行擴(kuò)展第十九頁,共二十四頁,編輯于2023年,星期日解:LED顯示器程序一般采用查表的方法,將段碼表放在ROM中取數(shù)據(jù)到A中送控制字以A為偏移量,查段碼表,得到相應(yīng)的段碼輸出段碼,顯示數(shù)據(jù)延時(shí)循環(huán)結(jié)束?YES數(shù)據(jù)塊指針加1控制字左移一位NO結(jié)束設(shè)指向數(shù)據(jù)塊的指針設(shè)控制字初始值設(shè)循環(huán)次數(shù)開始設(shè)段碼表的首地址算法

單片機(jī)并行擴(kuò)展第二十頁,共二十四頁,編輯于2023年,星期日程序單片機(jī)并行擴(kuò)展LP:MOVA,@R0;取數(shù)到A中

MOVP3,R2;送控制字

MOVCA,@A+DPTR;查相應(yīng)的段碼

MOVP1,A;送出段碼

LCALLDELAY

;調(diào)延時(shí)子程序

INCR0;數(shù)據(jù)塊指針加1MOVA,R2RLAMOVR2,A;控制字左移一位

DJNZR3,LP;若循環(huán)沒結(jié)束,轉(zhuǎn)下一次循環(huán)

HLT;若循環(huán)結(jié)束,停機(jī)

TAB:DB3FH,06H,5BH,4FH,66H,6DH,7DHDB07H,7FH,6FH,77H,7CH,39H,5EHDB79H,71H;段碼表,0~F第二十一頁,共二十四頁,編輯于2023年,星期日程序單片機(jī)并行擴(kuò)展MOVR0,#50H;R0指向數(shù)據(jù)塊

MOVR2,#FEH;設(shè)控制字初始值11111110BMOVR3,#4;設(shè)循環(huán)次數(shù)

MOVDPTR,#TAB;設(shè)段碼表的首地址

LP:MOVA,@R0;取數(shù)到A中

MOVP3,R2;送控制字

MOVCA,@A+DPTR;查相應(yīng)的段碼

MOVP1,A;送出段碼

LCALLDELAY;調(diào)延時(shí)子程序,可延時(shí)1msINCR0;數(shù)據(jù)塊指針加1MOVA,R2RLAMOVR2,A;控制字左移一位

DJNZR3,LP;若循環(huán)沒結(jié)束,轉(zhuǎn)下一次循環(huán)

HALT;若循環(huán)結(jié)束,停機(jī)

TAB:DB3FH,06H,5BH,4FH,66H,6DH,7DHDB07H,7FH,6FH,77H,7CH,39H,5EHDB79H,71H;段碼表,0~F第二十二頁,共二十四頁,編輯于2023年,星期日程序思考:1)用三個(gè)LED顯示器顯示十進(jìn)制數(shù)3282)4*4鍵盤,鍵盤號(hào)0-15,用LED顯示器顯示閉合鍵的鍵號(hào)

單片機(jī)并行擴(kuò)展MOVR0,#50H;R0指向數(shù)據(jù)塊

MOVR2,#FEH;設(shè)控制字初始值11111110BMO

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論