|
12864測試程序:11月11日買來12864 --------- 11月11日21:43完成測試-----在80H區顯示漢字:“王均偉” 原來12864也沒啥!呵呵呵

ORG 0000H
NOP
RS EQU P1.0;并行模式下為指令數據選擇信H/L=指令/數據
RW EQU P1.1;并行的讀寫信號H/L=讀/寫
E EQU P1.2;并行下的使能信號
DATE EQU P0 ;并行下的數據IO
PSB EQU P1.3; 決定是串行模式還是并行模式H=并行L=串行;默認是高電平可不用設置
RESET EQU P1.5;L=復位;默認是高電平,也可以不設置,不需要RESET的話
AJMP MAIN
ORG 0030H
NOP
MAIN: CLR E
MOV A,#01H ;DDRAM寫入20H,DDRAM的AC計數器清零
LCALL WRITE12864CT ;12864寫入指令
LCALL DELAY4_6MS//延時4.6毫秒
MOV A,#02H // AC清零,游標到開頭為之
LCALL WRITE12864CT ;12864寫入指令
LCALL DELAY4_6MS//延時4.6毫秒
MOV A,#0FH //游標開,整體顯示開,游標位置開
LCALL WRITE12864CT ;12864寫入指令
LCALL DELAY4_6MS//延時4.6毫秒
//*********************************
MOV A,#80H // DDRAM說白了就是那個你在那里顯示這個漢子從第一行到第四行80H-9FH,一共32個漢子 ---這里還有一點DDRAM是自動加一得,所一下面的才會顯示“王均偉”
LCALL WRITE12864CT ;12864寫入指令
LCALL DELAY4_6MS//延時4.6毫秒
//*********************************
MOV A,#0CDH
LCALL WRITE12864DB
LCALL DELAY //漢字的字形碼,16位的從高位到底為一次寫8位所以要寫2次呵呵 就是所謂的寫數據到RAM
MOV A,#0F5H
LCALL WRITE12864DB //王---CDF5
LCALL DELAY
//****************************
MOV A,#0BEH
LCALL WRITE12864DB
LCALL DELAY //漢字的字形碼,16位的從高位到底為一次寫8位所以要寫2次呵呵 就是所謂的寫數據到RAM
MOV A,#0F9H
LCALL WRITE12864DB //均---BEF9
LCALL DELAY
MOV A,#0CEH
LCALL WRITE12864DB
LCALL DELAY //漢字的字形碼,16位的從高位到底為一次寫8位所以要寫2次呵呵 就是所謂的寫數據到RAM
MOV A,#0B0H
LCALL WRITE12864DB //偉----CEB0
LCALL DELAY
AJMP $
WRITE12864DB: ;寫12864數據
SETB RS;選擇數據
NOP
NOP
CLR RW ;寫模式
NOP
NOP
SETB E ;使能允許
NOP
NOP
MOV DATE,A ;數據寫入
NOP
CLR E
NOP
NOP
NOP
RET
WRITE12864CT: ;寫12864指令
CLR RS;選擇指令
NOP
NOP
CLR RW ;寫模式
NOP
NOP
SETB E ;使能允許
NOP
NOP
MOV DATE,A ;指令寫入
NOP
CLR E
NOP
NOP
NOP
RET
DELAY4_6MS: //延時4.6毫秒
MOV R6,#0CH
DL0:
MOV R5,#0AFH
DJNZ R5,$
DJNZ R6,DL0
RET
DELAY:NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RET
END
|
|