📄 1621.c
字号:
#include<stdio.h>
#include<stdlib.h>
#include<reg51.h>
#define unchar unsigned char
#define unint unsigned int
#define inter0 interrupt 0
sbit int0 = P3^2;
sbit cspin = P1^2;
sbit clkpin = P1^1;
sbit dipin = P1^0;
sbit ea = IE^7;
sbit ex0 = IE^0;
sbit it0 = TCON^0;
int buf;
int dat;
int lab;
/*------------数据传送函数------------*/
void lcdtran()
{
clkpin=0;
clkpin=1;
}
/*------------写命令函数------------*/
void lcdwc(unint n)
{
int i;
cspin=0;
//lcdnop();
dipin=1;
//lcdnop();
lcdtran();
dipin=0;
//lcdnop();
lcdtran();
dipin=0;
//lcdnop();
lcdtran();
for(i=0;i<8;i++)
{
dipin=n&0x80;
lcdtran();
n<<=1;
}
dipin=0;
lcdtran();
cspin=1;
}
/*------------写数据函数------------*/
void lcdwd(buf,dat)
{
int i,j;
cspin=0;
//lcdnop();
dipin=1;
//lcdnop();
lcdtran();
dipin=0;
//lcdnop();
lcdtran();
dipin=1;
//lcdnop();
lcdtran();
buf<<=2;
for(i=0;i<6;i++)
{
//buf<<=2;
dipin=buf&0x80;
lcdtran();
buf<<=1;
}
for(j=0;j<8;j++)
{
dipin=dat&0X01;
lcdtran();
dat>>=1;
}
cspin=1 ;
//lcddelay();
}
/*------------液晶显示函数------------*/
void lcddelay()
{
int i,j;
for(i=0;i<200;i++)
{
for(j=0;j<1000;j++)
{
;
}
}
}
/*------------循环写数据函数------------*/
void lcdwdd(dat)
{
int a;
//buf=0;
for(a=0;a<32;a++)
{
buf=a;
lcdwd(buf,dat);
//buf++;
a++;
}
}
/*------------移位控制函数------------*/
void lcdmv()
{
int a[2][13]={{24,26,28,30,32,34,36,38,40,42,44,46,48},
{0x7f,0x5f,0x60,0x7a,0x7b,0x3e,0x70,0x63,0x7d,0x70,0x70,0x63,0x70}};
int b,c;
for(b=0;b<26;b+=2)
{
for(c=0;c<13;c++)
{
buf=(*(*a+c));
buf-=b;
if(buf<32)
dat=*(*(a+1)+c);
else
dat=0;
lcdwd(buf,dat);
//lcddelay();
}
lcddelay();
//lcddelay();
}
}
/*------------中断处理函数------------*/
void inter0()
{
int t,t1;
for(t=0;t<100;t++)
{
int0=1;
if(int0==1)
int0=1;
else
{
//push acc;
lab=~lab;
int0=1;
for(t1=0;t1<100;t1++)
{
if(int0==0)
int0=1;
}
int0=1;
//pop a ;
}
}
}
//int0=1;
//ea=1;
//ex0=1;
//it0=1;
//lab=0;
/*------------显示主函数------------*/
void main(void)
{
int x;
int0=1;
ea=1;
ex0=1;
it0=1;
lab=0;
for(x=0;x<100;x++)
{
lcdwc(0x00);
lcdwc(0x02);
lcdwc(0x18);
lcdwc(0x01);
lcdwc(0x03);
lcdwc(0x29);
lcdwdd(0x00);
lcddelay();
lcdwdd(0xff);
lcddelay();
lcdwdd(0x3e);
lcddelay();
lcdwdd(0x5b);
lcddelay();
lcdwdd(0x7f);
lcddelay();
lcdwdd(0x00);
lcddelay();
lcdmv();
lcddelay();
}
//continue;
}
//*************************************************************//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -