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

📄 display.c

📁 单片机控制的12864液晶显示器的驱动程序,通过按键控制
💻 C
字号:
//2003.1.10
//write by sunny
#include "main.h"
#include "display.h"
#include "disdrive.h"
#include "x.h"

extern  char code g_DaiJi[];
extern code * code gZiMo_Go[],gZiMo_0[],gZiMo_1[],gZiMo_2[],gZiMo_3[],gZiMo_4[],gZiMo_5[],gZiMo_6[],gZiMo_7[],gZiMo_8[],gZiMo_9[],gZiMo_a[],gZiMo_b[],gZiMo_c[],gZiMo_d[],gZiMo_e[],gZiMo_f[];
char code * code Num2Char[16]={gZiMo_0,gZiMo_1,gZiMo_2,gZiMo_3,gZiMo_4,gZiMo_5,gZiMo_6,gZiMo_7,gZiMo_8,gZiMo_9,gZiMo_a,gZiMo_b,gZiMo_c,gZiMo_d,gZiMo_e,gZiMo_f,};

//在一个方框里显示"待机"两个字
void ShowWait(void)
{
		LedFillNULL();
		ShowBitMap(g_DaiJi,FALSE,0x02,0x04,0x04,8);//画出一个80*48的有边框里面内容为空的方框	
}


/*show a menu page,显示菜单,传递需要显示页的字模数组指针,和总行数以及需要反现的行,如果总行数大于4,则需要翻页
根据反显行判断页数,如果没有反显行ucSelectLineNum=0,该页即为显示内容,ucNumLine必须<=4*/
void ShowCharPage(char code ** ZiMoPage,unsigned char ucNumLine,unsigned char  ucSelectLineNum)  //cNumLine = item num
{		      
		unsigned char ucLine;	//行变量
		unsigned char ucLineMax;//总的行最大值
		unsigned char ucSegment;//列变量
		unsigned char ucNumFirst;//字模首位变量在行列式中的位置
		if(ucSelectLineNum == 0)	//是显示数据页面不是菜单页面,注意:如果是显示数据页面,cNumLine<=4
		{		
			for(ucLine=0;ucLine<ucNumLine;ucLine=ucLine++)
				for(ucSegment=0;ucSegment<8;ucSegment=ucSegment++)
				{
					ShowOneChar(*(ZiMoPage+ucLine*8+ucSegment),0x00,ucLine+ucLine,ucSegment+ucSegment);
				}
		}
		else
		{	
			ucNumFirst = (ucSelectLineNum/4)*32;//显示页面首字在行列式字模当中的首位
			
			if((ucNumLine-ucSelectLineNum)>=4) ucLineMax = 4;
			else 
			{
				ucLineMax = ucNumLine-(ucSelectLineNum/4)*4;
				LedFillNULL();
			}
			for(ucLine=0;ucLine<ucLineMax;ucLine=ucLine++) 	
				for(ucSegment=0;ucSegment<8;ucSegment=ucSegment++)	//写入某一行
				{
					if(ucSelectLineNum%4==ucLine)
					{
						ShowOneChar(*(ZiMoPage+ucLine*8+ucSegment+ucNumFirst),0xFF,ucLine+ucLine,ucSegment+ucSegment);	
					}
					else
					{
						ShowOneChar(*(ZiMoPage+ucLine*8+ucSegment+ucNumFirst),0x00,ucLine+ucLine,ucSegment+ucSegment);		
					}
				}
		}
}

/*传递数组指针,屏幕中起始字行位置(<4),起始字列位置(<8),xnum是行宽,ynum是列宽(16*16为最小单位),把屏幕可以看成4*8的矩阵

⌨️ 快捷键说明

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