字符叠加芯片90092的配置

说明

MB90092是日本FUJITSU公司推出的一款用CMOS工艺制成的专用视频字符叠加芯片。MB90092内部集成了显示内存(VRAM)、外挂字库接口和视频信号发生器,外部只需连接少量的元件就可以显示汉字和图形。 MB90092的配置接口是spi,下面是stm32配置mb90092的方式 包括mb90092的基础配置和后面可以实时切换显示的字符的代码 在叠加字符的时候,相应的字符存储在rom中,指定字符地址就可读取


90092的上电初始配置

void init_ic(unsigned char bc)

{

unsigned char i,j;

MB90092_SPI_SendData(0x98);   /*--------command 3----------*/           //没填充FIL位
复制代码


MB90092_SPI_SendData(0); /*FIL 位,此命令可以不动 */

// MB90092_SPI_SendData(0xaa); //--------command 5----------/

//---------
     MB90092_SPI_SendData(0xad);//---------    //ac 10101100 ,ad:10101101
复制代码


MB90092_SPI_SendData(0x11); //*;1 0 1 0 1 KID APC GYZ

//45度的颜色相位偏移,BH2/BH1/BH0,主屏线空间控制:W3/W2/W1/W0

MB90092_SPI_SendData(0xbd);   //*-command 7 ---1011 1101-*/
复制代码


MB90092_SPI_SendData(0x1c); //垂直位置设定 14 /24

MB90092_SPI_SendData(0xc4);   /*0xc4--------command 8-----11000100-------*/
复制代码


MB90092_SPI_SendData(0x22); //水平位置设定 0x0a

MB90092_SPI_SendData(0xc8); /--------command 9---------/

MB90092_SPI_SendData(0x00); //*水平位置设定

MB90092_SPI_SendData(0xd0);   //*-0xd1字体有背景#######-------command10----------
复制代码


MB90092_SPI_SendData(0x58+bc); //0x58#####1 1 0 1 0 0 0 RB

//MB90092_SPI_SendData(0x38+bc); // 0 BK CC BC UC UG UR UB

signal=0;
     MB90092_SPI_SendData(0xa2+signal);//*-------command4----------
复制代码


// MB90092_SPI_SendData(0x2b);

MB90092_SPI_SendData(0x39);//---------
复制代码


//command6

//MB90092_SPI_SendData(0xb2);

for(i=0;i<12;i++)
{
         disp_color(i);
     }
     for(j=0;j<13;j++)
     {
              for(i=0;i<24;i++)
              {
                      disp_num(j,i,0x00,1,bc,0,0);
              }
     }
}


不同形式的字符显示

//白边测试

//原,字体正常,没有白边

// MB90092_SPI_SendData(0xa6); //signal=4;外同步;signal=0,内同步,IE设置

// MB90092_SPI_SendData(0x0B); //P制式

//字体放大,有白边。

MB90092_SPI_SendData(0xa4); //1010 0100

MB90092_SPI_SendData(0x39); //0011 1001 ZM=1 缩放到主屏

//有白边,字体正常。

// MB90092_SPI_SendData(0xa4);//1010 0100

// MB90092_SPI_SendData(0x29); //0010 1001 ZM=0 正常显示


显示相应的字符

在特定的行和列显示指定的字符,以指定的格式显示

//************************************************************************************* /* row:行, col:列, addr:地址, flag:尺寸, bc:背景颜色, cc:前景颜色, at:特殊显示标记*/ //************************************************************************************* void disp_num(unsigned char row, unsigned char col,unsigned short addr,unsigned char flag,unsigned char bc,unsigned char cc, unsigned char ff) {

unsigned char temp1,temp2,color;
unsigned char ma,mb,mc;    
    
temp1=row; 
temp1=((temp1>>2)&0x3)+0x80;                    //行位置设定命令转换
temp2=row;
temp2=((temp2<<5)&0x60)+col;                    //列位置设定命令转换
MB90092_SPI_SendData(temp1);                   //行位置
MB90092_SPI_SendData(temp2);                   //列位置
                          
MB90092_SPI_SendData(0xb0+flag);               //字体尺寸
MB90092_SPI_SendData(0x20+row);                //字体尺寸
  
//Command 1-1
// 1 0 0 0 1 MA MB AT
//AT:0 -- Specify normal display
//   1 -- Specify attribute display
//Solid-fill background (when command 10: RB = 1)
//Blinking (when command 10: BK = 1)
//Shaded background (when command 1: BS = 1)
color=((cc<<4)&0x70)+bc;
//0 CG CR CB NC BG BR BB
//              GR BS MD
MB90092_SPI_SendData(0x88|ff); 
MB90092_SPI_SendData(color);   
     
mc=((addr/4096)<<3)&0x08;
mb=(((addr%4096)/2048)<<1)&0x02;
ma=(((addr%2048)/1024)<<2)&0x04;
//Command 1-1
MB90092_SPI_SendData(0x88|ff|ma|mb);               //command1-1 
MB90092_SPI_SendData(color|mc);             
//command2-1
MB90092_SPI_SendData(0x90+(addr%1024)/128);        //command2-1
MB90092_SPI_SendData(addr%128);
}


上一篇:音频DA转换芯片CS4334及基于FPGA的时钟配置


下一篇:pandas多班级合并提取教师个人课表,多表同位置填充数据