📄 test.c
字号:
sent(dispbuff[i]);
CS=1;
}
}
/* ORG 8000H
AJMP MAIN
ORG 8100h
MAIN:
MOV SP,#60h ;设置SP
ACALL DELAY ;延时
ACALL INIT_LCD ;初始化液晶模块
ACALL WRITE_CGRAM ;设置CGRAM
MOV A,#84H ;从第一行第5位开始
ACALL WRITE_COM
MOV R6,#06 ;显示DP-51S
MOV DPTR,#TABLE1 ;读取DP-51S数据表地址
DISP1:
CLR A
MOVC A,@A+DPTR
ACALL WRITE_DAT
INC DPTR
DJNZ R6,DISP1
MOV A,#0C2H ;第二行第二位开始显示
ACALL WRITE_COM
MOV R6,#13 ;显示ZLG2003年3月26日
MOV DPTR,#TABLE2 ;读取数据表2地址
DISP2:
CLR A
MOVC A,@A+DPTR
ACALL WRITE_DAT
INC DPTR
DJNZ R6,DISP2
DISP_LOOP:
MOV A,#07H ;设置左移模式
ACALL WRITE_COM
MOV A,#8FH ;从第一行第16位开始
ACALL WRITE_COM
MOV R6,#16 ;左移16个 空格
DISP_LEFT:
MOV A,#10H
ACALL WRITE_DAT
ACALL DELAY ;延时
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
DJNZ R6,DISP_LEFT
MOV A,#05H ;设置右移模式
ACALL WRITE_COM
MOV A,#80H ;从第一行第1位开始
ACALL WRITE_COM
MOV R6,#16
DISP_RIGHT:
MOV A,#10H
ACALL WRITE_DAT
ACALL DELAY ;延时
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
DJNZ R6,DISP_RIGHT
SJMP DISP_LOOP ;循环移动*/
/*************************************************************************************************
* FUNCTION NAME:void delay(unsigned char time) *
*`CREATE DATE :2004.12.20 *
* CREATED BY :Wan Wen Lue ,ChongQing Institute of Technology *
* MODEIFY DATE :2005.6.2 *
* INPUT :char channel *
* OUTPUT :None *
* RETURN :ADresult *
* Global Variable:ADresult *
*************************************************************************************************/
void test_lcd()
{
unsigned char i;
WR_COM=0x00;
delay(255);
delay(255);
for(i=0;i<16;i++)
{
WR_DAT=TABLE1[i];
delay(255);
delay(255);
}
WR_COM=0xc0;
delay(255);
delay(255);
for(i=0;i<4;i++)
{
WR_DAT=TABLE2[i];
delay(255);
delay(255);}
/* for(i=0;i<13;i++)
{
WR_DAT=TABLE3[i];
delay(255);
delay(255);
}*/
}
/*************************************************************************************************
* FUNCTION NAME:void delay(unsigned char time) *
*`CREATE DATE :2004.12.20 *
* CREATED BY :Wan Wen Lue ,ChongQing Institute of Technology *
* MODEIFY DATE :2005.6.2 *
* INPUT :char channel *
* OUTPUT :None *
* RETURN :ADresult *
* Global Variable:ADresult *
*************************************************************************************************/
//;初始化液晶模块
void init_lcd()
{
unsigned char i;
WR_COM=0x38; //设置为8位数据总线,16*2,5*7点阵
for(i=0;i<50;i++)
delay(255);
WR_COM=0x01; //清屏幕
for(i=0;i<50;i++)
delay(255);
WR_COM=0x06; //光标移动,显示区不移动,读写操作后AC加1
for(i=0;i<50;i++)
delay(255);
WR_COM=0x0c;
}
/*************************************************************************************************
* FUNCTION NAME:void delay(unsigned char time) *
*`CREATE DATE :2004.12.20 *
* CREATED BY :Wan Wen Lue ,ChongQing Institute of Technology *
* MODEIFY DATE :2005.6.2 *
* INPUT :char channel *
* OUTPUT :None *
* RETURN :ADresult *
* Global Variable:ADresult *
*************************************************************************************************/
void init_cgram()
{
unsigned char i;
//;设置自定义字符
WR_COM=0x40;
for(i=0;i<24;i++)
{
WR_DAT=CGRAM_TABLE[i];
}
for(i=0;i<40;i++)
delay(255);
}
/*************************************************************************************************
* FUNCTION NAME:void delay(unsigned char time) *
*`CREATE DATE :2004.12.20 *
* CREATED BY :Wan Wen Lue ,ChongQing Institute of Technology *
* MODEIFY DATE :2005.6.2 *
* INPUT :char channel *
* OUTPUT :None *
* RETURN :ADresult *
* Global Variable:ADresult *
*************************************************************************************************/
void clr_lcd()
{
WR_COM=0x01;
delay(255);
delay(255);
}
/*************************************************************************************************
* FUNCTION NAME:void delay(unsigned char time) *
*`CREATE DATE :2004.12.20 *
* CREATED BY :Wan Wen Lue ,ChongQing Institute of Technology *
* MODEIFY DATE :2005.6.2 *
* INPUT :char channel *
* OUTPUT :None *
* RETURN :ADresult *
* Global Variable:ADresult *
*************************************************************************************************/
void printf_lcd(unsigned char StartPosition,char *string,char len)
{
char i;
clr_lcd();
WR_COM=StartPosition;
delay(255);
delay(255);
for(i=0;i<len;i++)
{
WR_DAT=*string;
string++;
delay(255);
delay(255);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -