📄 lcd12864-c.c
字号:
#include <stdio.h>
#include <reg52.h>
#include <intrins.h>
#include "un.h"
#include "delay.h"
sbit E=P3^4;
sbit RW=P3^6;
sbit RS=P3^7;
sbit CS=P3^3;
void show();
uchar code cxkj[8][32]={
/*-- 文字: 创 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x40,0x20,0xD0,0x4C,0x43,0x44,0x48,0xD8,0x30,0x10,0x00,0xFC,0x00,0x00,0xFF,0x00,
0x00,0x00,0x3F,0x40,0x40,0x42,0x44,0x43,0x78,0x00,0x00,0x07,0x20,0x40,0x3F,0x00,
/*-- 文字: 新 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x20,0x24,0x2C,0x35,0xE6,0x34,0x2C,0x24,0x00,0xFC,0x24,0x24,0xE2,0x22,0x22,0x00,
0x21,0x11,0x4D,0x81,0x7F,0x05,0x59,0x21,0x18,0x07,0x00,0x00,0xFF,0x00,0x00,0x00,
/*-- 文字: 科 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x10,0x12,0x92,0x72,0xFE,0x51,0x91,0x00,0x22,0xCC,0x00,0x00,0xFF,0x00,0x00,0x00,
0x04,0x02,0x01,0x00,0xFF,0x00,0x04,0x04,0x04,0x02,0x02,0x02,0xFF,0x01,0x01,0x00,
/*-- 文字: 技 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x08,0x08,0x88,0xFF,0x48,0x28,0x00,0xC8,0x48,0x48,0x7F,0x48,0xC8,0x48,0x08,0x00,
0x01,0x41,0x80,0x7F,0x00,0x40,0x40,0x20,0x13,0x0C,0x0C,0x12,0x21,0x60,0x20,0x00,
/*-- 文字: 检 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x08,0x88,0x68,0xFF,0x28,0x48,0x10,0x48,0x44,0x43,0x44,0x48,0x50,0x10,0x10,0x00,
0x02,0x01,0x00,0x7F,0x00,0x20,0x22,0x2C,0x21,0x2E,0x30,0x28,0x27,0x22,0x20,0x00,
/*-- 文字: 测 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x08,0x31,0x86,0x60,0x00,0xFE,0x02,0xF2,0x02,0xFE,0x00,0xF8,0x00,0x00,0xFF,0x00,
0x04,0xFC,0x03,0x00,0x80,0x47,0x30,0x0F,0x10,0x67,0x00,0x07,0x40,0x80,0x7F,0x00,
/*-- 文字: 仪 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x40,0x20,0xF0,0x0C,0x03,0x00,0x38,0xC0,0x01,0x0E,0x04,0xE0,0x1C,0x00,0x00,0x00,
0x00,0x00,0xFF,0x00,0x40,0x40,0x20,0x10,0x0B,0x04,0x0B,0x10,0x20,0x60,0x20,0x00,
/*-- 文字: 器 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x40,0x40,0x4F,0x49,0x49,0xC9,0xCF,0x70,0xC0,0xCF,0x49,0x59,0x69,0x4F,0x00,0x00,
0x02,0x02,0x7E,0x45,0x45,0x44,0x7C,0x00,0x7C,0x44,0x45,0x45,0x7E,0x06,0x02,0x00,};
void checkbusy_L(void)
{
uchar i;
CS=1;
P0=0xff;
do
{
RS=0;
RW=1;
E=1;
i=P1;
E=0;
}
while((i&0x80)==0x80);
}
void checkbusy_R(void)
{
uchar i;
CS=0;
P0=0xff;
do
{
RS=0;
RW=1;
E=1;
i=P1;
E=0;
}
while((i&0x80)==0x80);
}
void writecom_L(uchar com)
{
checkbusy_L();
E=0;
CS=1;
RS=0;
RW=0;
P1=com;
E=1;
E=0;
}
void writecom_R(uchar com)
{
checkbusy_R();
E=0;
CS=0;
RS=0;
RW=0;
P1=com;
E=1;
E=0;
}
void writedat_L(uchar dat)
{
checkbusy_L();
E=0;
CS=1;
RS=1;
RW=0;
P1=dat;
E=1;
E=0;
}
void writedat_R(uchar dat)
{
checkbusy_R();
E=0;
CS=0;
RS=1;
RW=0;
P1=dat;
E=1;
E=0;
}
void main(void)
{
_nop_();_nop_();_nop_();_nop_();
P1=0xff;
P3=0x00;
writecom_L(0x3f);
writecom_R(0x3f);
writecom_L(0xc0);
writecom_R(0xc0);
writecom_L(0xb8);
writecom_R(0xb8);
writecom_L(0x40);
writecom_R(0x40);
show();
while(1);
}
void show(void)
{
uchar idata i,j; //二维数组显示
for(i=0;i<4;i++)
{
for(j=0;j<16;j++)
{
writedat_L(*(*(cxkj+i)+j));
}
}
for(i=0;i<4;i++)
{
for(j=16;j<32;j++)
{
writedat_L(*(*(cxkj+i)+j));
}
}
for(i=4;i<8;i++)
{
for(j=0;j<16;j++)
{
writedat_R(*(*(cxkj+i)+j));
}
}
for(i=4;i<8;i++)
{
for(j=16;j<32;j++)
{
writedat_R(*(*(cxkj+i)+j));
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -