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