單片機(jī)并行口其應(yīng)用_第1頁(yè)
單片機(jī)并行口其應(yīng)用_第2頁(yè)
單片機(jī)并行口其應(yīng)用_第3頁(yè)
單片機(jī)并行口其應(yīng)用_第4頁(yè)
單片機(jī)并行口其應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩44頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用第第2章章 mcs51單片機(jī)內(nèi)部并行口及應(yīng)用單片機(jī)內(nèi)部并行口及應(yīng)用2.1 mcs-51 mcs-51 單片機(jī)并行口結(jié)構(gòu)單片機(jī)并行口結(jié)構(gòu)2.2 mcs-51 mcs-51 單片機(jī)并行口應(yīng)用單片機(jī)并行口應(yīng)用2.3 七段七段ledled顯示器接口顯示器接口2.4 鍵盤接口鍵盤接口 第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用1.1 mcs-51 mcs-51單片機(jī)并行口結(jié)構(gòu)單片機(jī)并行口結(jié)構(gòu) 1.1.1 p0口結(jié)構(gòu)口結(jié)構(gòu) 1.1.2 p1口結(jié)構(gòu)口結(jié)構(gòu) 1.1.3 p2口結(jié)構(gòu)口結(jié)構(gòu) 1.1.4 p3口結(jié)構(gòu)口結(jié)構(gòu)第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用1.1

2、.1 p0口結(jié)構(gòu)口結(jié)構(gòu)返回返回dcpqq讀引腳讀引腳讀鎖存讀鎖存寫控制信號(hào)寫控制信號(hào)db0.0地址地址/數(shù)據(jù)控制線數(shù)據(jù)控制線+5vp0.0轉(zhuǎn)換開關(guān)轉(zhuǎn)換開關(guān)鎖存器鎖存器作用作用:1、外擴(kuò)芯片時(shí),、外擴(kuò)芯片時(shí),p0口不再做口不再做i/o口使用,而是先傳送地址,后傳送數(shù)據(jù)??谑褂?,而是先傳送地址,后傳送數(shù)據(jù)。2、沒有外擴(kuò)芯片時(shí),、沒有外擴(kuò)芯片時(shí),p0口可以直接作為口可以直接作為輸入口輸入口或或輸出口輸出口使用。使用。第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用p0口直接做輸出口時(shí),輸出信息的過程:口直接做輸出口時(shí),輸出信息的過程:(將(將0 0送到送到p0.0p0.0的過程的過程) )返回返回dcp

3、qq讀引腳讀引腳讀鎖存讀鎖存寫控制信號(hào)寫控制信號(hào)db0.0地址地址/數(shù)據(jù)控制線數(shù)據(jù)控制線+5vp0.0轉(zhuǎn)換開關(guān)轉(zhuǎn)換開關(guān)鎖存器鎖存器00010注意注意: p0口做輸出口時(shí),內(nèi)部數(shù)據(jù)經(jīng)過鎖存器送到口做輸出口時(shí),內(nèi)部數(shù)據(jù)經(jīng)過鎖存器送到p00-p07上。由于上管上。由于上管始終截止,而當(dāng)下管也截止時(shí),始終截止,而當(dāng)下管也截止時(shí),p00p07被架空,沒有標(biāo)準(zhǔn)的高電平,所被架空,沒有標(biāo)準(zhǔn)的高電平,所以以p0口作輸出口使用時(shí),必須外接上拉電阻??谧鬏敵隹谑褂脮r(shí),必須外接上拉電阻。 第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用p0口直接做輸入口時(shí),輸入信息的過程:口直接做輸入口時(shí),輸入信息的過程:(將(將p0

4、.0p0.0處的處的1 1送入送入db0.0db0.0的過程的過程) )dcpqq讀引腳讀引腳讀鎖存讀鎖存寫控制信號(hào)寫控制信號(hào)db0.0地址地址/數(shù)據(jù)控制線數(shù)據(jù)控制線+5vp0.0轉(zhuǎn)換開關(guān)轉(zhuǎn)換開關(guān)鎖存器鎖存器001注意注意: 1、p0口作輸入口時(shí),口作輸入口時(shí),p00p07上的信號(hào)經(jīng)過緩沖器送到內(nèi)部數(shù)據(jù)總線上。上的信號(hào)經(jīng)過緩沖器送到內(nèi)部數(shù)據(jù)總線上。在讀引腳之前,要先將鎖存器置在讀引腳之前,要先將鎖存器置1,否則總是讀到,否則總是讀到0。2、cpu對(duì)對(duì)p0口的讀操作有口的讀操作有2種:種:讀引腳讀引腳和和讀讀改改寫鎖存器寫鎖存器。 1當(dāng)當(dāng)cpu執(zhí)行執(zhí)行 mov a,p0或或 jb/jnb p0.

5、x,標(biāo)號(hào),標(biāo)號(hào) 時(shí),產(chǎn)生讀引腳控制信號(hào),時(shí),產(chǎn)生讀引腳控制信號(hào),此時(shí)讀的是引腳的狀態(tài)此時(shí)讀的是引腳的狀態(tài) 。當(dāng)當(dāng)cpu執(zhí)行讀執(zhí)行讀改改寫指令(以端口為寫指令(以端口為目的操作數(shù)的目的操作數(shù)的anl、orl、xrl、dec、inc setb、clr等)時(shí),產(chǎn)生等)時(shí),產(chǎn)生讀鎖存信號(hào),此時(shí)是先讀鎖存器的狀態(tài),讀鎖存信號(hào),此時(shí)是先讀鎖存器的狀態(tài),在修改之后,送回鎖存器保存。在修改之后,送回鎖存器保存。 返回返回第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用1.1.2 p1口結(jié)構(gòu)口結(jié)構(gòu)dcpqq讀引腳讀引腳讀鎖存讀鎖存寫控制信號(hào)寫控制信號(hào)db0.0+5vp1.0鎖存器鎖存器作用作用:p1口只能可以直接作

6、為口只能可以直接作為輸入口輸入口或或輸出口輸出口使用。使用。返回返回第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用返回返回dcpqq讀引腳讀引腳讀鎖存讀鎖存寫控制信號(hào)寫控制信號(hào)db0.0+5vp1.0鎖存器鎖存器p1口直接做輸出口時(shí),輸出信息的過程:口直接做輸出口時(shí),輸出信息的過程:(將(將1送到送到p1.0的過程的過程)1001注意:注意:p1口做輸出口時(shí),內(nèi)部數(shù)據(jù)經(jīng)過鎖存器送到口做輸出口時(shí),內(nèi)部數(shù)據(jù)經(jīng)過鎖存器送到p10-p17上。上。由于內(nèi)部有上拉電阻,所以由于內(nèi)部有上拉電阻,所以p1口作輸出口使用時(shí),不用外接上拉電阻??谧鬏敵隹谑褂脮r(shí),不用外接上拉電阻。第2章 mcs-51單片機(jī)內(nèi)部并行口

7、及其應(yīng)用dcpqq讀引腳讀引腳讀鎖存讀鎖存寫控制信號(hào)寫控制信號(hào)db0.0+5vp1.0鎖存器鎖存器p1口直接做輸入口時(shí),輸入信息的過程:口直接做輸入口時(shí),輸入信息的過程: (將(將p1.0p1.0處的處的0 0送入送入db0.0db0.0的過程的過程) )00注意注意: 1、p1口作輸入口時(shí),口作輸入口時(shí),p10p17上的信號(hào)經(jīng)過緩沖器送到內(nèi)部數(shù)據(jù)總線上。上的信號(hào)經(jīng)過緩沖器送到內(nèi)部數(shù)據(jù)總線上。在讀引腳之前,要先將鎖存器置在讀引腳之前,要先將鎖存器置1,否則總是讀到,否則總是讀到0。2、cpu對(duì)對(duì)p1口的讀操作有口的讀操作有2種:種:讀引腳讀引腳和和讀讀改改寫鎖存器寫鎖存器。 當(dāng)當(dāng)cpu執(zhí)行執(zhí)行

8、 mov a,p1或或 jb/jnb p1.x,標(biāo)號(hào),標(biāo)號(hào) 時(shí),產(chǎn)生讀引腳控制信號(hào),時(shí),產(chǎn)生讀引腳控制信號(hào),此時(shí)讀的是引腳的狀態(tài)此時(shí)讀的是引腳的狀態(tài) 。當(dāng)當(dāng)cpu執(zhí)行讀執(zhí)行讀改改寫指令(以端口為目寫指令(以端口為目的操作數(shù)的的操作數(shù)的anl、orl、xrl、dec、inc 、setb、clr等)時(shí),產(chǎn)生讀鎖存等)時(shí),產(chǎn)生讀鎖存信號(hào),此時(shí)是先讀鎖存器的狀態(tài),在修改信號(hào),此時(shí)是先讀鎖存器的狀態(tài),在修改之后,送回鎖存器保存。之后,送回鎖存器保存。 返回返回第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用1.1.3 p2口結(jié)構(gòu)口結(jié)構(gòu)dcpqq讀引腳讀引腳讀鎖存讀鎖存寫控制信號(hào)寫控制信號(hào)db0.0地址控制線

9、地址控制線+5vp2.0轉(zhuǎn)換開關(guān)轉(zhuǎn)換開關(guān)鎖存器鎖存器作用作用:1、外擴(kuò)芯片時(shí),、外擴(kuò)芯片時(shí),p2口不再做口不再做i/o口使用,而是傳送高口使用,而是傳送高8位地址。位地址。2、沒有外擴(kuò)芯片時(shí),、沒有外擴(kuò)芯片時(shí),p2口可以直接作為口可以直接作為輸入口輸入口或或輸出口輸出口使用。使用。返回返回第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用返回返回dcpqq讀引腳讀引腳讀鎖存讀鎖存寫控制信號(hào)寫控制信號(hào)db0.0地址控制線地址控制線+5vp2.0轉(zhuǎn)換開關(guān)轉(zhuǎn)換開關(guān)鎖存器鎖存器p2口直接做輸出口時(shí),輸出信息的過程:口直接做輸出口時(shí),輸出信息的過程:(將(將0 0送到送到p2.0p2.0的過程的過程) )00

10、010注意:注意:p2口做輸出口時(shí),內(nèi)部數(shù)據(jù)經(jīng)過鎖存器送到口做輸出口時(shí),內(nèi)部數(shù)據(jù)經(jīng)過鎖存器送到p20-p27上。上。由于內(nèi)部有上拉電阻,所以由于內(nèi)部有上拉電阻,所以p2口作輸出口使用時(shí),不用外接上拉電阻??谧鬏敵隹谑褂脮r(shí),不用外接上拉電阻。第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用dcpqq讀引腳讀引腳讀鎖存讀鎖存寫控制信號(hào)寫控制信號(hào)db0.0地址控制線地址控制線+5vp2.0轉(zhuǎn)換開關(guān)轉(zhuǎn)換開關(guān)鎖存器鎖存器p2口直接做輸入口時(shí),輸入信息的過程:口直接做輸入口時(shí),輸入信息的過程:(將(將p2.0p2.0處的處的0 0送入送入db0.0db0.0的過程的過程) )000注意注意: 1、p2口作輸入

11、口時(shí),口作輸入口時(shí),p20p27上的信號(hào)經(jīng)過緩沖器送到內(nèi)部數(shù)據(jù)總線上。上的信號(hào)經(jīng)過緩沖器送到內(nèi)部數(shù)據(jù)總線上。在讀引腳之前,要先將鎖存器置在讀引腳之前,要先將鎖存器置1,否則總是讀到,否則總是讀到0。2、cpu對(duì)對(duì)p2口的讀操作有口的讀操作有2種:種:讀引腳讀引腳和和讀讀改改寫鎖存器寫鎖存器。 當(dāng)當(dāng)cpu執(zhí)行執(zhí)行 mov a,p2或或 jb/jnb p2.x,標(biāo)號(hào),標(biāo)號(hào) 時(shí),產(chǎn)生讀引腳控制信號(hào),時(shí),產(chǎn)生讀引腳控制信號(hào),此時(shí)讀的是引腳的狀態(tài)此時(shí)讀的是引腳的狀態(tài) 。當(dāng)當(dāng)cpu執(zhí)行讀執(zhí)行讀改改寫指令(以端口為目寫指令(以端口為目的操作數(shù)的的操作數(shù)的anl、orl、xrl、dec、inc 、setb、c

12、lr等)時(shí),產(chǎn)生讀鎖存等)時(shí),產(chǎn)生讀鎖存信號(hào),此時(shí)是先讀鎖存器的狀態(tài),在修改信號(hào),此時(shí)是先讀鎖存器的狀態(tài),在修改之后,送回鎖存器保存。之后,送回鎖存器保存。 返回返回第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用1.1.4 p3口結(jié)構(gòu)口結(jié)構(gòu)dcpqq讀引腳讀引腳讀鎖存讀鎖存寫控制信號(hào)寫控制信號(hào)db0.0+5vp3.0鎖存器鎖存器第二功能輸出第二功能輸出第二功能輸入第二功能輸入作用作用:1、p3口可以直接作為口可以直接作為輸入口輸入口或或輸出口輸出口使用。使用。2、p3口的引腳又具有口的引腳又具有第二功能第二功能。1 當(dāng)使用單片機(jī)內(nèi)部串行口時(shí),若cpu執(zhí)行mov a,sbuf指令,則p3.0(rx

13、d)作為接收信號(hào)線,接收由外界串行輸入的數(shù)據(jù);若cpu執(zhí)行mov sbuf,a指令,則p3.1(txd)作為發(fā)送信號(hào)線,串行發(fā)送數(shù)據(jù)至外界。 2當(dāng)單片機(jī)使用外中斷時(shí),p3.2(int0)作為外中斷0的中斷請(qǐng)求輸入線,3.3(int1) 作為外中斷1的中斷請(qǐng)求輸入線。3當(dāng)單片機(jī)使用定時(shí)器,且定時(shí)器工作于計(jì)數(shù)方式時(shí),p3.4(t0)作為定時(shí)器0的計(jì)數(shù)脈沖輸入線,p3.5(t1)作為定時(shí)器1的計(jì)數(shù)脈沖輸入線。4當(dāng)單片機(jī)外擴(kuò)ram或i/o接口芯片時(shí),p3.6(wr)作為ram或i/o接口芯片的寫控制信號(hào),p3.7(rd)作為ram或i/o接口芯片的讀控制信號(hào)。 當(dāng)當(dāng)p3口的一些引腳沒有作為第二功能使用

14、時(shí),這些引腳就被釋放,直接作為口的一些引腳沒有作為第二功能使用時(shí),這些引腳就被釋放,直接作為i/o口口線使用。線使用。返回返回第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用返回返回dcpqq讀引腳讀引腳讀鎖存讀鎖存寫控制信號(hào)寫控制信號(hào)db0.0+5vp3.0鎖存器鎖存器第二功能輸出第二功能輸出第二功能輸入第二功能輸入p3口直接做輸出口時(shí),輸出信息的過程:口直接做輸出口時(shí),輸出信息的過程:(將(將1 1送到送到p3.0p3.0的過程的過程) )1001注意:注意:p3口做輸出口時(shí),內(nèi)部數(shù)據(jù)經(jīng)過鎖存器送到口做輸出口時(shí),內(nèi)部數(shù)據(jù)經(jīng)過鎖存器送到p30-p37上。上。由于內(nèi)部有上拉電阻,所以由于內(nèi)部有上拉

15、電阻,所以p2口作輸出口使用時(shí),不用外接上拉電阻??谧鬏敵隹谑褂脮r(shí),不用外接上拉電阻。第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用dcpqq讀引腳讀引腳讀鎖存讀鎖存寫控制信號(hào)寫控制信號(hào)db0.0+5vp3.0鎖存器鎖存器第二功能輸出第二功能輸出第二功能輸入第二功能輸入0p3口直接做輸入口時(shí),輸入信息的過程:口直接做輸入口時(shí),輸入信息的過程:(將(將p3.0p3.0處的處的0 0送入送入db0.0db0.0的過程的過程) )0注意注意: 1、p3口作輸入口時(shí),口作輸入口時(shí),p30p37上的信號(hào)經(jīng)過緩沖器送到內(nèi)部數(shù)據(jù)總線上。上的信號(hào)經(jīng)過緩沖器送到內(nèi)部數(shù)據(jù)總線上。在讀引腳之前,要先將鎖存器置在讀引腳

16、之前,要先將鎖存器置1,否則總是讀到,否則總是讀到0。2、cpu對(duì)對(duì)p3口的讀操作有口的讀操作有2種:種:讀引腳讀引腳和和讀讀改改寫鎖存器寫鎖存器。 當(dāng)當(dāng)cpu執(zhí)行執(zhí)行 mov a,p3或或 jb/jnb p3.x,標(biāo)號(hào),標(biāo)號(hào) 時(shí),產(chǎn)生讀引腳控制信號(hào),時(shí),產(chǎn)生讀引腳控制信號(hào),此時(shí)讀的是引腳的狀態(tài)此時(shí)讀的是引腳的狀態(tài) 。當(dāng)當(dāng)cpu執(zhí)行讀執(zhí)行讀改改寫指令(以端口為目寫指令(以端口為目的操作數(shù)的的操作數(shù)的anl、orl、xrl、dec、inc 、setb、clr等)時(shí),產(chǎn)生讀鎖存等)時(shí),產(chǎn)生讀鎖存信號(hào),此時(shí)是先讀鎖存器的狀態(tài),在修改信號(hào),此時(shí)是先讀鎖存器的狀態(tài),在修改之后,送回鎖存器保存。之后,送回

17、鎖存器保存。 返回返回第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用1.2 mcs-51 mcs-51單片機(jī)并行口的應(yīng)用單片機(jī)并行口的應(yīng)用 1.2.1 直接做輸出口直接做輸出口 1.2.2 直接做輸入口直接做輸入口 在沒有外擴(kuò)任何芯片時(shí),mcs-51單片機(jī)內(nèi)部并行口可以作為輸出口,直接與輸出外設(shè)連接,常用的輸出外設(shè)常用的輸出外設(shè)是發(fā)光二極管是發(fā)光二極管; mcs-51單片機(jī)內(nèi)部并行口也可以作為輸入口,直接與輸入外設(shè)連接,常用的輸入外設(shè)是開關(guān)常用的輸入外設(shè)是開關(guān)。例例1例例2例例1例例2第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用 1.2.1 直接做輸出口直接做輸出口p1.0p1.1p1.2p1.

18、3p1.4p1.5p1.6p1.789c51+5v電阻的作用是當(dāng)流過發(fā)光二極管的電流過大時(shí),它就會(huì)被燒壞。這個(gè)電阻可以限制流過發(fā)光二極管的電流,因此這個(gè)電阻叫作限流電阻。限流電阻阻值的計(jì)算方法如下: r=(5-1.75)/id ;id 是流過發(fā)光二極管的電流,一般從8ma到20ma,其值越大,發(fā)光二極管越亮,但不能太大,當(dāng)流過發(fā)光二極管的電流超過20ma時(shí),容易燒壞發(fā)光二極管。例例1:用:用89c51的的p1口驅(qū)動(dòng)口驅(qū)動(dòng)8個(gè)發(fā)光二極管,使個(gè)發(fā)光二極管,使8個(gè)發(fā)光二極管由左向右輪個(gè)發(fā)光二極管由左向右輪流點(diǎn)亮。試畫出連接圖,編制驅(qū)動(dòng)程序。流點(diǎn)亮。試畫出連接圖,編制驅(qū)動(dòng)程序。解:解:1、畫電路圖、畫

19、電路圖2、編程、編程思考思考 mov a,#0feh up: mov p1,a lcall delay rl a sjmp updelay1: mov r7,#2delay11: mov r6,#250 djnz r6,$ djnz r7,delay11 ret第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用例例1:用:用89c51的的p1口驅(qū)動(dòng)口驅(qū)動(dòng)8個(gè)發(fā)光二極管,使個(gè)發(fā)光二極管,使8個(gè)發(fā)光二極管由左向右輪個(gè)發(fā)光二極管由左向右輪流點(diǎn)亮。試畫出連接圖,編制驅(qū)動(dòng)程序。流點(diǎn)亮。試畫出連接圖,編制驅(qū)動(dòng)程序。思考:思考: 如果用如果用p0口驅(qū)動(dòng)發(fā)光二極管,則如何修改?口驅(qū)動(dòng)發(fā)光二極管,則如何修改? 如果使

20、如果使8個(gè)發(fā)光二極管由右向左輪流點(diǎn)亮,則如何修改?個(gè)發(fā)光二極管由右向左輪流點(diǎn)亮,則如何修改? 如果使如果使8個(gè)發(fā)光二極管閃亮,則如何修改?個(gè)發(fā)光二極管閃亮,則如何修改? 如果使如果使8個(gè)發(fā)光二極管由內(nèi)向外輪流點(diǎn)亮,則如何修改?個(gè)發(fā)光二極管由內(nèi)向外輪流點(diǎn)亮,則如何修改? 如果使如果使8個(gè)發(fā)光二極管由右向左依次點(diǎn)亮,則如何修改?個(gè)發(fā)光二極管由右向左依次點(diǎn)亮,則如何修改? 如果使延時(shí)時(shí)間延長(zhǎng)或縮短,會(huì)出現(xiàn)什么現(xiàn)象?如果使延時(shí)時(shí)間延長(zhǎng)或縮短,會(huì)出現(xiàn)什么現(xiàn)象?預(yù)習(xí)實(shí)驗(yàn)并思考:預(yù)習(xí)實(shí)驗(yàn)并思考:熟悉實(shí)驗(yàn)板上與發(fā)光二極管有關(guān)的電路。熟悉實(shí)驗(yàn)板上與發(fā)光二極管有關(guān)的電路。編制驅(qū)動(dòng)程序,實(shí)現(xiàn)如下操作:編制驅(qū)動(dòng)程序,

21、實(shí)現(xiàn)如下操作: 由左向右輪流點(diǎn)亮由左向右輪流點(diǎn)亮 由外向里輪流點(diǎn)亮由外向里輪流點(diǎn)亮 由右向左依次點(diǎn)亮由右向左依次點(diǎn)亮 閃亮閃亮p1.0p1.1p1.2p1.3p1.4p1.5p1.6p1.789c51+5v第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用 1.2.1 直接做輸出口直接做輸出口p1.0p1.1p1.2p1.3p1.4p1.5p1.6p1.789c51+5v例例2:用用8051的的p1口驅(qū)動(dòng)口驅(qū)動(dòng)1個(gè)數(shù)碼管,制成個(gè)數(shù)碼管,制成1位秒表位秒表.試畫出連接圖,編制驅(qū)動(dòng)程序。試畫出連接圖,編制驅(qū)動(dòng)程序。 解:解:1、畫電路圖、畫電路圖2、編程、編程思考思考abcdefgdpabcdefgdp

22、up0: mov r7,#10 mov r2,#00h mov dptr,#tab up: mov a,r2 movc a,a+dptr mov p1 , a lcall d1s inc r2 djnz r7,up sjmp up0tab: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,98h第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用例例2:用用8051的的p1口驅(qū)動(dòng)口驅(qū)動(dòng)1個(gè)數(shù)碼管,制成個(gè)數(shù)碼管,制成1位秒表位秒表.試畫出連接圖,編制驅(qū)試畫出連接圖,編制驅(qū)動(dòng)程序。動(dòng)程序。思考:思考: 如果用如果用p2口驅(qū)動(dòng)發(fā)光二極管,公共端接口驅(qū)動(dòng)發(fā)光二極管,公共

23、端接p3.0,則如何修改?,則如何修改? 如果制成如果制成0.1s的表,則如何修改?的表,則如何修改?p2.0p2.1p2.2p2.3p2.4p2.5p2.6p2.789c51p3.0abcdefgdp clr p3.0up0: mov r7,#10 mov r2,#00h mov dptr,#tab up: mov a,r2 movc a,a+dptr mov p2 , a lcall d1s inc r2 djnz r7,up sjmp up0tab: db 0c0h,0f9h,0a4h,0b0h db 99h,92h,82h,0f8h,80h,98h第2章 mcs-51單片機(jī)內(nèi)部并行口及

24、其應(yīng)用 1.2.2 直接做輸入口直接做輸入口p1.0p1.1p1.2p1.3p1.4p1.5p1.6p1.789c51+5v例例1:用:用89c51的的p1口傳送口傳送8個(gè)開關(guān)狀態(tài),用個(gè)開關(guān)狀態(tài),用p2口顯示口顯示8個(gè)開關(guān)個(gè)開關(guān)狀態(tài),若開關(guān)合則對(duì)應(yīng)燈亮,試畫出連接圖,編制驅(qū)動(dòng)程序。狀態(tài),若開關(guān)合則對(duì)應(yīng)燈亮,試畫出連接圖,編制驅(qū)動(dòng)程序。解:解:1、畫電路圖、畫電路圖mov p1,#0ffhup:mov a,p1 mov p2,a sjmp upp2.0p2.1p2.2p2.3p2.4p2.5p2.6p2.7+5v開關(guān)處的電阻稱為上拉電阻上拉電阻,它的作用是當(dāng)開關(guān)斷開時(shí),使p3口的電壓上拉為準(zhǔn)確的

25、高電平,避免懸空狀態(tài)。 2、編程、編程強(qiáng)調(diào):強(qiáng)調(diào):8051內(nèi)部并行口內(nèi)部并行口直接作為輸入口時(shí),直接作為輸入口時(shí),必須先將口鎖存器必須先將口鎖存器置置1。思考思考第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用p1.0p1.1p1.2p1.3p1.4p1.5p1.6p1.789c51mov p1,#0ffhup:mov a,p1 cpl a mov p2,a sjmp upp2.0p2.1p2.2p2.3p2.4p2.5p2.6p2.7+5v思考:如果將發(fā)光二極管反接,則如何修改程序?思考:如果將發(fā)光二極管反接,則如何修改程序? 第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用 1.2.2 直接做輸入

26、口直接做輸入口89c51+5v例例2:用:用8051的的p1口驅(qū)動(dòng)口驅(qū)動(dòng)8個(gè)發(fā)光二極管,個(gè)發(fā)光二極管,p3.4接一個(gè)開關(guān)接一個(gè)開關(guān)k1,當(dāng)開關(guān)按下,當(dāng)開關(guān)按下時(shí),時(shí),8個(gè)發(fā)光二極管由左向右輪流點(diǎn)亮;開關(guān)斷開時(shí),個(gè)發(fā)光二極管由左向右輪流點(diǎn)亮;開關(guān)斷開時(shí),8個(gè)發(fā)光二極管不亮。個(gè)發(fā)光二極管不亮。試畫出連接圖,編制驅(qū)動(dòng)程序。試畫出連接圖,編制驅(qū)動(dòng)程序。 解:解:1、畫電路圖、畫電路圖p1.0p1.1p1.2p1.3p1.4p1.5p1.6p1.72、編程、編程+5vp3.4 mov p3,#0ffh up0: mov a,#0feh up1: jb p3.4,up1 mov p1,a lcall de

27、lay1 rl a sjmp up1 delay1: mov r7,#2 delay11: mov r6,#250 djnz r6,$ djnz r7,delay11 ret 思考思考第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用例例2:用:用8051的的p1口驅(qū)動(dòng)口驅(qū)動(dòng)8個(gè)發(fā)光二極管,個(gè)發(fā)光二極管,p3.4接一個(gè)開關(guān)接一個(gè)開關(guān)k1,當(dāng)開關(guān)按下時(shí),當(dāng)開關(guān)按下時(shí),8個(gè)發(fā)光二極管由左向右輪流點(diǎn)亮;開關(guān)斷開時(shí),個(gè)發(fā)光二極管由左向右輪流點(diǎn)亮;開關(guān)斷開時(shí),8個(gè)發(fā)光二極管不亮。試畫出個(gè)發(fā)光二極管不亮。試畫出連接圖,編制驅(qū)動(dòng)程序。連接圖,編制驅(qū)動(dòng)程序。思考:思考: 在上述程序中,開關(guān)必須一直按著,燈才能輪流點(diǎn)

28、亮,當(dāng)開關(guān)斷開時(shí),停在上述程序中,開關(guān)必須一直按著,燈才能輪流點(diǎn)亮,當(dāng)開關(guān)斷開時(shí),停留在某個(gè)燈點(diǎn)亮狀態(tài)。如果當(dāng)開關(guān)斷開時(shí),燈全滅,如何修改程序?留在某個(gè)燈點(diǎn)亮狀態(tài)。如果當(dāng)開關(guān)斷開時(shí),燈全滅,如何修改程序? 如果開關(guān)作為啟動(dòng)開關(guān),開關(guān)按下并抬起時(shí),燈才開始輪流點(diǎn)亮,則如何如果開關(guān)作為啟動(dòng)開關(guān),開關(guān)按下并抬起時(shí),燈才開始輪流點(diǎn)亮,則如何編程?編程?預(yù)習(xí)實(shí)驗(yàn)預(yù)習(xí)實(shí)驗(yàn)熟悉實(shí)驗(yàn)板上與發(fā)光二極管和開關(guān)有關(guān)的電路。熟悉實(shí)驗(yàn)板上與發(fā)光二極管和開關(guān)有關(guān)的電路。編制驅(qū)動(dòng)程序,實(shí)現(xiàn)如下操作:編制驅(qū)動(dòng)程序,實(shí)現(xiàn)如下操作:1讀入讀入4個(gè)按鍵并使對(duì)應(yīng)的個(gè)按鍵并使對(duì)應(yīng)的led點(diǎn)亮。點(diǎn)亮。2k1按下時(shí),按下時(shí),led每每2個(gè)

29、為一組由右向左依次點(diǎn)亮。個(gè)為一組由右向左依次點(diǎn)亮。3k2按下并抬起時(shí),按下并抬起時(shí),led由內(nèi)向外輪流點(diǎn)亮。由內(nèi)向外輪流點(diǎn)亮。p3.2p3.3p3.4p3.5+5v第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用1.3 七段七段led顯示器接口顯示器接口 1.3.1 數(shù)碼管簡(jiǎn)介數(shù)碼管簡(jiǎn)介 1.3.2 單個(gè)七段單個(gè)七段led數(shù)碼管的接口數(shù)碼管的接口 1.3.3 多個(gè)七段多個(gè)七段led數(shù)碼管的接口數(shù)碼管的接口 在單片機(jī)控制系統(tǒng)中顯示器是必不可少的外設(shè)。常用的顯示器有發(fā)光二極管,數(shù)碼管和液晶顯示器。本節(jié)介紹數(shù)碼管接口。第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用1.3.1 數(shù)碼管簡(jiǎn)介數(shù)碼管簡(jiǎn)介 組成:組

30、成:led數(shù)碼管由7段或8段發(fā)光二極管組成,在平面上排成8字型。分類:分類:有共陰極和共陽(yáng)極兩種。comabcdefgdpcomabcdefgdp顯示原理:顯示原理:使某些段點(diǎn)亮而另一些段不亮就可以顯示0-9,a-f等字型。使某段點(diǎn)亮必須具備2個(gè)條件:共陰極管的公共端接地和共陽(yáng)極管的公共端接電源。共陰極管的公共端接地和共陽(yáng)極管的公共端接電源。共陰極管的控制端接電源和共陽(yáng)極管的控制端接地。共陰極管的控制端接電源和共陽(yáng)極管的控制端接地。共陽(yáng)極共陽(yáng)極 共陰極共陰極abcdefgdp第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用1.3.2 單個(gè)七段單個(gè)七段led數(shù)碼管的接口數(shù)碼管的接口 單個(gè)七段單個(gè)七段

31、led數(shù)碼管與單片機(jī)的連接方法有數(shù)碼管與單片機(jī)的連接方法有2種:種: 1、軟譯碼連接法軟譯碼連接法 2、硬譯碼連接法硬譯碼連接法abcdefgdp第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用軟譯碼連接法軟譯碼連接法在軟譯碼連接法下,在軟譯碼連接法下,led數(shù)碼管與單片機(jī)的連接圖數(shù)碼管與單片機(jī)的連接圖 :abcdefgdpp1.0p1.1p1.2p1.3p1.4p1.5p1.6p1.789c51+5vabcdefgdp1、欲使、欲使led數(shù)碼管顯示數(shù)碼管顯示2,試編程。,試編程。 mov p1,#01011011b注意:注意:字形與字形碼的區(qū)別,字形是欲顯字形與字形碼的區(qū)別,字形是欲顯示的數(shù)或字

32、符的形狀;字形碼是為了在數(shù)示的數(shù)或字符的形狀;字形碼是為了在數(shù)碼管上顯示數(shù)或字符,碼管上顯示數(shù)或字符,cpucpu應(yīng)該送出的數(shù)據(jù)。應(yīng)該送出的數(shù)據(jù)。字形轉(zhuǎn)換成字形碼的字形轉(zhuǎn)換成字形碼的2 2種方法:軟譯碼法和種方法:軟譯碼法和硬譯碼法。硬譯碼法。2 2、編程讓編程讓led數(shù)碼管顯示數(shù)碼管顯示30h單元的內(nèi)容單元的內(nèi)容(30h單元的內(nèi)容在單元的內(nèi)容在09之間)。之間)。 up: mov a,30h mov dptr,#tab movc a,a+dptr mov p1,a sjmp uptab : db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,98h共陽(yáng)極共

33、陽(yáng)極led第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用硬譯碼連接法硬譯碼連接法在硬譯碼連接法下,在硬譯碼連接法下,led數(shù)碼管與單片機(jī)的連接圖數(shù)碼管與單片機(jī)的連接圖 :abcdefgdpp1.0p1.1p1.2p1.3abcd89c51利用利用bcd碼碼七段碼譯碼器實(shí)七段碼譯碼器實(shí)現(xiàn)字形到字形碼的轉(zhuǎn)換。常用的現(xiàn)字形到字形碼的轉(zhuǎn)換。常用的bcd碼碼七段碼譯碼器有七段碼譯碼器有74ls48和和74ls47。 編程讓編程讓led數(shù)碼管顯示數(shù)碼管顯示30h單元的內(nèi)容(單元的內(nèi)容(30h單元的內(nèi)容在單元的內(nèi)容在09之間)。之間)。 mov p1,30hltrborbiabcdefgp1.4p1.5p1.

34、6p1.7comabcdefg74ls48共陰極共陰極led+5v注意:在硬譯碼連接法下,直接送欲顯示的數(shù)即可,字形到字形碼的轉(zhuǎn)換注意:在硬譯碼連接法下,直接送欲顯示的數(shù)即可,字形到字形碼的轉(zhuǎn)換是用硬件實(shí)現(xiàn)的。是用硬件實(shí)現(xiàn)的。思考:如果思考:如果7448的的abcd接到接到8051的的p14p17,則如何修改程序?,則如何修改程序?答案答案第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用1.3.3 多個(gè)七段多個(gè)七段led數(shù)碼管的接口數(shù)碼管的接口 多個(gè)數(shù)碼管與多個(gè)數(shù)碼管與cpu的連接方法有的連接方法有4種:種:1、靜態(tài)軟譯碼連接法靜態(tài)軟譯碼連接法2、靜態(tài)硬譯碼連接法靜態(tài)硬譯碼連接法3、動(dòng)態(tài)硬譯碼連接

35、法動(dòng)態(tài)硬譯碼連接法4、動(dòng)態(tài)軟譯碼連接法動(dòng)態(tài)軟譯碼連接法abcdefgdp第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用靜態(tài)軟譯碼連接法靜態(tài)軟譯碼連接法在靜態(tài)軟譯碼連接法下,在靜態(tài)軟譯碼連接法下,4個(gè)個(gè)led數(shù)碼管與單片機(jī)的連接圖數(shù)碼管與單片機(jī)的連接圖 :abcdefgdpdpp0.0p0.1p0.2p0.389c51p0.4p0.5p0.6p0.7comabcdefg共陰極共陰極leddpp2.0p2.1p2.2p2.3p2.4p2.5p2.6p2.7comabcdefgdpp1.0p1.1p1.2p1.3p1.4p1.5p1.6p1.7comabcdefgdpp3.0p3.1p3.2p3.3p

36、3.4p3.5p3.6p3.7comabcdefg1、編程在4個(gè)七段led數(shù)碼管上顯示1234。 mov p0,#06hmov p1,#5bhmov p2,#4fhmov p3,#66hsjmp $2、編程在4個(gè)七段led數(shù)碼管上顯示30h,31h,32h,33h單元中存放的1位bcd碼的內(nèi)容 。 mov dptr,#tab up0: mov a,30h movc a,a+dptr mov p0,a mov a,31h movc a,a+dptr mov p1,a mov a,32h movc a,a+dptr mov p2,a mov a,33h movc a,a+dptr mov p3,a

37、 sjmp up0tab: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh思考:編程在思考:編程在4個(gè)七段個(gè)七段led數(shù)碼管上顯示數(shù)碼管上顯示30h,31h單元中單元中的內(nèi)容。(的內(nèi)容。(30h,31h單元中分別存有單元中分別存有2位位bcd碼)。碼)。答案答案第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用靜態(tài)硬譯碼連接法靜態(tài)硬譯碼連接法在靜態(tài)硬譯碼連接法下,在靜態(tài)硬譯碼連接法下,4個(gè)個(gè)led數(shù)碼管與單片機(jī)的連接圖數(shù)碼管與單片機(jī)的連接圖 :abcdefgdpp2.0p2.1p2.2p2.389c51dpp2.4p2.5p2.6p2.7comabcdefgdp

38、p1.0p1.1p1.2p1.3comabcdefgp1.4p1.5p1.6p1.7abcdltrborbiabcdefg74ls47+5vdpcomabcdefgabcdltrborbiabcdefg74ls47+5vabcdltrborbiabcdefg74ls47+5vdpcomabcdefgabcdltrborbiabcdefg74ls47+5v編程在編程在4個(gè)七段個(gè)七段led數(shù)碼管上顯示數(shù)碼管上顯示30h,31h單元中的內(nèi)容。(單元中的內(nèi)容。(30h,31h單元中分別存有單元中分別存有2位位bcd碼)。碼)。 思考:編程在思考:編程在4個(gè)七段個(gè)七段led數(shù)碼管上顯示數(shù)碼管上顯示30h

39、,31h,32h,33h單元中存放的單元中存放的1位位bcd碼的內(nèi)容碼的內(nèi)容 。 +5v+5v+5v+5v程程 序序 答答 案案 第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用動(dòng)態(tài)硬譯碼連接法動(dòng)態(tài)硬譯碼連接法在動(dòng)態(tài)硬譯碼連接法下,在動(dòng)態(tài)硬譯碼連接法下,4個(gè)個(gè)led數(shù)碼管與單片機(jī)的連接圖數(shù)碼管與單片機(jī)的連接圖 :abcdefgdpp2.0p2.1p2.2p2.389c51p2.4p2.5p2.6p2.7comab c d e fgabcdltrborbiabcdefg74ls48+5vcomab c d e fgcomab c d e fgcomab c d e fg 例:例: 編程在編程在4個(gè)七

40、段個(gè)七段led數(shù)碼管上顯示數(shù)碼管上顯示1234。 在動(dòng)態(tài)連接法下,數(shù)碼管公共端均受控。驅(qū)動(dòng)程序的編制充分利用了人眼的視覺滯留效應(yīng),循環(huán)掃描各數(shù)在動(dòng)態(tài)連接法下,數(shù)碼管公共端均受控。驅(qū)動(dòng)程序的編制充分利用了人眼的視覺滯留效應(yīng),循環(huán)掃描各數(shù)碼管,使各數(shù)碼管不是連續(xù)顯示,但給人的視覺印象是連續(xù)地在顯示。每個(gè)數(shù)碼管的顯示時(shí)間不得低于碼管,使各數(shù)碼管不是連續(xù)顯示,但給人的視覺印象是連續(xù)地在顯示。每個(gè)數(shù)碼管的顯示時(shí)間不得低于1ms,不,不亮的時(shí)間不能超過亮的時(shí)間不能超過20 ms。 利用人眼的視覺滯留現(xiàn)象,實(shí)現(xiàn)讓利用人眼的視覺滯留現(xiàn)象,實(shí)現(xiàn)讓4個(gè)七段個(gè)七段led數(shù)碼管上不同時(shí)顯示數(shù)碼管上不同時(shí)顯示1234,

41、但人眼看到的效果,但人眼看到的效果卻是同時(shí)顯示卻是同時(shí)顯示1234。 1234思考:編程在思考:編程在4個(gè)七段個(gè)七段led數(shù)碼管上顯示數(shù)碼管上顯示30h,31h,32h,33h單元中的內(nèi)容。單元中的內(nèi)容。 程程 序序 答答 案案 第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用動(dòng)態(tài)軟譯碼連接法動(dòng)態(tài)軟譯碼連接法在動(dòng)態(tài)軟譯碼連接法下,在動(dòng)態(tài)軟譯碼連接法下,4個(gè)個(gè)led數(shù)碼管與單片機(jī)的連接圖數(shù)碼管與單片機(jī)的連接圖 :abcdefgdpp2.0p2.1p2.2p2.389c51p3.0p3.1p3.2p3.3comab c d e fg驅(qū)驅(qū)動(dòng)動(dòng)器器comab c d e fgcomab c d e fgc

42、omab c d e fg1234p2.4p2.5p2.6p2.7例:例: 編程在編程在4個(gè)七段個(gè)七段led數(shù)碼管上顯示數(shù)碼管上顯示1234。例:編程在例:編程在4個(gè)七段個(gè)七段led數(shù)碼管上顯示數(shù)碼管上顯示30h,31h,32h,33h單元中的內(nèi)容。單元中的內(nèi)容。程程 序序 程程 序序 第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用1.4 鍵盤接口鍵盤接口 1.4.1 鍵盤類型鍵盤類型 1.4.2 非編碼鍵盤與單片機(jī)的接口非編碼鍵盤與單片機(jī)的接口 1.4.3 矩陣非編碼鍵盤與單片機(jī)的接口矩陣非編碼鍵盤與單片機(jī)的接口 鍵盤是單片機(jī)控制系統(tǒng)最常用、最簡(jiǎn)單的輸入設(shè)備。用戶可以通過鍵盤輸入數(shù)據(jù)或命令,實(shí)

43、現(xiàn)簡(jiǎn)單的人機(jī)通信。 第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用1.4.1 鍵盤類型鍵盤類型 單片機(jī)控制系統(tǒng)所用的鍵盤有編碼鍵盤和非編碼鍵盤兩種。單片機(jī)控制系統(tǒng)所用的鍵盤有編碼鍵盤和非編碼鍵盤兩種。1、編碼鍵盤除了鍵開關(guān)外,還有專門的硬件電路,用于識(shí)別閉合鍵并產(chǎn)生、編碼鍵盤除了鍵開關(guān)外,還有專門的硬件電路,用于識(shí)別閉合鍵并產(chǎn)生鍵代碼。不僅如此,編碼鍵盤一般還有去鍵抖動(dòng)電路和防串鍵保護(hù)電路等。鍵代碼。不僅如此,編碼鍵盤一般還有去鍵抖動(dòng)電路和防串鍵保護(hù)電路等。這種鍵盤的優(yōu)點(diǎn)是所需軟件簡(jiǎn)短,但硬件電路較復(fù)雜,價(jià)格較昂貴。目前在這種鍵盤的優(yōu)點(diǎn)是所需軟件簡(jiǎn)短,但硬件電路較復(fù)雜,價(jià)格較昂貴。目前在單片機(jī)控

44、制系統(tǒng)中使用不多。單片機(jī)控制系統(tǒng)中使用不多。2、非編碼鍵盤僅由鍵開關(guān)組成,其它工作如鍵識(shí)別、鍵代碼的產(chǎn)生、去抖、非編碼鍵盤僅由鍵開關(guān)組成,其它工作如鍵識(shí)別、鍵代碼的產(chǎn)生、去抖動(dòng)等,不是由硬件完成而是由軟件完成的。為了簡(jiǎn)化硬件電路,降低成本,動(dòng)等,不是由硬件完成而是由軟件完成的。為了簡(jiǎn)化硬件電路,降低成本,目前單片機(jī)控制系統(tǒng)中大多數(shù)采用非編碼鍵盤。目前單片機(jī)控制系統(tǒng)中大多數(shù)采用非編碼鍵盤。 非編碼鍵盤的鍵開關(guān)可以排列成非編碼鍵盤的鍵開關(guān)可以排列成線性形式線性形式或或矩陣形式矩陣形式,因此非編碼鍵盤,因此非編碼鍵盤有線性非編碼鍵盤和矩陣非編碼鍵盤兩種。有線性非編碼鍵盤和矩陣非編碼鍵盤兩種。第2章

45、mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用1.4.1 鍵盤類型鍵盤類型 單片機(jī)控制系統(tǒng)所用的鍵盤有編碼鍵盤和非編碼鍵盤兩種。單片機(jī)控制系統(tǒng)所用的鍵盤有編碼鍵盤和非編碼鍵盤兩種。1、編碼鍵盤除了鍵開關(guān)外,還有專門的硬件電路,用于識(shí)別閉合鍵并產(chǎn)生、編碼鍵盤除了鍵開關(guān)外,還有專門的硬件電路,用于識(shí)別閉合鍵并產(chǎn)生鍵代碼。不僅如此,編碼鍵盤一般還有去鍵抖動(dòng)電路和防串鍵保護(hù)電路等。鍵代碼。不僅如此,編碼鍵盤一般還有去鍵抖動(dòng)電路和防串鍵保護(hù)電路等。這種鍵盤的優(yōu)點(diǎn)是所需軟件簡(jiǎn)短,但硬件電路較復(fù)雜,價(jià)格較昂貴。目前在這種鍵盤的優(yōu)點(diǎn)是所需軟件簡(jiǎn)短,但硬件電路較復(fù)雜,價(jià)格較昂貴。目前在單片機(jī)控制系統(tǒng)中使用不多。單片機(jī)控制

46、系統(tǒng)中使用不多。2、非編碼鍵盤僅由鍵開關(guān)組成,其它工作如鍵識(shí)別、鍵代碼的產(chǎn)生、去抖、非編碼鍵盤僅由鍵開關(guān)組成,其它工作如鍵識(shí)別、鍵代碼的產(chǎn)生、去抖動(dòng)等,不是由硬件完成而是由軟件完成的。為了簡(jiǎn)化硬件電路,降低成本,動(dòng)等,不是由硬件完成而是由軟件完成的。為了簡(jiǎn)化硬件電路,降低成本,目前單片機(jī)控制系統(tǒng)中大多數(shù)采用非編碼鍵盤。目前單片機(jī)控制系統(tǒng)中大多數(shù)采用非編碼鍵盤。 非編碼鍵盤的鍵開關(guān)可以排列成非編碼鍵盤的鍵開關(guān)可以排列成線性形式線性形式或或矩陣形式矩陣形式,因此非編碼鍵盤,因此非編碼鍵盤有線性非編碼鍵盤和矩陣非編碼鍵盤兩種。有線性非編碼鍵盤和矩陣非編碼鍵盤兩種。第2章 mcs-51單片機(jī)內(nèi)部并行口

47、及其應(yīng)用1.4.1 鍵盤類型鍵盤類型 單片機(jī)控制系統(tǒng)所用的鍵盤有編碼鍵盤和非編碼鍵盤兩種。單片機(jī)控制系統(tǒng)所用的鍵盤有編碼鍵盤和非編碼鍵盤兩種。1、編碼鍵盤除了鍵開關(guān)外,還有專門的硬件電路,用于識(shí)別閉合鍵并產(chǎn)生、編碼鍵盤除了鍵開關(guān)外,還有專門的硬件電路,用于識(shí)別閉合鍵并產(chǎn)生鍵代碼。不僅如此,編碼鍵盤一般還有去鍵抖動(dòng)電路和防串鍵保護(hù)電路等。鍵代碼。不僅如此,編碼鍵盤一般還有去鍵抖動(dòng)電路和防串鍵保護(hù)電路等。這種鍵盤的優(yōu)點(diǎn)是所需軟件簡(jiǎn)短,但硬件電路較復(fù)雜,價(jià)格較昂貴。目前在這種鍵盤的優(yōu)點(diǎn)是所需軟件簡(jiǎn)短,但硬件電路較復(fù)雜,價(jià)格較昂貴。目前在單片機(jī)控制系統(tǒng)中使用不多。單片機(jī)控制系統(tǒng)中使用不多。2、非編碼鍵

48、盤僅由鍵開關(guān)組成,其它工作如鍵識(shí)別、鍵代碼的產(chǎn)生、去抖、非編碼鍵盤僅由鍵開關(guān)組成,其它工作如鍵識(shí)別、鍵代碼的產(chǎn)生、去抖動(dòng)等,不是由硬件完成而是由軟件完成的。為了簡(jiǎn)化硬件電路,降低成本,動(dòng)等,不是由硬件完成而是由軟件完成的。為了簡(jiǎn)化硬件電路,降低成本,目前單片機(jī)控制系統(tǒng)中大多數(shù)采用非編碼鍵盤。目前單片機(jī)控制系統(tǒng)中大多數(shù)采用非編碼鍵盤。 非編碼鍵盤的鍵開關(guān)可以排列成非編碼鍵盤的鍵開關(guān)可以排列成線性形式線性形式或或矩陣形式矩陣形式,因此非編碼鍵盤,因此非編碼鍵盤有線性非編碼鍵盤和矩陣非編碼鍵盤兩種。有線性非編碼鍵盤和矩陣非編碼鍵盤兩種。第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用1.4.2 非編碼鍵

49、盤與單片機(jī)的接口非編碼鍵盤與單片機(jī)的接口 線性非編碼鍵盤的鍵開關(guān)排成一行或一列的形式,它與單片機(jī)的接口電路如圖所示:線性非編碼鍵盤的鍵開關(guān)排成一行或一列的形式,它與單片機(jī)的接口電路如圖所示:k1k2k3k4p1.1p1.0p1.2p1.389c51+5v線性非編碼鍵盤的工作原理:當(dāng)鍵未被按下時(shí),與此鍵相連的i/o線獲得高電平;當(dāng)鍵被按下時(shí),與此鍵相連的i/o線獲得低電平,單片機(jī)只要讀取i/o口狀態(tài),就可以獲取按鍵信息,識(shí)別有無(wú)鍵按下和哪個(gè)鍵被按下。 鍵處理程序如下:鍵處理程序如下: mov p1,#0ffh up1: mov a,p1 ;讀;讀i/o口狀態(tài)口狀態(tài) anl a,#0fh ;屏蔽無(wú)

50、用位;屏蔽無(wú)用位 cjne a,#0fh,next1 ;有閉合鍵?;有閉合鍵? sjmp up1 next1: lcall d10ms ;延時(shí);延時(shí)10ms去抖動(dòng)去抖動(dòng) mov a,p1 ;再讀;再讀i/o口狀態(tài)口狀態(tài) anl a,#0fh cjne a,#0fh,next2 ;有閉合鍵?;有閉合鍵? sjmp up1 next2:jb p1.0,next3 ;k1按下?按下? lcall k1 ;k1鍵處理程序鍵處理程序 next3: jb p1.1,next4 ;k2按下?按下? lcall k2 ;k2鍵處理程序鍵處理程序 next4: jb p1.2,next5 ;k3按下?按下? l

51、call k3 ;k3鍵處理程序鍵處理程序 next5: jb p1.3,up1 ;k4按下?按下? lcall k4 ;k4鍵處理程序鍵處理程序 ljmp up1例例第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用例例 某單片機(jī)控制系統(tǒng),某單片機(jī)控制系統(tǒng),p1口接有口接有8發(fā)光二極管,發(fā)光二極管,p3.0、p3.1、p3.2、p3.3接有接有4個(gè)開關(guān)個(gè)開關(guān)k1、k2、k3、k4,試畫出接口電路,并編程使得當(dāng),試畫出接口電路,并編程使得當(dāng)k1按下時(shí)按下時(shí)8個(gè)發(fā)光二極管全亮;當(dāng)個(gè)發(fā)光二極管全亮;當(dāng)k2按下按下時(shí)時(shí)8個(gè)發(fā)光二極管閃亮;當(dāng)個(gè)發(fā)光二極管閃亮;當(dāng)k3按下時(shí)按下時(shí)8個(gè)發(fā)光二極管由左向右點(diǎn)亮;當(dāng)

52、個(gè)發(fā)光二極管由左向右點(diǎn)亮;當(dāng)k4按下時(shí)按下時(shí)8個(gè)發(fā)光個(gè)發(fā)光二極管全滅。二極管全滅。k1k2k3k4p3.1p3.0p3.2p3.389c51+5vp1.0p1.1p1.2p1.3p1.4p1.5p1.6p1.7程程 序序第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用 mov b,#01h mov p3,#0ffh mov p1,#00h up1: mov a,p3 anl a,#0fh cjne a,#0fh,next1 sjmp up1 next1: lcall d10ms mov a,p3 anl a,#0fh cjne a,#0fh,next2 sjmp up1next2:jb p3.0,

53、next3 lcall k1 next3: jb p3.1,next4 lcall k2 next4: jb p3.2,next5 lcall k3 next5: jb p3.3,up1 lcall k4 ljmp up1程程 序序子程序子程序k1: mov p1,#0ffh retk2: mov p1,#0ffh lcall d2s mov p1,#00h lcall d2s retk3: mov p1,b lcall d2s mov a,b rl a mov b,a retk4: mov p1,#00h ret第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用abcdefgdpp1.0p1.1p

54、1.2p1.3abcd89c51ltrborbiabcdefgp1.4p1.5p1.6p1.7comabcdefg74ls48共陰極共陰極led+5vup:mov a,30h swap a mov p1,a sjmp up思考:如果思考:如果7448的的abcd接到接到8051的的p14p17,則如何修改程序?,則如何修改程序?第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用abcdefgdpdpp0.0p0.1p0.2p0.389c51p0.4p0.5p0.6p0.7comabcdefg共陰極共陰極leddpp2.0p2.1p2.2p2.3p2.4p2.5p2.6p2.7comabcdefgdp

55、p1.0p1.1p1.2p1.3p1.4p1.5p1.6p1.7comabcdefgdpp3.0p3.1p3.2p3.3p3.4p3.5p3.6p3.7comabcdefg mov dptr,#tab up0: mov a,30h anl a,#0fh movc a,a+dptr mov p0,a mov a,30h swap a anl a,#0fh movc a,a+dptr mov p1,a mov a,31h anl a,#0fh movc a,a+dptr mov p2,a mov a,31h swap a anl a,#0fh movc a,a+dptr mov p3,a sjmp

56、 up0tab: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh思考:編程在思考:編程在4個(gè)七段個(gè)七段led數(shù)碼管上顯示數(shù)碼管上顯示30h,31h單元中的內(nèi)容。單元中的內(nèi)容。(30h,31h單元中分別存有單元中分別存有2位位bcd碼)。碼)。第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用abcdefgdpp2.0p2.1p2.2p2.389c51dpp2.4p2.5p2.6p2.7comabcdefgdpp1.0p1.1p1.2p1.3comabcdefgp1.4p1.5p1.6p1.7abcdltrborbiabcdefg74ls47+5vdpcomabc

57、defgabcdltrborbiabcdefg74ls47+5vabcdltrborbiabcdefg74ls47+5vdpcomabcdefgabcdltrborbiabcdefg74ls47+5v編程在編程在4個(gè)七段個(gè)七段led數(shù)碼管上顯示數(shù)碼管上顯示30h,31h單元中的內(nèi)容。單元中的內(nèi)容。(30h30h,31h31h單元中分別存有單元中分別存有2 2位位bcdbcd碼)。碼)。 up: mov p1,30h mov p2,31h sjmp up +5v+5v+5v+5v第2章 mcs-51單片機(jī)內(nèi)部并行口及其應(yīng)用abcdefgdpp2.0p2.1p2.2p2.389c51dpp2.4p2.5p2.6p2.7comabcdefgdpp1.0p1.1p1.2p1.3comabcdefgp1.4p1.5p1.6p1.7abcdltrborbiabcdefg74ls47+5vdpcomabcdefgabcdltrborbiabcdefg74ls47+5vabcdltrborbiabcdefg74ls47+5vdpcomabcdefgabcdltrborbiabcdefg74ls47+5v思考:編程在思考:編程在4個(gè)七段個(gè)七段led數(shù)碼管上顯示數(shù)碼管上顯示30h,31h,32h,33h單元中存單元中存放的放的1

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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)論