1621.c
来自「此程序为断码式液晶显示屏1621的 驱动程序」· C语言 代码 · 共 193 行
C
193 行
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
sbit di=P1^5;
sbit wr=P1^4;
sbit cs=P1^6;
void delay(ulong v);
void delay(ulong v)
{
while(v!=0)v--;
}
void wcode(uchar c)
{
uchar a;
di = 1;
wr = 0;
delay(3);
wr = 1;
delay(3);
wr = 0;
di = 0;
wr = 0;
delay(3);
wr=1;
delay(3);
wr=0;
di=0;
wr=0;
delay(3);
wr=1;
delay(3);
wr=0;
for(a=0;a<8;a++)
{
if((c&0x80)!=0)
di=1;
else
di=0;
c=c<<1;
wr=0;
delay(3);
wr=1;
delay(3);
wr=0;
}
di=0;
wr=0;
delay(3);
wr=1;
delay(3);
wr=0;
}
void wdata(uchar ads,uchar da)
{
uchar a;
di=1;
wr=0;
delay(3);
wr=1;
delay(3);
wr=0;
di=0;
wr=0;
delay(3);
wr=1;
delay(3);
wr=0;
di=1;
wr=0;
delay(3);
wr=1;
delay(3);
wr=0;
for(a=0;a<6;a++)
{
if((ads&0x20)!=0)
di=1;
else di=0;
da=da<<1;
wr=0;
delay(3);
wr=1;
delay(3);
wr=0;
}
}
main()
{
uchar o;
cs=0;
wcode(0x01);//turn system osc
cs=1;
/* cs=0;
wcode(0x14);//XTAL 32K OSC
cs=1;*/
cs=0;
wcode(0x05);//WDT DISABLE
cs=1;
cs=0;
wcode(0x04);//TIMER DISABLE
cs=1;
cs=0;
wcode(0x28);//4 COM
cs=1;
delay(100);
while(1)
{
delay(10);
cs=0;
wcode(0x03);//LCD ON
cs=1;
delay(100);
for(o=15;o<31;o++)
{
cs=0;
wdata(o,0x0F);
cs=1;
}
delay(10000);
for(o=15;o<25;o++)
{
cs=0;
wdata(o,0x0b);
cs=1;
o++;
cs=0;
wdata(o,0x0e);
cs=1;
}
for(o=25;o<31;o++)
{
cs=0;
wdata(o,0x0D);
cs=1;
o++;
cs=0;
wdata(o,0x07);
cs=1;
}
delay(10000);
for(o=15;o<25;o++)
{
cs=0;
wdata(o,0x06);
cs=1;
o++;
cs=0;
wdata(o,0x0);
cs=1;
}
for(o=25;o<31;o++)
{
cs=0;
wdata(o,0x0);
cs=1;
o++;
cs=0;
wdata(o,0x06);
cs=1;
}
delay(10000);
for(o=15;o<25;o++)
{
cs=0;
wdata(o,0x03);
cs=1;
o++;
cs=0;
wdata(o,0x0E);
cs=1;
}
for(o=25;o<31;o++)
{
cs=0;
wdata(o,0x0E);
cs=1;
o++;
cs=0;
wdata(o,0x03);
cs=1;
}
delay(10000);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?