📄 display.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 + -