第5章 輸入、輸出接口_第1頁
第5章 輸入、輸出接口_第2頁
第5章 輸入、輸出接口_第3頁
第5章 輸入、輸出接口_第4頁
第5章 輸入、輸出接口_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1關(guān)關(guān) 新新單單 片片 機(jī)機(jī) 原原 理理2第第5章章 輸入、輸出接口輸入、輸出接口5.1 PO5.1 POP3P3端口的功能和內(nèi)部結(jié)構(gòu)端口的功能和內(nèi)部結(jié)構(gòu)5.2 PO5.2 POP3P3端口的端口的3 5 5.1.1 .1.1 端口功能端口功能 MCS-51單片機(jī)有單片機(jī)有P0、P1、P2、P3四個(gè)四個(gè)8位位雙向雙向I/O口,每個(gè)端口可以按字節(jié)輸入或輸出,也口,每個(gè)端口可以按字節(jié)輸入或輸出,也可以按位進(jìn)行輸入或輸出,四個(gè)口共可以按位進(jìn)行輸入或輸出,四個(gè)口共32根口線,根口線,用作位控制十分方便。用作位控制十分方便。P0口為三態(tài)雙向口,能帶口為三態(tài)雙向口,能帶8個(gè)個(gè)TTL電路;電路;P1、P2、

2、P3口為準(zhǔn)雙向口,負(fù)載能口為準(zhǔn)雙向口,負(fù)載能力為力為4個(gè)個(gè)TTL電路。電路。 大多數(shù)口線都有雙重功能,具體介紹如下大多數(shù)口線都有雙重功能,具體介紹如下:51 P0P3端口的功能和內(nèi)部結(jié)構(gòu)端口的功能和內(nèi)部結(jié)構(gòu)4lPOPO口口1.1.作為輸入作為輸入/ /輸出口。輸出口。 2.2.作為地址作為地址/ /數(shù)據(jù)總線數(shù)據(jù)總線 , ,接外圍芯片時(shí)接外圍芯片時(shí)POPO口分口分時(shí)輸出低時(shí)輸出低 8 8 位地址與數(shù)據(jù)信號(hào)。位地址與數(shù)據(jù)信號(hào)。lP P1 1口口1.1.作為作為輸入輸入/ /輸出口。輸出口。 2. 2.在增強(qiáng)型在增強(qiáng)型(52(52系列系列) )和和ISPISP型型( (在系統(tǒng)編程型在系統(tǒng)編程型) )

3、中有如下功能中有如下功能: : P1.0 T2 P1.0 T2引腳引腳, ,定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器2 2外部計(jì)數(shù)脈沖輸入外部計(jì)數(shù)脈沖輸入 P1.1 T2EXP1.1 T2EX引腳引腳, ,定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器2 2觸發(fā)和方向控制觸發(fā)和方向控制 P1.5 P1.5 MOSIMOSI引腳引腳, ,在系統(tǒng)編程數(shù)據(jù)輸入在系統(tǒng)編程數(shù)據(jù)輸入 P1.6 P1.6 MISOMISO引腳引腳, ,在系統(tǒng)編程數(shù)據(jù)輸出在系統(tǒng)編程數(shù)據(jù)輸出 P1.7 P1.7 SCKSCK引腳引腳, ,在系統(tǒng)編程時(shí)鐘輸入在系統(tǒng)編程時(shí)鐘輸入5lP2P2口口1.1.作為輸入作為輸入/ /輸出口。輸出口。 2.2.作為高作為高8

4、8位地址總線。位地址總線。 lP3P3口口P3P3口為雙功能口為雙功能 1.1.作第一功能使用時(shí),其功能為輸入作第一功能使用時(shí),其功能為輸入/ /輸出口。輸出口。 2.2.作第二功能使用時(shí),每一位功能定義如下表作第二功能使用時(shí),每一位功能定義如下表所示所示: : 6RD (外部數(shù)據(jù)存儲(chǔ)器讀選通信號(hào)入)外部數(shù)據(jù)存儲(chǔ)器讀選通信號(hào)入) P3.7 P3.7 WR (外部數(shù)據(jù)存儲(chǔ)器寫選通信號(hào)入)外部數(shù)據(jù)存儲(chǔ)器寫選通信號(hào)入)P3.6 P3.6 T1 T1 (定時(shí)器定時(shí)器1 1外部計(jì)數(shù)脈沖輸入)外部計(jì)數(shù)脈沖輸入)P3.5 P3.5 T0 T0 (定時(shí)器定時(shí)器0 0外部計(jì)數(shù)脈沖輸入)外部計(jì)數(shù)脈沖輸入)P3.4

5、 P3.4 P3.3 P3.3 P3.2 P3.2 TXD TXD (串行輸出線)串行輸出線)P3.1 P3.1 RXD RXD (串行輸入線)串行輸入線) P3.0 P3.0 第第 二二 功功 能能 端口引腳端口引腳 INT0 INT0(外部中斷外部中斷0 0輸入線)輸入線)INT1INT1 (外部中斷外部中斷1 1輸入線)輸入線) 7 四個(gè)端口的一位結(jié)構(gòu)見圖四個(gè)端口的一位結(jié)構(gòu)見圖5.15.1,同一個(gè)端口的各位具,同一個(gè)端口的各位具有相同的結(jié)構(gòu)。由圖可見,四個(gè)端口的有相同的結(jié)構(gòu)。由圖可見,四個(gè)端口的 結(jié)構(gòu)有相同之結(jié)構(gòu)有相同之處:處: 依據(jù)每個(gè)端口的不同功能,內(nèi)部結(jié)構(gòu)亦有不同之處,以依據(jù)每個(gè)端

6、口的不同功能,內(nèi)部結(jié)構(gòu)亦有不同之處,以下重點(diǎn)介紹不同之處。下重點(diǎn)介紹不同之處。 都有兩個(gè)輸入緩沖器,分別受內(nèi)部讀鎖存器和讀引腳控制都有兩個(gè)輸入緩沖器,分別受內(nèi)部讀鎖存器和讀引腳控制信號(hào)的控制。信號(hào)的控制。 都有鎖存器都有鎖存器( (即專用寄存器即專用寄存器POPOP3)P3) 都是場效應(yīng)管輸出驅(qū)動(dòng)。都是場效應(yīng)管輸出驅(qū)動(dòng)。5.1.2 端口的內(nèi)部結(jié)構(gòu)端口的內(nèi)部結(jié)構(gòu)81.P0口:口:0口的結(jié)構(gòu)見下圖口的結(jié)構(gòu)見下圖(a)P0口位結(jié)構(gòu)11讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制&T1T2VccP0.x引腳MUX2DQCLP0.x鎖存器QP0口的輸出驅(qū)動(dòng)電路由上拉場效應(yīng)管口的輸出驅(qū)動(dòng)電路由上拉

7、場效應(yīng)管T1和驅(qū)動(dòng)場效應(yīng)和驅(qū)動(dòng)場效應(yīng)T2組成,控制電路組成,控制電路包括一個(gè)與門,包括一個(gè)與門, 一個(gè)非門和一個(gè)模擬開關(guān)一個(gè)非門和一個(gè)模擬開關(guān)MUX。9 1.1.POPO作作I/OI/O口使用口使用 CPU CPU發(fā)控制電平發(fā)控制電平“0”“0”封鎖與門,使封鎖與門,使T1T1管截止,管截止,同時(shí)使同時(shí)使MUXMUX開關(guān)同下面的觸點(diǎn)接通,使鎖存器的開關(guān)同下面的觸點(diǎn)接通,使鎖存器的 Q Q 與與T2T2柵極接通。柵極接通。 當(dāng)當(dāng)CPUCPU向端口輸出數(shù)據(jù)時(shí),寫脈沖加在鎖存向端口輸出數(shù)據(jù)時(shí),寫脈沖加在鎖存器的器的 CLCL上、內(nèi)部總線的數(shù)據(jù)經(jīng)反相,再經(jīng)上、內(nèi)部總線的數(shù)據(jù)經(jīng)反相,再經(jīng)T2T2管管反相

8、,反相,POPO口的這一位引腳上出現(xiàn)正好和內(nèi)部總線口的這一位引腳上出現(xiàn)正好和內(nèi)部總線同相的數(shù)據(jù)同相的數(shù)據(jù)。由于輸出驅(qū)動(dòng)級(jí)是漏極開路電路由于輸出驅(qū)動(dòng)級(jí)是漏極開路電路( (因因T1T1截止截止) ),在作,在作I/OI/O口使用時(shí)應(yīng)外接口使用時(shí)應(yīng)外接1010K K的上拉的上拉電阻。電阻。 10l當(dāng)輸入操作時(shí),端口中兩個(gè)三態(tài)緩沖器用于讀當(dāng)輸入操作時(shí),端口中兩個(gè)三態(tài)緩沖器用于讀操作。緩沖器操作。緩沖器2 2用于讀端口引腳的數(shù)據(jù)。當(dāng)執(zhí)用于讀端口引腳的數(shù)據(jù)。當(dāng)執(zhí)行端口讀指令時(shí),讀引腳脈沖打開三態(tài)緩沖器行端口讀指令時(shí),讀引腳脈沖打開三態(tài)緩沖器2 2,于是端口引腳數(shù)據(jù)經(jīng)三態(tài)緩沖器,于是端口引腳數(shù)據(jù)經(jīng)三態(tài)緩沖器

9、2 2送到內(nèi)部送到內(nèi)部總線。緩沖器總線。緩沖器1 1用于讀取鎖存器用于讀取鎖存器Q Q端的數(shù)據(jù)。當(dāng)端的數(shù)據(jù)。當(dāng)執(zhí)行執(zhí)行“讀讀- -修改修改- -寫寫”指令指令( (即讀端口信息,在即讀端口信息,在片內(nèi)加以運(yùn)算修改后,再輸出到該端口的某些片內(nèi)加以運(yùn)算修改后,再輸出到該端口的某些指令如:指令如:ANL POANL PO,A A指令指令) ),即是讀的鎖存器,即是讀的鎖存器Q Q的數(shù)據(jù)。的數(shù)據(jù)。11 這是為了避免錯(cuò)讀引腳的電平信號(hào),例如用一根口線去這是為了避免錯(cuò)讀引腳的電平信號(hào),例如用一根口線去驅(qū)動(dòng)一個(gè)晶體管基極,當(dāng)向口線寫驅(qū)動(dòng)一個(gè)晶體管基極,當(dāng)向口線寫“1”“1”,晶體管導(dǎo)通,導(dǎo),晶體管導(dǎo)通,導(dǎo)通

10、的通的PNPN結(jié)會(huì)把引腳的電平拉低,如讀引腳數(shù)據(jù),則會(huì)讀為結(jié)會(huì)把引腳的電平拉低,如讀引腳數(shù)據(jù),則會(huì)讀為0 0 ,而實(shí)際上原口線的數(shù)據(jù)為,而實(shí)際上原口線的數(shù)據(jù)為1 1。因而采用讀鎖存器。因而采用讀鎖存器Q Q的值的值而避免了錯(cuò)讀。究竟是讀引腳還是讀而避免了錯(cuò)讀。究竟是讀引腳還是讀 鎖存器,鎖存器,CPUCPU內(nèi)部會(huì)內(nèi)部會(huì)自行判斷是發(fā)讀引腳脈沖還是讀鎖存器脈沖,讀者不必在自行判斷是發(fā)讀引腳脈沖還是讀鎖存器脈沖,讀者不必在意。意。 應(yīng)注意應(yīng)注意 :當(dāng)作輸入端口使用時(shí),應(yīng)先對(duì)該口寫入:當(dāng)作輸入端口使用時(shí),應(yīng)先對(duì)該口寫入“1”“1”使場使場效應(yīng)管效應(yīng)管T2T2截止,再進(jìn)行讀入操作,以防場效應(yīng)管處于導(dǎo)通截

11、止,再進(jìn)行讀入操作,以防場效應(yīng)管處于導(dǎo)通狀態(tài),使引腳箝位到零,而引起誤讀。狀態(tài),使引腳箝位到零,而引起誤讀。 12l當(dāng)當(dāng)PO口作地址口作地址/數(shù)據(jù)線使用時(shí),數(shù)據(jù)線使用時(shí),CPU及內(nèi)部控及內(nèi)部控制信號(hào)為制信號(hào)為“1”,轉(zhuǎn)換開關(guān),轉(zhuǎn)換開關(guān)MUX打向上面的觸打向上面的觸點(diǎn),點(diǎn), 使反相器的輸出端和使反相器的輸出端和T2管柵極接通,輸管柵極接通,輸出的地址或數(shù)據(jù)信號(hào)通過與門驅(qū)動(dòng)出的地址或數(shù)據(jù)信號(hào)通過與門驅(qū)動(dòng)T1管,同管,同時(shí)通過反相器驅(qū)動(dòng)時(shí)通過反相器驅(qū)動(dòng)T2管完成信息傳送,數(shù)據(jù)管完成信息傳送,數(shù)據(jù)輸入時(shí),通過緩沖器進(jìn)入內(nèi)部總線。輸入時(shí),通過緩沖器進(jìn)入內(nèi)部總線。132.P1口:口: P1口的結(jié)構(gòu)見下圖口

12、的結(jié)構(gòu)見下圖(b)P1口位結(jié)構(gòu)1讀鎖存器內(nèi)部總線寫鎖存器讀引腳TVccP1.x引腳2DQCLP1.x鎖存器內(nèi)部上拉電阻Q P1口作通用口作通用I/O口使用,因電路結(jié)構(gòu)上輸出驅(qū)動(dòng)部分接有上拉電阻。當(dāng)作輸入時(shí),口使用,因電路結(jié)構(gòu)上輸出驅(qū)動(dòng)部分接有上拉電阻。當(dāng)作輸入時(shí),同同P0一樣,一樣, 要先對(duì)該口寫要先對(duì)該口寫“1”。 14地址控制Vcc內(nèi)部上拉電阻T1MUX12DCLQP2.x鎖存器P2.x引腳讀鎖存器內(nèi)部總線寫鎖存器讀引腳P2P2口:口:P2P2口的位結(jié)構(gòu)比口的位結(jié)構(gòu)比P1P1多了一個(gè)轉(zhuǎn)換控制部分,當(dāng)多了一個(gè)轉(zhuǎn)換控制部分,當(dāng)P2P2口作口作通用通用I/OI/O口時(shí),多路開關(guān)口時(shí),多路開關(guān)MU

13、XMUX倒向左;倒向左;15l當(dāng)擴(kuò)展片外存貯器時(shí),當(dāng)擴(kuò)展片外存貯器時(shí),MUX開關(guān)打向右,開關(guān)打向右,P2口作高八位地址線輸出高八位地址信號(hào)??谧鞲甙宋坏刂肪€輸出高八位地址信號(hào)。l MUX的的倒向是受的的倒向是受CPU內(nèi)部控制的。內(nèi)部控制的。l 應(yīng)當(dāng)注意應(yīng)當(dāng)注意:當(dāng):當(dāng)P2口的幾位作地址線使用時(shí),口的幾位作地址線使用時(shí),剩下的剩下的P2口線不能作口線不能作I /O口線使用??诰€使用。164.P3口:口: P3口的結(jié)構(gòu)見下圖口的結(jié)構(gòu)見下圖讀鎖存器讀鎖存器內(nèi)部總線寫鎖存器讀引腳第二輸出功能第二輸入功能內(nèi)部上拉電阻P3.x引腳TVcc1234DCLQP3.x鎖存器(d)P3口位結(jié)構(gòu)(d)P3口位結(jié)構(gòu)P

14、3口口 P3口為雙功能口為雙功能I/O口,內(nèi)部結(jié)構(gòu)中增加了第二輸入口,內(nèi)部結(jié)構(gòu)中增加了第二輸入/輸出功能。輸出功能。17 當(dāng)作為普通當(dāng)作為普通I/OI/O口使用時(shí),第二輸出功能端保持口使用時(shí),第二輸出功能端保持“1”“1”,打開與非門打開與非門3 3,用法同,用法同P1P1口???。 當(dāng)作第二功能輸出時(shí),鎖存器輸出為當(dāng)作第二功能輸出時(shí),鎖存器輸出為“1”“1”打開與非門打開與非門3 3,第二功能內(nèi)容通過與非門第二功能內(nèi)容通過與非門3 3和和T T送至引腳。送至引腳。 輸入時(shí),引腳的第二功能信號(hào)通過三態(tài)緩沖器輸入時(shí),引腳的第二功能信號(hào)通過三態(tài)緩沖器4 4進(jìn)入第進(jìn)入第二輸入功能端。兩種功能的引腳輸入

15、都應(yīng)使二輸入功能端。兩種功能的引腳輸入都應(yīng)使T T截止,此時(shí)第截止,此時(shí)第 二輸出功能端和鎖存器輸出端二輸出功能端和鎖存器輸出端Q Q均為高電平。均為高電平。 P3 P3的各位如不設(shè)定為第二功能則自動(dòng)處于第一功能,在的各位如不設(shè)定為第二功能則自動(dòng)處于第一功能,在更多情況下,根據(jù)需要,更多情況下,根據(jù)需要, 把幾條口線設(shè)為第二功能,剩下把幾條口線設(shè)為第二功能,剩下的口線可作第一功能的口線可作第一功能( (I/O)I/O)使用,此時(shí),宜采用位操作形使用,此時(shí),宜采用位操作形式式 。 18歸納四個(gè)并行口使用的注意事項(xiàng)如下:歸納四個(gè)并行口使用的注意事項(xiàng)如下:l1. 如果單片機(jī)內(nèi)部有程序存貯器,不需要擴(kuò)

16、展外部存如果單片機(jī)內(nèi)部有程序存貯器,不需要擴(kuò)展外部存貯器和貯器和I/O接口,單片機(jī)的四個(gè)口均可作接口,單片機(jī)的四個(gè)口均可作I/O口使用。口使用。l2. 四個(gè)口在作輸入口使用時(shí),均應(yīng)先對(duì)其寫四個(gè)口在作輸入口使用時(shí),均應(yīng)先對(duì)其寫“1”,以避免誤讀。以避免誤讀。l3. P0口作口作I/O口使用時(shí)應(yīng)外接口使用時(shí)應(yīng)外接10K的上拉電阻,其它口的上拉電阻,其它口則可不必。則可不必。l4. P2可某幾根線作地址使用時(shí),剩下的線不能作可某幾根線作地址使用時(shí),剩下的線不能作I/O口線使用??诰€使用。l5. P3口的某些口線作第二功能時(shí),剩下的口線可以單口的某些口線作第二功能時(shí),剩下的口線可以單獨(dú)作獨(dú)作I/O口線

17、使用??诰€使用。19l 下面舉例說明端口的輸入、輸出功能,其他功能的應(yīng)下面舉例說明端口的輸入、輸出功能,其他功能的應(yīng)用實(shí)例在后面章節(jié)說明。用實(shí)例在后面章節(jié)說明。l例例5-1.設(shè)計(jì)一電路,監(jiān)視某開關(guān)設(shè)計(jì)一電路,監(jiān)視某開關(guān)K,用發(fā)光二極管用發(fā)光二極管LED顯示開關(guān)狀態(tài),如果開關(guān)合上,顯示開關(guān)狀態(tài),如果開關(guān)合上,LED 亮、亮、 開關(guān)開關(guān)打開,打開,LED熄滅。熄滅。 l分析:設(shè)計(jì)電路如圖分析:設(shè)計(jì)電路如圖5. 2如示。如示。l開關(guān)接在開關(guān)接在P1.1口線,口線,LED接接P1.0口線,當(dāng)開關(guān)斷開時(shí),口線,當(dāng)開關(guān)斷開時(shí),P1.1為為+5V,對(duì)應(yīng)數(shù)字量為對(duì)應(yīng)數(shù)字量為“1”,開,開 關(guān)合上時(shí)關(guān)合上時(shí)P1

18、.1電平為電平為0V,對(duì)應(yīng)數(shù)字量為對(duì)應(yīng)數(shù)字量為“0”,這樣就可以用,這樣就可以用JB指指令對(duì)開關(guān)狀態(tài)進(jìn)行檢測令對(duì)開關(guān)狀態(tài)進(jìn)行檢測 。5.2 編程舉例 20LEDLED+5 5V VVccVcc-EAEARSTRST1010uF uF 1 1K KP1.0P1.08989S51S51P1.1P1.11 1K K3030P P3030P PXTAL1XTAL1XTAL2XTAL2GNDGND8989C51C51+5 5V VVccVcc-EAEARSTRST1010uF uF 1 1K KP1.0P1.08989S51S51+5+5V VP1.1P1.11 1K K3030P P3030P PXT

19、AL1XTAL1XTAL2XTAL2GNDGND8989C51C51K K LED正偏時(shí)才能發(fā)亮,按電路接法,當(dāng)正偏時(shí)才能發(fā)亮,按電路接法,當(dāng)P1.0輸出輸出“1”,LED正偏而發(fā)亮,當(dāng)正偏而發(fā)亮,當(dāng)P1.0 輸出輸出“0” ,LED 的兩的兩端電壓為端電壓為 0 而熄滅。而熄滅。 21l編程如下:編程如下:l CLR P1.0 ;使發(fā)光二極管滅使發(fā)光二極管滅lAGA:SETB P1.1 ;先對(duì)先對(duì)P1口寫入口寫入“1”l JB P1.1,LIG ;開關(guān)開,轉(zhuǎn)開關(guān)開,轉(zhuǎn)LIGl SETB P1.0 ;開關(guān)合上,二極管亮開關(guān)合上,二極管亮l SJMP AGAlLIG: CLR P1.0 ;開關(guān)開

20、,二極管滅開關(guān)開,二極管滅l SJMP AGA22l在上述電路圖中二極管亮度不夠,按下面兩種在上述電路圖中二極管亮度不夠,按下面兩種電路接法,增加了驅(qū)動(dòng)能力,二極管更亮些。電路接法,增加了驅(qū)動(dòng)能力,二極管更亮些。l接成灌電流形式:接成灌電流形式:l加驅(qū)動(dòng)電路:加驅(qū)動(dòng)電路:+5+5V VP1.0P1.0LEDLEDP1.0P1.0+5+5V VLEDLED123例5-2.在圖5.3中P1.4P1.7接四個(gè)發(fā)光二極管LED,P1.0P1.3接四個(gè)開關(guān),編程將開關(guān)的狀態(tài)反映到發(fā)光二極管上。11118989C51C51P1.0P1.0P1.1P1.1P1.2P1.2P1.3P1.3P1.4P1.4P1

21、.5P1.5P1.6P1.6P1.7P1.7+5+5V V+5+5V V1 1K K4 4330330 4 4圖5-3 例5-2圖EA24例例3. 用用P1.0輸出輸出1KHz和和500Hz的音頻信號(hào)驅(qū)動(dòng)揚(yáng)聲器,的音頻信號(hào)驅(qū)動(dòng)揚(yáng)聲器,作報(bào)警信號(hào),要求作報(bào)警信號(hào),要求1KHz信號(hào)響信號(hào)響100ms ,500Hz信號(hào)響信號(hào)響200ms,交替進(jìn)行,交替進(jìn)行,P1.7接一開關(guān)進(jìn)行控制,當(dāng)開關(guān)接一開關(guān)進(jìn)行控制,當(dāng)開關(guān)合上響報(bào)警信號(hào),當(dāng)開關(guān)斷開告警信號(hào)停止,編出程合上響報(bào)警信號(hào),當(dāng)開關(guān)斷開告警信號(hào)停止,編出程序。序。 分析分析:500Hz信號(hào)周期為信號(hào)周期為2ms,信號(hào)電平為每信號(hào)電平為每1ms變反變反1

22、次。次。1KHz的信號(hào)周期為的信號(hào)周期為1ms,信號(hào)電平信號(hào)電平 每每500S變變反反1次,編一個(gè)延時(shí)次,編一個(gè)延時(shí)500S子程序,延時(shí)子程序,延時(shí)1ms只需調(diào)用只需調(diào)用2次。用次。用R2控制音響時(shí)間長短,控制音響時(shí)間長短,A作音響頻率的交換控作音響頻率的交換控制的標(biāo)志。制的標(biāo)志。A=FF時(shí)產(chǎn)生時(shí)產(chǎn)生1KHz信號(hào),信號(hào),A=0時(shí)產(chǎn)生時(shí)產(chǎn)生500Hz信號(hào)。信號(hào)。25P1.0 波波 形形 圖圖 1ms 1ms100個(gè)個(gè)T (變反變反200次即次即200ms)。500S500S100個(gè)個(gè)T (變反變反200次即次即100ms)。TT26l ORG 0000H l CLRA ;A作作1KHz,500H

23、z 轉(zhuǎn)換控制轉(zhuǎn)換控制lBEG: JB P1.7, ;檢測檢測P1.7的開關(guān)狀態(tài)的開關(guān)狀態(tài) l MOV R2, #200 ;開關(guān)閉合報(bào)警,開關(guān)閉合報(bào)警,R2控制音響時(shí)間控制音響時(shí)間lDV:CPL P1.0l CJNE A, #0FFH, N1 ;AFFH,延時(shí)延時(shí)500S l ACALL D500 ;A=FFH ; 延時(shí)延時(shí)1ms P1.0變反變反lN1:ACALL D500l DJNZ R2,DV l CPL Al SJMP BEGlD500:MOV R7, #250 ;延時(shí)延時(shí)500 S子程序子程序l DJNZ R7, l RETl END275.3 用并行口設(shè)計(jì)LED數(shù)碼顯示器和鍵盤電路

24、鍵盤和顯示器是單片機(jī)應(yīng)用系統(tǒng)中常用鍵盤和顯示器是單片機(jī)應(yīng)用系統(tǒng)中常用的輸入輸出裝置。的輸入輸出裝置。LEDLED數(shù)碼顯示器是常用的數(shù)碼顯示器是常用的顯示器之一,下面介紹用單片機(jī)并行口設(shè)計(jì)顯示器之一,下面介紹用單片機(jī)并行口設(shè)計(jì)LEDLED數(shù)碼顯示電路和鍵盤電路的方法。數(shù)碼顯示電路和鍵盤電路的方法。 28 1. 1. LEDLED顯示器及其原理顯示器及其原理 LEDLED有著顯示亮度高,響應(yīng)速度快的特點(diǎn),最有著顯示亮度高,響應(yīng)速度快的特點(diǎn),最常用的是七段式常用的是七段式LEDLED顯示器,又稱數(shù)碼管。七段顯示器,又稱數(shù)碼管。七段LEDLED顯示器內(nèi)部由七個(gè)條形發(fā)光二極管和一個(gè)小圓顯示器內(nèi)部由七個(gè)條

25、形發(fā)光二極管和一個(gè)小圓點(diǎn)發(fā)光二極管組成,根據(jù)各管的亮暗組合成字符。點(diǎn)發(fā)光二極管組成,根據(jù)各管的亮暗組合成字符。常見常見LEDLED的管腳排列見圖的管腳排列見圖5.4(5.4(a)a)。其中其中COMCOM為公共為公共點(diǎn),根據(jù)內(nèi)部發(fā)光二極管的接線點(diǎn),根據(jù)內(nèi)部發(fā)光二極管的接線 形式,可分成共形式,可分成共陰極型圖陰極型圖(5.4(5.4(b)b)和共陽極型圖和共陽極型圖(5.4(5.4(c)c)。 5.3.1用并行口設(shè)計(jì)用并行口設(shè)計(jì)LED顯示電路顯示電路29a ab bc cd de ef fg gdpdp(a)(b)(c)cdedp12345678910a bfgcomcomabcefabcde

26、fgdpcomcom圖圖5.45.430 LEDLED數(shù)碼管的數(shù)碼管的g ga a七個(gè)發(fā)光二極管因加正電壓七個(gè)發(fā)光二極管因加正電壓而發(fā)亮,因加零電壓而不能發(fā)亮,不同亮暗的組合而發(fā)亮,因加零電壓而不能發(fā)亮,不同亮暗的組合就能形成不同的字形,這種組合稱之為字形碼,顯就能形成不同的字形,這種組合稱之為字形碼,顯然共陽極和共陰極的字形碼是不同的然共陽極和共陰極的字形碼是不同的 ,其字形碼,其字形碼見表見表5.25.2。LEDLED數(shù)碼管每段需數(shù)碼管每段需10102020mAmA的驅(qū)動(dòng)電流,的驅(qū)動(dòng)電流,可用可用TTLTTL或或CMOSCMOS器件驅(qū)動(dòng)。器件驅(qū)動(dòng)。 字形碼的控制輸出可采用硬件譯碼方式,如采

27、字形碼的控制輸出可采用硬件譯碼方式,如采用用BCD 7BCD 7段譯碼段譯碼/ /驅(qū)動(dòng)器驅(qū)動(dòng)器7474LS48LS48、74LS4974LS49、CD4511(CD4511(共陰極共陰極) )或或7474LS46LS46、74LS4774LS47、CD4513CD4513( (其陽極其陽極) )也可用軟件查表方式輸出。也可用軟件查表方式輸出。 31顯示字符段段 符符 號(hào)號(hào)十六進(jìn)制代碼dpgfedcba共陰共陽0123456789ABCDEFHP0000000000000000010011111011110111111000111011111011111010001010111111111011

28、011011011110001101111111110100001111100111100100011011011111101011113FH06H5BH4FH66H6DH7DH07H7FH6FH77H7CH39H5EH79H71H76HF3HC0F9A4B0999282F880908883C6A18684FFBF 32 數(shù)碼管的接口有靜態(tài)接口和動(dòng)態(tài)接口。數(shù)碼管的接口有靜態(tài)接口和動(dòng)態(tài)接口。 靜態(tài)接口靜態(tài)接口為固定顯示方式,無閃爍,其電路可采用為固定顯示方式,無閃爍,其電路可采用一個(gè)并行口接一個(gè)數(shù)據(jù)管,數(shù)碼管的公共端按共陰或共一個(gè)并行口接一個(gè)數(shù)據(jù)管,數(shù)碼管的公共端按共陰或共陽分別接地或陽分別接地

29、或VccVcc。這種接法占用接口多,如果這種接法占用接口多,如果POPO口和口和P2P2口要用作數(shù)據(jù)線和地址線,僅用單片機(jī)的并行口就只能口要用作數(shù)據(jù)線和地址線,僅用單片機(jī)的并行口就只能接二個(gè)數(shù)碼管。也可以用串行接口的方法接多個(gè)數(shù)碼管,接二個(gè)數(shù)碼管。也可以用串行接口的方法接多個(gè)數(shù)碼管, 使之靜態(tài)顯示使之靜態(tài)顯示. . 動(dòng)態(tài)接口動(dòng)態(tài)接口采用各數(shù)碼管循環(huán)輪流顯示的方法,當(dāng)循采用各數(shù)碼管循環(huán)輪流顯示的方法,當(dāng)循環(huán)顯示頻率較高時(shí),利用人眼的暫留特性環(huán)顯示頻率較高時(shí),利用人眼的暫留特性 ,看不出閃爍,看不出閃爍顯示現(xiàn)象,這種顯示需要一個(gè)接口完成字形碼的輸出顯示現(xiàn)象,這種顯示需要一個(gè)接口完成字形碼的輸出(字

30、字形選擇形選擇),另一接口完,另一接口完 成各數(shù)碼管的輪流點(diǎn)亮成各數(shù)碼管的輪流點(diǎn)亮(數(shù)位選擇數(shù)位選擇)。2.LED數(shù)碼管的接口數(shù)碼管的接口33 例如圖例如圖5.5是接有五個(gè)共陰極數(shù)碼管的動(dòng)態(tài)顯是接有五個(gè)共陰極數(shù)碼管的動(dòng)態(tài)顯示接口電路,用示接口電路,用74LS373接成直通的方式作驅(qū)動(dòng)接成直通的方式作驅(qū)動(dòng) 電路,陰極用非門電路,陰極用非門74LS04反相門驅(qū)動(dòng),字形選擇反相門驅(qū)動(dòng),字形選擇由由P1口提供,位選擇由口提供,位選擇由P3口控制。口控制。 當(dāng)當(dāng)P3.0P3.4輪流輸出輪流輸出1時(shí),五個(gè)數(shù)碼管輪時(shí),五個(gè)數(shù)碼管輪流顯示。流顯示。P1.7接開關(guān),當(dāng)開關(guān)打向位置接開關(guān),當(dāng)開關(guān)打向位置“1”時(shí),

31、時(shí), 顯示顯示“12345”字樣,當(dāng)開關(guān)打向字樣,當(dāng)開關(guān)打向“2”時(shí),顯示時(shí),顯示“HELLO”字樣,程序清單如下:字樣,程序清單如下: 3411111+5VVcc/EARSTP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P3.0P3.1P3.2P3.3P3.4XTAL1XTAL2GND89C51Q0Q6/OED0D6G373ag圖5-5 接五個(gè)共陰極數(shù)碼管的動(dòng)態(tài)顯示接口123536 用匯編語言編程用匯編語言編程 l ORG 0000H l MOV P3,#0 ;清顯示清顯示lTEST:SETBP1.7l JB P1.7,DIR1 ;檢測開關(guān)檢測開關(guān)l MOV DPTR,#T

32、AB 1 ; 開關(guān)置于開關(guān)置于1,12345字形表頭地址字形表頭地址l SJMP DIRlDIR1: MOV DPTR,#TAB2 ; 開關(guān)置于開關(guān)置于2,“HELLO”字形表頭字形表頭lDIR: MOV R0,#0 ;R0存字形表偏移量存字形表偏移量l MOV R1,#01 ;R1置數(shù)碼表位選代碼置數(shù)碼表位選代碼1.NEXT:MOV A,R0 37l MOVC A,A+DPTR ; 查字形碼表查字形碼表1l MOV P1,A ;送送P1口輸出口輸出l MOVA,R1l MOVP3, A ;輸出位選碼輸出位選碼l ACALL DAY ;延時(shí)延時(shí)l INC R0 ;指向下一位字形指向下一位字形l

33、 RL A ;指向下一位指向下一位l MOV R1, Al CJNE R1, #20H,NEXT ;五個(gè)五個(gè) 數(shù)碼管顯示數(shù)碼管顯示完完?l SJMPTESTlDAY:MOV R6, #20 ; 延時(shí)延時(shí)20ms子程序子程序lDL2: MOV R7, #7DH38DL1: NOP NOP DJNZ R7,DL1w DJNZ R6,DL2w RETwTAB1:db 06H,5BH,4FH,66H,6DH ; “15”的字形碼的字形碼wTAB2:db 78H,79H,38H,38H,3FH ; “HELLO”的字形碼的字形碼w END39l 鍵盤是計(jì)算機(jī)系統(tǒng)中不可缺少的輸入設(shè)備,當(dāng)按鍵少鍵盤是計(jì)算機(jī)

34、系統(tǒng)中不可缺少的輸入設(shè)備,當(dāng)按鍵少時(shí)可接成線性鍵盤時(shí)可接成線性鍵盤( (如圖如圖5.35.3中的按鍵中的按鍵 ) ),當(dāng)按鍵較多時(shí),當(dāng)按鍵較多時(shí),這樣的接法占用口線較多。將按鍵接成矩陣的形式,可以這樣的接法占用口線較多。將按鍵接成矩陣的形式,可以節(jié)省口線,例如兩個(gè)接口可按節(jié)省口線,例如兩個(gè)接口可按8 8* *8 8的形式接的形式接6464個(gè)按鍵。每個(gè)按鍵。每個(gè)按鍵有它的行值和列值,行值和列值的組合就是識(shí)別這個(gè)按鍵有它的行值和列值,行值和列值的組合就是識(shí)別這個(gè)按鍵的編碼。矩陣的行線和列線分別通過兩并行接口和個(gè)按鍵的編碼。矩陣的行線和列線分別通過兩并行接口和CPUCPU通信。每個(gè)按鍵的狀態(tài)同樣需變

35、成數(shù)字量通信。每個(gè)按鍵的狀態(tài)同樣需變成數(shù)字量“0”“0”和和“1”“1”,開關(guān)的一端通過電阻接,開關(guān)的一端通過電阻接Vcc(Vcc(列列) )、而接地是通過程、而接地是通過程序輸出數(shù)字序輸出數(shù)字“0”“0”實(shí)現(xiàn)的。實(shí)現(xiàn)的。5.3.2用并行口設(shè)計(jì)鍵盤電路用并行口設(shè)計(jì)鍵盤電路40 鍵盤處理程序的任務(wù)是:鍵盤處理程序的任務(wù)是:l確定有無鍵按下;確定有無鍵按下;l判哪一個(gè)鍵按下判哪一個(gè)鍵按下; ; l鍵的功能是什么;鍵的功能是什么;l還要消除按鍵在閉合或斷開時(shí)的抖動(dòng)。還要消除按鍵在閉合或斷開時(shí)的抖動(dòng)。 兩個(gè)并行口中,一個(gè)輸出掃描碼,兩個(gè)并行口中,一個(gè)輸出掃描碼, 使按鍵逐行動(dòng)使按鍵逐行動(dòng)態(tài)接地態(tài)接地(

36、 (稱行掃描稱行掃描) ),另一個(gè)并行口輸入按鍵狀態(tài),另一個(gè)并行口輸入按鍵狀態(tài)( (稱回稱回饋信號(hào),鍵盤的列值饋信號(hào),鍵盤的列值) ), 由行掃描值和回饋信號(hào)共同由行掃描值和回饋信號(hào)共同形成鍵編碼而識(shí)別按鍵、通過軟件查表,查出該鍵的形成鍵編碼而識(shí)別按鍵、通過軟件查表,查出該鍵的功能。也可由硬件編碼器完成鍵的編碼。功能。也可由硬件編碼器完成鍵的編碼。41 下圖中,用下圖中,用8 8XX51XX51的并行口的并行口P1P1接接4 44 4矩陣鍵盤,以矩陣鍵盤,以P1.0P1.0P1.3P1.3作輸出線,以作輸出線,以P1.4P1.4P1.7P1.7作輸入線,鍵盤掃描作輸入線,鍵盤掃描程序的流程如圖

37、程序的流程如圖5.75.7所示。所示。EE DE BE 7F ED DD BD 7D EB DB BB 7B E7 D7 B7 7742Y返回鍵編碼返回鍵編碼讀讀P1.3P1.4值值置行掃描初值置行掃描初值掃描位從掃描位從P1口輸出口輸出P1口的高四位和低四位口的高四位和低四位相或得鍵編碼相或得鍵編碼掃到最后一行掃到最后一行?NN(有鍵按下)有鍵按下)N開始開始P1.0P1.3輸出輸出0延時(shí)去抖動(dòng)延時(shí)去抖動(dòng)P1.4P1.7全為全為1?P1.4P1.7全為全為1?YY(無鍵按下無鍵按下)N43 對(duì)鍵盤的程序流程圖對(duì)鍵盤的程序流程圖5.7說明如下:說明如下: 當(dāng)當(dāng)P1.0P1.3輸出輸出0時(shí),如無

38、鍵按下,時(shí),如無鍵按下,P1.4P1.7的輸入值均為的輸入值均為“1”,如果其中有一個(gè)不是,如果其中有一個(gè)不是 “1”,說明有鍵按下,再使說明有鍵按下,再使P1.0P1.3逐個(gè)輸出零逐個(gè)輸出零(行掃行掃描描),檢查,檢查P1.4P1.7的輸入值有的輸入值有 無零,從而查出無零,從而查出是哪行哪列的鍵按下。在判按鍵時(shí),按鍵有抖動(dòng),是哪行哪列的鍵按下。在判按鍵時(shí),按鍵有抖動(dòng),可采用延時(shí)后再重讀以跳可采用延時(shí)后再重讀以跳 過抖動(dòng)時(shí)段過抖動(dòng)時(shí)段(也可用也可用R-S觸發(fā)器閂鎖電路硬件消抖,但這樣電路復(fù)雜,在觸發(fā)器閂鎖電路硬件消抖,但這樣電路復(fù)雜,在矩陣鍵盤中不采用矩陣鍵盤中不采用)。44程序清單如下:程

39、序清單如下:ORG 0000HTEST: MOV P1,#0F0H ; P1.0P1.3輸出輸出0, P1.4 P1.7輸出輸出1,作輸入位作輸入位 MOV A,P1 ;讀鍵盤,檢測有無鍵按下;讀鍵盤,檢測有無鍵按下ANL A,#0F0H ; 屏蔽屏蔽P1.0P1.3,檢測,檢測 P1.4P1.是否全為是否全為1 CJNE A, #0F0H,HAVE ; P1.4P1.7不全為不全為1, 有鍵按下有鍵按下SJMP TEST ;P1.4P1.7全為全為1, 無鍵按下,重檢測鍵盤無鍵按下,重檢測鍵盤HAVE:MOV A,#0FE ;有鍵按下,逐行掃描鍵盤,;有鍵按下,逐行掃描鍵盤, 置掃描初值置掃

40、描初值45 NEXT: MOV B,A ;掃描碼暫存于;掃描碼暫存于BMOV P1,A ;輸出掃描碼;輸出掃描碼READ: MOV A,P1 ;讀鍵盤;讀鍵盤ANL A,#0F0H ; 屏蔽屏蔽P1.0P1.3, 檢測檢測P1.4P1.是否全為是否全為1CJNE A,0F0H,YES ;P1.4P1.7不全為不全為1, 該行有鍵按下該行有鍵按下MOV A,B ;被掃行無鍵按下,準(zhǔn)備查下一行;被掃行無鍵按下,準(zhǔn)備查下一行RL A ;置下一行掃描碼;置下一行掃描碼CJNE A,#0EFH,NEXT ;未掃到到最后一行循環(huán);未掃到到最后一行循環(huán)YES: ACALL DAY ;延時(shí)去抖動(dòng);延時(shí)去抖動(dòng)46AREAD: MOV A,P1 ;再讀鍵盤;再讀鍵盤ANL A,#0F0H ; 屏蔽屏蔽P1.0P1.3,保留,保留P1.4 P1.7(列碼列碼)MOV R2,A ;暫存列碼;暫存列碼MOV A, B ANL A,#0FH ;取行掃描碼;取行掃描碼ORL A,R2 ;行碼、列碼合并為鍵編碼;行碼、列碼合并為鍵編碼YES1: MOV B,A ;鍵編碼存于;鍵編碼存于BLJMP SAM38 ;轉(zhuǎn)鍵分析處理程序(見例;轉(zhuǎn)鍵分析處理程序(見例3-8)47 例如圖例如圖5-6中的中

溫馨提示

  • 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)論