📄 lcd-men.c
字号:
#include<ADuC841.h>
#include <stdio.h>
#include<absacc.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
//#define x1 0x80
//#define x2 0x88
//#define y 0x80
#define comm 0
#define dat 1
sbit cs = P2^0;
sbit sid = P3^7;
sbit sclk = P2^2;
sbit psb = P2^3; //H=并口; L=串口;
sbit rst = P2^1; //Reset Signal 低电平有效
void wr_lcd (uchar dat_comm,uchar content);
void delay (uint us);
uchar code tab1[]={
"羌笛何须怨杨柳,"
"春风不度玉门关。"
};
/*uchar code tab31[]={
"金鹏科技有限公司"
};
*****************************************************************************************
* 函数名称 :init_lcd
* 功能描述 :初始化LCD
******************************************************************************************/
void init_lcd(void)
{
rst=1;
psb=0;
wr_lcd(comm,0x30); /*30---基本指令动作*/
wr_lcd(comm,0x01); /*清屏,地址指针指向00H*/
delay(100);
wr_lcd(comm,0x06); /*光标的移动方向*/
delay(100);
wr_lcd(comm,0x0c); /*开显示,关游标*/
delay(100);
}
/******************************************************************************************
* 函数名称 :chn_disp
* 功能描述 :显示汉字或字符
*****************************************************************************************
void chn_disp(uchar code *chn)
{
uchar i,j;
wr_lcd(comm,0x30);
wr_lcd(comm,0x80);
for(j=0;j<4;j++)
{
for(i=0;i<16;i++)
wr_lcd(dat,chn[j*16+i]);
}
} */
/******************************************************************************************
* 函数名称 :chn_disp1
* 功能描述 :上半屏显示汉字或字符
******************************************************************************************/
void chn_disp1(uchar code *chn)
{
uchar i,j;
wr_lcd(comm,0x30);
wr_lcd(comm,0x80);
j=0;
for(i=0;i<16;i++)
wr_lcd(dat,chn[j*16+i]);
wr_lcd(comm,0x90);
j=1;
for(i=0;i<16;i++)
wr_lcd(dat,chn[j*16+i]);
}
/******************************************************************************************
* 函数名称 :clrram
* 功能描述 :清DDRAM
******************************************************************************************/
void clrram(void)
{
wr_lcd(comm,0x30);
wr_lcd(comm,0x01);
delay(180);
}
void wr_lcd(uchar dat_comm,uchar content)
{
uchar a,i,j;
delay(50);
a=content;
cs=1;
sclk=0;
sid=1;
for(i=0;i<5;i++)
{
sclk=1;
sclk=0;
}
sid=0;
sclk=1;
sclk=0;
if(dat_comm)
sid=1; //data
else
sid=0; //command
sclk=1;
sclk=0;
sid=0;
sclk=1;
sclk=0;
for(j=0;j<2;j++)
{
for(i=0;i<4;i++)
{
a=a<<1;
sid=CY;
sclk=1;
sclk=0;
}
sid=0;
for(i=0;i<4;i++)
{
sclk=1;
sclk=0;
}
}
}
void delay(uint us) //delay time
{
while(us--);
}
void delay1(uint ms)
{
uint i,j;
for(i=0;i<ms;i++)
for(j=0;j<15;j++)
delay(1);
}
/*------------------主程序--------------------*/
void main()
{
psb = 0;
init_lcd();
while(1)
{
chn_disp1(tab1);
// delay1(8000);
// clrram();
// delay1(8000);
// chn_disp1(tab31);
// delay1(8000);
// clrram();
// delay1(8000);
// delay1(8000);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -