📄 main.c
字号:
#include <reg51.h>
#include <absacc.h>
#define uchar unsigned char
#define uint unsigned int
#define CWADDL XBYTE[0x0400] //写指令代码地址(L)
#define CRADDL XBYTE[0x0600] //读指令代码地址(L)
#define DWADDL XBYTE[0x0500] //写显示数据地址(L)
#define DRADDL XBYTE[0x0700] //读显示数据地址(L)
#define CWADDR XBYTE[0x0800] //写指令代码地址(R)
#define CRADDR XBYTE[0x0a00] //读指令代码地址(R)
#define DWADDR XBYTE[0x0900] //写显示数据地址(R)
#define DRADDR XBYTE[0x0b00] //读显示数据地址(R)
uchar code hzt[]={
/*-- 调入了一幅图像:C:\Documents and Settings\ADMIN\桌面\pic\001.bmp --*/
/*-- 宽度x高度=16x16 --*/
0x00,0x00,0x00,0x24,0xC8,0x00,0x74,0x54,0x7C,0x54,0x7C,0x54,0x74,0x04,0x00,0x88,
0x00,0x00,0x00,0x02,0x1F,0x00,0x14,0x0D,0x05,0x15,0x1D,0x05,0x0D,0x14,0x00,0x11,
/*-- 调入了一幅图像:C:\Documents and Settings\ADMIN\桌面\pic\002.bmp --*/
/*-- 宽度x高度=16x16 --*/
0x88,0xE8,0xA8,0xA8,0xAC,0xA8,0xA8,0xE8,0x88,0x88,0x00,0x10,0xF0,0x1C,0xF0,0x10,
0x10,0x08,0x06,0x02,0x02,0x02,0x1E,0x10,0x10,0x1D,0x00,0x13,0x0A,0x04,0x0B,0x00,
/*-- 调入了一幅图像:C:\Documents and Settings\ADMIN\桌面\pic\003.bmp --*/
/*-- 宽度x高度=16x16 --*/
0x10,0x10,0xFC,0x10,0x10,0x10,0x00,0x10,0xF0,0x1C,0xF0,0x00,0xF8,0xA8,0xAC,0xA8,
0x1F,0x11,0x11,0x11,0x11,0x1F,0x00,0x10,0x0B,0x04,0x0B,0x00,0x1F,0x10,0x0B,0x04,
/*-- 调入了一幅图像:C:\Documents and Settings\ADMIN\桌面\pic\004.bmp --*/
/*-- 宽度x高度=16x16 --*/
0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x0A,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//---------------------------------No.1------------------------------------//
/*-- 调入了一幅图像:C:\Documents and Settings\ADMIN\桌面\pic\011.bmp --*/
/*-- 宽度x高度=16x16 --*/
0x00,0x00,0x00,0x10,0x91,0x55,0xF5,0x5D,0x57,0x55,0x55,0xD5,0x11,0x10,0x00,0x11,
0x00,0x00,0x00,0x01,0x00,0x00,0x07,0x05,0x05,0x05,0x05,0x87,0x40,0x40,0x40,0x84,
/*-- 调入了一幅图像:C:\Documents and Settings\ADMIN\桌面\pic\012.bmp --*/
/*-- 宽度x高度=16x16 --*/
0x16,0xF0,0x04,0x14,0x64,0x04,0x04,0xFF,0x04,0x04,0x00,0x20,0x22,0x2A,0xB2,0x62,
0x82,0x41,0x42,0x44,0x44,0xC5,0x45,0x45,0x44,0x44,0x40,0x82,0x82,0x01,0x80,0x80,
/*-- 调入了一幅图像:C:\Documents and Settings\ADMIN\桌面\pic\013.bmp --*/
/*-- 宽度x高度=16x16 --*/
0xFF,0x62,0xB2,0x2A,0x22,0x20,0x00,0x00,0x1C,0x7E,0x7E,0x1C,0x00,0x00,0x00,0x00,
0x87,0x80,0x00,0x01,0x02,0x02,0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x00,0x00,0x00,
/*-- 调入了一幅图像:C:\Documents and Settings\ADMIN\桌面\pic\014.bmp --*/
/*-- 宽度x高度=16x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//-------------------------------No.2--------------------------------------//
/*-- 调入了一幅图像:C:\Documents and Settings\ADMIN\桌面\pic\021.bmp --*/
/*-- 宽度x高度=16x16 --*/
0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x10,0x8C,0x82,0x41,0xA0,0x60,0x18,0x80,0x44,
0x00,0x00,0x00,0x00,0x00,0x01,0x01,0xF1,0x0C,0x02,0x01,0xE0,0x10,0x08,0x09,0x12,
/*-- 调入了一幅图像:C:\Documents and Settings\ADMIN\桌面\pic\022.bmp --*/
/*-- 宽度x高度=16x16 --*/
0x22,0x22,0x44,0x80,0x01,0x84,0x42,0x22,0x24,0x40,0x8C,0x30,0x42,0x81,0x80,0x00,
0x94,0x97,0x2B,0x29,0x28,0x21,0x12,0x14,0x17,0x23,0xC1,0xE0,0x10,0x00,0x00,0x01,
/*-- 调入了一幅图像:C:\Documents and Settings\ADMIN\桌面\pic\023.bmp --*/
/*-- 宽度x高度=16x16 --*/
0x00,0x00,0x07,0x78,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x03,0x0D,0xF2,0x02,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 调入了一幅图像:C:\Documents and Settings\ADMIN\桌面\pic\024.bmp --*/
/*-- 宽度x高度=16x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//-------------------------------No.3--------------------------------------//
/*-- 调入了一幅图像:C:\Documents and Settings\ADMIN\桌面\pic\031.bmp --*/
/*-- 宽度x高度=16x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x84,0xC8,0xD0,0x55,0x2A,0x34,0x24,
0x00,0x00,0x00,0x00,0x00,0x38,0x3C,0x3E,0x37,0x23,0x00,0x07,0x08,0x17,0x2D,0x0D,
/*-- 调入了一幅图像:C:\Documents and Settings\ADMIN\桌面\pic\032.bmp --*/
/*-- 宽度x高度=16x16 --*/
0x49,0x49,0x90,0x90,0x93,0x93,0x48,0x48,0x64,0x53,0x40,0x20,0x21,0x50,0xD0,0xC8,
0x07,0x03,0x01,0x03,0x03,0x01,0x03,0x07,0x0D,0x0D,0x07,0x20,0x10,0x08,0x07,0x00,
/*-- 调入了一幅图像:C:\Documents and Settings\ADMIN\桌面\pic\033.bmp --*/
/*-- 宽度x高度=16x16 --*/
0x8C,0x03,0x00,0x3C,0x42,0x99,0x05,0x01,0x02,0x06,0x02,0x01,0x01,0x81,0xFF,0x42,
0x23,0x37,0x3E,0x20,0x20,0x00,0x01,0x02,0x04,0x08,0x0C,0x06,0x03,0x01,0x00,0x00,
/*-- 调入了一幅图像:C:\Documents and Settings\ADMIN\桌面\pic\034.bmp --*/
/*-- 宽度x高度=16x16 --*/
0x99,0x05,0x01,0x02,0x06,0x02,0x01,0x01,0x81,0xC3,0x7E,0x3C,0x00,0x00,0x00,0x00,
0x00,0x01,0x02,0x04,0x08,0x0C,0x06,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//-------------------------------No.4--------------------------------------//
};
uchar code pic[]={
/*-- 文字: 哇 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFC,0x04,0x04,0xFC,0x40,0x48,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0x40,0x00,
0x0F,0x02,0x02,0x47,0x40,0x44,0x44,0x44,0x44,0x7F,0x44,0x44,0x44,0x44,0x40,0x00,
/*-- 文字: 哈 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFC,0x04,0x04,0xFC,0x20,0x20,0x50,0x48,0x44,0x43,0x44,0x48,0x58,0x30,0x10,0x00,
0x07,0x01,0x01,0x03,0x00,0x00,0x7F,0x21,0x21,0x21,0x21,0x21,0x7F,0x00,0x00,0x00,
/*-- 文字: 哈 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFC,0x04,0x04,0xFC,0x20,0x20,0x50,0x48,0x44,0x43,0x44,0x48,0x58,0x30,0x10,0x00,
0x07,0x01,0x01,0x03,0x00,0x00,0x7F,0x21,0x21,0x21,0x21,0x21,0x7F,0x00,0x00,0x00,
/*-- 文字: ! --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
void delay(uchar del)
{
uchar i,j;
for(i=0;i<del;i++)
for(j=0;j<250;j++)
;
}
void busy(uchar LoR)
{
uchar check;
if(LoR==0) //0代表L
{
do{ check=CRADDL&0x80; } while(check==0x80);
}
else //1代表R
{
do{ check=CRADDR&0x80; } while(check==0x80);
}
}
void displayL(uchar page,uchar row,uchar *hzp) //displayL(页地址(0--7);列地址(0--63);汉字地址)
{
uchar i;
busy(0);
CWADDL=0x3e; //关显示
busy(0);
CWADDL=0xb8+page; //设置页号
busy(0);
CWADDL=0x40+row; //设置列地址
for(i=0;i<16;i++)
{
busy(0);
DWADDL=*(hzp++); //写数据到RAM,汉字的上半面
}
busy(0);
CWADDL=0xb8+page+1; //设置页号
busy(0);
CWADDL=0x40+row; //设置列地址
for(i=16;i<32;i++)
{
busy(0);
DWADDL=*(hzp++); //写数据到RAM,汉字的下半面
}
busy(0);
CWADDL=0x3f; //开显示
}
void displayR(uchar page,uchar row,uchar *hzp) //displayR(页地址(0--7);列地址(0--63);汉字地址)
{
uchar i;
busy(1);
CWADDR=0x3e; //关显示
busy(1);
CWADDR=0xb8+page; //设置页号
busy(1);
CWADDR=0x40+row; //设置列地址
for(i=0;i<16;i++)
{
busy(1);
DWADDR=*(hzp++); //写数据到RAM,汉字的上半面
}
busy(1);
CWADDR=0xb8+page+1; //设置页号
busy(1);
CWADDR=0x40+row; //设置列地址
for(i=16;i<32;i++)
{
busy(1);
DWADDR=*(hzp++); //写数据到RAM,汉字的下半面
}
busy(1);
CWADDR=0x3f; //开显示
}
void clearscreen(void)
{
uchar i,j;
uchar code cle[32]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
displayL(2*j,i*16,cle);
displayR(2*j,i*16,cle);
}
}
void main(void)
{
uchar i,j,dp=0;
delay(20);
clearscreen(); //清屏
for(i=0;i<4;i++)
for(j=0;j<4;j++)
displayL(i*2,j*16,hzt+32*dp++);
dp=0;
for(i=0;i<4;i++)
displayR(3,i*16,pic+32*dp++);
for(;;);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -