📄 alcda.c
字号:
/*参考程序B.LCDA.c程序功能;在该液晶模块上显示二行字符:
Welcom To NCD
www.xhl.com.cn*/
#include <c8051f020.h>
unsigned long x; //www.xhl.com.cn
unsigned char xdata Netdata[15]={0x77,0x77,0x77,0x2e,0x78,0x68,0x6c,0x2e,0x63,0x6f,//|
0x6d,0x2e,0x63,0x6e};// |
unsigned char xdata NCDdata[15]={0x57,0x65,0x6c,0x63,0x6f,0x6d,0x65,0x20,0x74,0x6f,//|
0x20,0x4e,0x43,0x44};// |
unsigned char *lcdpoint; //指向 lcddata数组的指针
unsigned char lcd_data_count; //要显示的数据个数
void SYSCLK_Init (void);
void PORT_Init (void);
void LCD_Init(void);
void SEND_LCD(unsigned char lcd_data_count);
void main (void)
{
static unsigned char data1,data2;
WDTCN = 0xde;
WDTCN = 0xad; //禁止看门狗定时器
SYSCLK_Init (); // 系统时钟初始化
PORT_Init (); // 交叉开关和通用I/O口初始化
while(1){
LCD_Init(); //LCD初始化
//P6 = 0x0d; //准备送数据
for(x=0;x<5000;x++);
lcdpoint=&NCDdata;
for(lcd_data_count=14;lcd_data_count>0;lcd_data_count--) //显示第一行字符
{
data1=*lcdpoint;
P7 = data1; //向LCD送数据
P6 = 0x05;
P6 = 0x04;
lcdpoint++;
for(x=0;x<100;x++);
}
P7 = 0xc0;
P6 = 0x1;
P6 = 0x0;
for(x=0;x<1000;x++);
lcdpoint=&Netdata;
for(lcd_data_count=14;lcd_data_count>0;lcd_data_count--) //显示第一行字符
{
data1=*lcdpoint; //向LCD送数据
P7 = data1;
P6 = 0x04;
P6 = 0x05;
lcdpoint++;
for(x=0;x<100;x++);
}
}
}
//函数名称: SYSCLK_Init ()
//函数功能: 系统时钟初始化
void SYSCLK_Init (void)
{
OSCICN = 0x05; // 系统时钟初始化为片内的 24.5MHz / 8
}
void PORT_Init (void)
{
XBR0 = 0x00; // 没有选择数字外设
P74OUT = 0xf0; // P6,P7口设为推挽方式
}
void LCD_Init(void) //向LCD送命令
{
P6 = 0x01;
for(x=0;x<50000;x++);
//P7 = 0x30; /*一行显示*/
P7 = 0x38; /*两行显示*/
P6 = 0x1;
P6 = 0x0; //向LCD送命令
for(x=0;x<1000;x++);
P7 = 0x0e; /*开显示,开光标,字符不闪烁*/
P6 = 0x1;
P6 = 0x0;
for(x=0;x<1000;x++);
P7= 0x06; /*I/D=1,AC自动增1;S=0,整体显示不移动*/
P6 = 0x1;
P6 = 0x0;
for(x=0;x<5000;x++);
P7 = 0x01; /*清除DDRAM,置AC=0*/
P6 = 0x1;
P6 = 0x0;
for(x=0;x<5000;x++);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -