COM EQU R4 DAT EQU R5 RS EQU P2.1 RW EQU P2.2 E EQU P2.3
BF: MOV P1,#0FFH;讀BF和AC值 CLR RS SETB RW SETB E CLR E MOV A,P1 JB ACC.7,BF RET
WI: ;寫指令代碼子程序 LCALL BF CLR RS CLR RW MOV P1,COM SETB E CLR E RET
WD: ;寫顯示數據子程序 LCALL BF SETB RS CLR RW MOV P1,DAT SETB E CLR E RET
RRD: ;讀顯示數據子程序 LCALL BF SETB RS SETB RW SETB E CLR E RET
DELAY: MOV R7,#0FFH LOOP0: MOV R6,#0FFH DJNZ R6,$ DJNZ R7,LOOP0 RET
INI: MOV R3,#03H;間接控制方式下的初始化子程序 MOV COM,#38H ;功能設置8位數據1/16DUTY5X8 字體 LCALL WI DJNZ R3,INI MOV COM,#01H ;清顯示 LCALL BF LCALL WI MOV COM,#06H ;輸入方式設置:AC 自動加1 LCALL BF LCALL WI MOV COM,#0CH ;開顯示 LCALL BF LCALL WI RET
START: ORG 0000H LCALL INI MOV COM,#80H LCALL WI LCALL BF MOV DAT,#44H;我想第一行第一個字顯示這個 LCALL WD LCALL BF MOV COM,#80H LCALL WI LCALL BF LCALL RRD LCALL BF LCD ENDS END START
89stc51rc LCD1602 無法實現我的目的(初學),網絡.h文件做了測試 可以顯示 硬件沒問題 問題出在程序上!請高手幫忙指出錯誤!謝謝!
|