📄 新建 文本文档.txt
字号:
/*
P1.0--------/HOLD
P1.1--------CLK
P1.2--------DI
P1.3--------/WP
P1.4--------DO
P1.5--------/CS
*/
#include<reg51.h>
#include<string.h>
sbit HOLD=P3^2;
sbit CLK=P3^3;
sbit DI=P3^4;
sbit WP=P3^5;
sbit DO=P3^6;
sbit CS=P3^7;
#define WEnable 0x06
// Write Enable
#define DisEnable 0x04
// Disable Enable
#define RSRegister 0x05
// Read Status Register
#define WSRegister 0x01
// Write Status Register
#define RData 0x03
// Read Data
#define FRead 0x0b
// Fast Read
#define PProgram 0x02
// Page Program
#define SErase 0xd8
// Sector Erase
#define CErase 0xc7
// Chip Erase
#define PDown 0xb9
// Power-down
#define RPPage 0x53
// Read Parameter Page
#define FRPPage 0x58
#define uchar unsigned char
typedef struct typFNT_GB16 // 汉字字模数据结构
{
unsigned char Index[2]; // 汉字内码索引
unsigned char Msk[32]; // 点阵码数据
};
struct typFNT_GB16 code Cdotlib[37]=
{
"啤", 0x00,0x40,0x00,0x80,0xF3,0xF8,0x92,0x48,
0x93,0xF8,0x92,0x48,0x92,0x48,0x93,0xF8,
0xF0,0x80,0x91,0x40,0x8F,0xFE,0x00,0x40,
0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,
"脾", 0x00,0x20,0x3C,0x40,0x25,0xFC,0x25,0x24,
0x25,0x24,0x3D,0xFC,0x25,0x24,0x25,0x24,
0x25,0xFC,0x3C,0x60,0x24,0xA0,0x27,0xFE,
0x24,0x20,0x44,0x20,0x54,0x20,0x88,0x20,
};
sbit temp=P0^7;
bit a;
unsigned char i;
unsigned char b,p,q;
unsigned char b0,b1,b2;
unsigned char c0,c1,c2;
int k,j;
unsigned int m,m1;
void Write_command(uchar n);
void Write_address(uchar n);
void Write_data(uchar n);
void Read_data(void);
void delay(unsigned int n);
void main()
{
m1=(Cdotlib[8].Index[0]-160-1)*94+Cdotlib[5].Index[1]-160-1;
c0=(32*m1+524288)%256;
m=(32*m1+524288)/256;
c1=m%256;
m=m/256;
c2=m%256;
CS=1;
CS=0;
Write_command(RData);
Write_address(c2);
Write_address(c1);
Write_address(c0+2);
Read_data();
CS=1;
while(1);
}
void Write_command(uchar n1)
{
for(i=0;i<8;i++)
{
a=n1/128;
n1=n1%128;
n1*=2;
DI=a;
CLK=0;
CLK=1;
CLK=0;
}
}
void Write_address(uchar n2)
{
for(i=0;i<8;i++)
{
a=n2/128;
n2=n2%128;
n2*=2;
DI=a;
CLK=0;
CLK=1;
CLK=0;
}
}
void Write_data(uchar n3)
{
for(i=0;i<8;i++)
{
a=n3/128;
n3=n3%128;
n3*=2;
DI=a;
CLK=0;
CLK=1;
CLK=0;
}
}
void Read_data(void)
{
for(i=0;i<24;i++)
{
temp=(P1&0x10)/16; // delay(1000);
CLK=0;
CLK=1;
CLK=0;
}
}
void delay(unsigned int n)
{
for(j=0;j<n;j++)
{
TMOD=0x01;
TL0=0x18;
TH0=0xfc;
TF0=0;
TR0=1;
while(TF0!=1);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -