📄 uc1603_c.c
字号:
#include <AT89X52.H>
#include <intrins.h>
#define TIMING 8080
#define RS P3_0
#define RW_WR P3_4
#define E_RD P3_5
#define DATA_BUS P1
#define CS1 P3_3
unsigned char code pic[]=
{
};
void Delay(unsigned int n)
{
while(n--);
return;
}
#if (TIMING==8080)
#pragma disable
void Busy()
{
unsigned char flag=0xff;
RS=0;E_RD=1;RW_WR=1;
while ((flag&0x80)==0x80)
{
E_RD=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
flag=DATA_BUS;
E_RD=1;
}
return;
}
#else
#pragma disable
void Busy()
{
unsigned char flag=0xff;
RS=0;E_RD=0;RW_WR=1;
while ((flag&0x80)==0x80)
{
E_RD=1;
_nop_();
flag=DATA_BUS;
E_RD=0;
}
return;
}
#endif
#if (TIMING==8080)
#pragma disable
void Write_Data(unsigned char dat)
{
// Busy();
RS=1;
DATA_BUS=dat;
RW_WR=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
RW_WR=1;
_nop_();
_nop_();
_nop_();
return;
}
#else
#pragma disable
void Write_Data(unsigned char dat)
{
Busy();
RS=1;
RW_WR=0;
DATA_BUS=dat;
E_RD=1;
_nop_();
E_RD=0;
_nop_();
_nop_();
_nop_();
return;
}
#endif
#if (TIMING==8080)
#pragma disable
void Write_Instruction(unsigned char cmd)
{
// Busy();
RS=0;
DATA_BUS=cmd;
RW_WR=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
RW_WR=1;
_nop_();
_nop_();
_nop_();
return;
}
#else
#pragma disable
void Write_Instruction(unsigned char cmd)
{
Busy();
RS=0;
RW_WR=0;
DATA_BUS=cmd;
E_RD=1;
_nop_();
E_RD=0;
return;
}
#endif
void Set_Page_Address(unsigned char add)
{
add=0xb0|add;
Write_Instruction(add);
return;
}
void Set_Column_Address(unsigned char add)
{
Write_Instruction((0x0f&add));
Write_Instruction((0x10|(add>>4)));
return;
}
#pragma disable
void Initial(void)
{
Write_Instruction(0x26);//Set TC
Write_Instruction(0x2e);//Set power control
Write_Instruction(0x81);
Write_Instruction(0x7f);//Set Vbias Potentiometer
// Write_Instruction(0xa5);//all pixel on
Write_Instruction(0x88);//set ram control
Write_Instruction(0xaf);//set display enable
Write_Instruction(0xeb);//set LCD bias ratio
}
void Display_Grid(unsigned char value_first,unsigned char value_second)
{
unsigned char i,j;
for(i=0;i<0x08;i++)
{
Set_Page_Address(i);
Set_Column_Address(0x00);
for(j=0;j<96;j++)
{
Write_Data(value_first);
Write_Data(value_second);
}
}
return;
}
void Display_Picture(unsigned char pic[])
{
unsigned char i,j,num=0;
for(i=0;i<0x08;i++)
{
Set_Page_Address(i);
Set_Column_Address(0x00);
for(j=0;j<0x60;j++)
{
Write_Data(pic[i*0x60+j]);
}
}
return;
}
void main(void)
{
Delay(1000);
CS1=0;
Initial();
Display_Grid(0xaa,0xaa);
while(1)
{
Display_Picture(pic);
Delay(60000);
Display_Grid(0x55,0x55);
Delay(60000);
Display_Grid(0xaa,0xaa);
Delay(60000);
Display_Grid(0xff,0x00);
Delay(60000);
Display_Grid(0x00,0xff);
Delay(60000);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -