|
#define LCD_BIT_RAM 0220H #define LCD_E1_E2 0000H ;是LCD左右屏選擇為BIT=1選通左邊 BIT=0選通右邊 #define LCD_INV 02H ;高電平時(shí)顯示反白 ;--------------------------------------------------- ;=========================================================== LCD_E1_COM BIC.B #A0,&BIT_OUT ;A0置低 設(shè)為命令通道 MOV.B LCD_COM_BRAM,&LCD_BUS ;輸出命令 BIS.B #E1,&BIT_OUT ;開(kāi)E1 BIC.B #E1,&BIT_OUT ;關(guān)E1 RET ;反回 LCD_E2_COM BIC.B #A0,&BIT_OUT ;A0置低 設(shè)為命令通道 MOV.B LCD_COM_BRAM,&LCD_BUS ;輸出命令 BIS.B #E2,&BIT_OUT ;開(kāi)E2 BIC.B #E2,&BIT_OUT ;關(guān)E2 RET ;反回 LCD_E1_DATA BIS.B #A0,&BIT_OUT ;A0置高 設(shè)為命令通道 MOV.B LCD_DATA_BRAM,&LCD_BUS ;輸出命令 BIS.B #E1,&BIT_OUT ;開(kāi)E1 BIC.B #E1,&BIT_OUT ;關(guān)E1 RET ;反回 LCD_E2_DATA BIS.B #A0,&BIT_OUT ;A0置高 設(shè)為數(shù)據(jù)通道 MOV.B LCD_DATA_BRAM,&LCD_BUS ;輸出命令 BIS.B #E2,&BIT_OUT ;開(kāi)E2 BIC.B #E2,&BIT_OUT ;關(guān)E2 RET ;反回 ;================CLEAR_LCD_DISPALY============== ;每次直接調(diào)用程序就可以清全屏顯示 不須入口 LCD_CLEAR_ALL CLR R15 CLR R14 LCD_CLEAR_ALL_1 BIS.B #0B8H,R15 MOV.B R15,LCD_COM_BRAM CALL #LCD_E1_COM CALL #LCD_E2_COM MOV.B #00H,LCD_COM_BRAM CALL #LCD_E1_COM CALL #LCD_E2_COM MOV.B #61D,R14 LCD_CLEAR_ALL_2 MOV.B #000H,LCD_DATA_BRAM CALL #LCD_E1_DATA CALL #LCD_E2_DATA CLRZ DEC.B R14 JNZ LCD_CLEAR_ALL_2 INC.B R15 CLRZ CMP.B #0BCH,R15 JNE LCD_CLEAR_ALL_1 RET ;================CLEAR_LCD_DISPALY============= ;每次直接調(diào)用程序就可以清半屏顯示 ;調(diào)用前必須送入頁(yè)地址到LCD_PAGE_RAM(頁(yè)地址寄存器) ;例如:MOV.B #0B8H,LCD_PAGE_BRAM ; :CALL #LCD_CLEAR 就是清上半屏顯示 ; :MOV.B #0BAH,LCD_PAGE_BRAM ; :CALL #LCD_CLEAR 就是清下半屏顯示 LCD_CLEAR CLR R15 MOV.B LCD_PAGE_BRAM,LCD_LIE_BRAM
|