📄 lcd.c~
字号:
#include <90USB1287.H>
#define uint unsigned int
#define uchar unsigned char
uchar command_data;
#define CS PORTC.6//LCD片选(串行) 0:禁止 1:允许
#define SID PORTC.5//LCD输入串行数据(串行)
#define clk PORTC.4//LCD输入串行脉冲(串行)
void delay(uint t)
{
uint x,y;
for(x=t;x>0;x--)
for(y=110;y>0;y--);
}
void delay_1ms(uint x) // 延时
{
uint j;
uchar i;
for(j=0;j<x;j++)
{
for(i=0;i<120;i++);
}
}
void send_command(uchar command_data)
{
uchar i;
uchar i_data,temp_data1,temp_data2;
i_data=0xf8;
delay_1ms(10);
CS=1;
clk=0;
for(i=0;i<8;i++)
{
SID=(i_data&0x80);
clk=0;
clk=1;
i_data=i_data<<1;
}
i_data=command_data;
i_data&=0xf0;
for(i=0;i<8;i++)
{
SID=(i_data&0x80);
clk=0;
clk=1;
i_data=i_data<<1;
}
i_data=command_data;
temp_data1=i_data&0xf0;
temp_data2=i_data&0x0f;
temp_data1>>=4;
temp_data2<<=4;
i_data=temp_data1|temp_data2;
i_data&=0xf0;
for(i=0;i<8;i++)
{
SID=(i_data&0x80);
clk=0;
clk=1;
i_data=i_data<<1;
}
CS=0;
}
void send_data(uchar command_data)
{
uchar i;
uchar i_data,temp_data1,temp_data2;
i_data=0xfa;
delay_1ms(10);
CS=1;
for(i=0;i<8;i++)
{
SID=(i_data&0x80);
clk=0;
clk=1;
i_data=i_data<<1;
}
i_data=command_data;
i_data&=0xf0;
for(i=0;i<8;i++)
{
SID=(i_data&0x80);
clk=0;
clk=1;
i_data=i_data<<1;
}
i_data=command_data;
temp_data1=i_data&0xf0;
temp_data2=i_data&0x0f;
temp_data1>>=4;
temp_data2<<=4;
i_data=temp_data1|temp_data2;
i_data&=0xf0;
for(i=0;i<8;i++)
{
SID=(i_data&0x80);
clk=0;
clk=1;
i_data=i_data<<1;
}
CS=0;
}
void lcd_init()
{
delay_1ms(100);
command_data=0x30;
send_command(command_data); /*功能设置:一次送8位数据,基本指令集*/
command_data=0x04;
send_command(command_data); /*点设定:显示字符/光标从左到右移位,DDRAM地址加1*/
command_data=0x0C;
send_command(command_data); /*显示设定:开显示,显示光标,当前显示位反白闪动*/
command_data=0x01;
send_command(command_data); /*清DDRAM*/
command_data=0x02;
send_command(command_data); /*DDRAM地址归位*/
command_data=0x80;
send_command(command_data); /*把显示地址设为0X80,即为第一行的首位*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -