?? 參數(shù)錯(cuò)誤丟失handler.c
字號(hào):
#include <REG89C51RD.H>
#include <absacc.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define W_COM XBYTE[0x7FFF]
#define W_DAT XBYTE[0x7eFF]
#define R_DAT XBYTE[0x7FFF]
uchar ScrAdrL;
uchar ScrAdrH;
void lcd_init();
void lcd_clear();
void WriteOneHZ(uint,uchar,uchar,uchar*);//光標(biāo)指針地址低位,高位,字庫(kù)首地址
void MyDelay(uint);
uchar CurAdrL,CurAdrH ;
uchar code HA[]={
0x00,0x40,0x00,0x40,0xF0,0xA0,0x91,0x18,
0x92,0x0E,0x9C,0x04,0x93,0xF8,0x90,0x00,
0xF3,0xF8,0x92,0x08,0x82,0x08,0x02,0x08,
0x02,0x08,0x03,0xF8,0x02,0x08,0x00,0x00,/*"哈",0*/
};
uchar code ER[]={
0x04,0x00,0x06,0x00,0x08,0x00,0x0F,0xFE,
0x11,0x04,0x20,0x88,0x44,0x80,0x06,0xA0,
0x04,0x90,0x08,0x88,0x10,0x8C,0x20,0x88,
0x40,0x80,0x00,0x80,0x02,0x80,0x01,0x00,/*"爾",1*/
};
uchar code BIN[]={
0x40,0x40,0x20,0x20,0x27,0xFE,0x84,0x04,
0x40,0x38,0x01,0xC0,0x11,0x00,0x11,0xFC,
0x21,0x10,0x21,0x10,0xC7,0xFE,0x40,0x00,
0x40,0x10,0x41,0x08,0x42,0x04,0x4C,0x04,/*"濱",2*/
};
uchar code GONG[]={
0x00,0x00,0x3F,0xFC,0x01,0x00,0x01,0x00,
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
0x01,0x00,0xFF,0xFE,0x00,0x00,0x00,0x00,/*"工",3*/
};
uchar code CHENG[]={
0x0D,0xF8,0x71,0x08,0x11,0x08,0x11,0x08,
0xFD,0x08,0x11,0xF8,0x30,0x00,0x3B,0xFC,
0x54,0x40,0x50,0x40,0x93,0xFC,0x10,0x40,
0x10,0x40,0x10,0x40,0x17,0xFE,0x10,0x00,/*"程",4*/
};
uchar code DA[]={
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
0x01,0x00,0xFF,0xFE,0x01,0x00,0x02,0x80,
0x02,0x80,0x02,0x40,0x04,0x40,0x04,0x20,
0x08,0x10,0x10,0x18,0x20,0x0E,0x40,0x04,/*"大",5*/
};
uchar code XUE[]={
0x01,0x08,0x10,0x8C,0x0C,0xC8,0x08,0x90,
0x7F,0xFE,0x40,0x04,0x8F,0xE8,0x00,0x40,
0x00,0x80,0x7F,0xFE,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x80,0x02,0x80,0x01,0x00,/*"學(xué)",6*/
};
uchar code ZKWU[]={
0x00,0x00,0xF0,0x91,0x92,0x9C,0x93,0x90,
0xF3,0x92,0x82,0x02,0x02,0x03,0x02,0x00,
0x40,0x40,0xA0,0x18,0x0E,0x04,0xF8,0x00,
0xF8,0x08,0x08,0x08,0x08,0xF8,0x08,0x00,/*"哈",0*/
};
uchar code ZKLIN[]={
0x00,0x00,0x7D,0xFC,0x45,0x04,0x49,0x04,
0x49,0x04,0x51,0x04,0x49,0xFC,0x45,0x04,
0x45,0x04,0x45,0x04,0x69,0x04,0x51,0x04,
0x41,0xFC,0x41,0x04,0x40,0x00,0x40,0x00,/*"陽(yáng)",1*/
};
main()
{
lcd_init();
lcd_clear();
//test();
W_COM =0x4f; /*光標(biāo)地址自動(dòng)向下增=*/
//WriteOneHZ(0,0,HA);
//WriteOneHZ(0,2,ER);
//WriteOneHZ(0,4,BIN);
//WriteOneHZ(0,6,GONG);
WriteOneHZ(1,20,0,ZKWU);
//WriteOneHZ(2,0X80,DA);
//WriteOneHZ(2,0X84,XUE);
//WriteOneHZ(0x0,0x80,BIN);
while(1);
}
void write_com(uchar com)
{
W_COM=com;
}
void write_dat(uchar dat)
{
W_DAT=dat;
}
uint read_dat()
{
uint dat;
dat=R_DAT;
return(dat);
}
void lcd_init(void)
{
write_com(0x40);/*初始化設(shè)置*/
write_dat(0x30);/*設(shè)置參數(shù)*/
write_dat(0x87);write_dat(0x07);write_dat(0x27);
write_dat(0x36);write_dat(239);write_dat(0x28);
write_dat(0x00);/*設(shè)置參數(shù)*/
write_com(0x44);/*顯示域設(shè)置*/
write_dat(0x00);write_dat(0x00);/*設(shè)置參數(shù)*/
write_dat(0x0f0);write_dat(0x80);write_dat(0x25);
write_dat(0xf0); write_dat(0x00);write_dat(0x4b);
write_dat(0x80);write_dat(0x70);/*設(shè)置參數(shù)*/
write_com(0x5a);/*點(diǎn)位移設(shè)置*/
write_dat(0x00);/*設(shè)置參數(shù)*/
write_com(0x5b);/*顯示合成設(shè)置*/
write_dat(0x0c);/*設(shè)置參數(shù)*/
lcd_clear();/*清屏子程序*/
write_com(0x59);/*開(kāi)顯示*/
write_dat(0x54);/*設(shè)置參數(shù)*/
}
void lcd_clear(void)/*清屏程序*/
{
uint idata i;
write_com(0x4c);
write_com(0x46);
write_dat(0x00);
write_dat(0x00);
write_com(0x42);
for(i=0;i<0x8000;i++)
{write_dat(0x00);}
}
void test()
{
}
void PageEcode(unsigned char PgSel,unsigned char
OrdinatX,unsigned char OrdinatY) using 1
{
unsigned int PageTemp=0;
switch(PgSel)
{case 1://第l屏
PageTemp= OrdinatY*0x28+OrdinatX;
ScrAdrL=(unsigned char)(PageTemp%256);
ScrAdrH= (unsigned char)(PageTemp/256);
break;
case 2://第2屏
PageTemp = OrdinatY*0x28+ OrdinatX+0x2580;
ScrAdrL= (unsigned char)(PageTemp%256);
ScrAdrH= (unsigned char)(PageTemp/256);
break;
case 3://第3屏
PageTemp = OrdinatY*0x28+ OrdinatX + 0x4b00;
ScrAdrL= (unsigned char)(PageTemp%256);
ScrAdrH=(unsigned char)(PageTemp/256);
break;
default:
break;
}
}
void SetCursor(uint PagSel,uchar CurHIGH,uchar CurLOW)/*設(shè)定光標(biāo),允許顯示*/
{
//MyDelay(0x9);
PageEcode(PagSel,CurHIGH,CurLOW);//光標(biāo)指針地址轉(zhuǎn)換為顯示屏坐標(biāo)地址
W_COM =0x46; /*設(shè)定光標(biāo)位置命令*/
W_DAT=ScrAdrL; /*從0000位置開(kāi)始*/
W_DAT=ScrAdrH;
//MyDelay(0x9);
W_COM =0x42; /*允許MPU連續(xù)地把顯示數(shù)據(jù)寫(xiě)入顯示區(qū)內(nèi)命令*/
}
void WriteOneHZ(uint PagSel,uchar CurHIGH,uchar CurLOW,uchar*ZiKu)/*在指定位置顯示=個(gè)漢字*/
{ uchar i;
SetCursor(PagSel,CurHIGH,CurLOW);
i=0;
do{W_DAT=ZiKu[i];
i++;}while(i<0x10);
SetCursor(PagSel,CurHIGH+1,CurLOW);
i=16;
do{W_DAT=ZiKu[i];
i++;}while(i<0x20);
}
void MyDelay(uint delx)/*延時(shí)子程序*/
{ uint i=0;
while(i<delx)
{i++;}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -