標題: 基于protues的ampire12864漢字顯示 [打印本頁]
作者: 2218831468 時間: 2017-5-7 15:57
標題: 基于protues的ampire12864漢字顯示
file:///C:/Users/user1/AppData/Local/Temp/msohtml1/01/clip_image002.jpg
中文資料文庫地址:
http://wenku.baidu.com/link?url=2RskpTcACLnDJp-GdMjaTVbrq7HNjjeLZ_5Kvkz3Xld-PkmTcTwzUFbEfC_daKr0KcE57b_JYbeD2eX3VRI2qSAV7exIPvhsnWfnPw8ATSu
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
sbit CS1=P2^4;
sbit CS2=P2^3;
sbit RS=P2^2;
sbit RW=P2^1;
sbit E=P2^0;
void check_busy(); //忙檢測
void write_cmd(ucharinst); //寫命令
void write_data(uchardat); //寫數(shù)據(jù)
void set_xy(ucharx,uchar y); //設置顯示坐標
void LCD_Init(); //lcd初始化
// 字摸軟件提取出的數(shù)據(jù),提取字模時要注意參數(shù)設置,縱向取模,字節(jié)倒序。
uchar code HZ0[6][32]={//;-- 文字: 安 --
//;-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --
{0x80,0x90,0x8C,0x84,0x84,0x84,0xF5,0x86,0x84,0x84,0x84,0x84,0x94,0x8C,0x80,0x00,0x00,0x80,0x80,0x84,0x46,0x49,0x28,0x10,0x10,0x2C,0x23,0x40,0x80,0x00,0x00,0x00},
//;-- 文字: 徽 --
//;-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --
{0x10,0x88,0xC4,0x23,0xAE,0x68,0x2F,0x28,0xAE,0x20,0xD8,0x17,0x10,0xF0,0x10,0x00,0x01,0x00,0xFF,0x48,0x29,0x8D,0xFB,0x09,0xAC,0x48,0x37,0x08,0x36,0x41,0x80,0x00},
//;-- 文字: 工 --
//;-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --
{0x00,0x04,0x04,0x04,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x20,0x20,0x00},
//;-- 文字: 業(yè) --
//;-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --
{0x00,0x10,0x60,0x80,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0xC0,0x30,0x00,0x00,0x40,0x40,0x40,0x43,0x40,0x7F,0x40,0x40,0x40,0x7F,0x42,0x41,0x40,0x40,0x40,0x00},
//;-- 文字: 大 --
//;-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --
{0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xFF,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x80,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x03,0x0C,0x10,0x20,0x40,0x80,0x80,0x00},
//;-- 文字: 學 --
//;-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --
{0x40,0x30,0x11,0x96,0x90,0x90,0x91,0x96,0x90,0x90,0x98,0x14,0x13,0x50,0x30,0x00,0x04,0x04,0x04,0x04,0x04,0x44,0x84,0x7E,0x06,0x05,0x04,0x04,0x04,0x04,0x04,0x00}
};
uchar code FZ0[10][32]={
/*-- 文字: I --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
{0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},
/*-- 文字: --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
/*-- 文字: L --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
{0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00},
/*-- 文字: O --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
{0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00},
/*-- 文字: V --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
{0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00},
/*-- 文字: E --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
{0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00},
/*-- 文字: --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
/*-- 文字: Y --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
{0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00},
/*-- 文字: O --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
{0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00},
/*-- 文字: U --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
{0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00}
};
/************************延時函數(shù)**************************/
voiddelayus(uchar delay)
{
uchar i;
for(i=0;i<=delay;i++)
_nop_();
}
/********************忙檢查*********************************/
voidcheck_busy()
{
uchar a=0;
for(a=0;a<200;a++); //此處為延時,一段時間后確保處于空閑狀態(tài)
/* //此處為狀態(tài)查詢,查詢忙狀態(tài),沒有使用成功,以后再調(diào)試
RW=1;
RS=0;
E=1;
while(1)
{
E=1;
if(!(P0&0x80))
break;
a++;
if(a>10)
break;
}
E=1;
*/
}
/********************寫命令函數(shù)*********************************/
voidwrite_cmd(ucharinst)
{
check_busy();
RS=0;
RW=0;
E=1;
P3=inst;
E=0;
_nop_();
}
/********************寫數(shù)據(jù)函數(shù)*********************************/
voidwrite_data(uchardat)
{
check_busy();
RS=1;
RW=0;
E=1;
P3=dat;
E=0;
_nop_();
}
/********************初始化函數(shù)*********************************/
voidLCD_Init()
{
write_cmd(0x30);//30H--基本指令操作?
delayus(4);
write_cmd(0x0c);//開顯示,關光標,不閃爍。
delayus(10);
write_cmd(0x01);//清除顯示
delayus(10);
write_cmd(0x06);//光標的移動方向左,DDRAM的地址計數(shù)器(AC)加1。
delayus(10);
}
/*******************設置顯示坐標*********************************/
void set_xy(ucharx,uchar y) //x為行,y為列
{
if(y>=64) //列地址大于等于64時右屏顯示?
{
CS2=0; //低電平選擇
CS1=1; //寫右屏是左屏關閉,不然兩邊會同時顯示
y=y-64;
}
else //列地址小于64時左屏顯示
{
CS1=0; //同上
CS2=1;
}
write_cmd(0x40|y); //寫列地址
_nop_();
write_cmd(0xb8|x); //寫行地址?
}
/*******************顯示中文字體*********************************/
voiddisp_hz(ucharR,ucharL,uchar *p)
{
uchar i;
for(i=0;i<16;i++)
{
set_xy(2*R,16*L+i); //設定顯示位置,每個漢字16*16個點,顯示時每行8*16個點,所以需要兩行8*32個點,此處為第一行
write_data(p); //寫入DDRAM
set_xy(2*R+1,16*L+i); //第二行
write_data(p[i+16]);
}
}
voiddisp_zf(ucharR,ucharL,uchar *p)
{
uchar i;
for(i=0;i<8;i++)
{
set_xy(2*R,8*L+i); //設定顯示位置,每個字母16*8個點,顯示時每行8*8個點,所以需要兩行8*16個點,此處為第一行
write_data(p);
set_xy(2*R+1,8*L+i); //第二行
write_data(p[i+8]);
}
}
void main()
{
uchar k=0,n=0;
LCD_Init(); //初始化
for(k=0;k<6;k++)
disp_hz(1,1+k,HZ0[k]); //顯示安徽工業(yè)大學
for(n=0;n<10;n++)
disp_zf(2,3+n,FZ0[n]); //顯示 I LOVE YOU
while(1){;};
}
歡迎光臨 (http://m.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
精品国产999久久久免费
|
日韩视频在线免费观看
|
超碰91在线
|
九九色影院
|
天天射天天干天天操
|
午夜影院在线
|
超碰免费97
|
国产精品第一
|
97精品国产97久久久久久免费
|
国产精品久久视频
|
99精品网站|
国产精品一区二区三
|
国产欧美一区二区三区视频在线观看
|
91成人免费版
|
波多野结衣之双调教hd
|
日韩免费在线观看
|
天天插天天透
|
国产在线视频一区二区
|
国产成人综合视频
|
中文字幕一区二区三区视频
|
视频爱爱免费视频爱爱太爽
|
欧美福利在线
|
五月天网址|
一区二区免费在线观看
|
夜夜嗨av一区二区三区
|
亚洲福利一区
|
久久精品久久久精品美女
|
午夜视频一区
|
www.青青草
|
精品在线免费观看
|
日韩一级在线
|
久久综合一区
|
涩涩在线
|
中文字幕免费观看视频
|
日韩视频二区
|
午夜影院福利
|
久久精品视频网
|
欧美一级欧美三级在线观看
|
成人在线免费看
|
欧美综合网
|
黄色片免费在线观看
|