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

📄 16864.c

📁 此程序主要用于16864液晶显示的驱动
💻 C
字号:

 //168*64LCD初始化
 void init_lcd(void){
   Delay(400);
   Wrcmd(cmd_FSet);
   Delay(1);
   Wrcmd(cmd_FSet);
   Delay(1);
   Wrcmd(cmd_DISPON);
   Delay(1);
   Wrcmd(cmd_DISPCLR);
   Delay(100);
   Wrcmd(cmd_InModSet);
 } 
 
  //向整个显示缓冲区写入空格
 	 void DispInClr(){
 	  unsigned char *p_Lddram;
 	  for(p_Lddram=lcd_ddram[0];p_Lddram<lcd_ddram[0]+ALL;p_Lddram++){
 	    *p_Lddram=KG;
 	  }
 	 }
 	//将整个显示缓冲区的值写入LCD模块 
 	 void Lcd(void){
 	   unsigned char *p_Lddram;
 	   Wrcmd(cmd_DISPCLR);
 	   Delay(100);
 	   for(p_Lddram=lcd_ddram[0];p_Lddram<lcd_ddram[0]+K;p_Lddram++){
 	     Wrdata(*p_Lddram);
 	   }
 	   for(p_Lddram=lcd_ddram[2];p_Lddram<lcd_ddram[2]+K;p_Lddram++){
 	     Wrdata(*p_Lddram);
 	   }
 	   for(p_Lddram=lcd_ddram[1];p_Lddram<lcd_ddram[1]+K;p_Lddram++){
 	     Wrdata(*p_Lddram);
 	   }
 	   for(p_Lddram=lcd_ddram[3];p_Lddram<lcd_ddram[3]+K;p_Lddram++){
 	     Wrdata(*p_Lddram);
 	   }
 	 }
 //向LCD模块写命令
 void Wrcmd(unsigned char cmd_in){
         unsigned char R7;
         R7=cmd_in;
      asm{
        BSET  PORTB,#SID
        
        BCLR  PORTB,#SCLK			  ;1
        BSET  PORTB,#SCLK
        
        BCLR  PORTB,#SCLK				;1
        BSET  PORTB,#SCLK
        
        BCLR  PORTB,#SCLK				;1
        BSET  PORTB,#SCLK
        
        BCLR  PORTB,#SCLK				;1
        BSET  PORTB,#SCLK
        
        BCLR  PORTB,#SCLK				;1
        BSET  PORTB,#SCLK
;;wrtie RW "0"
        BCLR  PORTB,#SCLK
        BCLR  PORTB,#SID
        BSET  PORTB,#SCLK
;;wrtie RS "0"
        BCLR  PORTB,#SCLK
        BSET  PORTB,#SCLK
;;write 0
        BCLR  PORTB,#SCLK
        BSET  PORTB,#SCLK
        
        
;;send D7~D4
;send R7.7 to PORTB.0   
        BCLR  PORTB,#SCLK                         
        BRCLR R7,#$80,CR77_0  					            
        BSET  PORTB,#SID
        BRA   CR77
CR77_0: BCLR  PORTB,#SID                  
CR77:   BSET  PORTB,#SCLK

        
  
;send R7.6 to PORTB.0   
        BCLR  PORTB,#SCLK                         
        BRCLR R7,#$40,CR76_0  					            
        BSET  PORTB,#SID
        BRA   CR76
CR76_0: BCLR  PORTB,#SID                  
CR76:   BSET  PORTB,#SCLK
        
        
				
;send R7.5 to PORTB.0   
        BCLR  PORTB,#SCLK                         
        BRCLR R7,#$20,CR75_0  					            
        BSET  PORTB,#SID
        BRA   CR75
CR75_0: BCLR  PORTB,#SID                  
CR75:   BSET  PORTB,#SCLK

;send R7.4 to PORTB.0   
        BCLR  PORTB,#SCLK                         
        BRCLR R7,#$10,CR74_0  					            
        BSET  PORTB,#SID
        BRA   CR74
CR74_0: BCLR  PORTB,#SID                  
CR74:   BSET  PORTB,#SCLK 
        
        
;;send  0 0 0 0 
        BCLR  PORTB,#SCLK				  ;0
        BCLR  PORTB,#SID
        BSET  PORTB,#SCLK
        
        BCLR  PORTB,#SCLK				  ;0
        BSET  PORTB,#SCLK
        												
        BCLR  PORTB,#SCLK       	;0
        BSET  PORTB,#SCLK
        
        BCLR  PORTB,#SCLK					;0
        BSET  PORTB,#SCLK
        
        
;;send D3~D0
;send R7.3 to PORTB.0   
        BCLR  PORTB,#SCLK                         
        BRCLR R7,#$08,CR73_0  					            
        BSET  PORTB,#SID
        BRA   CR73
CR73_0: BCLR  PORTB,#SID                  
CR73:   BSET  PORTB,#SCLK

        
;send R7.2 to PORTB.0   
        BCLR  PORTB,#SCLK                         
        BRCLR R7,#$04,CR72_0  					            
        BSET  PORTB,#SID
        BRA   CR72
CR72_0: BCLR  PORTB,#SID                  
CR72:   BSET  PORTB,#SCLK

        
;send R7.1 to PORTB.0   
        BCLR  PORTB,#SCLK                          
        BRCLR R7,#$02,CR71_0  					            
        BSET  PORTB,#SID
        BRA   CR71
CR71_0: BCLR  PORTB,#SID                  
CR71:   BSET  PORTB,#SCLK

        
;send R7.0 to PORTB.0   
        BCLR  PORTB,#SCLK                         
        BRCLR R7,#$01,CR70_0  					            
        BSET  PORTB,#SID
        BRA   CR70
CR70_0: BCLR  PORTB,#SID                  
CR70:   BSET  PORTB,#SCLK
       
       
;;SEND  0 0 0 0
        BCLR  PORTB,#SCLK					 ;0
        BCLR  PORTB,#SID
        BSET  PORTB,#SCLK
        
        BCLR  PORTB,#SCLK					 ;0
        BSET  PORTB,#SCLK
        
        BCLR  PORTB,#SCLK					 ;0
        BSET  PORTB,#SCLK
        
        BCLR  PORTB,#SCLK					 ;0
        BSET  PORTB,#SCLK
        
        BCLR  PORTB,#SCLK
      }
        Delay(1);
   }
 	//向lcd模块写数据  
 	  void Wrdata(unsigned char data_in){
 	       unsigned char R7;
 	       R7=data_in;
 	      
 	     asm{
 	      BSET  PORTB,#SID
        
        BCLR  PORTB,#SCLK					 ;1
        BSET  PORTB,#SCLK
        
        BCLR  PORTB,#SCLK					 ;1
        BSET  PORTB,#SCLK
        
        BCLR  PORTB,#SCLK					 ;1
        BSET  PORTB,#SCLK
        
        BCLR  PORTB,#SCLK					 ;1
        BSET  PORTB,#SCLK
        
        BCLR  PORTB,#SCLK					 ;1
        BSET  PORTB,#SCLK
        
        BCLR  PORTB,#SCLK					 ;0
        BCLR  PORTB,#SID
        BSET  PORTB,#SCLK
        
        BCLR  PORTB,#SCLK					 ;1
        BSET  PORTB,#SID
        BSET  PORTB,#SCLK
        
        BCLR  PORTB,#SCLK					 ;0
        BCLR  PORTB,#SID 
        BSET  PORTB,#SCLK
        
;send R7.7 to PORTB.0   
        BCLR  PORTB,#SCLK                         
        BRCLR R7,#$80,R77_0  					            
        BSET  PORTB,#SID
        BRA   R77
R77_0:  BCLR  PORTB,#SID                  
R77:    BSET  PORTB,#SCLK

        
  
;send R7.6 to PORTB.0   
        BCLR  PORTB,#SCLK                         
        BRCLR R7,#$40,R76_0  					            
        BSET  PORTB,#SID
        BRA   R76
R76_0:  BCLR  PORTB,#SID                  
R76:    BSET  PORTB,#SCLK
        
        
				
;send R7.5 to PORTB.0   
        BCLR  PORTB,#SCLK                         
        BRCLR R7,#$20,R75_0  					            
        BSET  PORTB,#SID
        BRA   R75
R75_0:  BCLR  PORTB,#SID                  
R75:    BSET  PORTB,#SCLK

;send R7.4 to PORTB.0   
        BCLR  PORTB,#SCLK                         
        BRCLR R7,#$10,R74_0  					            
        BSET  PORTB,#SID
        BRA   R74
R74_0:  BCLR  PORTB,#SID                  
R74:    BSET  PORTB,#SCLK         
        
        
        BCLR  PORTB,#SCLK				 ;0
        BCLR  PORTB,#SID	         
        BSET  PORTB,#SCLK
        
        BCLR  PORTB,#SCLK        ;0  
        BSET  PORTB,#SCLK
        
        BCLR  PORTB,#SCLK				 ;0
        BSET  PORTB,#SCLK
        
        BCLR  PORTB,#SCLK				 ;0
        BSET  PORTB,#SCLK
        
        
;send R7.3 to PORTB.0   
        BCLR  PORTB,#SCLK                         
        BRCLR R7,#$08,R73_0  					            
        BSET  PORTB,#SID
        BRA   R73
R73_0:  BCLR  PORTB,#SID                  
R73:    BSET  PORTB,#SCLK

        
;send R7.2 to PORTB.0   
        BCLR  PORTB,#SCLK                         
        BRCLR R7,#$04,R72_0  					            
        BSET  PORTB,#SID
        BRA   R72
R72_0:  BCLR  PORTB,#SID                  
R72:    BSET  PORTB,#SCLK

        
;send R7.1 to PORTB.0   
        BCLR  PORTB,#SCLK                          
        BRCLR R7,#$02,R71_0  					            
        BSET  PORTB,#SID
        BRA   R71
R71_0:  BCLR  PORTB,#SID                  
R71:    BSET  PORTB,#SCLK

        
;send R7.0 to PORTB.0   
        BCLR  PORTB,#SCLK                         
        BRCLR R7,#$01,R70_0  					            
        BSET  PORTB,#SID
        BRA   R70
R70_0:  BCLR  PORTB,#SID                  
R70:    BSET  PORTB,#SCLK

        
        BCLR  PORTB,#SCLK						;0
        BCLR  PORTB,#SID
        BSET  PORTB,#SCLK
        
        BCLR  PORTB,#SCLK						;0
        BSET  PORTB,#SCLK
        
        BCLR  PORTB,#SCLK						;0
        BSET  PORTB,#SCLK
        
        BCLR  PORTB,#SCLK						;0
        BSET  PORTB,#SCLK
        
        BCLR  PORTB,#SCLK
 	      }
 	      Delay(1);
 	  }

   
        
   void Delay(unsigned int us_100){
        int i,j;
        for(i=0;i<us_100;i++){
          for(j=0;j<20;j++){
         }
        }
   }

⌨️ 快捷键说明

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