📄 display.c
字号:
/////////////////////////////////////////////////////////////
// LED点阵显示函数
// 显示字符A-Z以及数字0-9
//
#include "at89x52.h"
#include "common.h"
#include "display.h"
///////////////////////////////////////////////////////////////////////////////
// 如果需要显示模块
#ifdef NEED_DISPLAY
/////////////////////////////////////////////////////////////////////////////////////////
// 字母显示编码
const unsigned char code char_A[8]={0x80,0xe0,0xbc,0x22,0xbc,0xe0,0x80,0x00};
const unsigned char code char_B[8]={0x00,0x82,0xFE,0x92,0x92,0x92,0x6C,0x00};
const unsigned char code char_C[8]={0x00,0x7C,0x82,0x82,0x84,0x66,0x00,0x00};
const unsigned char code char_D[8]={0x00,0x82,0xFE,0x82,0x82,0x44,0x38,0x00};
const unsigned char code char_E[8]={0x00,0x82,0xFE,0x92,0xBA,0x82,0xC6,0x00};
const unsigned char code char_F[8]={0x00,0x82,0xFE,0x92,0x3A,0x06,0x00,0x00};
const unsigned char code char_G[8]={0x00,0x7C,0x82,0x82,0x94,0x76,0x10,0x00};
const unsigned char code char_H[8]={0x00,0xFE,0x10,0x10,0x10,0x10,0xFE,0x00};
const unsigned char code char_I[8]={0x00,0x00,0x82,0xFE,0x82,0x00,0x00,0x00};
const unsigned char code char_J[8]={0x00,0x60,0x80,0x82,0x7E,0x02,0x00,0x00};
const unsigned char code char_K[8]={0x00,0xFF,0x10,0x08,0x14,0x22,0x41,0x80};
const unsigned char code char_L[8]={0x00,0x82,0xFE,0x82,0x80,0x80,0xC0,0x00};
const unsigned char code char_M[8]={0x00,0xFF,0x0C,0x30,0xC0,0x30,0x0C,0xFF};
const unsigned char code char_N[8]={0x00,0xFE,0x04,0x08,0x10,0x20,0x40,0xFE};
const unsigned char code char_O[8]={0x00,0x38,0x44,0x82,0x82,0x82,0x44,0x38};
const unsigned char code char_P[8]={0x00,0xFE,0x12,0x12,0x12,0x12,0x1C,0x00};
const unsigned char code char_Q[8]={0x3C,0x42,0x81,0xA1,0xA1,0x42,0xBC,0x00};
const unsigned char code char_R[8]={0x00,0xFE,0x12,0x12,0x12,0x72,0x9C,0x80};
const unsigned char code char_S[8]={0x00,0x6E,0x89,0x89,0x89,0x89,0x72,0x00};
const unsigned char code char_T[8]={0x00,0x06,0x82,0xFE,0x82,0x06,0x00,0x00};
const unsigned char code char_U[8]={0x00,0x02,0x7E,0x80,0x80,0x7E,0x02,0x00};
const unsigned char code char_V[8]={0x00,0x02,0x3E,0xC0,0x38,0x1E,0x02,0x00};
const unsigned char code char_W[8]={0x00,0x1E,0xE0,0x3E,0xE0,0x1E,0x00,0x00};
const unsigned char code char_X[8]={0x00,0x82,0xC6,0x38,0xC6,0x82,0x00,0x00};
const unsigned char code char_Y[8]={0x00,0x02,0x8E,0xF0,0x8E,0x02,0x00,0x00};
const unsigned char code char_Z[8]={0x00,0x86,0xC2,0xB2,0x8E,0xC2,0x00,0x00};
////////////////////////////////////////////////////////////////////////////////////////
// 数字显示编码
const unsigned char code char_0[8]={0x00,0x7C,0x82,0x82,0x82,0x7C,0x00,0x00};
const unsigned char code char_1[8]={0x00,0x00,0x84,0xFE,0x80,0x00,0x00,0x00};
const unsigned char code char_2[8]={0x00,0x8C,0xC2,0xA2,0x92,0x8C,0x00,0x00};
const unsigned char code char_3[8]={0x00,0x44,0x82,0x92,0x92,0x6C,0x00,0x00};
const unsigned char code char_4[8]={0x00,0x10,0x28,0x24,0xFE,0xA0,0x00,0x00};
const unsigned char code char_5[8]={0x00,0x4E,0x8A,0x8A,0x8A,0x72,0x00,0x00};
const unsigned char code char_6[8]={0x00,0x7C,0x92,0x92,0x96,0x60,0x00,0x00};
const unsigned char code char_7[8]={0x00,0x06,0x02,0xF2,0x0E,0x02,0x00,0x00};
const unsigned char code char_8[8]={0x00,0x6C,0x92,0x92,0x92,0x6C,0x00,0x00};
const unsigned char code char_9[8]={0x00,0x1C,0xD2,0x92,0x92,0xFC,0x00,0x00};
/////////////////////////////////////////////////////////////////////////////////////////
//
const unsigned char code char_F1[8]={0x82,0xFE,0x92,0x3A,0x06,0x90,0xF8,0x80};
const unsigned char code char_F2[8]={0x82,0xFE,0x92,0x3A,0x06,0xE8,0xA8,0xB8};
const unsigned char code char_F3[8]={0x82,0xFE,0x92,0x3A,0x06,0xA8,0xA8,0xF8};
const unsigned char code char_F4[8]={0x82,0xFE,0x92,0x3A,0x66,0x50,0xF8,0x40};
const unsigned char code char_F5[8]={0x82,0xFE,0x92,0x3A,0x06,0xB8,0xA8,0xE8};
const unsigned char code char_F6[8]={0x82,0xFE,0x92,0x3A,0x06,0xF8,0xA8,0xE8};
const unsigned char code char_F7[8]={0x82,0xFE,0x92,0x3A,0x06,0x10,0x10,0xF0};
const unsigned char code char_F8[8]={0x82,0xFE,0x92,0x3A,0x06,0xF8,0xA8,0xF8};
const unsigned char code char_F9[8]={0x82,0xFE,0x92,0x3A,0x06,0xB8,0xA8,0xF8};
const unsigned char code char_F10[8]={0x82,0xFE,0x92,0x3A,0xE6,0x00,0xE0,0xA0};
const unsigned char code char_F11[8]={0x82,0xFE,0x92,0x3A,0x06,0xF0,0x00,0xF0};
const unsigned char code char_F12[8]={0x82,0xFE,0x92,0x3A,0xE6,0x00,0xE8,0xB8};
const unsigned char code char_SP[8]={0xDE,0x92,0xF6,0x00,0xF8,0x28,0x28,0x38};
const unsigned char code char_ET[8]={0x20,0x70,0xF8,0x20,0x20,0x21,0x3F,0x01};
const unsigned char code char_CT[8]={0x7E,0x82,0x84,0x66,0x00,0x10,0xF0,0x10};
const unsigned char code char_SH[8]={0xDE,0x92,0xF6,0x00,0xF8,0x20,0x20,0xF8};
const unsigned char code char_AT[8]={0xA0,0xFC,0x22,0xFC,0xA0,0x10,0xF0,0x10};
const unsigned char code char_CP[8]={0x7E,0x82,0x84,0x66,0x00,0xF8,0x28,0x38};
const unsigned char code char_TB[8]={0x10,0xF0,0x10,0x82,0xFE,0x92,0x92,0x6C};
const unsigned char code char_Down[8]={0x00,0x10,0x2E,0x42,0x2E,0x10,0x00,0x00};
const unsigned char code char_Upper[8]={0x00,0x08,0x74,0x42,0x74,0x08,0x00,0x00};
const unsigned char code char_Left[8]={0x00,0x10,0x28,0x44,0x28,0x28,0x38,0x00};
const unsigned char code char_Right[8]={0x00,0x38,0x28,0x28,0x44,0x28,0x10,0x00};
const unsigned char code char_Add[8]={0x00,0x08,0x08,0x7E,0x08,0x08,0x00,0x00};
const unsigned char code char_Sub[8]={0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x00};
const unsigned char code char_Mul[8]={0x00,0x82,0xC6,0x38,0xC6,0x82,0x00,0x00};
const unsigned char code char_Dev[8]={0x00,0x08,0x08,0x2A,0x08,0x08,0x00,0x00};
const unsigned char code char_Sla[8]={0x00,0x40,0x20,0x10,0x08,0x04,0x02,0x00};
const unsigned char code char_FSla[8]={0x00,0x02,0x04,0x08,0x10,0x20,0x40,0x00};
const unsigned char code char_Dou[8]={0x00,0x00,0x00,0x4C,0x3C,0x00,0x00,0x00};
const unsigned char code char_Jue[8]={0x00,0x00,0x18,0x24,0x24,0x18,0x00,0x00};
const unsigned char code char_Fen[8]={0x00,0x00,0x00,0xB6,0x76,0x00,0x00,0x00};
const unsigned char code char_Jian[8]={0x00,0x10,0x0E,0x00,0x00,0x00,0x00,0x00};
const unsigned char code char_Dian[8]={0x00,0x00,0x00,0x00,0x0E,0x10,0x00,0x00};
const unsigned char code char_LKuo[8]={0x00,0x7E,0x42,0x42,0x00,0x00,0x00,0x00};
const unsigned char code char_RKuo[8]={0x00,0x00,0x00,0x00,0x42,0x42,0x7E,0x00};
const unsigned char code char_Den[8]={0x00,0x14,0x14,0x14,0x14,0x14,0x14,0x00};
const unsigned char code char_Back[8]={0x00,0x08,0x1C,0x08,0x08,0x08,0x08,0x00};
const unsigned char code char_Esc[8]={0xFE,0x02,0x12,0xFA,0x92,0x82,0xBE,0x00};
const unsigned char code char_DLine[8]={0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00};
const unsigned char code char_Win[8]={0x00,0x2A,0x15,0x2A,0x54,0xA8,0x54,0x00};
const unsigned char code char_Apps[8]={0x00,0xFE,0xAA,0x82,0xBA,0xDE,0x28,0x40};
////////////////////////////////////////////////////////////////////////////////////////
// 空编码
const unsigned char code char_NULL[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
////////////////////////////////////////////////////////////////////////////////////
const unsigned char Row[8]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F}; // 列扫描编码
unsigned char *ChoicePtr; //数据选择指针
unsigned char ScanPtr=0; //扫描指针
///////////////////////////////////////////////////////////////////////////////
// 图形显示函数
// 每次调用扫描一列
// 参数:无
// 返回值:无
void Display()
{
unsigned char CircleTemp=0x00;
gShiftPulse=0x00; //RDK控制端 ,用以控制并行数据的输出
for(CircleTemp=0x00;CircleTemp<0x08;CircleTemp++)
{
lShiftPulse=0x0; //SCK移位脉冲
DataPort=Row[ScanPtr]&(0x80>>CircleTemp);
lShiftPulse=0x1;
}
for(CircleTemp=0x00;CircleTemp<0x08;CircleTemp++)
{
lShiftPulse=0x00;
DataPort=ChoicePtr[ScanPtr]&(0x80>>CircleTemp); //数据传送端
lShiftPulse=0x1;
}
gShiftPulse=0x01;
ScanPtr++;
if(ScanPtr==0x08)
{
ScanPtr=0x00;
}
}
////////////////////////////////////////////////////////////////////////////////
// 换码函数
// 通过键盘扫描码获得要输出数据的LED点阵图形代码
// 参数:无
// 返回值:无
extern unsigned char gSymboleE0;
void Print(unsigned char lCode)
{
if(gSymboleE0==0) //如果有E0标志位
{
switch(lCode)
{
case 0x1C: //获得的是键盘的扫描码
ChoicePtr=char_A;
break;
case 0x32:
ChoicePtr=char_B;
break;
case 0x21:
ChoicePtr=char_C;;
break;
case 0x23:
ChoicePtr=char_D;
break;
case 0x24:
ChoicePtr=char_E;
break;
case 0x2B:
ChoicePtr=char_F;
break;
case 0x34:
ChoicePtr=char_G;
break;
case 0x33:
ChoicePtr=char_H;
break;
case 0x43:
ChoicePtr=char_I;
break;
case 0x3B:
ChoicePtr=char_J;
break;
case 0x42:
ChoicePtr=char_K;
break;
case 0x4B:
ChoicePtr=char_L;
break;
case 0x3A:
ChoicePtr=char_M;
break;
case 0x31:
ChoicePtr=char_N;
break;
case 0x44:
ChoicePtr=char_O;
break;
case 0x4D:
ChoicePtr=char_P;
break;
case 0x15:
ChoicePtr=char_Q;
break;
case 0x2D:
ChoicePtr=char_R;
break;
case 0x1B:
ChoicePtr=char_S;
break;
case 0x2C:
ChoicePtr=char_T;
break;
case 0x3C:
ChoicePtr=char_U;
break;
case 0x2A:
ChoicePtr=char_V;
break;
case 0x1D:
ChoicePtr=char_W;
break;
case 0x22:
ChoicePtr=char_X;
break;
case 0x35:
ChoicePtr=char_Y;
break;
case 0x1A:
ChoicePtr=char_Z;
break;
case 0x45:
ChoicePtr=char_0;;
break;
case 0x16:
ChoicePtr=char_1;
break;
case 0x1E:
ChoicePtr=char_2;
break;
case 0x26:
ChoicePtr=char_3;
break;
case 0x25:
ChoicePtr=char_4;
break;
case 0x2E:
ChoicePtr=char_5;
break;
case 0x36:
ChoicePtr=char_6;
break;
case 0x3D:
ChoicePtr=char_7;
break;
case 0x3E:
ChoicePtr=char_8;
break;
case 0x46:
ChoicePtr=char_9;
case 0x05:
ChoicePtr=char_F1;
break;
case 0x06:
ChoicePtr=char_F2;
break;
case 0x04:
ChoicePtr=char_F3;
break;
case 0x0C:
ChoicePtr=char_F4;
break;
case 0x03:
ChoicePtr=char_F5;
break;
case 0x0B:
ChoicePtr=char_F6;
break;
case 0x83:
ChoicePtr=char_F7;
break;
case 0x0A:
ChoicePtr=char_F8;
break;
case 0x01:
ChoicePtr=char_F9;
break;
case 0x09:
ChoicePtr=char_F10;
break;
case 0x78:
ChoicePtr=char_F11;
break;
case 0x07:
ChoicePtr=char_F12;
break;
case 0x5A:
ChoicePtr=char_ET;
break;
case 0x12:
ChoicePtr=char_SH;
break;
case 0x29:
ChoicePtr=char_SP;
break;
case 0x11:
ChoicePtr=char_AT;
break;
case 0x14:
ChoicePtr=char_CT;
break;
case 0x0D:
ChoicePtr=char_TB;
break;
case 0x58:
ChoicePtr=char_CP;
break;
case 0x59:
ChoicePtr=char_SH;
break;
case 0x54:
ChoicePtr=char_LKuo;
break;
case 0x5B:
ChoicePtr=char_RKuo;
break;
case 0x66:
ChoicePtr=char_Back;
break;
case 0x79:
ChoicePtr=char_Add;
break;
case 0x7B:
ChoicePtr=char_Sub;
break;
case 0x7C:
ChoicePtr=char_Mul;
break;
case 0x4C:
ChoicePtr=char_Fen;
break;
case 0x41:
ChoicePtr=char_Dou;
break;
case 0x49:
ChoicePtr=char_Jue;
break;
case 0x4A:
ChoicePtr=char_Sla;
break;
case 0x52:
ChoicePtr=char_Jian;
break;
case 0x0E:
ChoicePtr=char_Dian;
break;
case 0x4E:
ChoicePtr=char_DLine;
break;
case 0x55:
ChoicePtr=char_Den;
break;
case 0x5D:
ChoicePtr=char_FSla;
break;
case 0x76:
ChoicePtr=char_Esc;
break;
case 0x71:
ChoicePtr=char_Jue;
break;
default:
ChoicePtr=char_NULL;
}
}
else if(gSymboleE0==1)
{
switch(lCode)
{
case 0x5A:
ChoicePtr=char_ET;
break;
case 0x11:
ChoicePtr=char_AT;
break;
case 0x14:
ChoicePtr=char_CT;
break;
case 0x75:
ChoicePtr=char_Upper;
break;
case 0x6B:
ChoicePtr=char_Left;
break;
case 0x72:
ChoicePtr=char_Down;
break;
case 0x74:
ChoicePtr=char_Right;
break;
case 0x4A:
ChoicePtr=char_Sla;
break;
case 0x1F:
ChoicePtr=char_Win;
break;
case 0x27:
ChoicePtr=char_Win;
break;
case 0x2F:
ChoicePtr=char_Apps;
break;
case 0x71:
ChoicePtr=char_Jue;
break;
default:
ChoicePtr=char_NULL;
}
}
}
///////////////////////////////////////////////////////////////////////////////////
// 文件结束
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -