📄 dispchar.asm
字号:
//---------------------------------------------------------------------------------------------------------------------
//Program Name: dispChar.asm
//Applied Body: SPT6605
//Project Description: This is a simple demo code for diplay a char of 5*7 latice with special position.
//compile: Sunplus unSP IDE
//Programmer: TaoWei
//Current Version: V1.0
//Writteen Date: 2007/3/2
//---------------------------------------------------------------------------------------------------------------------
.RAM
DispChar: .DW 0;
DispXPos: .DW 0;
SegVal: .DW 0;
SegAddr: .DW 0x7100;
TB_CharCode:
.DW 0x00, 0x00, 0x00, 0x00, 0x00; //space=0x20 -0*5
.DW 0x00, 0x00, 0x4f, 0x00, 0x00; //'!'=0x21; -1*5
.DW 0x00, 0x07, 0x00, 0x07, 0x00; //'!'=0x22; -2*5
.DW 0x14, 0x7f, 0x14, 0x7f, 0x14; //'#'=0x23; -3*5
.DW 0x24, 0x2a, 0x7f, 0x2a, 0x12; //'$'=0x24; -4*5
.DW 0x23, 0x13, 0x08, 0x64, 0x62; //'%'=0x25; -5*5
.DW 0x36, 0x49, 0x55, 0x22, 0x50; //'&'=0x26; -6*5
.DW 0x00, 0x05, 0x03, 0x00, 0x00; //'&'=0x27; -7*5
.DW 0x00, 0x1c, 0x22, 0x41, 0x00; //'('=0x28; -8*5
.DW 0x00, 0x41, 0x22, 0x1c, 0x00; //')'=0x29; -9*5
.DW 0x14, 0x08, 0x3e, 0x08, 0x14; //'*'=0x2A; -10*5
.DW 0x08, 0x08, 0x3e, 0x08, 0x08; //'+'=0x2B; -11*5
.DW 0x00, 0x50, 0x30, 0x00, 0x00; //','=0x2C; -12*5
.DW 0x08, 0x08, 0x08, 0x08, 0x08; //'-'=0x2D; -13*5
.DW 0x00, 0x60, 0x60, 0x00, 0x00; //'.'=0x2E; -14*5
.DW 0x20, 0x10, 0x08, 0x04, 0x02; //'/'=0x2F; -15*5
.DW 0x3e, 0x51, 0x49, 0x45, 0x3e; //'0'=0x30; -16*5
.DW 0x00, 0x42, 0x7f, 0x40, 0x00; //'1'=0x31; -17*5
.DW 0x42, 0x61, 0x51, 0x49, 0x46; //'2'=0x32; -18*5
.DW 0x21, 0x41, 0x45, 0x4b, 0x31; //'3'=0x33; -19*5
.DW 0x18, 0x14, 0x12, 0x7f, 0x10; //'4'=0x34; -20*5
.DW 0x27, 0x45, 0x45, 0x45, 0x39; //'5'=0x35; -21*5
.DW 0x3c, 0x4a, 0x49, 0x49, 0x30; //'6'=0x36; -22*5
.DW 0x03, 0x01, 0x71, 0x09, 0x07; //'7'=0x37; -23*5
.DW 0x36, 0x49, 0x49, 0x49, 0x36; //'8'=0x38; -24*5
.DW 0x06, 0x49, 0x49, 0x29, 0x1f; //'9'=0x39; -25*5
.DW 0x00, 0x36, 0x36, 0x00, 0x00; //':'=0x3A; -26*5
.DW 0x00, 0x36, 0x36, 0x00, 0x00; //';'=0x3B; -27*5
.DW 0x00, 0x08, 0x14, 0x22, 0x41; //'<'=0x3C; -28*5
.DW 0x14, 0x14, 0x14, 0x14, 0x14; //'='=0x3D; -29*5
.DW 0x41, 0x22, 0x14, 0x08, 0x00; //'>'=0x3E; -30*5
.DW 0x02, 0x01, 0x51, 0x09, 0x06; //'?'=0x3F; -31*5
.DW 0x02, 0x01, 0x51, 0x09, 0x06; //'@'=0x40; -32*5
.DW 0x7c, 0x12, 0x11, 0x12, 0x7c; //'A'=0x41; -33*5
.DW 0x7f, 0x49, 0x49, 0x49, 0x36; //'B'=0x42; -34*5
.DW 0x3e, 0x41, 0x41, 0x41, 0x22; //'C'=0x43; -35*5
.DW 0x7f, 0x41, 0x41, 0x22, 0x1c; //'D'=0x44; -36*5
.DW 0x7f, 0x49, 0x49, 0x49, 0x41; //'E'=0x45; -37*5
.DW 0x7f, 0x09, 0x09, 0x09, 0x01; //'F'=0x46; -38*5
.DW 0x3e, 0x41, 0x49, 0x49, 0x7a; //'G'=0x47; -39*5
.DW 0x7f, 0x08, 0x08, 0x08, 0x7f; //'H'=0x48; -40*5
.DW 0x00, 0x41, 0x7f, 0x41, 0x00; //'I'=0x49; -41*5
.DW 0x20, 0x40, 0x41, 0x3f, 0x01; //'J'=0x4A; -42*5
.DW 0x7f, 0x08, 0x14, 0x22, 0x41; //'K'=0x4B; -43*5
.DW 0x7f, 0x40, 0x40, 0x40, 0x40; //'L'=0x4C; -44*5
.DW 0x7f, 0x02, 0x0c, 0x02, 0x7f; //'M'=0x4D; -45*5
.DW 0x7f, 0x04, 0x08, 0x10, 0x7f; //'N'=0x4E; -46*5
.DW 0x03, 0x41, 0x41, 0x41, 0x3e; //'O'=0x4F; -47*5
.DW 0x7f, 0x09, 0x09, 0x09, 0x06; //'P'=0x50; -48*5
.DW 0x3e, 0x41, 0x51, 0x21, 0x5e; //'Q'=0x51; -49*5
.DW 0x7f, 0x09, 0x19, 0x29, 0x46; //'R'=0x52; -50*5
.DW 0x26, 0x49, 0x49, 0x49, 0x32; //'S'=0x53; -51*5
.DW 0x01, 0x01, 0x7f, 0x01, 0x01; //'T'=0x54; -52*5
.DW 0x3f, 0x40, 0x40, 0x40, 0x3f; //'U'=0x55; -53*5
.DW 0x1f, 0x20, 0x40, 0x20, 0x1f; //'V'=0x56; -54*5
.DW 0x3f, 0x40, 0x38, 0x40, 0x3f; //'W'=0x57; -55*5
.DW 0x63, 0x14, 0x08, 0x14, 0x63; //'X'=0x58; -56*5
.DW 0x07, 0x08, 0x70, 0x08, 0x07; //'Y'=0x59; -57*5
.DW 0x61, 0x51, 0x49, 0x45, 0x43; //'Z'=0x5A; -58*5
.DW 0x00, 0x7f, 0x41, 0x41, 0x00; //'['=0x5B; -59*5
.DW 0x02, 0x04, 0x08, 0x10, 0x20; //'\'=0x5C; -60*5
.DW 0x00, 0x41, 0x41, 0x7f, 0x00; //']'=0x5D; -61*5
.DW 0x00, 0x41, 0x41, 0x7f, 0x00; //'^'=0x5E; -62*5
.DW 0x40, 0x40, 0x40, 0x40, 0x40; //'_'=0x5F; -63*5
.DW 0x00, 0x00, 0x00, 0x00, 0x00; //'_'=0x60; -64*5
.DW 0x20, 0x54, 0x54, 0x54, 0x78; //'a'=0x61; -65*5
.DW 0x7f, 0x48, 0x44, 0x44, 0x38; //'b'=0x62; -66*5
.DW 0x38, 0x44, 0x44, 0x44, 0x20; //'c'=0x63; -67*5
.DW 0x30, 0x48, 0x48, 0x50, 0x7f; //'d'=0x64; -68*5
.DW 0x38, 0x54, 0x54, 0x54, 0x18; //'e'=0x65; -69*5
.DW 0x08, 0x7e, 0x09, 0x01, 0x02; //'f'=0x66; -70*5
.DW 0x08, 0x54, 0x54, 0x54, 0x3c; //'g'=0x67; -71*5
.DW 0x7f, 0x08, 0x04, 0x04, 0x78; //'h'=0x68; -72*5
.DW 0x00, 0x48, 0x7d, 0x40, 0x00; //'i'=0x69; -73*5
.DW 0x20, 0x40, 0x44, 0x3d, 0x00; //'j'=0x6A; -74*5
.DW 0x00, 0x7f, 0x10, 0x28, 0x44; //'k'=0x6B; -75*5
.DW 0x00, 0x41, 0x7f, 0x40, 0x00; //'l'=0x6C; -76*5
.DW 0x7c, 0x04, 0x78, 0x04, 0x78; //'m'=0x6D; -77*5
.DW 0x7c, 0x08, 0x04, 0x04, 0x78; //'n'=0x6E; -78*5
.DW 0x38, 0x44, 0x44, 0x44, 0x38; //'o'=0x6F; -79*5
.DW 0x7c, 0x14, 0x14, 0x14, 0x08; //'p'=0x70; -80*5
.DW 0x08, 0x14, 0x14, 0x18, 0x7c; //'q'=0x71; -81*5
.DW 0x7c, 0x08, 0x04, 0x04, 0x08; //'r'=0x72; -82*5
.DW 0x48, 0x54, 0x54, 0x54, 0x20; //'s'=0x73; -83*5
.DW 0x04, 0x3f, 0x44, 0x40, 0x20; //'t'=0x74; -84*5
.DW 0x3c, 0x40, 0x40, 0x20, 0x7c; //'u'=0x75; -85*5
.DW 0x1c, 0x20, 0x40, 0x20, 0x1c; //'v'=0x76; -86*5
.DW 0x3c, 0x40, 0x30, 0x40, 0x3c; //'w'=0x77; -87*5
.DW 0x44, 0x28, 0x10, 0x28, 0x44; //'x'=0x78; -88*5
.DW 0x0c, 0x50, 0x50, 0x50, 0x3c; //'y'=0x79; -89*5
.DW 0x44, 0x64, 0x54, 0x4c, 0x44; //'z'=0x7A; -90*5
.DW 0x00, 0x08, 0x36, 0x41, 0x00; //'{'=0x7B; -91*5
.DW 0x00, 0x00, 0x7f, 0x00, 0x00; //'|'=0x7C; -92*5
.DW 0x00, 0x41, 0x36, 0x08, 0x00; //'}'=0x7D; -93*5
.DW 0x08, 0x04, 0x04, 0x08, 0x04; //'~'=0x7E; -94*5
TB_LcdAddr:
.DW 0x7123; //pos0
.DW 0x711e; //pos1
.DW 0x7119; //pos2
.DW 0x7114; //pos3
.DW 0x710f; //pos4
.DW 0x710a; //pos5
.DW 0x7105; //pos6
.DW 0x7100; //pos7
.DW 0x7114; //pos8
.DW 0x7119; //pos9
.DW 0x711f; //pos10
.DW 0x7123; //pos11
//---------------------------------------------------------------------------------------------------------------------
.code
//---------------------------------------------------------------------------------------------------------------------
//Function Name: F_DisplayChar
//Purpose: diplay a char of 5*7 latice with special position
//Paramters: R1--displayed ASCII data, R2--position of displayed data
//---------------------------------------------------------------------------------------------------------------------
_F_DisplayChar:
[DispChar] = R1;
[DispXPos] = R2;
R1 = [DispChar];
R1 -= 0X20;
R2 = R1;
R1 = R1 LSL 2;
R1 += R2;
R2 = 0;
R3 = [DispXPos];
CMP R3, 8;
JB F_DispLowPosChar;
F_DispHighPosChar:
R3 = TB_CharCode
R3 += R2
R3 += R1
R3 = [R3];
[SegVal] = R3;
R3 = R1 LSL 4;
R3 = R3 LSL 4;
R3 = R3 LSL 1;
[SegVal] = R3;
R3 = [DispXPos];
R3 += TB_LcdAddr;
R3 = [R3];
R3 +=R2;
[SegAddr] = R3;
R3 &= 0x01ff
[SegAddr] = R3;
R3 |= [SegVal];
[SegAddr] = R3;
R2 += 1;
CMP R2, 5;
JB F_DispHighPosChar;
JMP DisplayCharRet;
F_DispLowPosChar:
R3 = TB_CharCode
R3 += R1
R3 += R2
R3 = [R3]
[SegVal] = R3;
R3 = [DispXPos]
R3 += TB_LcdAddr
R3 = [R3]
R3 += R2
[SegAddr] = R3;
R3 &= 0xff80
[SegAddr] = R3;
R3 |= [SegVal]
[SegAddr] = R3;
R2 += 1;
CMP R2, 5;
JB F_DispLowPosChar;
DisplayCharRet:
RETF;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -