版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
單片機的人機交互與擴展技術(shù)單片機原理及接口技術(shù)單片機原理及接口技術(shù)目錄6.1單片機系統(tǒng)的人機交互技術(shù)6.2存儲器的擴展技術(shù)6.3系統(tǒng)擴展技術(shù)單片機原理及接口技術(shù)概述人機交互是指操作人員與計算機之間進行的現(xiàn)場或遠程的信息交換與聯(lián)系。用于人機交互的設(shè)備稱為人機接口,這些設(shè)備主要有鍵盤、顯示器和打印機等。一般的計算機控制系統(tǒng)必須要有人機交互功能,以便操作人員可以隨時輸入數(shù)據(jù)傳遞生產(chǎn)命令,并通過顯示和打印功能及時掌握生產(chǎn)情況。對于簡單的應(yīng)用場合,由于單片機本身就是一個最小的應(yīng)用系統(tǒng),因此能直接滿足實際應(yīng)用所要求的功能,充分發(fā)揮單片機硬件結(jié)構(gòu)緊湊、設(shè)計簡單、成本低的優(yōu)點。當(dāng)設(shè)計一些較為復(fù)雜的測控系統(tǒng)時,單片機自身的功能往往不能夠滿足應(yīng)用的需要,此時可利用其強大的外部擴展功能,擴展各種外圍電路以補充片內(nèi)資源的不足,從而滿足特定應(yīng)用的要求。單片機原理及接口技術(shù)6.1單片機系統(tǒng)的人機交互技術(shù)6.1.1顯示器接口技術(shù)
6.1.2鍵盤接口技術(shù)
6.1.3串行通信接口技術(shù)
單片機原理及接口技術(shù)6.1.1顯示器接口技術(shù)
在單片機應(yīng)用系統(tǒng)中,為了便于觀察和監(jiān)視系統(tǒng)的運行情況,經(jīng)常需要用顯示器顯示輸入信息、中間信息、運行狀態(tài)及運行結(jié)果等數(shù)據(jù)。目前常用的顯示器件有LED(發(fā)光二極管顯示器)和LCD(液晶顯示器)兩種。1.LED顯示接口技術(shù)LED顯示器主要是指由發(fā)光二極管組成的數(shù)碼管顯示器或LED點陣顯示模塊。圖6-1是8段LED數(shù)碼顯示管的結(jié)構(gòu)示意圖。根據(jù)公共端的接法不同,LED數(shù)碼管可分為共陰極和共陽極二種類型。圖6-1LED數(shù)碼管結(jié)構(gòu)圖(a)共陽極(b)共陰極(c)LED外形結(jié)構(gòu)單片機原理及接口技術(shù)(1)靜態(tài)顯示方式
所謂靜態(tài)顯示方式,是指在工作過程中加到每一塊LED數(shù)碼管上的信號始終同時存在,各顯示模塊相互獨立,而且各位的顯示字符一旦確定,加在每一塊數(shù)碼管上的信號維持不變,直到顯示另一個字符為止。如圖6-2即為一個四位LED靜態(tài)顯示電路。從圖中可知,對每一位LED數(shù)碼管,都必須有與之對應(yīng)的鎖存器以保證在一次顯示過程中加在其上的信號保持不變。因此,采用靜態(tài)顯示方式,需占用較多的硬件資源,但它占用機時少、編程簡單、顯示可靠,因而在工業(yè)過程控制中得到了廣泛的應(yīng)用。圖6-2四位LED靜態(tài)顯示電路單片機原理及接口技術(shù)MC14495是由4位鎖存器、譯碼器和筆段ROM陣列以及帶有限流電阻的驅(qū)動電路(輸出電流為10mA)組成。它可與LED數(shù)碼管直接相連,不用再外接限流電阻。圖6-3為利用MCS-51單片機并行I/O口設(shè)計的三位靜態(tài)LED數(shù)碼顯示接口電路。圖中,A、B、C、D為二進制碼(或BCD碼)輸入端;LE為鎖存控制端,當(dāng)LE為低電平時可以輸入數(shù)據(jù),當(dāng)LE為高電平時鎖存輸入數(shù)據(jù);a~g為7段代碼輸出。圖6-3三位靜態(tài)LED數(shù)碼顯示接口電路單片機原理及接口技術(shù)(2)動態(tài)顯示方式在動態(tài)顯示方式中,每個LED數(shù)碼管都對應(yīng)一根位選線,所有LED數(shù)碼管共用段碼數(shù)據(jù)線。當(dāng)CPU要顯示某個字符時,先將該字符的段碼送到由位選線選通的對應(yīng)顯示塊上,從而點亮該顯示塊,顯示出待顯字符;當(dāng)要在另一位數(shù)碼管顯示另一個字符時,CPU將新的段碼送到數(shù)據(jù)線上,并選通對應(yīng)的位選線,又可顯示出另一個字符。這樣,CPU分時選通各位LED數(shù)碼管進行顯示,利用人眼的視覺殘留現(xiàn)象及數(shù)碼管的余輝,在總體的視覺效果上,各位LED數(shù)碼管都能連續(xù)而穩(wěn)定地顯示不同的字符。單片機原理及接口技術(shù)動態(tài)顯示程序控制顯示的方法一般采用定時20ms掃描一次,在中斷服務(wù)程序中,將所有數(shù)碼管顯示一次。雖然程序簡單,但CPU的負擔(dān)較重,一次循環(huán)顯示的過程,需要幾個毫秒,在這段時間里CPU不能做其它事情,否則影響LED亮度的一致性。在一些實時性要求較高的控制系統(tǒng)中,可以采用1ms中斷顯示的方法控制顯示,即用單片機內(nèi)部定時器每隔1ms產(chǎn)生一次中斷。在定時中斷服務(wù)程序中更新一位顯示,由于中斷顯示程序不需要延時,更新一位顯示只需要幾十微秒,對主程序的影響較小。單片機原理及接口技術(shù)例:用定時中斷的方式編寫控制4位顯示器動態(tài)顯示的程序。單片機原理及接口技術(shù)程序如下:#include"reg51.h"charcodedispdata[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};/*數(shù)字0-9對應(yīng)的段選碼*/chardis_data[]={2,4,6,8};voiddisp(unsignedcharch0) /*顯示函數(shù)*/{ staticcharch=0x01; P1=ch; P2=dispdata[dis_data[ch0]]; ch=ch<<1; if(ch==0x10)ch=0x01;}單片機原理及接口技術(shù)voidtime(void)interrupt1/*T0中斷服務(wù)程序入口,定時1ms*/{ staticunsignedcharch1=0;TH0=-1000/256;TL0=-1000%256;disp(ch1);ch1++;if(ch1==0x04)ch1=0; }voidmain(void){ TMOD=0x01; /*T0為16位定時工作方式*/TH0=-1000/256;/*預(yù)置計數(shù)初值*/TL0=-1000%256;
EA=1; /*CPU中斷開放*/ET0=1; /*T/C0中斷開放*/TR0=1; /*啟動T/C0開始定時*/while(1); /*等待中斷*/}單片機原理及接口技術(shù)2.LCD顯示接口技術(shù)LCD(LiquidCrystalDisplay)液晶顯示是一種新型的顯示技術(shù),它是利用液晶材料的電光效應(yīng)(如加電引起光學(xué)特性變化)的顯示器。液晶本身不發(fā)光,靠電信號控制環(huán)境光在顯示部位反射(或透射)而顯示。液晶顯示具有很多獨到的優(yōu)異特性,比如低壓、微功耗、平板型結(jié)構(gòu)、被動型顯示、易于彩色化、長壽命等,已經(jīng)越來越多地應(yīng)用到各個領(lǐng)域,從智能化儀器儀表、計算機到家用電器都可以看到液晶顯示的身影。液晶顯示器通常把驅(qū)動電路集成在一起,形成液晶顯示模塊。用戶可以不必了解驅(qū)動器與顯示器是如何連接的,使用時只需按照一定的要求向顯示模塊發(fā)送命令和寫入數(shù)據(jù)即可。單片機原理及接口技術(shù)典型芯片OCMJ(奧可拉)中文液晶顯示模塊
OCMJ內(nèi)含16*16點陣的國標(biāo)一、二級簡體漢字和8*8點陣及8*16點陣的ASCII字符,用戶輸入GB2312區(qū)位碼或ASCII碼即可實現(xiàn)文本顯示。
OCMJ可實現(xiàn)一般的點陣圖形液晶顯示功能,提供有位點陣和字節(jié)點陣兩種圖形顯示方式,用戶可在指定的屏幕位置上以點為單位或以字節(jié)為單位(橫向)進行圖形顯示操作。中文液晶顯示模塊可以實現(xiàn)漢字、ASCII碼、點陣圖形和變化曲線的同屏顯示,并可通過字節(jié)點陣圖形方式造字。標(biāo)準(zhǔn)用戶硬件接口采用REQ和BUSY握手協(xié)議,簡單可靠。提供10個用戶接口命令代碼,編程很方便。單片機原理及接口技術(shù)OCMJ中文顯示模塊引腳說明單片機原理及接口技術(shù)OCMJ(4×8)中文顯示模塊命令格式3F單片機原理及接口技術(shù)
典型應(yīng)用(OCMJ4×8)如圖6-8為MCS-51單片機與OCMJ4×8中文顯示模塊的接口電路。圖中單片機的P1口接OCMJ模塊的8根數(shù)據(jù)線用于數(shù)據(jù)的傳送,P0.0、P0.1引腳接OCMJ模塊的BUSY和REQ作為握手聯(lián)絡(luò)信號。圖6-8MCS-51單片機與OCMJ4×8中文顯示模塊接口電路單片機原理及接口技術(shù)例6.2編寫C51程序顯示“啊”和“A”#include"reg51.h"#include"intrins.h"sbitLCD_REQ=P0^0;sbitLCD_BUSY=P0^1;voidLCD_write(charcbyte){LCD_REQ=0;//復(fù)位while(LCD_BUSY==1);P1=cbyte;_nop_;LCD_REQ=1;while(LCD_BUSY==0);LCD_REQ=0;}voidchinese_disp(charnx,charny,charnqu,charnwei){LCD_write(0xf0);LCD_write(nx);LCD_write(ny);LCD_write(nqu);LCD_write(nwei);}voidasc_disp(charccom,charnx,charny,charcasc){LCD_write(ccom);LCD_write(nx);LCD_write(ny);LCD_write(casc);}voidmain(){chinese_disp(0x02,0x00,0x16,0x01);asc_disp(0xf9,0x04,0x00,0x41);while(1);}單片機原理及接口技術(shù)6.1.2鍵盤接口技術(shù)鍵盤是若干按鍵的集合,是向系統(tǒng)提供操作人員干預(yù)命令及數(shù)據(jù)的接口設(shè)備。鍵盤可分為編碼鍵盤和非編碼鍵盤兩種。編碼鍵盤能夠由硬件邏輯自動提供與被按鍵對應(yīng)的編碼。此外,一般還具有去抖動和多鍵、竄鍵保護電路,這種鍵盤使用方便,但需要較多的硬件,價格較貴,一般的單片機應(yīng)用系統(tǒng)較少采用。非編碼鍵盤只簡單地提供行和列的矩陣,其它工作都靠軟件來完成,由于其經(jīng)濟實用,目前在單片機應(yīng)用系統(tǒng)中多采用這種辦法。單片機原理及接口技術(shù)1.鍵盤的基本工作原理最簡單的非編碼鍵盤是獨立式結(jié)構(gòu)鍵盤,如圖6-9所示。每個按鍵對應(yīng)I/O端口的一位,當(dāng)任意一個按鍵壓下時,與之相連的輸入數(shù)據(jù)線即被置為低電平,而平時該線為高電平。這時,CPU只要檢測到某位為“0”,便可判斷出對應(yīng)鍵值。這種鍵盤結(jié)構(gòu)的優(yōu)點是十分簡單,缺點是鍵數(shù)較多時,要占用較多的I/O線。單片機應(yīng)用系統(tǒng)通常采用的是矩陣式結(jié)構(gòu)鍵盤,如圖6-10所示的4×4鍵盤。矩陣式鍵盤工作時,就是按照行線和列線上的電平來識別閉合按鍵。圖6-10鍵盤的矩陣式結(jié)構(gòu)圖6-9鍵盤的獨立式結(jié)構(gòu)單片機原理及接口技術(shù)2.鍵盤設(shè)計需解決的問題
檢測是否有鍵按下;去抖動;若有鍵按下,判定是哪一個鍵;確定被按鍵的讀數(shù);不管一次按鍵持續(xù)的時間有多長,僅采用一個數(shù)據(jù);處理同時按鍵。5~10ms5~10ms>100ms按鍵過程
前跳沿
后跳沿
鍵閉合
單片機原理及接口技術(shù)2.1獨立式連接的非編碼鍵盤8031+5VP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.78031INT0+5VINT1&P1.0P1.1P1.2P1.7(a)查詢方式(b)中斷方式單片機原理及接口技術(shù)2.2矩陣式連接的非編碼鍵盤掃描法為了識別鍵盤上的閉合鍵,通常采用兩種方法,一種為掃描法,另一種稱為線反轉(zhuǎn)法。原理:第一步判斷是否有鍵按下。讓所有行線輸出為零值,檢查各列線電平是否有變化,若有變化,則說明有鍵按下;第二步識別出具體的鍵值。逐行置零電平,其余行置為高電平,檢查各列線電平的變化。若某列線為低電平,則此行列交叉處的按鍵被按下。0123456789101112131415+5V8031P1.6P1.7P1.0P1.1P1.2P1.3P1.5P1.4單片機原理及接口技術(shù)線反轉(zhuǎn)法原理:第一步讓P1口高4位輸出全0值,然后從P1口低4位讀入,確定哪一列有鍵按下;第二步將P1口低4位輸出全0值,
再從P1口高4位讀入,確定哪一行有鍵按下。P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.010kΩ×890MCS-51單片機原理及接口技術(shù)3.鍵盤的接口實例
例6-4單片機獨立式鍵盤接口電路如圖6-13所示,采用中斷方式監(jiān)測按鍵,軟件延時消除按鍵的抖動,編寫按鍵中斷服務(wù)程序。圖6-13獨立式按鍵接口電路單片機原理及接口技術(shù)程序如下:
ORG0003HAJMPJPCONORG0050HJPCON:MOVP1,#0FFH;P1口輸入準(zhǔn)備MOVA,P1;輸入P1口的值JNBACC.7,PROC7;查詢鍵K7JNBACC.6,PROC6;查詢鍵K6JNBACC.5,PROC5;查詢鍵K5JNBACC.4,PROC4;查詢鍵K4JNBACC.3,PROC3;查詢鍵K3JNBACC.2,PROC2;查詢鍵K2JNBACC.1,PROC1;查詢鍵K1JNBACC.0,PROC0;查詢鍵K0RETIPROC7:ACALLDISP15;調(diào)用15ms延時子程序MOVP1,#0FFH;再次讀P1準(zhǔn)備MOVA,P1;再次確認P1值JNBACC.7,JPC7;再次查詢K7鍵RETIJPC7:
……RETIPROC6:……
……;K6及其它鍵的處理DISP15:MOVR2,#15;15ms延時子程序MOVR3,#250DISP2:NOPNOPDJNZR3,DISP2DJNZR2,DISP15RET單片機原理及接口技術(shù)6.1.3串行通信接口技術(shù)MCS-5l單片機內(nèi)部的串行口,大大擴展了單片機的應(yīng)用范圍,利用串行口可以實現(xiàn)單片機之間點對點的串行通信、多機通信以及單片機與PC機間的單機或多機通信。MCS-5l單片機串行口的輸入、輸出均為TTL電平,這種以TTL電平進行串行數(shù)據(jù)傳輸?shù)姆绞剑垢蓴_能力差,傳輸距離較短。為了提高串行通信的可靠性,增大串行通信的距離,一般都采用標(biāo)準(zhǔn)串行接口,如RS-232、RS-422A和RS-485等來實現(xiàn)串行通信。RS-232C適用于短距離或帶調(diào)制解調(diào)器的串行通信場合。為了提高串行數(shù)據(jù)傳輸率和通信距離以及抗干擾能力,EIA又公布了RS-422,RS-423和RS-485串行總線接口標(biāo)準(zhǔn)。單片機原理及接口技術(shù)1.RS-232C接口
RS-232C異步串行通信接口標(biāo)準(zhǔn)是用來實現(xiàn)計算機與計算機之間、計算機與外設(shè)之間的數(shù)據(jù)通信。(1)機械特性
目前,PC機都配有標(biāo)準(zhǔn)的RS-232C接口,RS-232C標(biāo)準(zhǔn)規(guī)定了25針連接器,但在實際應(yīng)用中并不一定用到RS-232C的全部信號線,目前大多數(shù)微機中只用了其中的9條線(9針“D”型連接插座)。這9條信號線,按在通信過程中所起的作用分為數(shù)據(jù)收發(fā)線、聯(lián)絡(luò)控制線和地線3組。數(shù)據(jù)收發(fā)線包括RXD和TXD,是數(shù)據(jù)傳送時不可缺少的部分;地線是第5號引腳,其余為聯(lián)絡(luò)控制線。單片機原理及接口技術(shù)(2)電氣特性RS-232C上傳送的數(shù)字量采用負邏輯,且與地對稱。邏輯1:-3V~-15V;邏輯0:+3V~+15V。由于RS-232C接口標(biāo)準(zhǔn)是單端收發(fā),即采用公共地線的方式(多根信號線共地)。這種方式的缺點是不能區(qū)分由驅(qū)動電路產(chǎn)生的有用信號和外部引入的干擾信號,抗共模干擾能力差。此外,如果兩地之間存在電位差,將會導(dǎo)致傳輸錯誤。所以數(shù)據(jù)傳輸速率低(小于115.2kb/s)、且傳輸距離短(小于15m~20m)。即使有較好的線路器件和優(yōu)良的信號質(zhì)量,有效傳輸距離也不會超過60m。單片機原理及接口技術(shù)(3)電平轉(zhuǎn)換由于TTL電平和RS-232C電平互不兼容,所以兩者對接時,必須進行電平轉(zhuǎn)換。以美國MAXIM公司的產(chǎn)品MAX232為例,它是包含兩路接收器和驅(qū)動器的IC芯片,其外部引腳如圖6-17所示。圖6-17MAX232引腳圖單片機原理及接口技術(shù)由于芯片內(nèi)部帶有自升壓的電平倍增電路,可將+5V轉(zhuǎn)換成-10~+10V,滿足RS-232C標(biāo)準(zhǔn)對邏輯1和邏輯0的電平要求。因此,芯片工作時僅需單一的+5V電源。芯片內(nèi)部有2個發(fā)送器,2個接收器,具有TTL信號輸入/RS-232C輸出的功能,也有RS-232C輸入/TTL信號輸出的功能。該芯片與TTL/CMOS電平兼容,使用比較方便。使用MAX232實現(xiàn)TTL/RS-232C之間的電平轉(zhuǎn)換電路如圖6-18所示。圖6-18MAX232典型工作電路單片機原理及接口技術(shù)(4)典型應(yīng)用
1)雙機串行異步通信
根據(jù)兩臺單片機的距離,可采用不同的電平標(biāo)準(zhǔn)實現(xiàn)正常通信。若兩臺單片機在1.5m以內(nèi),可以直接連接,即用TTL電平通信;當(dāng)傳輸距離小于15m時,用RS-232C總線直接連接系統(tǒng),在最簡單的全雙工系統(tǒng)中,僅用TXD、RXD和SGND三根線即可,如圖6-19所示;當(dāng)傳輸距離超過15m時,可以選用其它串行通信標(biāo)準(zhǔn),若要采用RS-232C標(biāo)準(zhǔn),則需要增加調(diào)制解調(diào)器(Modem)。圖6-19利用MAX232的雙機串行通信接口圖單片機原理及接口技術(shù)2)單片機與PC機串行異步通信
一般PC機提供了兩個RS-232標(biāo)準(zhǔn)的串口COM1、COM2,由于單片機采用TTL電平,因此在實現(xiàn)PC機與單片機之間的串行通信時,需進行電平轉(zhuǎn)換。采用MAX232實現(xiàn)的電平轉(zhuǎn)換接口電路如圖6-20所示。圖6-20利用MAX232實現(xiàn)PC機與單片機串行通信接口圖單片機原理及接口技術(shù)在設(shè)計通信軟件時,首先要分別對各自的串口進行初始化,確定串口的工作方式、波特率及數(shù)據(jù)位等。通信開始時由PC機發(fā)出一個握手信號,同時做好接收單片機發(fā)來的信號的準(zhǔn)備;單片機接收到握手信號后,確認握手信號是否正確,并向PC機發(fā)送響應(yīng)信號,做好與PC機通信的準(zhǔn)備。單片機串行通信程序讀者可參考第5章。PC機通信程序可采用如下兩種方法:第一種方法是在Windows環(huán)境下,利用可視化開發(fā)環(huán)境VB、VC等的Mscomm通信控件進行軟件設(shè)計。Mscomm控件提供了功能完善的串口數(shù)據(jù)的發(fā)送和接收功能,使用時只需對串口進行簡單的配置即可。第二種方法是采用專門的調(diào)試軟件,如串口調(diào)試助手軟件。該軟件支持常用的110~115200bps波特率,能夠設(shè)置校驗位、數(shù)據(jù)位和停止位;能夠以ASCII碼或十六進制碼接收或發(fā)送任何數(shù)據(jù)或字符(包括中文),且可任意設(shè)定自動發(fā)送周期;能夠?qū)⒔邮盏臄?shù)據(jù)保存成文本文件,且可發(fā)送任意大小的文本文件。單片機原理及接口技術(shù)2.RS-422接口RS-422規(guī)定了對電纜、驅(qū)動器的要求,規(guī)定了雙端電氣接口形式,其標(biāo)準(zhǔn)是采用雙絞線傳送信號。它通過傳輸線驅(qū)動器,把邏輯電平變換成電位差;通過傳輸線接收器,由電位差轉(zhuǎn)變成邏輯電平,實現(xiàn)信號接收。RS-422比RS-232C傳輸信號距離長、速度快。數(shù)據(jù)傳輸率最大為10Mb/s,在此速率下電纜允許長度為12m;如果采用較低數(shù)據(jù)傳輸速率,如90kb/s,最大距離可達1200m。RS-422每個通道要用2根信號線(2根線的極性相反),在接收端對這2根線上的電壓信號相減得到實際信號,這種方式可以有效抑制共模干擾,提高通信距離。單片機原理及接口技術(shù)3.RS-485接口RS-485是RS-422的變型,它與RS-422的主要區(qū)別在于:RS-422為全雙工,采用2對平衡差分信號線,使線路成本增加;而RS-485為半雙工,收發(fā)雙方共用1對信號線進行通信,即采用l對平衡差分信號線。RS-485標(biāo)準(zhǔn)允許最多并聯(lián)32臺驅(qū)動器和32臺接收器,對于多站互連是十分方便的。因此,在許多工業(yè)應(yīng)用領(lǐng)域,RS-485可以用來組建低成本網(wǎng)絡(luò)。RS-485也可采用四線連接方式,即工作于全雙工方式。此時,RS-485與RS-422一樣,只能實現(xiàn)點對多的通信,即只能有一個主設(shè)備,其余為從設(shè)備。單片機原理及接口技術(shù)RS-232C、RS-422與RS-485性能比較單片機原理及接口技術(shù)6.2存儲器的擴展技術(shù)6.2.1存儲器擴展中應(yīng)考慮的問題
6.2.2存儲器的并行擴展
6.2.3存儲器的串行擴展
單片機原理及接口技術(shù)概述存儲器主要是用來保存程序、數(shù)據(jù)和作為運算的緩沖器。雖然在MCS-51單片機內(nèi)部設(shè)置了一定容量的存儲器,但這些存儲器的容量一般都比較小,遠遠不能滿足實際系統(tǒng)的應(yīng)用需求。因此,在單片機應(yīng)用系統(tǒng)中需要擴展外部的存儲器,包括程序存儲器和數(shù)據(jù)存儲器。本節(jié)將著重討論如何擴展外部程序存儲器和數(shù)據(jù)存儲器。單片機原理及接口技術(shù)6.2.1存儲器擴展中應(yīng)考慮的問題
在MCS-51單片機系統(tǒng)中,CPU對存儲器進行訪問時,首先要在地址總線上給出地址信號,選擇要進行數(shù)據(jù)交換的存儲單元,然后通過控制總線發(fā)出相應(yīng)的讀或?qū)懣刂菩盘?,最后在?shù)據(jù)總線上進行信息的傳送。因此,存儲器的擴展主要包括地址線的連接、數(shù)據(jù)線的連接和控制線的連接。在連接的過程中應(yīng)充分考慮如下的幾個問題。
1.選取存儲器芯片的原則2.工作速度的匹配3.片選信號和地址分配4.地址譯碼方式單片機原理及接口技術(shù)1.選取存儲器芯片的原則單片機對存儲器的擴展包括程序存儲器和數(shù)據(jù)存儲器的擴展。程序存儲器主要用于存儲一些固定的程序和常數(shù),以便系統(tǒng)一開機便可按照預(yù)定的程序工作。常用的程序存儲器有掩模ROM、PROM、EPROM和E2PROM四種類型。若單片機系統(tǒng)是小批量生產(chǎn)或研制中的產(chǎn)品,則建議采用EPROM或E2PROM芯片,以方便系統(tǒng)程序的調(diào)試與修改;若系統(tǒng)為定型的大批量產(chǎn)品,則應(yīng)采用掩模ROM或PROM,以降低生產(chǎn)的成本和提高系統(tǒng)可靠性。數(shù)據(jù)存儲器主要用來存放實時數(shù)據(jù),運算的中間和最終結(jié)果。數(shù)據(jù)存儲器按照存儲信息的工作原理可分為靜態(tài)RAM和動態(tài)RAM兩種類型。若單片機系統(tǒng)所需RAM的容量較小,則宜采用靜態(tài)RAM,以簡化硬件電路設(shè)計;若所需RAM的容量比較大,則應(yīng)采用動態(tài)RAM,以降低生產(chǎn)成本。單片機原理及接口技術(shù)2.工作速度的匹配MCS-51單片機對外部存儲器進行讀寫所需要的時間稱之為CPU的訪存時間,是指它向外部存儲器發(fā)出地址碼和讀寫信號到讀出數(shù)據(jù)或保持寫入數(shù)據(jù)所需的時間。存儲器的最大存取時間是存儲器的固有時間,只與存儲器硬件有關(guān)。為了使MCS-51單片機與存儲器同步而可靠的工作,必須要使CPU的訪存時間大于外部存儲器的最大存取時間,這在存儲器芯片選擇時必須要加以注意。單片機原理及接口技術(shù)3.片選信號和地址分配
在確定外部RAM和ROM容量與存儲器芯片的型號和數(shù)量以后,還必須解決存儲器的編址問題。MCS-51單片機地址總線的位數(shù)為16位,可擴展存儲器的最大容量為64KB。在實際應(yīng)用系統(tǒng)中,會給每個芯片分配一定的地址空間,這些地址空間被分配的位置由片選信號來決定。若存儲器芯片所分配的地址范圍不同,則地址總線與地址譯碼器的連接方式也不同。單片機原理及接口技術(shù)4.地址譯碼方式
為了便于分析,可將單片機的地址線劃分為片內(nèi)地址線和片選地址線兩部分。片內(nèi)地址線定義為單片機直接(或通過外部地址鎖存器)和所選存儲器芯片的地址輸入端相連接的那部分地址線;片選地址線定義為除片內(nèi)地址線以外的其余地址線。(1)全譯碼全譯碼是指所有的片選地址線都參與譯碼的工作方式。(2)部分譯碼部分譯碼是指只有一部分片選地址線參與譯碼、而其余片選地址線懸空的地址譯碼方式。(3)線選法譯碼線選法譯碼是指片選地址線和存儲器芯片的芯片選擇信號直接或通過邏輯門電路相連的工作方式。單片機原理及接口技術(shù)6.2.2存儲器的并行擴展1.程序存儲器的擴展
MCS-51單片機的程序存儲器空間、數(shù)據(jù)存儲器空間是相互獨立的。程序存儲器尋址空間為64K字節(jié)(0000H~FFFFH),其中8031無片內(nèi)ROM,8051、8751片內(nèi)包含有4K字節(jié)的ROM、EPROM。當(dāng)使用8031或片內(nèi)ROM容量不夠時,需要擴展程序存儲器,通常利用外接EPROM芯片的方法擴展程序存儲器。MCS-51單片機和程序存儲器擴展相關(guān)的控制信號有兩個:地址鎖存控制信號ALE和外部程序存儲器讀控制信號PSEN。ALE用作低8位地址鎖存器的選通脈沖輸出端,以便把P0口分時提供的地址信息的低8位鎖存起來。PSEN為外部程序存儲器的讀控制命令,用于控制對外部程序存儲器的讀出操作。單片機原理及接口技術(shù)
外部程序存儲器一般可選用EPROM或E2PROM芯片,如2764(8K×8位)、27128(16K×8位)及2817(2K×8位)、2864(8K×8位)等。這些ROM芯片與單片機的連接僅在高位地址總線位數(shù)方面有些微小的差別,作為低8位地址鎖存用的鎖存器一般選用74LS373。(1)MCS-51單片機與EPROM的連接8031和兩片27128的連接電路如圖6-25所示。由于27128的存儲容量為16KB,即有14根地址線和8根數(shù)據(jù)線。因此,8031的P2.5~P2.0和經(jīng)過鎖存后的P0.7~P0.0作為片內(nèi)地址線,直接與兩片27128的地址線A13~A0相連;P0.7~P0.0作為數(shù)據(jù)線也和兩片27128的數(shù)據(jù)線相連。P2.7和P2.6作為片選地址線對芯片進行選擇,在這里利用74LS139進行全地址譯碼。8031的PSEN和27128的OE相接,以便CPU尋指或執(zhí)行MOVC指令時產(chǎn)生低電平對27128進行讀出控制。單片機原理及接口技術(shù)
根據(jù)地址范圍的定義,即在片選地址線不變的條件下,所有的片內(nèi)地址線從全“0”變到全“1”時的地址空間。因此,可以得到27128的地址范圍為271281#:0000000000000000B~0011111111111111B=0000H~3FFFH271282#:0100000000000000B~0111111111111111B=4000H~7FFFH因為所有的片選地址線都參與了地址譯碼,沒有懸空的片選地址線,所以內(nèi)存單元和地址是一一對應(yīng)的,不存在地址重疊。圖6-258031和27128的連接圖單片機原理及接口技術(shù)(2)MCS-51單片機對E2PROM的連接E2PROM是電可擦除可編程只讀存儲器,除了保留EPROM掉電后信息不丟失的特征外,還具備在線更新所存信息的功能。2864A是容量為8KB的E2PROM芯片,具有字節(jié)寫入和頁面寫入兩種寫入方式。頁面寫入主要是為提高寫入速度而安排的,但頁面寫入需要按2864A芯片的要求進行。8031與兩片2864A的連接電路如圖6-26所示。在與單片機的連接中,2864A既可連接成數(shù)據(jù)存儲器,也可連接成程序存儲器。這里采用了將外部程序存儲器空間和數(shù)據(jù)存儲器空間合并的連接方法,即將PSEN信號和RD信號相與后的輸出作為存儲器的輸出允許信號,WR信號則直接和2864A的寫允許WE相連。這樣兩片2864A既可以作為程序存儲器,又可作為數(shù)據(jù)存儲器使用。CPU可使用MOVC或MOVX指令訪問2864A進行讀寫操作。單片機原理及接口技術(shù)由圖可見,由于采用部分地址譯碼方式,因此根據(jù)基本地址范圍的定義,即懸空的片選地址線P2.7為低電平時的地址范圍,2864A的基本地址范圍為28641#:0000H~1FFFH28642#:2000H~3FFFH重疊的地址范圍定義為未參加譯碼的片選地址線任意取值后的芯片地址范圍,因此2864A的重疊地址范圍為28641#:0000H~1FFFH或8000H~9FFFH28642#:2000H~3FFFH或A000H~BFFFH圖6-268031和2864A的連接圖單片機原理及接口技術(shù)2.數(shù)據(jù)存儲器的擴展
MCS-51單片機內(nèi)部有128個字節(jié)的RAM存儲器,主要用作工作寄存器、堆棧區(qū)和數(shù)據(jù)緩沖區(qū)。在單片機用于實時數(shù)據(jù)采集和處理時,僅靠片內(nèi)提供的128個字節(jié)的數(shù)據(jù)存儲器是不夠的,還必須擴展外部數(shù)據(jù)存儲器,以滿足系統(tǒng)需求。MCS-51單片機擴展外部數(shù)據(jù)存儲器所用的地址總線、數(shù)據(jù)總線與擴展外部程序存儲器時相同,只有讀寫控制線是不同的。MCS-51單片機與數(shù)據(jù)存儲器擴展相關(guān)的控制信號有三個,它們是分別由P3.7和P3.6提供的RD、WR控制信號,以及地址鎖存控制信號ALE,用于實現(xiàn)對外部數(shù)據(jù)存儲器的讀寫操作及地址鎖存控制。單片機原理及接口技術(shù)
外部數(shù)據(jù)存儲器有靜態(tài)RAM和動態(tài)RAM兩種。
靜態(tài)RAM工作速度快,與單片機接口簡單,但是成本比較高,功耗大。常用的靜態(tài)RAM芯片有6116(2K×8位)、6264(8K×8位)和62256(32K×8位)等。
動態(tài)RAM具有成本低、功耗小的優(yōu)點,適用于大容量數(shù)據(jù)存儲器空間的場合,但是需要刷新電路,以保持數(shù)據(jù)信息不丟失。常用的動態(tài)RAM芯片有2186/2187(8K×8位)、2114(1K×4位)和2164(64K×1位)等。單片機原理及接口技術(shù)
8031和兩片6264的連接電路如圖6-27所示。由于6264與2864A引腳完全兼容,圖中6264也可用2864A替換,使得2864A被擴展成外部數(shù)據(jù)存儲器,掉電后所存信息不會丟失,只是寫入時間較長。如前分析,可以得到兩片6264的地址范圍為62641#:2000H~3FFFH62642#:4000H~5FFFH圖6-278031和6264的連接電路圖單片機原理及接口技術(shù)3.程序存儲器和數(shù)據(jù)存儲器的同時擴展
在實際的應(yīng)用系統(tǒng)設(shè)計中,多數(shù)情況下既需要擴展程序存儲器,又需要擴展數(shù)據(jù)存儲器。此時,數(shù)據(jù)總線和地址總線是共用的,適當(dāng)?shù)匕?4KB的外部數(shù)據(jù)存儲器空間和64KB的外部程序存儲器空間分配給各個芯片,使程序存儲器和數(shù)據(jù)存儲器各芯片之間的地址不發(fā)生重疊。控制總線是完全不同的,必須分別進行連接,從而避免單片機在讀/寫外部存儲器時發(fā)生數(shù)據(jù)沖突。單片機原理及接口技術(shù)
8031和外部RAM、ROM的連接電路如圖6-28所示。圖中采用兩片6264和一片27128分別擴展16KB數(shù)據(jù)存儲器和16KB程序存儲器。單片機對程序存儲器的讀操作由PSEN來控制,而對數(shù)據(jù)存儲器的讀/寫操作則分別由RD和WR控制。
從圖中地址線的連接可以得到27128的地址范圍是0000H~3FFFH;由于兩片6264采用部分地址譯碼方式(P2.5未使用),因此可以得到兩片6264的基本地址范圍(P2.5=0)分別為62641#:0000H~1FFFH62642#:4000H~5FFFH圖6-288031和RAM、ROM的連接電路圖單片機原理及接口技術(shù)6.2.3存儲器的串行擴展串行總線擴展接線靈活,很容易形成用戶的模塊化結(jié)構(gòu),同時還將極大地簡化系統(tǒng)結(jié)構(gòu)。目前有許多串行接口器件,如串行E2PROM、串行ADC/DAC、串行時鐘芯片等等。其中串行E2PROM是在各種串行器件應(yīng)用中使用較為頻繁的器件。它具有體積小、引線少以及與MCS-51單片機連接線路簡單的優(yōu)點,因此得到廣泛的應(yīng)用,常用于儀器儀表中存放重要的數(shù)據(jù)。在新型單片機中,實用的串行總線擴展接口有Motorola公司的SPI總線,NS公司的MICROWIRE/PLUS總線和PHLIPS公司的I2C總線。其中I2C總線具有標(biāo)準(zhǔn)的規(guī)范,以及眾多的帶I2C接口的外圍器件,形成了較為完善的串行擴展總線。這里以ATMEL公司的I2C總線AT24CXX系列存儲器芯片為例,介紹MCS-51單片機擴展串行E2PROM的接口方法。
單片機原理及接口技術(shù)1.I2C總線
I2C串行總線具有兩條總線線路:串行數(shù)據(jù)線SDA和串行時鐘線SCL,可以進行數(shù)據(jù)的發(fā)送和接收。所有連接到I2C總線上的設(shè)備的串行數(shù)據(jù)線都接到總線的SDA線上,而各設(shè)備的時鐘信號均接到總線的SCL線上,典型的I2C總線結(jié)構(gòu)如圖6-30所示。圖6-30典型的I2C總線結(jié)構(gòu)單片機原理及接口技術(shù)(1)I2C總線的工作原理
I2C總線是一個多主機總線,也就是說I2C總線協(xié)議允許接入多個器件,并支持多主機工作。總線中的主器件一般由微控制器組成,可以啟動數(shù)據(jù)的傳送,并產(chǎn)生時鐘脈沖信號,以允許與被尋址的器件即從器件進行數(shù)據(jù)的傳送。被主機尋址的設(shè)備叫從機,可以是微控制器、存儲器、LED等器件。I2C總線允許有多個微控制器,但不能同時控制總線成為主器件。如果有兩個或兩個以上的主機企圖占有總線,就會產(chǎn)生總線競爭,競爭成功的器件成為主器件,其它器件則退出。
為了進行通信,每個接到I2C總線上的設(shè)備都有一個唯一的地址,以便于主機進行尋訪。I2C總線是雙向的I/O總線,通過上拉電阻接正電源。各個器件構(gòu)成的節(jié)點之間通過數(shù)據(jù)線相互發(fā)送或接收串行碼,時鐘信號則起到同步作用,根據(jù)它來判斷的起始、終止以及有效性等。當(dāng)總線空閑時,兩根線都處于高電平狀態(tài)。單片機原理及接口技術(shù)(2)I2C總線的通信時序
I2C總線上主機和從機之間一次傳送的數(shù)據(jù)稱為一幀,是由啟動信號、若干個數(shù)據(jù)字、應(yīng)答位和停止信號組成。其通信時序如圖6-31所示。圖6-31I2C總線工作時序圖單片機原理及接口技術(shù)2.AT24CXX系列芯片(1)AT24CXX的引腳功能A2、A1、A0:芯片選擇端。它們分別接高電平或接地,與寫入控制字節(jié)中的A2,A1,A0配合實現(xiàn)芯片的選擇。由此可見,一個系統(tǒng)中最多可以有8片AT24CXX。SCL:串行時鐘線。用于輸入串行時鐘信號,漏極開路,需要外接上拉電阻。SDA:串行數(shù)據(jù)/地址傳輸線。作為雙向數(shù)據(jù)線傳送串行數(shù)據(jù)或者地址,開漏輸出,需要外接上拉電阻。WP:寫保護端。當(dāng)WP為高電平時,對芯片進行寫保護,數(shù)據(jù)只能讀出不能寫入;當(dāng)WP為低電平時,數(shù)據(jù)既能讀出又能寫入。Vcc:電源端。單片機原理及接口技術(shù)(2)AT24CXX的控制字節(jié)在起始位以后,I2C總線的主器件送出8位控制字節(jié)。表6-4控制字節(jié)結(jié)構(gòu)控制字節(jié)的高4位是從器件的類型識別碼位,I2C總線協(xié)議規(guī)定若從器件為串行E2PROM,則這4位碼為1010??刂谱止?jié)的A2,A1,A0用于作為芯片選擇或片內(nèi)塊選擇位,I2C總線協(xié)議允許選擇16KB的存儲器,如表6-5所示??刂谱止?jié)的A2,A1,A0的選擇必須與外部引腳的硬件連接或內(nèi)部的塊選擇匹配??刂谱止?jié)的最低位為讀寫控制位,該位為1即是讀控制字節(jié),該位為0即是寫控制字節(jié)。單片機原理及接口技術(shù)表6-5AT24CXX的A2,A1,A0單片機原理及接口技術(shù)3.AT24CXX的應(yīng)用(1)硬件連接電路
MCS-51單片機和AT24C16的硬件連接如圖6-34所示。因為MCS-51單片機片內(nèi)無I2C總線,需要用模擬I2C總線的方法來完成通信。這里采用P1.0作為串行時鐘線SCL,P1.1作為串行數(shù)據(jù)線SDA。圖6-34MCS-51單片機與AT24C16接口電路
由于共有3條地址線,在同一組I/O線上只能掛接8片這樣的從器件??偩€上每一個從器件都必須使其地址輸入A2,A1,A0的硬件連接確定意義的地址。在圖6-34中,AT24C161#的A2,A1,A0引腳都接地,所以其地址為000H,同理可得AT24C162#的地址為001H。單片機原理及接口技術(shù)(2)模擬I2C總線的軟件編程模擬I2C總線編程,實際上就是用軟件分別控制SCL和SDA,達到模擬I2C總線協(xié)議的效果。假設(shè)單片機的主頻為6MHz,可以將常用的程序段編制成子程序,主要包括發(fā)送開始條件、發(fā)送應(yīng)答位、檢查應(yīng)答位、單字節(jié)數(shù)據(jù)發(fā)送、單字節(jié)數(shù)據(jù)接收以及發(fā)送停止條件子程序。多字節(jié)的數(shù)據(jù)傳送可以通過子程序調(diào)用的方法來實現(xiàn)。若單片機的主頻不是6MHz,則要相應(yīng)的增刪各程序段中NOP指令的條數(shù),以滿足時序的要求。主要步驟:1)發(fā)送開始條件子程序;2)發(fā)送應(yīng)答位子程序;3)發(fā)送反向應(yīng)答位子程序;4)檢查應(yīng)答位子程序;5)單字節(jié)發(fā)送子程序;6)單字節(jié)接收子程序;7)發(fā)送停止條件子程序單片機原理及接口技術(shù)6.3系統(tǒng)擴展技術(shù)6.3.1并行I/O接口的擴展及應(yīng)用
6.3.2可編程串行顯示接口芯片MAX7219及擴展應(yīng)用
單片機原理及接口技術(shù)概述MCS-51單片機共有4個8位并行I/O口,這些I/O口一般不能完全供用戶使用。只有當(dāng)單片機帶有片內(nèi)程序存儲器且不需要進行外部擴展時,才允許這4個I/O口作為用戶I/O口使用。但是在有些情況下,即使4個I/O口全部使用,也不能滿足要求。此時需要對單片機應(yīng)用系統(tǒng)進行I/O口擴展。MCS-51單片機的外部RAM和擴展的I/O口是統(tǒng)一編址的,因此外部RAM的64KB空間的地址可任意作為擴展I/O口的地址使用。每個I/O口相當(dāng)于一個RAM單元,CPU用訪問外部RAM相同的指令,對擴展的I/O口進行讀寫操作。單片機原理及接口技術(shù)6.3.1并行I/O接口的擴展及應(yīng)用1.簡單的I/O口擴展通過前面的學(xué)習(xí)可知,MCS-51單片機的P0~P3口具有輸入數(shù)據(jù)可以緩沖、輸出數(shù)據(jù)可以鎖存的功能,并且具有一定的負載驅(qū)動能力。在某些簡單應(yīng)用的場合,I/O口可直接與外設(shè)相連接,例如非編碼鍵盤、發(fā)光二極管等。當(dāng)需要擴展I/O口時,為了降低成本、縮小體積,可以采用TTL、CMOS電路鎖存器或三態(tài)緩沖器構(gòu)成各種類型的簡單I/O接口電路。擴展I/O接口電路的數(shù)據(jù)線一般接在數(shù)據(jù)總線上,即P0口。I/O口的選通信號一般由地址譯碼產(chǎn)生。通常,I/O口擴展的芯片有74LS373、74LS273、74LS244和74LS245等。單片機原理及接口技術(shù)2.利用可編程接口芯片進行I/O口擴展可編程接口芯片是指其功能可由計算機指令進行改變的接口芯片。常用的可編程接口芯片有定時/計數(shù)器8253,中斷控制器8259,串行接口芯片8251,并行接口芯片8255、8155等。下面以8155為例來說明可編程接口芯片的使用。(1)Intel8155引腳及功能Intel8155是可編程RAM/IO芯片,為40腳雙列直插式封裝。它有256×8位靜態(tài)RAM,2個8位和1個6位可編程并行I/O接口,以及1個14位可編程減一定時/計數(shù)器。它可直接與MCS-51單片機相連接,圖6-36和圖6-37分別給出了8155芯片的引腳分布和內(nèi)部結(jié)構(gòu)。圖6-368155引腳圖圖6-378155的結(jié)構(gòu)框圖單片機原理及接口技術(shù)AD0~AD7:三態(tài)地址/數(shù)據(jù)總線,連接單片機的低8位地址/數(shù)據(jù)總線。IO//M:RAM/IO口選擇信號輸入端。當(dāng)IO//M=0時,選中8155的片內(nèi)RAM,AD0~AD7為RAM的地址或數(shù)據(jù);當(dāng)IO//M=1時,選中8155的片內(nèi)3個I/O端口以及命令/狀態(tài)寄存器和定時/計數(shù)器,AD0~AD7為I/O口地址或數(shù)據(jù),其地址分配如表6-6所示。/CE:片選信號輸入端,低電平有效。ALE:地址鎖存允許信號輸入端。由ALE下降沿將AD0~AD7上的地址、CE及IO//M狀態(tài)鎖存到片內(nèi)鎖存器。/RD:讀選通信號輸入端,低電平有效。/WR:寫選通信號輸入端,低電平有效。RESET:復(fù)位信號輸入端,高電平有效。當(dāng)RESET線上輸入寬度大于600ns的正脈沖時,8155將復(fù)位,控制字被清零,初始化3個I/O口為輸入方式,計數(shù)/定時器停止工作。單片機原理及接口技術(shù)PA0~PA7:A口的I/O線,I/O方向由命令字編程設(shè)定。PB0~PB7:B口的I/O線,I/O方向由命令字編程設(shè)定。PC0~PC5:C口的I/O線,或A口和B口的狀態(tài)控制信號線,由命令字編程設(shè)定。TI:定時/計數(shù)器的輸入端。TO:定時/計數(shù)器的輸出端,選擇不同的工作模式,可輸出方波或脈沖。VCC:+5V電源線。Vss:接地端。單片機原理及接口技術(shù)表6-68155端口地址分布表單片機原理及接口技術(shù)(2)8155與MCS-51單片機的典型接口電路
圖6-38為8155與MCS-51單片機的典型接口電路。當(dāng)P2.7=0,P2.0=0時,選中8155片內(nèi)256字節(jié)的RAM單元,地址范圍為0000H~00FFH(無關(guān)的地址線設(shè)為0);當(dāng)P2.7=0,P2.0=1時,選中8155內(nèi)的I/O端口,端口地址分別為命令/狀態(tài)口:7FF8H(無關(guān)的地址線設(shè)為1)A口:7FF9HB口:7FFAHC口:7FFBH定時/計數(shù)器低8位口:7FFCH定時/計數(shù)器高8位口:7FFDH圖6-38MCS-51單片機與8155的接口電路單片機原理及接口技術(shù)(3)讀寫8155片內(nèi)RAM對MCS-51單片機來說,8155片內(nèi)256BRAM屬于片外RAM,應(yīng)使用MOVX指令進行讀寫。(4)8155的控制字和狀態(tài)字1)8155的I/O工作方式選擇是通過對內(nèi)部控制寄存器送控制命令來實現(xiàn)的。控制寄存器只能寫入不能讀出,其控制字格式如圖6-39所示。各位定義如下:PA:A口數(shù)據(jù)傳送方向控制位。0:輸入;1:輸出。PB:B口數(shù)據(jù)傳送方向控制位。0:輸入;1:輸出。PC2、PC1:C口工作方式設(shè)置位。其具體方式如表6-7所示。圖6-398155控制字格式單片機原理及接口技術(shù)表6-78155C口工作方式IEA:A口中斷允許設(shè)置位。0:禁止;1:允許。IEB:B口中斷允許設(shè)置位。0:禁止;1:允許。TM2、TM1:定時/計數(shù)器工作方式設(shè)置位。其具體方式如表6-8所示。表6-8定時/計數(shù)器工作方式單片機原理及接口技術(shù)2)8155的狀態(tài)寄存器與控制寄存器共用一個端口地址,但只能讀出不能寫入,其狀態(tài)字格式如圖6-40所示。各位定義如下:INTRi:中斷請求標(biāo)志。此處i表示A或B。INTRi=1,表示A口或B口有中斷請求;INTRi=0,表示A口或B口無中斷請求。Bfi:緩沖器滿/空標(biāo)志。BFi=1,表示緩沖器已裝滿數(shù)據(jù);BFi=0,表示緩沖器空。INTEi:中斷允許標(biāo)志。INTEi=1,表示A口或B口允許中斷;INTEi=0,表示A口或B口禁止中斷。TIMER:定時器溢出中斷標(biāo)志。TIMER=1,有定時器溢出中斷;TIMER=0,讀狀態(tài)字后或硬件復(fù)位后。圖6-408155狀態(tài)字格式單片機原理及接口技術(shù)(5)8155I/O工作方式1)基本I/O方式在基本I/O方式下,A、B、C三個端口均用作數(shù)據(jù)輸入或輸出口,由8155的工作方式控制字決定。2)選通I/O方式A口、B口均可工作在選通方式下,此時A口、B口用作數(shù)據(jù)口,C口用作A口和B口的聯(lián)絡(luò)控制。C口各位聯(lián)絡(luò)線的定義和命名如表6-9所示。表6-9C口各位聯(lián)絡(luò)線在選通方式下的定義單片機原理及接口技術(shù)(6)8155定時/計數(shù)器
8155的可編程定時/計數(shù)器在功能上與MCS-51單片機內(nèi)部的定時/計數(shù)器是相同的,但是在使用上卻不完全相同,具體表現(xiàn)在以下幾個方面:1)8155的可編程定時/計數(shù)器實際上是一個固定的14位減法計數(shù)器。2)不論是定時還是計數(shù)工作,都由外部提供計數(shù)脈沖,由TI端輸入。使用時需要注意芯片允許的最高計數(shù)頻率,8155允許從TI引腳輸入脈沖的最高頻率為4MHz。3)計數(shù)溢出時,由TO端輸出脈沖或方波,輸出波形通過軟件可定義為4種形式。使用時,先把計數(shù)初值和輸出方式裝入定時/計數(shù)器的兩個寄存器。計數(shù)初值為2~3FFFH之間的任意值,然后通過發(fā)送控制命令(控制寄存器最高兩位)控制啟動和停止。當(dāng)計數(shù)初值為奇數(shù)時,若輸出為方波,則高電平比低電平多一個計數(shù)值。當(dāng)計數(shù)器正在計數(shù)時,允許裝入新的計數(shù)方式和初值,但必須再向定時/計數(shù)器發(fā)一個啟動命令。單片機原理及接口技術(shù)例6-10如圖6-38所示,編寫子程序?qū)腡I引腳的輸入脈沖24分頻后從8155輸出。TMER:MOVDPTR,#7FF8H;控制口
MOVA,#11000000BMOVX@DPTR,A;初始化
MOVDPTR,#7FFCH;計數(shù)器低8位
MOVA,#24MOVX@DPTR,AINCDPTR;計數(shù)器高8位
MOVA,#01000000B;連續(xù)方波
MOVX@DPTR,ARET
在實際應(yīng)用中,有時會利用8155或8255實現(xiàn)鍵盤/顯示接口電路,如圖6-42所示。8155與MCS-51單片機的接口見圖6-38所示。8155的PB口為輸出口,控制顯示器字形;PA口為輸出口,控制鍵盤掃描作為掃描口,同時又是控制6位LED數(shù)碼管的位選線;PC口為輸入口,作為鍵盤掃描時的輸入口。單片機原理及接口技術(shù)圖6-428155實現(xiàn)的鍵盤/顯示接口電路單片機原理及接口技術(shù)
編寫程序時采用定時的方法對鍵盤和顯示器進行掃描,掃描時間設(shè)為15ms,即每隔15ms中斷一次,在中斷服務(wù)程序中進行鍵盤掃描和顯示調(diào)用。顯示子程序為循環(huán)顯示方式,6位數(shù)據(jù)全部顯示一遍的執(zhí)行時間為6ms,可以在鍵盤識別中調(diào)用兩次顯示子程序作為消抖時間。在等待按鍵釋放時,可以調(diào)用一次判斷按鍵是否釋放,以保證顯示的連續(xù)性。定時掃描鍵盤/顯示程序流程如圖6-43所示。圖6-43定時掃描鍵盤/顯示程序流程圖單片機原理及接口技術(shù)6.3.2可編程串行顯示接口芯片MAX7219及擴展應(yīng)用
常用的數(shù)碼管顯示驅(qū)動芯片有8279和MAX7219,前者因近年來停產(chǎn)和連接電路復(fù)雜而應(yīng)用較少;后者因使用方便靈活,連線簡單,不占用數(shù)據(jù)存儲器空間等優(yōu)點,獲得了較為廣泛的應(yīng)用。MAX7219是美國MAXIM公司生產(chǎn)的串行輸入、共陰極顯示輸出的驅(qū)動控制器。它采用CMOS工藝,內(nèi)部集成了數(shù)據(jù)保持、BCD譯碼器、多路掃描器、段驅(qū)動器和位驅(qū)動器。每片MAX7219最多可同時驅(qū)動8個LED數(shù)碼管、條形圖顯示器或64只發(fā)光管。
單片機原理及接口技術(shù)MAX7219的主要特點如下:1)采用三線串行傳送數(shù)據(jù),僅用3個引腳與單片機的相應(yīng)端連接即可,串行數(shù)據(jù)傳送速率高達10MHz,還可以級聯(lián)使用。2)內(nèi)部具有8字節(jié)顯示靜態(tài)RAM(稱為數(shù)字寄存器)和6個控制寄存器,可單獨尋址和更新內(nèi)容,具有譯碼和不譯碼兩種顯示模式。3)上電時所有LED熄滅,正常工作時通過外接電阻或編程方式調(diào)節(jié)LED亮度。4)最大功耗為0.87W,具有150μA電流的低功耗關(guān)斷模式。MAX7219和LED數(shù)碼管直接連接時,不需要外加驅(qū)動器和限流電阻、譯碼器、鎖存器和其他硬件電路。MAX7219還可以級聯(lián)使用,驅(qū)動更多的LED數(shù)碼管,且不必額外占用單片機口線。由于MAX7219集成度高,驅(qū)動能力強,亮度可調(diào),編程容易,與單片機接口十分簡單,占用單片機的端口資源少,現(xiàn)已成為單片機應(yīng)用系統(tǒng)中首選的LED顯示接口電路。
單片機原理及接口技術(shù)1.MAX7219引腳功能
MAX7219采用24腳雙列直插式封裝形式,引腳排列如圖6-44所示,各引腳功能如下:DIN:串行數(shù)據(jù)輸入端。在時鐘周期的上升沿將數(shù)據(jù)逐位送入內(nèi)部16位移位寄存器,在CLK的上升沿到來之前,DIN必須有效。DIG0~DIG7:顯示器位控制端。分別接至8位共陰極LED數(shù)碼管的陰極,從顯示器灌入電流。GND:信號地。兩個接地引腳都應(yīng)接地。LOAD:數(shù)據(jù)鎖存脈沖輸入端,在其上升沿處鎖存16位串行輸入數(shù)據(jù)。CLK:串行數(shù)據(jù)移位脈沖輸入端,具有10MHz的最大速率,在其上升沿處數(shù)據(jù)移入內(nèi)部移位寄存器。圖6-44MAX7219引腳圖單片機原理及接口技術(shù)
SEGa~SEGg、SEGdp:七段段碼和小數(shù)點輸出端。ISET:外接電阻端。與V+之間連接有一個電阻,以設(shè)置峰值段電流。V+:供電電壓(4V~5.5V)。典型值為5V。DOUT:串行數(shù)據(jù)輸出端。輸入DIN的數(shù)據(jù)經(jīng)16.5個時鐘周期后,在DOUT正確輸出。用作MAX7219的級聯(lián)擴展。單片機原理及接口技術(shù)2.串行數(shù)據(jù)格式與工作時序
MAX7219內(nèi)部的16位移位寄存器數(shù)據(jù)格式見表6-11。其中D0~D7為控制命令或待顯示數(shù)據(jù),D8~D11為寄存器地址,D12~D15為無關(guān)位,可取任意值。每組16位數(shù)據(jù)中,首先接收數(shù)據(jù)的最高有效位,最后接收數(shù)據(jù)的最低有效位。表6-11M2、M1位輸出方式定義
MAX7219的工作時序如圖6-45所示。DIN是串行數(shù)據(jù)輸入端,在CLK時鐘作用下,串行數(shù)據(jù)依次從DIN端輸入到內(nèi)部16位移位寄存器。在CLK的每個上升沿,均有一位數(shù)據(jù)由DIN移入到內(nèi)部移位寄存器。單片機原理及接口技術(shù)
LOAD用來鎖存輸入的數(shù)據(jù)。在LOAD的上升沿,移位寄存器中的16位數(shù)據(jù)被鎖存到MAX7219內(nèi)部的控制或數(shù)據(jù)寄存器中。LOAD的上升沿必須在第16個CLK時鐘上升沿的同時或之后,且在下一個CLK時鐘上升沿之前產(chǎn)生,否則輸入的數(shù)據(jù)將會丟失。LOAD引腳由低電平變?yōu)楦唠娖綍r,串行數(shù)據(jù)在LOAD上升沿的作用下方可鎖存到MAX7219的寄存器中,因此LOAD又可稱為片選端。圖6-457219工作時序圖單片機原理及接口技術(shù)3.MAX7219內(nèi)部寄存器MAX7219內(nèi)部有14個8位寄存器,其中:8個顯示數(shù)據(jù)寄存器,用于存放DIG0~DIG7對應(yīng)的顯示數(shù)據(jù),地址為X1H~X8H;6個控制寄存器,即譯碼模式控制寄存器、顯示亮度控制寄存器、掃描頻率限制寄存器、關(guān)斷(消隱)模式寄存器、顯示測試寄存器及空操作寄存器,其地址依次為X9H~XCH、XFH、X0H。
(1)譯碼模式控制寄存器(地址X9H)MAX7219具有BCD碼譯碼模式和非譯碼模式。譯碼模式寄存器的字節(jié)數(shù)據(jù)各位分別對應(yīng)著8個LED數(shù)碼管,如表6-12所示。若該位為1,則對應(yīng)位LED顯示為譯碼模式;若該位為0,則對應(yīng)位LED顯示為非譯碼模式。表6-12譯碼模式寄存器數(shù)據(jù)位與顯示LED對應(yīng)關(guān)系單片機原理及接口技術(shù)
MAX7219在BCD譯碼顯示模式中,數(shù)據(jù)寄存器中存儲的數(shù)據(jù)為00H~0FH,這時的數(shù)碼顯示如表6-13所列。
非譯碼模式也稱段選碼模式,其數(shù)據(jù)寄存器中的數(shù)據(jù)位D7~D0分別對應(yīng)于LED數(shù)碼管的dp、a~g段。若某位為1,則對應(yīng)段點亮,D7~D0與LED各段驅(qū)動關(guān)系如表6-14所示。表6-13譯碼模式代碼字符表表6-14非譯碼模式下數(shù)字寄存器數(shù)據(jù)和對應(yīng)段線數(shù)據(jù)寄存器數(shù)據(jù)位D7D6D5D4D3D2D1D0對應(yīng)的段dpabcdefg單片機原理及接口技術(shù)(2)顯示亮度控制寄存器(地址XAH)
MAX7219可用外接電阻調(diào)節(jié)LED亮度(稱為亮度模擬控制),外部電阻RSET連接在電源V+和ISET端之間,用來控制段電流的峰值,即最大亮度。RSET既可以是固定的,也可以是可變的,由面板來進行亮度調(diào)節(jié)。RSET最小值為9.53kΩ。段電流也可用顯示亮度控制寄存器進行調(diào)節(jié)(稱為亮度數(shù)字控制),即利用寄存器的D3~D0位控制內(nèi)部脈寬調(diào)制器的占空比來控制LED段電流的平均值,以達到控制亮度的目的。當(dāng)D3~D0位從0變化到0FH時,占空比從1/32變化到31/32,共l6個控制等級,每級變化2/32。單片機原理及接口技術(shù)(3)掃描頻
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國門框料數(shù)據(jù)監(jiān)測研究報告
- 2025設(shè)計輕工輔料版合同
- 2025班組作業(yè)施工承包合同(砌筑)
- 2025修理修繕合同樣本
- 2025保安人員聘用合同樣式
- 工程基礎(chǔ)參數(shù)合同
- 2025年債權(quán)轉(zhuǎn)讓合同樣本
- 2025年包車訂購包粉粉面合同
- 個人借款合同模板2024
- 廚房抽油煙機銷售合同
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期期末考試 英語 含答案
- 電力工程施工安全風(fēng)險評估與防控
- 醫(yī)學(xué)教程 常見體表腫瘤與腫塊課件
- 內(nèi)分泌系統(tǒng)異常與虛勞病關(guān)系
- 智聯(lián)招聘在線測評題
- DB3418T 008-2019 宣紙潤墨性感官評判方法
- 【魔鏡洞察】2024藥食同源保健品滋補品行業(yè)分析報告
- 生豬屠宰獸醫(yī)衛(wèi)生檢驗人員理論考試題及答案
- 鋼筋桁架樓承板施工方案
- 2024年駐村第一書記工作總結(jié)干貨3篇
- 教室裝修施工計劃
評論
0/150
提交評論