PG12864F汉字显示程序Word下载.docx
《PG12864F汉字显示程序Word下载.docx》由会员分享,可在线阅读,更多相关《PG12864F汉字显示程序Word下载.docx(8页珍藏版)》请在冰豆网上搜索。
ucharread_status();
voidcheck_status();
voidclear_screen();
voiddisplay_char(ucharx,uchary,ucharch);
//注意汉字数组要加code放到外部存储器中,如果不加code则空间不够
ucharcodeHZ0[6][32]={{/*--文字:
华--*/
/*--楷体11;
此字体下对应的点阵为:
宽x高=14x14--*/
/*--宽度不是8的倍数,现调整为:
宽度x高度=16x14--*/
0x11,0x00,0x11,0x10,0x21,0x20,0x61,0xC0,0xA3,0x00,0x2D,0x08,0x21,0x08,0x20,0xF8,0x22,0x00,0x02,0x00,0xFF,0xF8,0x02,0x00,0x02,0x00,0x02,0x00},
/*--文字:
东--*/
{0x04,0x00,0x04,0x00,0x7F,0xF0,0x08,0x00,0x12,0x00,0x22,0x00,0x3F,0xE0,0x02,0x00,0x02,0x00,0x22,0x40,0x22,0x20,0x42,0x10,0x82,0x10,0x0E,0x00},
交--*/
{0x04,0x00,0x02,0x00,0xFF,0xF8,0x00,0x00,0x10,0x40,0x20,0x20,0x40,0x10,0x10,0x40,0x08,0x80,0x05,0x00,0x02,0x00,0x05,0x00,0x18,0xC0,0xE0,0x38},
通--*/
{0x47,0xF0,0x21,0x20,0x20,0xC0,0x07,0xF0,0x04,0x90,0xE4,0x90,0x27,0xF0,0x24,0x90,0x24,0x90,0x27,0xF0,0x24,0x90,0x24,0xB0,0x50,0x00,0x8F,0xF8},
大--*/
{0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0xFF,0xF8,0x02,0x00,0x05,0x00,0x05,0x00,0x05,0x00,0x08,0x80,0x08,0x80,0x10,0x40,0x20,0x20,0xC0,0x18},
学--*/
{0x24,0x20,0x12,0x40,0x00,0x80,0xFF,0xF8,0x80,0x08,0x80,0x08,0x3F,0xC0,0x00,0x80,0x03,0x00,0xFF,0xF8,0x02,0x00,0x02,0x00,0x02,0x00,0x0E,0x00}};
ucharcodeHZ1[4][32]={/*--文字:
电--*/
{0x02,0x00,0x02,0x00,0x02,0x00,0x7F,0xF0,0x42,0x10,0x42,0x10,0x7F,0xF0,0x42,0x10,
0x42,0x10,0x7F,0xF0,0x42,0x00,0x02,0x08,0x02,0x08,0x01,0xF8},
气--*/
{0x20,0x00,0x20,0x00,0x3F,0xF8,0x40,0x00,0x9F,0xE0,0x00,0x00,0x7F,0xE0,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x28,0x00,0x18,0x00,0x08},
{0x24,0x20,0x12,0x40,0x00,0x80,0xFF,0xF8,0x80,0x08,0x80,0x08,0x3F,0xC0,0x00,0x80,0x03,0x00,0xFF,0xF8,0x02,0x00,0x02,0x00,0x02,0x00,0x0E,0x00},
院--*/
{0x00,0x80,0xF0,0x40,0x97,0xF8,0x94,0x08,0xA0,0x00,0xA3,0xF0,0x90,0x00,0x90,0x00,0x97,0xF8,0x91,0x20,0xE1,0x20,0x82,0x20,0x84,0x28,0x88,0x18}};
ucharcodeHZ2[6][32]={{/*--文字:
零--*/
0x3F,0xE0,0x02,0x00,0xFF,0xF8,0x82,0x08,0xBA,0xE8,0x02,0x00,0x3A,0xE0,0x0D,0x80,0x30,0x60,0xC2,0x18,0x1F,0xC0,0x00,0x80,0x1D,0x00,0x03,0x00},
七--*/
{0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x78,0x07,0x80,0xFC,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x08,0x04,0x08,0x03,0xF8},
{0x02,0x00,0x02,0x00,0x02,0x00,0x7F,0xF0,0x42,0x10,0x42,0x10,0x7F,0xF0,0x42,0x10,0x42,0x10,0x7F,0xF0,0x42,0x00,0x02,0x08,0x02,0x08,0x01,0xF8},
牵--*/
{0x02,0x00,0x3F,0xE0,0x05,0x00,0x08,0x80,0x10,0x40,0xFF,0xF8,0x80,0x08,0x22,0x00,0x3F,0xE0,0x42,0x00,0x02,0x00,0xFF,0xF8,0x02,0x00,0x02,0x00},
二--*/
{0x00,0x00,0x00,0x00,0x7F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xF8,0x00,0x00},
班--*/
{0x01,0x00,0xF9,0x78,0x21,0x20,0x25,0x20,0x25,0x20,0xFD,0x20,0x25,0x78,0x25,0x20,
0x29,0x20,0x21,0x20,0x3A,0x20,0xE2,0x20,0x04,0xF8,0x08,0x00}};
ucharcodeHZ3[3][32]={{/*--文字:
占--*/
0x04,0x00,0x04,0x00,0x04,0x00,0x07,0xF8,0x04,0x00,0x04,0x00,0x04,0x00,0x7F,0xE0,
0x40,0x20,0x40,0x20,0x40,0x20,0x40,0x20,0x7F,0xE0,0x40,0x20},
俊--*/
{0x10,0x80,0x11,0x00,0x12,0x20,0x27,0xF0,0x20,0x10,0x62,0x20,0xA4,0x10,0x29,0x08,
0x21,0xE0,0x22,0x20,0x25,0x40,0x20,0x80,0x23,0x60,0x2C,0x18},
龙--*/
{0x04,0x00,0x04,0x80,0x04,0x40,0x04,0x00,0xFF,0xF8,0x05,0x00,0x09,0x10,0x09,0x20,
0x09,0x40,0x11,0x80,0x11,0x00,0x23,0x08,0x4D,0x08,0x80,0xF8}};
//汉字显示函数,处在xy处显示汉字hz
voiddisplay_HZ(ucharx,uchary,uchar*hz)////x0-3y0-7{
uchari,j=0;
for(i=0;
i<
16;
i++)
{
write_cmd3(((j/2)<
<
4)|(y*2),x,0x24);
//地址指针设置..低地址,高地址,命令
write_cmd2(hz[j++],0xc0);
}
voidmain()
init_12864();
6;
display_HZ(0,1+i,HZ0[i]);
//显示:
华东交通大学for(i=0;
4;
display_HZ(1,1+i,HZ1[i]);
显示:
电气学院for(i=0;
display_HZ(2,1+i,HZ2[i]);
零七电牵二班for(i=0;
3;
display_HZ(3,2+i,HZ3[i]);
占俊龙
//for(i=0;
128;
i++)//{
//display_char(i/16,i%16,'
0'
+i);
//}
//clear_screen();
}
//显示字符函数,处在xy处显示ch
voiddisplay_char(ucharx,uchary,ucharch)//x0-7y0-15
write_cmd3((((x*2)<
4)+y),0x00,0x24);
//地址指针位置write_cmd2(ch-32,0xc0);
//t6963c字符表与ASCII差32@@@@@@@@@@@@@@@@
voiddelay(uintt){
uinti,j;
t;
for(j=0;
j<
50;
j++);
voidinit_12864(){
rst=1;
delay(10);
rst=0;
wr=1;
rd=1;
ce=1;
cd=1;
check_status();
write_cmd3(0x01,0x00,0x21);
//光标指针设置check_status();
write_cmd3(0x00,0x00,0x42);
//图形区首地址check_status();
write_cmd3(16,0x00,0x43);
//图形区宽度check_status();
write_cmd1(0x80);
//显示方式设置,正常显示check_status();
//write_cmd1(0x94);
//。
。
显示状态设置1010N3N2N1N0文本显示,光标不显示,不闪烁
write_cmd1(0x98);
//图形方式显示,不显示字母,只打点
write_cmd1(0xa0);
//光标形状设置10100N2N1N0
voidclear_screen(){
uinti;
write_cmd3(0x00,0x00,0x24);
//地址指针设置check_status();
write_cmd1(0xb0);
//数据自动写,每写一次,地址指针自动加一
8192;
i++){
write_data(0X00);
write_cmd1(0xb2);
//数据自动写结束}
voidwrite_data(uchardat)
cd=0;
ce=0;
wr=0;
P0=dat;
voidwrite_cmd1(ucharcmd)
P0=cmd;
//先送参数,再送指令
voidwrite_cmd2(uchardat,ucharcmd)
write_data(dat);
check_status();
write_cmd1(cmd);
voidwrite_cmd3(uchardata1,uchardata2,ucharcmd)
write_data(data1);
write_data(data2);
ucharread_status(){
ucharstatus;
rd=0;
status=P1;
returnstatus;
voidcheck_status(){
uchars;
while((s&
0x80)!
=0x80)
s=read_status();
//等待位1,2置为。
命令读写准备好。
数据读写准备好