單片機源程序如下:
#include <reg51.h>
#define LCDLCDDisp_Off 0x3e
#define LCDLCDDisp_On 0x3f
#define Page_Add 0xb8
#define LCDCol_Add 0x40
#define Start_Line 0xC0
#define data_ora P0
sbit LCD_CS1=P2^4 ;
sbit LCD_CS2=P2^3 ;
sbit RESET=P2^3 ;
sbit LCDDi=P2^2 ;
sbit LCDRW=P2^1 ;
sbit LCDEnable=P2^0 ;
char code Hz_sun[]=
{
0x0 ,0x2 ,0x82 ,0x82, 0xF2, 0x4A, 0x26, 0x80 ,0x60, 0x0 ,0xFF, 0x20 ,0x40 ,0x80 ,0x0 ,
0x0 ,0x1, 0x1 ,0x40, 0x80, 0x7F ,0x4 ,0x2 ,0x1 ,0x40, 0x80, 0x7F, 0x0 ,0x0 ,0x1 ,0x3 ,0x0
};
char code Hz_wen[]=
{
0x8, 0x8 ,0x8, 0x18, 0x68, 0x88, 0x9, 0xE ,0x8, 0x8 ,0xC8, 0x38, 0x8 ,0xC, 0x8 ,0x0, 0x80,
0x80 ,0x40, 0x40, 0x20, 0x11, 0xA ,0x4, 0xA ,0x11 ,0x10, 0x20, 0x40, 0xC0, 0x40, 0x0
};
char code Hz_chao[]=
{
0x40, 0x48, 0x48, 0xFF ,0x48 ,0x48, 0x82 ,0x42, 0x3E, 0x2 ,0x22, 0x42, 0x3F ,0x2, 0x0, 0x0 ,0x40,
0x3F ,0x10, 0x1F ,0x22 ,0x42, 0x40, 0x5F, 0x51, 0x51 ,0x51, 0x51 ,0x5F, 0x60, 0x20, 0x0
};
char code Hz_zhen[]=
{
0x0 ,0x4, 0x4, 0xF4, 0x54 ,0x54, 0x54, 0x5F ,0x54 ,0x54 ,0x54, 0xFC, 0x16 ,0x4, 0x0, 0x0, 0x10 ,0x10 ,
0x90 ,0x5F, 0x35 ,0x15, 0x15, 0x15 ,0x15 ,0x15, 0x35 ,0x5F, 0xD0, 0x18, 0x10, 0x0
};
char code Hz_shuai[]=
{
0x0 ,0xFC ,0x0, 0x0, 0xFF, 0x0 ,0x0, 0xF8 ,0x8, 0x8, 0xFF, 0x8, 0x8, 0xFC ,0x8, 0x0, 0x0 ,0x87, 0x40,
0x30 ,0xF, 0x0, 0x0, 0x3F ,0x0 ,0x0 ,0xFF, 0x10 ,0x20, 0x1F, 0x0 ,0x0
};
char code Hz_te[]=
{
0x20 ,0x1C ,0x10 ,0xFF, 0x90, 0x50, 0x48, 0x48, 0x48, 0x7F ,0x48 ,0xC8, 0x4C, 0x68, 0x40, 0x0, 0x2,
0x2 ,0x1, 0xFF, 0x0, 0x2 ,0x2 ,0x6 ,0x1A ,0x42, 0x82 ,0x7F, 0x2 ,0x3 ,0x2 ,0x0
};
char code Hz_mo[]=
{
0x0 ,0x4 ,0x4, 0xE4 ,0xA4 ,0xBF, 0xA4 ,0xA4, 0xA4, 0xBF, 0xA4 ,0xF4, 0x26 ,0x4 ,0x0 ,0x0 ,0x8 ,
0x88 ,0x88 ,0x8B, 0x4A ,0x4A ,0x2A ,0x1E, 0x2A, 0x4A, 0x4A, 0x8B ,0x88, 0x8C, 0x8, 0x0
};
char code Hz_a[]=
{
0xFC ,0x4 ,0xFE ,0x4, 0xFE ,0x42, 0xB2 ,0xE, 0x0, 0xE2 ,0x22 ,0xF2, 0x22, 0xFF, 0x2, 0x0 ,0xF ,
0x4 ,0xF ,0x0 ,0xFF ,0x8 ,0x11 ,0xE,0x0, 0xF, 0x4 ,0x4F, 0x80 ,0xFF ,0x0, 0x0
};
void LCDdelay(unsigned int t)
{
unsigned int i,j;
for(i=0;i<t;i++);
for(j=0;j<10;j++);
}
void CheckState()
{
unsigned char dat,DATA;
LCDDi=0;
LCDRW=1;
do
{
DATA=0x00;
LCDEnable=1;
LCDdelay(2);
dat=DATA;
LCDEnable=0;
dat=0x80 & dat;
}
while(dat!=0x00);
}
void write_com(unsigned char cmdcode)
{
CheckState();
LCDDi=0;
LCDRW=0;
P1=cmdcode;
LCDdelay(2);
LCDEnable=1;
LCDdelay(2);
LCDEnable=0;
}
void write_data(unsigned char LCDDispdata)
{
CheckState();
LCDDi=1;
LCDRW=0;
P1=LCDDispdata;
LCDdelay(2);
LCDEnable=1;
LCDdelay(2);
LCDEnable=0;
}
void Clr_Scr()
{
unsigned char j,k;
LCD_CS1=0;
LCD_CS2=0;
write_com(Page_Add+0);
write_com(LCDCol_Add+0);
for(k=0;k<8;k++)
{
write_com(Page_Add+k);
for(j=0;j<64;j++)
{
write_com(LCDCol_Add+j);
write_data(0x00);
}
}
}
void hz_LCDDisp16(unsigned char page,unsigned char column, unsigned char code *hzk)
{
unsigned char j=0,i=0;
for(j=0;j<2;j++)
{
write_com(Page_Add+page+j);
write_com(LCDCol_Add+column);
for(i=0;i<16;i++)
write_data(hzk[16*j+i]);
}
}
void init_lcd()
{
LCDdelay(100);
LCD_CS1=1;
LCD_CS2=1;
LCDdelay(100);
write_com(LCDLCDDisp_Off);
write_com(Page_Add+0);
write_com(Start_Line+0);
write_com(LCDCol_Add+0);
write_com(LCDLCDDisp_On);
}
全部資料51hei下載地址:
1.rar
(446.7 KB, 下載次數: 63)
2020-10-5 17:22 上傳
點擊文件名下載附件
|