?? g12864b.c
字號:
/* --------------- TESTING FOR GS-G1286414YLY -- */
#include<reg51.h>
#define RW P3_1
#define EL P3_2
#define CS1 P1_0 /* E1: IC1 片選端,E2: IC2 */
#define CS2 P1_1
#define RESET P1_2 /* RW=0,寫數據; RW=1;讀數據處理 */
#define RS P3_0 /* RS = 1 ,指向數據 ; RSCS1 = 0 ,指向命令寄存器 */
#define BF P0_7
#define TT 5
uchar code AA[]={20,36,68,132,100,28,32,24,15,232,8,8,
40,24,8,0,32,16,76,67,67,44,32,16,12,3,6,24,48,96,32,0};
uchar code BB[]={64,65,206,4,0,252,4,2,2,252,
4,4,4,252,0,0,64,32,31,32,
64,71,66,65,64,95,64,66,68,67,64,0};
uchar code CC[]={0,64,66,68,92,200,64,127,64,192,
80,78,68,96,64,0,0,128,64,32,
24,7,0,0,0,63,64,64,64,64,120,0};
uchar code DD[]={0,248,0,0,254,64,48,143,10,8,
24,104,8,136,8,0,0,31,0,0,
127,0,0,127,33,33,63,33,33,127,1,0};
uchar code EE[]={0,0,0,224,32,32,32,63,36,36,
36,244,36,0,0,0,0,64,48,7,
18,98,2,10,18,98,2,15,16,96,0,0};
uchar code FF[]={254,2,18,42,198,136,200,184,143,232,
136,136,136,136,0,0,255,0,2,4,
3,4,4,4,4,255,4,4,4,4,4,0};
uchar code GG[]={16,208,255,80,144,4,244,84,95,84,
84,95,244,4,0,0,3,0,255,0,
0,132,133,69,53,15,21,37,101,196,68,0};
uchar code HH[]={16,16,255,16,16,0,8,8,255,8,
8,8,248,0,0,0,8,24,15,4,
133,65,49,13,3,5,9,17,49,97,33,0};
uchar code KKK[]= {0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,66,127,64,0,0,0,
0,98,81,73,73,70,0,0,0,54,73,
73,73,54,0,0,0,8,62,28,62,8,
0,0,0,60,74,73,73,48,0,0,0,24,
20,18,127,16,0,0};
uchar code Baa[]={0,54,73,73,73,54,0,0};
/*------------------------- 延時子程序--------- */
void delay(uint times)
{
while(times)times--;
}
/* -------------------------忙音檢測 --------------*/
void CheckBF(bit CS) /* cs=0,檢查IC1 CS=1檢查IC2 */
{
bit temp;
RS=0;
RW=1;
if(CS)CS2=1;
else CS1=1;
do {
EL=1;
temp=BF;
EL=0;
}while(temp);
CS1=0; /* 總線釋放 ,芯片處高阻狀態 */
CS2=0;
}
/*-----------寫命令···寄存器 ------ -----------*/
void Wcode(bit CC1,uchar dd1) /* 選擇芯片 、數據 */
{
CheckBF(CC1);
RS=0;
RW=0;
if(CC1)CS2=1;
else CS1=1;
P0=dd1;
EL=1;
delay(TT);
EL=0; /* 寫入指令 */
CS1=0; /* 總線釋放 ,芯片處高阻狀態 */
CS2=0;
}
/* ------- 寫顯示數據····· to DDRAM --------*/
void Wdata(bit CC2,uchar dd2)
{
CheckBF(CC2);
RS=1;
RW=0;
if(CC2)CS2=1;
else CS1=1;
P0=dd2;
EL=1;
delay(TT);
EL=0; /* 數據寫入RAM */
CS1=0; /* 總線釋放 ,芯片處高阻狀態 */
CS2=0;
}
/* ------------- 清 屏 子 程 序 -------------------*/
void CLR()
{
uchar n;
uchar m;
for(n=0;n<=7;n++)
{
Wcode(0,(0xb8+n)); /* Setting Page 0 -- 7 */
Wcode(1,(0xb8+n));
Wcode(0,0x40); ;/* 列 =0 */
Wcode(1,0x40);
for(m=0;m<=63;m++)
{
Wdata(0,0x0);
Wdata(1,0x0);
}
} }
/*================================================================ */
/*=============================== 顯示主程序 ========== */
/*================================================================ */
void main()
{
uchar n;
uchar m;
uchar yy;
P0=0x00;
/* --------- 初始化地區------------------------------------------*/
RESET=0;
delay(200);
RESET=1; /* 軟 件 復 位 */
CS1=0; /* 總線釋放 ,芯片處高阻狀態 */
CS2=0;
Wcode(0,0xb8); /* 設置頁面Page= 0 */
Wcode(1,0xb8);
Wcode(0,0xc0); /* 設置顯示首行地址 =00 ,(00 --63) */
Wcode(1,0xc0);
Wcode(0,0x40); /* 設置 x 軸地址 = 00 ,(00-63) */
Wcode(1,0x40);
Wcode(0,0x3f); /* 開屏顯示 */
Wcode(1,0x3f);
while(1)
{
CLR();
/*--------- 顯示“歡迎光臨 128*64 點陣模塊” 于 2、3 行------- */
/*------------------------ 左屏顯示“歡迎光臨”------------------------- */
Wcode(0,(0xb8+1)); /* Setting Page 0 -- 7*/
Wcode(0,0x40); ;/* 列 = 0 */
for(n=0;n<=15;n++) Wdata(0,AA[n]); /* 上部分 */
for(n=0;n<=15;n++) Wdata(0,BB[n]);
for(n=0;n<=15;n++) Wdata(0,CC[n]);
for(n=0;n<=15;n++) Wdata(0,DD[n]);
Wcode(0,(0xb8+2)); /* Setting Page 0 -- 7*/
Wcode(0,0x40); ;/* 列 = 0 */
for(n=16;n<=31;n++) Wdata(0,AA[n]); /* 下部分 */
for(n=16;n<=31;n++) Wdata(0,BB[n]);
for(n=16;n<=31;n++) Wdata(0,CC[n]);
for(n=16;n<=31;n++) Wdata(0,DD[n]);
/*------------------------ 左屏顯示“ 128*64 ”------------------------- */
Wcode(0,(0xb8+6)); /* Setting Page 0 -- 7*/
Wcode(0,0x40); ;/* 列 = 0 */
for(n=0;n<=63;n++) Wdata(0,KKK[n]); /* 上部分 */
/*------------------------ 右屏顯示“點陣模塊”------------------------- */
Wcode(1,(0xb8+5)); /* Setting Page 0 -- 7*/
Wcode(1,0x40); ;/* 列 = 0 */
for(n=0;n<=15;n++) Wdata(1,EE[n]); /* 上部分 */
for(n=0;n<=15;n++) Wdata(1,FF[n]);
for(n=0;n<=15;n++) Wdata(1,GG[n]);
for(n=0;n<=15;n++) Wdata(1,HH[n]);
Wcode(1,(0xb8+6)); /* Setting Page 0 -- 7*/
Wcode(1,0x40); ;/* 列 = 0 */
for(n=16;n<=31;n++) Wdata(1,EE[n]); /* 下部分 */
for(n=16;n<=31;n++) Wdata(1,FF[n]);
for(n=16;n<=31;n++) Wdata(1,GG[n]);
for(n=16;n<=31;n++) Wdata(1,HH[n]);
for(n=6;n>=1;n--)delay(5000);
CLR();
/* ------------- 88888 屏 -------------------*/
for(n=0;n<=7;n++)
{
Wcode(0,(0xb8+n)); /* Setting Page 0 -- 7 */
Wcode(1,(0xb8+n));
Wcode(0,0x40); ;/* 列 =0 */
for(yy=0;yy<=7;yy++)
{
for(m=0;m<=7;m++) Wdata(0,Baa[m]);
delay(100);
}
Wcode(1,0x40);
for(yy=0;yy<=7;yy++)
{
for(m=0;m<=7;m++) Wdata(1,Baa[m]);
}
delay(10000);
}
CLR();
/* ------------- 橫 掃 屏 -------------------*/
Wcode(0,(0xb8+7)); /* Setting Page 0 -- 7 */
Wcode(1,(0xb8+7));
Wcode(0,0x40); ;/* 列 =0 */
Wcode(1,0x40);
for(m=0;m<=63;m++)
{
Wdata(0,0x80);
Wdata(1,0x80);
}
for(n=0;n<=63;n++)
{
Wcode(0,0xc0+n); /* 設置 x 軸地址 = 00 ,(00-63) */
Wcode(1,0xc0+n);
delay(10000); /* 暫停 1秒 */
}
CLR();
/* ------------- 豎 掃 屏 -------------------*/
for(m=0;m<=63;m++)
{
for(n=0;n<=7;n++) /*------ 畫線條 ------*/
{
Wcode(0,(0xb8+n)); /* Setting Page 0 -- 7 */
Wcode(0,(0x40+m)); /* 列 =0 */
Wdata(0,0xff);
}
delay(10000); /* 線條停留時間 */
for(n=0;n<=7;n++) /* -----鏟除痕跡 -------*/
{
Wcode(0,(0xb8+n)); /* Setting Page 0 -- 7 */
Wcode(0,(0x40+m)); /* 列 =0 */
Wdata(0,0x0);
} }
for(m=0;m<=63;m++)
{
for(n=0;n<=7;n++) /*------ 畫線條 ------*/
{
Wcode(1,(0xb8+n)); /* Setting Page 0 -- 7 */
Wcode(1,(0x40+m)); /* 列 =0 */
Wdata(1,0xff);
}
delay(10000); /* 線條停留時間 */
for(n=0;n<=7;n++) /* -----鏟除痕跡 -------*/
{
Wcode(1,(0xb8+n)); /* Setting Page 0 -- 7 */
Wcode(1,(0x40+m)); /* 列 =0 */
Wdata(1,0x0);
} }
/*--------- 交替顯示1 隔行隔離 ------- */
for(n=0;n<=7;n++)
{
Wcode(0,(0xb8+n)); /* Setting Page 0 -- 7*/
Wcode(1,(0xb8+n));
Wcode(0,0x40); ;/* 列 =0 */
Wcode(1,0x40);
for(m=0;m<=31;m++)
{
Wdata(0,0x55);
Wdata(0,0xaa);
Wdata(1,0x55);
Wdata(1,0xaa);
}
}
for(n=6;n>=1;n--)delay(10000);
CLR();
/*--------- 交替顯示2 隔行隔離 ------- */
for(n=0;n<=7;n++)
{
Wcode(0,(0xb8+n)); /* Setting Page 0 -- 7*/
Wcode(1,(0xb8+n));
Wcode(0,0x40); ;/* 列 =0 */
Wcode(1,0x40);
for(m=0;m<=31;m++)
{
Wdata(0,0xaa);
Wdata(0,0x55);
Wdata(1,0xaa);
Wdata(1,0x55);
}
}
for(n=6;n>=1;n--)delay(10000);
}
} /* ----------------------程序到此結束啦!! */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -