📄 1602.c
字号:
#include"reg51.h"
#define uchar unsigned char
#define uint unsigned int
volatile char bf;
sbit rs=P3^0;
sbit rw=P3^1;
sbit e=P3^2;
sbit ds=P1;
#define bf P1^7
uchar code tab[]={"***fm1602a--3***"};
uchar code tab1[]={0x0f,0x09,0x0f,0x09,0x0f,0x09,0x0b,0x11}; // 月
uchar code fm[]={0x0F,0x1C,0x0F,0x1F,0x10,0x00,0x00,0x00,0x0F,0x1C,0x0C,0x19,0x10,0x00,0x00,0x00,
0x0C,0x00,0x0C,0x19,0x10,0x00,0x00,0x00,0x0F,0x1C,0x0C,0x19,0x10,0x00,0x00,0x00,
0x0F,0x1C,0x0C,0x19,0x12,0x07,0x0F,0x10,0x0C,0x00,0x0C,0x19,0x12,0x04,0x0A,0x10,
0x0C,0x00,0x0C,0x19,0x12,0x04,0x0A,0x10,0x0C,0x00,0x0C,0x19,0x13,0x17,0x0A,0x10
}; ///FM 64
uchar code qin[]={
0x1F,0x11,0x11,0x11,0x11,0x11,0x11,0x1F, //方框
0x0E,0x0A,0x04,0x1F,0x04,0x0E,0x0A,0x1B, //小人
0x0A,0x15,0x0A,0x15,0x0A,0x15,0x0A,0x15, //黑白格子
0x1F,0x15,0x1F,0x1B,0x1B,0x1F,0x11,0x1F, //脸
0x0E,0x11,0x11,0x15,0x15,0x0E,0x04,0x04, //树
0x0f,0x09,0x0f,0x09,0x0f,0x09,0x0b,0x11, // 月
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00, //黑白横条
0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15, //黑白竖条
};
void nop(){}
void delay(uint ms) //延时
{uchar n;
while(ms--)
{for(n=0;n<24;n++){;;}}
}
void check() // 判忙
{
rs=0;
rw=1;
e=0;
P1=0xff;
e=1;
nop();
nop();
while(P&0x80){};
delay(10);
}
void sendc(uchar com) // 发命令字
{check();
rs=0;
rw=0;
e=1;
P1=com;
nop();
e=0;
nop();
}
void sendd(uchar word) // 发显示字
{check();
rs=1;
rw=0;
e=1;
P1=word;
nop();
e=0;
nop();
}
void inti() // 初始化
{sendc(0x01);
sendc(0x38);
sendc(0x0f);
sendc(0x06);
delay(10);
}
void setcgramP()
{uchar x1;
uchar y;
sendc(0x40);
for(y=0;y<8;y++){for(x1=0;x1<8;x1++)
{sendd(*(fm+8*x1+y));}}
}
void setcgram()
{uchar x;
sendc(0x40);
for(x=0;x<64;x++)
{sendd(*(qin+x));}
}
void key()
{while(P2^0){};
delay(5);}
void main()
{unsigned char i;
setcgram();
inti();
delay(1);
sendc(0x80);
delay(500);
for(i=0;i<16;i++)
{sendd(*(tab+i));};
// {sendd(0xff);};
delay(500);
sendc(0xc0);
for(i=0;i<16;i++)
{sendd(0x00+i);};
//{sendd(0xff);};
while(1){};
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -