⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd_a_func.asm

📁 精锐通12864E17的驱动程序
💻 ASM
字号:
.include 	SPT660X.inc

//===========================================================================================
// void Lcd_A_DelayBusTime(void);
// Func		:延时等待
// Call		: 可由C程序调用 
// Input	: None
// Return	: None

.CODE
.public _Lcd_A_DelayBusTime
_Lcd_A_DelayBusTime:
    NOP;
    NOP;
    NOP;
        NOP;    
        NOP;    
        NOP;
    RETF;
    
    
  //===========================================================================================
// void Lcd_A_Set_Page_Col(word page,word col);
// Func		:LCD 设置页号,列号	
// Call		: 可由C程序调用	 
// Input    : word page,word col
// Return	: None 

.public _Lcd_A_Set_Page_Col
_Lcd_A_Set_Page_Col:
	
	push bp to [sp];
    bp=sp+1;
       
    r1 = [bp+3];   //get page 
    r2 = [bp+4];   //get col;

    //r4 = 7;
    r4 = r1;//r4 - r1;

    CALL _Lcd_A_Set_Page;  //Set Page No. (0~7)
    
    r4 = r2;
    call _Lcd_A_Set_Col;

    pop bp from [sp]
    RETF;
    
//===========================================================================================
// Func		:LCD 设置页号
// Call		: ASM	 
// Input    : Page No. (R4:0x0000~0x0007)
// Return	: None 

.public _Lcd_A_Set_Page
_Lcd_A_Set_Page:

   CMP R4,4;  
	JB _Lcd_NAE;
	 R4 = R4 - 4;
	 JMP _Lcd_AE;
_Lcd_NAE:
	R4 = R4 + 4;	 
_Lcd_AE:        
   R4 |= 0x0AB0;           //Set Page No. (0~7)
   [P_Lcd501Ctrl]=R4;
	CALL _Lcd_A_DelayBusTime;
	CALL _Lcd_A_DelayBusTime;
	CALL _Lcd_A_DelayBusTime;
   CALL _Lcd_A_DelayBusTime;
        
   RETF;
//===========================================================================================
// Func		:LCD 设置列号	
// Call		: ASM	 
// Input    : Col No. (R2:0x0000~0x0083)
// Return	: None 
// Destroy  : R1,R2

.public _Lcd_A_Set_Col
_Lcd_A_Set_Col:

   
   R1 = R2 ;  //Store temporarily
   R1 = R1 LSR 4;
   R1 &= 0x000F;           //Isolate MS 4-bits
   R1 |= 0x0A10;           //Set column address : Most significant 4 bits
   [P_Lcd501Ctrl]=R1;
   CALL _Lcd_A_DelayBusTime;
   CALL _Lcd_A_DelayBusTime;
   R2 &= 0x000F;           //Isolate LS 4-bits
   R2 |= 0x0A00;           //Set column address : Least significant 4 bits
   [P_Lcd501Ctrl]=R2;
   CALL _Lcd_A_DelayBusTime;
   CALL _Lcd_A_DelayBusTime;
   RETF;
   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -