lcd12864并行通信
时间: 2023-07-29 20:13:48 浏览: 50
LCD12864是一种点阵式液晶显示屏,常用于电子产品中。在并行通信中,使用的是8位并行通信方式。下面是LCD12864的并行通信C语言代码示例:
```c
#include<reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define lcd_data P0
sbit cs1 = P2^2;
sbit cs2 = P2^3;
sbit wr = P2^4;
sbit rs = P2^5;
sbit rst = P2^6;
sbit rd = P2^7;
void delay_ms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void write_com(uchar com)
{
rs = 0;
lcd_data = com;
wr = 0;
_nop_();
wr = 1;
}
void write_data(uchar dat)
{
rs = 1;
lcd_data = dat;
wr = 0;
_nop_();
wr = 1;
}
void init_lcd()
{
rst = 1;
delay_ms(5);
rst = 0;
delay_ms(5);
rst = 1;
write_com(0xe2);
delay_ms(5);
write_com(0x24);
delay_ms(5);
write_com(0xc2);
delay_ms(5);
write_com(0xa2);
delay_ms(5);
write_com(0x40);
delay_ms(5);
write_com(0x2f);
delay_ms(5);
}
void display(uchar page,uchar column,uchar *dp)
{
uint i,j;
if(page < 4)
{
cs1 = 0;
cs2 = 1;
write_com(0xb0+page);
write_com(column&0x0f);
write_com(0x10|(column>>4));
for(i=0;i<64;i++)
{
write_data(*dp++);
}
}
else
{
cs1 = 1;
cs2 = 0;
write_com(0xb0+(page-4));
write_com(column&0x0f);
write_com(0x10|(column>>4));
for(j=0;j<64;j++)
{
write_data(*dp++);
}
}
cs1 = 1;
cs2 = 1;
}
void main()
{
uchar dat1[64] = {0x00,0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
uchar dat2[64] = {0x00,0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
init_lcd();
display(0,0,dat1);
display(4,0,dat2);
while(1);
}
```
该代码使用了常规的51单片机来控制LCD12864的并行通信,通过设置不同的控制信号和数据来实现对LCD12864的显示控制。