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

📄 display.c

📁 mb90f387s驱动240128液晶程序
💻 C
📖 第 1 页 / 共 5 页
字号:
			aword = 0;
		}else{
			aword = *bmp.bit.ptro;
		}
		aword *= var.u.kuan;
		aword *= var.u.gao;
		var.u.addr = bmp.bit.ptrb + aword;
		
		
		
 		for(i = 0;i < var.u.gao;i++){
    		fnCmd2(LC_ADD_POS,var.u.locat.byte[0],var.u.locat.byte[1]);	// 置地址指针
    		fnCmd(LC_AUT_WR);				// 自动写
    		for(j = 0;j < var.u.kuan;j++){
    			fnDataW(0x00);				// 写数据
    		}
    		fnCmd(LC_AUT_OVR);				// 自动写结束
    		var.u.locat.word += LCDKUAN;
  		}
  	}else if(bmp.bit.c0 == 1){//str
  		if(stc.flash.bit.dir){
			ptr += 2;
	
		}else{
			ptr += 10;
		
    	}
		for(i = 0;i < 10;i++){
			bmp.byte[i + 2] = *(ptr + i);
		}
		LCMCE = 0;
		var.u.locat.word = bmp.bit.y * LCDKUAN + (bmp.bit.x / 8);
 	 	var.u.kuan = bmp.bit.kuan / 8;
		var.u.kuan %= (LCDKUAN + 1);
		var.u.gao = bmp.bit.gao;
		var.u.gao %= (LCDGAO + 1);
		//var.u.len = var.u.gao / 8;
		//var.u.len %= 16;
		if((unsigned int)bmp.bit.ptro == 0){
			aword = 0;
		}else{
			aword = *bmp.bit.ptro;
		}
		aword *= var.u.kuan;
		aword *= var.u.gao;
		var.u.addr = bmp.bit.ptrb + aword;
  		//disp_str(bmp.byte);
  		if(stc.flash.bit.dir){
    		var.u.len = var.u.gao / 8;
			//var.u.len %= 16;
			get_str(var.u.addr,bmp.byte,var.u.len);
    		for(i = 0;i < var.u.len;i++){
    			var.u.addr = ZK816_ADDR;
    			j =  bmp.byte[i];
    			var.u.addr += j * 16;
    			for(j = 0;j < 8;j++){
    		    	fnCmd2(LC_ADD_POS,var.u.locat.byte[0],var.u.locat.byte[1]);	// 置地址指针
                	fnCmd(LC_AUT_WR);				// 自动写
    				for(k = 0;k < 2;k++){
    					fnDataW(*var.u.addr);				// 写数据
    					var.u.addr++;
				    
					}
					fnCmd(LC_AUT_OVR);				// 自动写结束
                	var.u.locat.word += LCDKUAN;
                
            	}
        	}
    	}else{
    		var.u.len = var.u.kuan;
			var.u.len %= 17;
			get_str(var.u.addr,bmp.byte,var.u.len);
    		for(i = 0;i < 2;i++){
            
    	    	n = 0;
    	    	for(j = 0;j < var.u.len;j++){
    	    		var.u.addr = ZK816_ADDR + 1 - i;
    	    		k = bmp.byte[j];
    	    		var.u.addr += k * 16;
                	for(k = 0;k < 8;k++){
    					var.u.movea.byte[n] = *(var.u.addr + (k * 2));
    					n++;
    				}
    			
    	    	}
    	    	writeh2s8();
    		}
    	}
    
  	}else if(bmp.bit.c0 == 2){//bmp
  		if(stc.flash.bit.dir){
			ptr += 2;
	
		}else{
			ptr += 10;
		
    	}
		for(i = 0;i < 10;i++){
			bmp.byte[i + 2] = *(ptr + i);
		}
		LCMCE = 0;
		var.u.locat.word = bmp.bit.y * LCDKUAN + (bmp.bit.x / 8);
 	 	var.u.kuan = bmp.bit.kuan / 8;
		var.u.kuan %= (LCDKUAN + 1);
		var.u.gao = bmp.bit.gao;
		var.u.gao %= (LCDGAO + 1);
		//var.u.len = var.u.gao / 8;
		//var.u.len %= 16;
		if((unsigned int)bmp.bit.ptro == 0){
			aword = 0;
		}else{
			aword = *bmp.bit.ptro;
		}
		aword *= var.u.kuan;
		aword *= var.u.gao;
		var.u.addr = bmp.bit.ptrb + aword;
  		if(stc.flash.bit.dir){
    		for(i = 0;i < var.u.gao;i++){
    			fnCmd2(LC_ADD_POS,var.u.locat.byte[0],var.u.locat.byte[1]);	// 置地址指针
      	  		fnCmd(LC_AUT_WR);				// 自动写
    			for(j = 0;j < var.u.kuan;j++){
    				fnDataW(*var.u.addr);				// 写数据
    				var.u.addr++;
					    
				}
				fnCmd(LC_AUT_OVR);				// 自动写结束
    			var.u.locat.word += LCDKUAN;
  			}
  		}else{
  			var.u.len = var.u.kuan;
			var.u.len %= 17;
  			for(i = 0;i < (var.u.gao / 8);i++){
    	  		ptr = var.u.addr + (var.u.gao / 8) - 1 - i;
    			for(j = 0;j < 128;j++){
    				var.u.movea.byte[j] = *ptr;
    				ptr += (var.u.gao / 8);
    			}
    			writeh2s8();
    		}
    	}
    }else if(bmp.bit.c0 == 3){//ostr
    	;
    }else{
    	;
    }
 	    	
 	LCMCE = 1;
 	
}
//sx,sy,hx,hy,len,str
void disp_sstr(unsigned char * ptr)

{
	unsigned char i,j,k,n,abuff[16];
	//unsigned int 	aword;
	
	LCMCE = 0;
	var.u.len = *(ptr + 4);
	var.u.len %= 17;
	get_str((ptr + 5),abuff,var.u.len);
	if(stc.flash.bit.dir){
		var.u.locat.word = *(ptr + 1) * LCDKUAN + (*(ptr) / 8);
		for(i = 0;i < var.u.len;i++){
    		var.u.addr = ZK816_ADDR;
    		j =  abuff[i];
    		var.u.addr += j * 16;
    		for(j = 0;j < 8;j++){
    			fnCmd2(LC_ADD_POS,var.u.locat.byte[0],var.u.locat.byte[1]);	// 置地址指针
            	fnCmd(LC_AUT_WR);				// 自动写
    			for(k = 0;k < 2;k++){
    				fnDataW(*var.u.addr);				// 写数据
    				var.u.addr++;
			    
				}
				fnCmd(LC_AUT_OVR);				// 自动写结束
            	var.u.locat.word += LCDKUAN;
            
            }
        }
	}else{
		var.u.locat.word = *(ptr + 3) * LCDKUAN + (*(ptr + 2) / 8);
		for(i = 0;i < 2;i++){
            n = 0;
    	    for(j = 0;j < var.u.len;j++){
    	    	var.u.addr = ZK816_ADDR + 1 - i;
    	    	k = abuff[j];
    	    	var.u.addr += k * 16;
            	for(k = 0;k < 8;k++){
    				var.u.movea.byte[n] = *(var.u.addr + (k * 2));
    				n++;
    			}
    		
    	    }
    	    writeh2s8();
    	}
    }
    LCMCE = 1;
 	
}
void disp_strbb(unsigned char* ptr,unsigned char len)
{
	unsigned char i,j,k,n;
	if(stc.flash.bit.dir){
    	for(i = 0;i < len;i++){
    		var.u.addr = ZK816_ADDR;
    		j =  *(ptr + i);
    		var.u.addr += j * 16;
    		for(j = 0;j < 8;j++){
    		    fnCmd2(LC_ADD_POS,var.u.locat.byte[0],var.u.locat.byte[1]);	// 置地址指针
                fnCmd(LC_AUT_WR);				// 自动写
    			for(k = 0;k < (VIP_GAO / 8);k++){
    				fnDataW(*var.u.addr);				// 写数据
    				var.u.addr++;
				    
				}
				fnCmd(LC_AUT_OVR);				// 自动写结束
                var.u.locat.word += LCDKUAN;
                
            }
        }
    }else{
    	var.u.len = len;
    	LCMRD = 1;
		LCMWR = 1;
	  	LCMDIR = 0xff;
    	for(i = 0;i < 2;i++){
            
    	    n = 0;
    	    for(j = 0;j < len;j++){
    	    	var.u.addr = ZK816_ADDR + 1 - i;
    	    	k = *(ptr + j);
    	    	var.u.addr += k * 16;
                for(k = 0;k < 8;k++){
    				var.u.movea.byte[n] = *(var.u.addr + (k * 2));
    				n++;
    			}
    			
    	    }
    	    writeh2s8();
    	}
    }
}
/*
void disp_rtc(void)
{
	unsigned char i,abuf[32];
	LCMCE = 0;
	if(stc.flag.bit.rtc_clr){
		if(stc.flag.bit.yunxing){
			;
		}else{
			if(stc.flash.bit.dir){
	        	lcd_cls((RTC_SX / 8),RTC_SY,(RTC_GAO / 8),RTC_KUAN);
	    	}else{
	    		if(stc.flag.bit.set){
	    			lcd_cls((RTC_HX / 8),RTC_HY,(RTC_KUAN / 8 - 2),RTC_GAO);
	    		}else{
	    			;
	    		}
	        	//lcd_cls(0,USER_HY,LCDKUAN,USER_GAO);
	    	}
	    	for(i = 0;i < 8;i++){
				stc.rtc1302.byte[i] = 36;
			}
		}
	}else{
		
			i = 0;
			abuf[i++] = HHH;
        	abuf[i++] = HHL;
        	if(stc.flag.bit.rtc_sec){
        		abuf[i++] = 39;
        	}else{
        		abuf[i++] = 36;
        	}
        	abuf[i++] = var.u.vip >> 4;//MmH;
        	abuf[i++] = var.u.vip & 0x0f;//MmL;
        	//abuf[i++] = 36;
        	if(stc.flash.bit.dir){           //竖显
        		var.u.locat.word = (RTC_SY + 72) * LCDKUAN + (RTC_SX / 8);
        		
        
        	}else{          //横显
         		var.u.locat.word = (RTC_HY + 16) * LCDKUAN + (RTC_HX / 8) + 9;
          		
        	}
        	disp_str(&abuf[0],5);
        
        
		if(stc.flag.bit.rtc_date){
			if(stc.t0.tick < TIME_LMT){
				stc.flag.bit.rtc_date = 0;
				i = 0;
				//abuf[i++] = 36;
				if(stc.flash.bit.rtc_en == 1){//中
					//i = 1;
                    abuf[i++] = 2; 
                    abuf[i++] = 0; 
                    abuf[i++] = YYH;
                    abuf[i++] = YYL;
                    abuf[i++] = 50; 
                    abuf[i++] = 51; 
                    abuf[i++] = MMH;
                    abuf[i++] = MML;
                    abuf[i++] = 52; 
                    abuf[i++] = 53; 
                    abuf[i++] = DDH;
                    abuf[i++] = DDL;
                    abuf[i++] = 54; 
                    abuf[i++] = 55;
                }else if(stc.flash.bit.rtc_en == 2){//en1
                	abuf[i++] = 36; 
                    abuf[i++] = MMH;
                 	abuf[i++] = MML;
                 	abuf[i++] = 40;
                 	abuf[i++] = 41;
                 	abuf[i++] = DDH;
                 	abuf[i++] = DDL;
                   	abuf[i++] = 40;
                   	abuf[i++] = 41;
                   	abuf[i++] = 2; 
                    abuf[i++] = 0; 
                    abuf[i++] = YYH;
                    abuf[i++] = YYL;
                    abuf[i++] = 36;
       			}else{						//en2
       				abuf[i++] = 36; 
                    abuf[i++] = 2; 
                    abuf[i++] = 0; 
                    abuf[i++] = YYH;
                    abuf[i++] = YYL;
                    abuf[i++] = 42; 
                    abuf[i++] = 43; 
                    abuf[i++] = MMH;
                    abuf[i++] = MML;
                    abuf[i++] = 42; 
                    abuf[i++] = 43; 
                    abuf[i++] = DDH;
                    abuf[i++] = DDL;
                    abuf[i++] = 36;
       			}
       			if(stc.flash.bit.dir){           //竖显
                 	var.u.locat.word = RTC_SY * LCDKUAN + ((RTC_SX + 16) / 8);
                	
             	}else{          //横显
                  	var.u.locat.word = RTC_HY * LCDKUAN + (RTC_HX / 8);
                 	
             	}
             	disp_str(abuf,RTC_KUAN / 8);
             	var.u.addr = DOW_ADDR;
				var.u.addr += DOW * 9 * 16;
				var.u.kuan = 2;
				var.u.gao = 8 * 9;
				if(stc.flash.bit.dir){
    				var.u.locat.word = RTC_SY * LCDKUAN + ((RTC_SX) / 8);
    				disp_bmps();
    			}else{
    				var.u.locat.word = (RTC_HY + 16) * LCDKUAN + (RTC_HX / 8);
    				disp_bmph();
    			}
             	
                
            }else{
            	;
            }
        }else{
        	;
			
        }
    }
    LCMCE = 1;
}

⌨️ 快捷键说明

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