新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于F2812的监测系统的设计

基于F2812的监测系统的设计

作者: 时间:2009-03-31 来源:网络 收藏

在下面将列出部分初始化程序来说明指令的使用,但对于CSRDIR和CSRW指令,有必要详细解释一下。CSRDIR指令是用来设置光标移动方向的,有上,下,左,右四个移动方向(4EH,4FH,4DH,4CH),CSRW指令则是用来设置光标地址的。要特别注意这里的光标是对应显存里面的一个字节(byte),而不是对应字节里的一个位(bit),当设置光标向右移动时,每写完一个字节数据到显存,光标地址就会加一,此时对应显存的字节地址加一;同理,设置光标向左移动时,对应显存的字节地址减一。而当设置光标向下移动时,目标光标地址(字节地址)=当前光标地址(字节地址)+AP(液晶屏一行所对应显存的字节数),注:一般AP设置为完整显示液晶屏一行所用字节数加1,即40+1=41. 如下图所示,如果当前光标在字节地址Add1处,则写完一个字节数据后光标则移到了字节地址Add42处;同理,设置光标向上移动时,如果当前光标在Add81处,则写完一个字节数据后光标则移到了Add40处

5. 的软件

5.1初始化LCD程序:

#define LCD_DAT (*((volatile unsigned int *)0x3800)) //定义数据寄存器

#define LCD_COM (*((volatile unsigned int *)0x3801))//定义指令寄存器

void Lcd_init(void)

{

LCD_COM = 0x40;//显示窗口设置指令,之后带8个参数

LCD_DAT = 0x30;//单屏LCD模式,内部字元发生器有效

LCD_DAT = 0x87;//显示字符宽度8

LCD_DAT = 0x07;//显示字符高度8

LCD_DAT = 0x27;//一行显示40个字节

LCD_DAT = 0x46;

LCD_DAT = 0xEF;//总共显示240行

LCD_DAT = 0x28;//AP=40+1

LCD_DAT = 0x00;

…………… //其他初始化指令

}

5.2 显示一个32x32字符程序:

void Disp16x32Char(void)

{

LCD_COM = 0x4E;//设置光标地址自动移动方向 向上

for(i=0;i4;i++)//从左到右连续写入4列数据,每列32字节,共128字节

{ // x1取值范围1--40,y1取值范围1--240

Set_Graphic_Csr(x1,y1); //根据光标所在位置计算出对应的字节地址

p = CharTab[1]; //指针指向字模数组

LCD_COM = 0x42; //写显示数据指令

//自下而上写入32个字节

for(j=0;j32;j++)

{

LCD_DAT = p[j+32*i+128*k];//从字模数组中取出一字节

}

x1++;//准备写右边一列数据

}

}



评论


相关推荐

技术专区

关闭