?? 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 + -