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

📄 dispchar.asm

📁 display a char with the position and ascci data
💻 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 + -