8051單片機(jī)典型接口電路——串行擴(kuò)展靜態(tài)顯示電路
8051單片機(jī)典型接口電路——串行擴(kuò)展靜態(tài)顯示電路如下圖所示:
例1:按上圖編制顯示子程序,顯示字段碼已分別存在32H~30H內(nèi)RAM中。
程序1:
DIR2: MOV SCON,#00H ;置串口方式0
CLR ES ;串口禁中
SETB P1.0 ;“與”門(mén)開(kāi),允許TXD發(fā)移位脈沖
MOV SBUF,30H ;串行輸出個(gè)位顯示字段碼
JNB TI,$ ;等待串行發(fā)送完畢
CLR TI ;清串行中斷標(biāo)志
MOV SBUF,31H ;串行輸出十位顯示字段碼
JNB TI,$ ;等待串行發(fā)送完畢
CLR TI ;清串行中斷標(biāo)志
MOV SBUF,32H ;串行輸出百位顯示字段碼
JNB TI,$ ;等待串行發(fā)送完畢
CLR TI ;清串行中斷標(biāo)志
CLR P1.0 ;“與”門(mén)關(guān),禁止TXD發(fā)移位脈沖
RET ;
例2:根據(jù)上圖編寫(xiě)通過(guò)串行口和74LS164驅(qū)動(dòng)共陽(yáng)LED數(shù)碼管查表顯示的子程序。條件:系統(tǒng)有6個(gè)LED數(shù)碼管,待顯數(shù)據(jù)(00H—09H)已放在35H—30H單元中(分別對(duì)應(yīng)十萬(wàn)位→個(gè)位)
程序2:
DSPLY:MOV DPTR, #TABLE ;共陽(yáng)LED數(shù)碼管譯碼表首址
MOV R0,#30H ;待顯數(shù)據(jù)緩沖區(qū)的個(gè)位地址
REDO:MOV A, @R0 ;通過(guò)R0實(shí)現(xiàn)寄存器間接尋址
MOVC A, @A+DPTR ;查表
MOV SBUF, A ;經(jīng)串行口發(fā)送到74LS164
JNB TI, $ ;查詢送完一個(gè)字節(jié)的第8位?
CLR TI ;為下一字節(jié)發(fā)送作準(zhǔn)備
INC R0 ;R0指向下一個(gè)數(shù)據(jù)緩沖單元
CJNE R0,#36H,REDO ;判斷是否發(fā)完6個(gè)數(shù)?
RET ;發(fā)完6個(gè)數(shù)就返回
TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H ;共陽(yáng)LED譯碼表
DB 92H, 82H, 0F8H, 80H,90H
評(píng)論