版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第八章MCS-51與LED顯示器和鍵盤的接口
一、MCS-51與LED顯示器接口
常見的顯示器有CRT顯示器、LED顯示器、LCD顯示器
等。而LED顯示器是單片機應(yīng)用產(chǎn)品中最常用的廉價的
輸出設(shè)備,其可靠性很高。
1、顯示器的結(jié)構(gòu)
常用的顯示器結(jié)構(gòu)如圖所示:
A、共陽極顯示器
B、共陰極顯示器
2、顯示器的工作方式:
A、靜態(tài)顯示方式所謂靜態(tài)顯示,是指顯示器顯示一字符時,相應(yīng)的發(fā)光二極管恒定地導(dǎo)通或截止。這種顯示方式的每一個數(shù)碼顯示器,需要一個8位輸出口控制。所以硬件較多,但字符較亮。
a、采用8位鎖存器74LS273作為靜態(tài)顯示器接口
(1)接口電路:
b、采用移位寄存器74LS164作為靜態(tài)顯示器接口
(1)、使用串口TXD、RXD與74LS164連接
接口電路:
顯示程序:
顯示子程序:
MCS-51串行口工作于方式0輸出
顯示段碼:F9H顯‘1’
DIR:MOVR7,#08H
MOVR0,#5FH
DL0:MOVA,@R0
ADDA,#0BH
MOVCA,@A+PC
MOVSBUF,A2 DL1:JNBT1,DL13
CLRT12
DECR01
DJNZR7,DL02
RET1
TAB:DBC0H,F9H,A4H,B0H,99H
D7D6D5D4D3D2D1D0Dpgfedcba1100000011111001
…….
(2)、使用P口線與74LS164連接接口電路:顯示程序(作為練習(xí))
B、動態(tài)顯示方式
所謂動態(tài)顯示是指一位一位地輪流點亮各位顯示
器。對于每一位顯示器來說,每隔一段時間點亮一次,
通常點亮?xí)r間為1mS左右,相隔時間為20mS
a、6位共陰顯示器和8255的接口電路:
設(shè)8255的CS接P2.7
b、顯示程序的設(shè)計思路:(1)8255的端口地址與初始化:
8255的I/O端口地址為:7F00H-7F03H8255的控制字為:80H
注:A口作為位數(shù)據(jù)口,其輸出只能有一位為高。(2)顯示緩沖區(qū):設(shè)顯示緩沖區(qū)為40H-45H,它用來存放顯示數(shù)據(jù)。
(3)字形表:
TABDB3FH,06H,5BH,…
c、顯示子程序
顯示子程序流程圖:
c、顯示子程序:
DIR:MOVR0,#40HRLA
MOVR3,#01HMOVR3,A
MOVA,R3SJMPL0
L0:MOVDPTR,#7F00HL1:RET
MOVX@DPTR,ATABDB3FH,06H…
INCDPTR
MOVA,@R0
ADDA,#0DHDY1:MOVR7,#02H
MOVCA,@A+PCL2:MOVR6,#FFH
DIR1:MOVX@DPTR,AL3:DJNZR6,L3
ACALLDY1DJNZR7,L2
INCR0RET
MOVA,R3
JBACC.5,L1
d、時鐘顯示將30H(時)31H(分)32H(秒)單元中的時鐘數(shù)據(jù)顯示出來。顯示格式為:χχ.χχ.χχ
時分秒
將時鐘數(shù)據(jù)(30H-32H)送顯示緩沖區(qū)(40H-45H)
ST:MOVR0,#40HAHX:MOVR2,A
MOVA,30HSWAPA
ACALLAHXANLA,#0FH
INCR0MOV@R0,A
MOVA,31HINCR0
ACALLAHXMOVA,R2
INCR0ANLA,#0FH
MOVA,32HMOV@R0,A
ACALLAHXRET
RET
注:小數(shù)點顯示二、鍵盤接口
鍵盤是由若干個按鍵組成的開關(guān)矩陣,它是單
片機最簡單的輸入設(shè)備,操作員可以通過鍵盤輸入
數(shù)據(jù)或命令,實現(xiàn)人機通信。
1、鍵盤工作原理及鍵盤掃描程序設(shè)計思路:
一個4X4的鍵盤結(jié)構(gòu)如圖所示:
A、按鍵與否的判別
我們使所有行為低自列線讀入數(shù)據(jù),若列線中有一
位為低,則可判為有鍵按下,否則全為高為無鍵按下。
B、按鍵的識別
由于矩陣網(wǎng)絡(luò)上每一個鍵都可以由它所在的行與列
來定位。所以,我們可使第0行至第3行逐行為低,通過
讀入列數(shù)據(jù)來識別是何鍵按下。
例如:當(dāng)使行2為低,讀入列值時,其列1值為低,
則可判是鍵5按下。
C、鍵抖動及消除
鍵按下和釋放時存在著機械抖動,其對應(yīng)的列線電
壓波形如圖示,通常抖動時間為5-10mS。
為了保證CPU對鍵的閉合只作一次處理,必須消除抖動,通常增加一個10ms-20ms左右的延時程序,在鍵穩(wěn)定
閉合時才去讀取按值鍵。
D、鍵釋放處理通常采用等待鍵釋放后,再去進行鍵處理,但這種方法實時性差。較好的方法是建立一個按鍵標(biāo)志,該標(biāo)
志在鍵釋放后置0,鍵處理后置1。在進行鍵處理時,只有按鍵標(biāo)志為0時,才去進行鍵處理。
E、由鍵值求鍵號由于所得到的鍵值是一個不規(guī)則數(shù),為了得到一個規(guī)則數(shù)(即鍵號),應(yīng)當(dāng)將鍵值作成一個鍵值表,編一
個由項值求項號的查表程序,處于表首址的鍵值所對應(yīng)的鍵號為00H。
2、鍵盤接口電路
3、鍵盤掃描程序:
各按鍵對應(yīng)的鍵值與鍵號如下:鍵盤進行掃描管理的流程:
具體程序如下:
ST:MOVDPTR,#7F00HLK0:CLR00H MOVA,#00HLK1:MOVA,#FFH MOVX@DPTR,ARET INCDPTR
INCDPTR
MOVXA,@DPTR
CPLA
ANLA,#0FH
JNZLK2
LK2:ACALLDIR
ACALLDIR
MOVR2,#08H
MOVR3,#FEH
LK3:MOVDPTR,#7F00H
MOVA,R3
MOVX@DPTR,A
RLA
MOVR3,AINCDPTR
INCDPTR
MOVXA,@DPTR
CPLA ANLA,#0FHJNZLK4DJNZR2,LK3
SJMPLK0LK4:SWAPA
ORLA,R2
MOVB,A
JB00H,LK1
MOVDPTR,#TAB
MOVR3,#1FH
LK5:MOVA,R3
MOVCA,@A+DPTR
CJNEA,B,LK7LK6:SETB00H
MOVA,R3
RET
LK7:DJNZR3,LK5
SJMPLK6 TAB:DB88H,48H,47H,…三、7279可編程數(shù)碼管/鍵盤串行接口
HD7279A是一片數(shù)碼管/鍵盤串行接口芯片,其主要特性如下:
串行接口,無需外圍元件可直接驅(qū)動LED。
各位具有獨立控制譯碼/不譯碼及消隱和閃爍屬性。
具有(循環(huán))左移/(循環(huán))右移指令。
具有段尋址指令,方便控制獨立LED。
具有64鍵鍵盤控制器,內(nèi)含去抖動電路。
1、引腳說明:
CS:片選CLK:時鐘輸入端
DATA:串行數(shù)據(jù)入/出端CLK0:振蕩輸出端
KEY:按鍵有效輸出端RES:復(fù)位端
SG-SA:段g—段a驅(qū)動輸出DP:小數(shù)點驅(qū)動輸出
DIG0-7:數(shù)位0-7驅(qū)動輸出RC:RC振蕩器連接端
7279芯片與數(shù)碼管、鍵盤的接口電路如圖所示:
2、控制指令
HD7279A的控制指令分為二大類——純指令和帶
有數(shù)據(jù)的指令。
主要控制指令如下:
A、純指令
a、復(fù)位(清除)指令A(yù)4HD7D6D5D4D3D2D1D010100100
當(dāng)HD7279A收到該指令后,將所有的顯示清除,所有設(shè)置的字符消隱、閃爍等屬性也被一起清除。執(zhí)行該指令后,芯片所處的狀態(tài)與系統(tǒng)上電后所處的狀態(tài)一樣。
b、左移指令A(yù)1HD7D6D5D4D3D2D1D0101000014252LP39
例如,原顯示為:
其中第2位‘3’和第4位‘L’為閃爍顯示,執(zhí)行了左移指令后,顯示變?yōu)?252LP39第2位‘9’和第4位‘P’為閃爍顯示。
c、右移指令A(yù)0H
D7D6D5D4D3D2D1D010100000
與左移指令類似,但所做移動為自左向右(從第8位向第1位)移動,移動后,最左邊一位為空。
B、帶有數(shù)據(jù)的指令
a、下載數(shù)據(jù)且按方式0譯碼D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D010000a2a1a0DPXXXd3d2d1d0
命令由二字節(jié)組成,前半部分為指令,其中a2,a1,
a0為位地址。d0-d3為數(shù)據(jù),收到此指令時,按以下規(guī)
則進行譯碼。
0000:顯01001:顯9
1010:顯-1111:顯空白
小數(shù)點的顯示由DP位控制:
DP=1時,小數(shù)點顯示, DP=0時,小數(shù)點不顯示。
b、下載數(shù)據(jù)且按方式1譯碼D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D011001a2a1a0DPXXXd3d2d1d0
此指令與上一條指令其本相同,所不同的是譯碼式,該指令的譯碼為按d0—d3值對應(yīng)的是0—9,A~F。c、下載數(shù)據(jù)但不譯碼
D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D010010a2a1a0DPABCDEFG
其中,a2,a1,a0為位地址,A-G和DP為顯示數(shù)
據(jù),分別對應(yīng)7段LED數(shù)碼管的各段。當(dāng)相應(yīng)的數(shù)據(jù)位
為‘1’時,該段點亮,否則不亮。此指令靈活,通過造
字形表,可以顯示用戶所需的字符。d、閃爍控制88H
D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D010001000d8d7d6d5d4d3d2d1此命令控制各個數(shù)碼管的閃爍屬性,d1—d8分別對應(yīng)數(shù)碼管1-8。0=閃爍,1=不閃爍。開機后,缺省的狀態(tài)為各位均不閃爍。
e、讀鍵盤數(shù)據(jù)指令15H
D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D000010101d7d6d5d4d3d2d1d0
該指令從HD7279A讀出當(dāng)前的按鍵代碼。前一個字節(jié)15H為指令代碼,而后一個字節(jié)d0-d7則HD7279A返回的按鍵代碼,其范圍是00H-3FH(無鍵按下時為FFH)。
(1)、當(dāng)HD7279A檢測到有效的按鍵時,KEY引腳從高電平變?yōu)榈碗娖剑⒁恢北3值桨存I結(jié)束。在此期間,如果HD7279A接收到‘讀鍵盤數(shù)據(jù)指令’,則輸出當(dāng)前按鍵的鍵盤代碼;
(2)、如果在收到‘讀鍵盤指令’時沒有有效按鍵,HD7279A將輸出FFH。
3、串行接口的時序圖。
A、HD7279A的指令結(jié)構(gòu)類型:
a、不帶數(shù)據(jù)的純指令,指令的寬度為8個BIT。即微處
理器需發(fā)送8個CLK脈沖。
b、帶有數(shù)據(jù)的指令,寬度為16個BIT,即微處理器需
發(fā)送16個CLK脈沖。
c、讀取鍵盤數(shù)據(jù)指令,寬度為16個BIT,前8個為微處
理器發(fā)送到HD7279A的指令,后8個BIT為HD7279A返
回的鍵盤代碼。執(zhí)行此指令時,HD7279A的DATA端在
第9個CLK脈沖的上升沿變?yōu)檩敵鰻顟B(tài),并與第16個
脈沖的下降沿恢復(fù)為輸入狀態(tài),等待接收下一個指
令。
B、串行接口的時序圖:
a、純指令
T1=50us;T2=8us;T3=8us
b、帶數(shù)據(jù)指令
T4=25usc、讀鍵盤指令T5=25us;T6=8us;T7=8us
4、HD7279A應(yīng)用舉例
A、硬件電路:
注意:
(1).HD7279A應(yīng)連接共陰式數(shù)碼管。
(2).應(yīng)用中,無需用到的鍵盤和數(shù)碼管可以不連接。
(3).應(yīng)用中,串入DP及SA-SG連接的8只電阻為200歐。
(4).應(yīng)用中,8只下拉電阻和8只鍵盤連接位選線DIG0 -DIG7的電阻,應(yīng)遵從一定的比例 關(guān)系,典型值為10倍,
下拉電阻的取值范圍是10K—100K
位選電阻的取值范圍是1K—10K
(5).HD7279A需要一外接的RC振蕩電路以供系統(tǒng)工 作,其典型值分別為R=1.5KΩ,C=15pF。
B、軟件編程
(設(shè)F晶=6MHZ)
a、發(fā)送一字節(jié)子程序:(發(fā)送數(shù)存于A中)
STFS:MOVR7,#08H設(shè):P1.0CS
L1:RLCAP1.1CLK
MOVP1.2,CP1.2DATA
SETBP1.1P1.3KEY
MOVR6,#02H
L2:DJNZR6,L2
CLRP1.1
MOVR6,#02H
L3:DJNZR6,L3
DJNZR7,L1
RET
b、接收一字節(jié)子程序:(接收字符存于A中)
STJS:MOVR7,#08H
L1:SETBP1.1
SETBP1.2
MOVR6,#02H
L2:DJNZR6,L2
MOVC,P1.2
RLCA
CLRP1.1
MOVR6,#01H
L3:DJNZR6,L3
DJNZR7,L1
RET
c、顯示程序:采用下載數(shù)據(jù)但不譯碼方式,其字形表 由用戶根據(jù)需要和硬件連線來確定,指 令碼為90H~97H.顯緩區(qū)為40H~47H。
DTR:MOVR5,#08HMOVCA,@A+PC
MOVR0,#40HACALLSTFS
MOVR1,#97HMOVR6,#02H
L1:CLRP1.0L4:DJNZR6,L4
MOVR6,#0CHSETBP1.0
L2:DJNZR6,L2INCR0 MOVA,R1DECR1
ACALLSTFSDJNZR5,L1
MOVR6,#04HRETL3:DJNZR6,L3TABDB7EH,30H,6DH…MOVA,@R0ADDA,#0DH
d、讀鍵值子程序:所讀的鍵值保存在A中,其值與按鍵 在鍵盤中位置及硬件連線有關(guān)。
KEY1:CLRP1.0
MOVR6,#0CH
L1:DJNZR6,L1
MOVA,#15H
ACALLSTFS MOVR6,#06H
L2:DJNZR6,L2
ACALLSTJS
SETBP1.0 RET
e、讀鍵值三種方式:
(1)中斷方式:將KEY連到INT引腳上,在中斷程序中, 用KEY1子程序讀取鍵值。
(2)查詢方式:軟件查詢KEY腳電平,當(dāng)為低電平時讀取值。采用這種方式要求主循環(huán)程序時間應(yīng)小于100ms,為保證按一次鍵只得到一個鍵值,在軟件中應(yīng)建立一個標(biāo)志。
設(shè)00H為標(biāo)志位.A保存按鍵值,當(dāng)A=FFH時,表示無鍵按下.
KEY:SETBP1.3SETB00H
MOVC,P1.3RET
JCL2L2:CLR00H
JB00H,L1L1:MOVA,#FFH
LCALLKEY1RET
(3)直讀方式:
在主程序循環(huán)中,安排一個讀鍵值子程序。當(dāng)讀到的值為FFH為無鍵按下,當(dāng)讀到的值不為FFH時,表示有鍵按下,其值為鍵值。采用這種方式要求主循環(huán)程序應(yīng)小于100ms,為了解決在按一次鍵時可讀到多個同樣的值的問題,在軟件中應(yīng)建立一個標(biāo)志。設(shè)00H為標(biāo)志位.
A保存按鍵值,當(dāng)A=FFH時,表示無鍵按下.
KEY:ACALLKEY1ACALLKEY2
CJNEA,#0FFH,L1RET
CLR00HL2:MOVA,#FFH
RETRET
L1:JB00H,L2
SETB00H
f、求鍵號(設(shè)按鍵值存A,求得鍵號也存A)
KEY2:MOVB,AMOVR2,#00H
MOVR7,#0FH(16個鍵)
L1:MOVA,R2
ADDA,#0AH
MOVCA,@A+PC
CJNEA,B,L2
SJMPL3
L2:INCR2
DJNZR7,L1
L3:MOVA,R2
RET
TAB:DBXXH,XXH,┈(鍵值表)
g、7279初始化(復(fù)位)
ST:CLRP1.0 MOVR6,#0CH L0:DJNZR6,L0 MOVA,#A4H ACALLSTFS MOVR6,#02H L1:DJNZR6,L1 SETBP1.0 RET
五、單片機應(yīng)用系統(tǒng)的軟件設(shè)計
通常單片機應(yīng)用系統(tǒng)的系統(tǒng)軟件由主程序、定時中
斷服務(wù)程序和若干個子程序構(gòu)成。根據(jù)系統(tǒng)各操作的
性質(zhì),指定哪些操作由中斷服務(wù)程序完成,哪些操作
由主程序完成。通常主程序完成顯示及鍵盤處理,實現(xiàn)人機對話功
能。其實時時鐘、現(xiàn)場參數(shù)采樣、控制輸出等則由定
時中斷完成。下面以實時時鐘為例,介紹單片機應(yīng)用系統(tǒng)的軟件
設(shè)計流程。
1、實時時鐘技術(shù)要求:
A、實時顯示時鐘。
B、實時校時。
2、軟件設(shè)計的有關(guān)參數(shù)
A、鍵盤及顯示安排數(shù)字鍵:0-9個命令鍵:校時(0AH)
、確認(0BH)
數(shù)碼管:6個顯示方式:XX.XX.XX
B、內(nèi)存單元及P1口安排:標(biāo)志位:00H鍵標(biāo)志P1口:P1.0CS01H校時標(biāo)志 P1.1CLK02H半秒標(biāo)志P1.2DATA
顯緩區(qū):40H---47H(7279)
顯示指針:22H
時鐘:30H(時) 31H(分)
32H(秒)
33H(100ms) 34H(100ms)
堆棧區(qū):68H-7FH3、軟件框圖
鍵掃入口:0000H初始化顯示處理、顯示有鍵按下否鍵數(shù)-【顯針】修改顯針顯針限值保存校時值置0校時標(biāo)志鍵處理
A、主程序校時否數(shù)鍵YNNY確認初始化設(shè)置棧底(SP)定時器初始化開中斷置“0”工作單元及標(biāo)志校時建立校時標(biāo)志建立顯針
B、中斷服務(wù)程序:入口:000BH保護現(xiàn)場(A、B、DPH、DPL、PSW等)選另一工作寄存器區(qū)重新置定時初值中斷次數(shù)計數(shù),建立時間標(biāo)志(控制顯示更新等)時鐘計時恢復(fù)現(xiàn)場中斷返回
4、實時時鐘軟件清單
A、主程序:
a、MAIN_1:
ORG0000HLJMPMAIN_1
MAIN_1:MOVSP,#67HM_0:CLRA
MOVTMOD,#01HMOV@R0,A
MOVTL0,#C0HINCR0
MOVTH0,#3BHDJNZR7,M_0
MOVIE,#82HACALLINT_7279
SETBTR0AJMPMAIN_2MOVR7,#30H
MOVR0,#20H
b、
MAIN_2:
MAIN_2:ACALLDIR_0M_4:CJNEA,#0BH,M_5ACALLDIRACALLMKEY_2ACALLKEYM_5:SJMPMAIN_2CJNEA,#FFH,M_1SJMPMAIN_2M_1:CJNEA,#0AH,M_2M_2:JNCM_3ACALLSKEYSJMPMAIN_2M_3:CJNEA,#0AH,M_4ACALLMKEY_1SJMPMAIN_2
c、DIR_0:(顯示處理)
DIR_0:JB01H,D_1A_R0:MOVR2,A JNB02H,D_1 SWAPA CLR02H ANLA,#0FH MOVR0,#40H MOV@R0,A MOVA,30H INCR0 ACALLA_R0MOVA,R2 MOVA,31HANLA,#0FH ACALLA_R0 MOV@R0,A MOVA,32H INCR0 ACALLA_R0 RET MOV41H,#10H MOV43H,#10H D_1:RET
d、SKEY:(數(shù)鍵處理)
(1)方法1
SKEY:JNB01H,S_2MOVR0,22HMOV@R0,AINC22HMOVA,22HCJNEA,#46H,S_1S_1:JCS_2MOV22H,#40HS_2:RET
(2)方法2SKEY:JNB01H,S_2MOVR2,A MOVR7,#05H MOVR0,#41H S_1:MOVA,@R0 ANLA,#0FH DECR0 MOV@R0,A INCR0 INCR0 DJNZR7,S_1 MOV45H,R2 ORL41H,#10H ORL41H,#10H S_2:RETE、MKEY_1:(校時鍵處理)
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 輸水管線工程施工方案
- 小學(xué)科學(xué)《讓紙張更結(jié)實》說課稿
- 2024年建筑用具租賃服務(wù)協(xié)議
- 2024年企業(yè)間關(guān)于高端芯片研發(fā)合作的合同
- 2024年度礦產(chǎn)資源開發(fā)與勘探合同
- 2024年度班班通系統(tǒng)軟硬件升級合同
- 2024年建筑裝飾裝修工程合同
- 2024年建筑工程施工安全合作協(xié)議
- 2024年建筑施工企業(yè)承包合同
- 2024年城市軌道交通工作人員合同
- 《領(lǐng)導(dǎo)梯隊:全面打造領(lǐng)導(dǎo)力驅(qū)動型公司》解讀
- 護理質(zhì)量安全與風(fēng)險管理的案例分析
- 工程流體力學(xué)課后習(xí)題答案-(杜廣生)
- AI智能客服應(yīng)用實踐
- 《止吐藥臨床應(yīng)用》課件
- 幕墻工程檢驗批質(zhì)量驗收記錄
- 危險化學(xué)品經(jīng)營企業(yè)安全生產(chǎn)獎懲制度范本
- 報價單模板完
- 30題藥品質(zhì)量檢測崗位常見面試問題含HR問題考察點及參考回答
- 《嬰幼兒行為觀察、記錄與評價》期末試卷及答案 卷3
- 企業(yè)戰(zhàn)略管理概述
評論
0/150
提交評論