www.pudn.com > My_LCD_Driver.rar > LCD_DRIVER_IO.ASM


$NOMOD51 
      COM_ADDR      equ 0x7000 
      DAT_ADDR      equ 0x3000 
      LCD_CS        equ p2.7 
      LCD_A0        equ P2.6 
      LCD_RES       equ P1.0 
      LCD_WR        equ P3.6 
      LCD_RD        equ P3.7 
$include (REG51.INC) 
       
 
      ;proc segment code 
      NAME  LCD_asm 
      ?PR?LCD_COM_W?LCD_asm     segment code 
   ;   ?PR?LCD_Data_W?LCD_asm     segment code 
   ;   ?PR?MCD_Data_W?LCD_asm     segment code 
      rseg    ?PR?LCD_COM_W?LCD_asm 
       
      public LCD_COM_W 
      public LCD_Data_W 
      public MCD_DT_R 
       
LCD_COM_W: 
       push acc 
       push psw 
       setb LCD_CS 
       setb LCD_A0 
       setb LCD_WR 
       setb LCD_RD 
       clr LCD_CS 
       clr LCD_WR 
       mov acc,r7 
       mov P0,acc 
       nop 
       setb LCD_WR 
       setb LCD_CS 
       pop psw 
       pop acc 
       ret 
LCD_Data_W: 
       push acc 
       push psw 
       clr LCD_A0 
       clr LCD_CS 
       clr LCD_WR 
       mov acc,r7 
       mov P0,acc 
       nop 
       setb LCD_WR 
       setb LCD_A0 
       setb LCD_CS 
       pop psw 
       pop acc 
       ret 
MCD_DT_R: 
       push acc 
       push psw 
       clr LCD_A0 
       clr LCD_CS 
       clr LCD_RD 
       nop 
       setb LCD_RD 
       mov acc,P0 
    ;   mov r7,acc 
       setb LCD_A0 
       setb LCD_CS 
       pop psw 
       pop acc 
       ret 
end