⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 切割速度handler.c

📁 本人亲自开发的320240LCD测试程序,这里为51平台,LCD控制器为SED1335,初学着研读之后非常方便移植到其他平台
💻 C
字号:
#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]
void lcd_init();
void lcd_clear();
void WriteOneHZ(uchar,uchar,uchar*);//光标指针地址低位,高位,字库首地址
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,/*"学",6*/
};
uchar code ZKWU[]={
0x20,0x40,0x10,0x40,0x10,0x40,0x87,0xFE,
0x4C,0x44,0x54,0x48,0x10,0xC0,0x10,0xC0,
0x20,0xC0,0x20,0xC0,0xE1,0x40,0x21,0x42,
0x22,0x42,0x24,0x42,0x38,0x3E,0x00,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,/*"阳",1*/
};



main()
{
 lcd_init();
 lcd_clear();
 //test();
W_COM =0x4f; /*光标地址自动向下增=*/
WriteOneHZ(0,0,HA);
WriteOneHZ(0,2,ER);
WriteOneHZ(0,4,BIN);
WriteOneHZ(0,6,GONG);
WriteOneHZ(0,8,CHENG);
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);/*初始化设置*/
 write_dat(0x30);/*设置参数*/
 write_dat(0x87);write_dat(0x07);write_dat(0x27);
 write_dat(0x36);write_dat(239);write_dat(0x28);
 write_dat(0x00);/*设置参数*/
 write_com(0x44);/*显示域设置*/
 write_dat(0x00);write_dat(0x00);/*设置参数*/
 write_dat(0x0f0);write_dat(0x80);write_dat(0x25);
 write_dat(0xf0); write_dat(0x00);write_dat(0x4b);
 write_dat(0x80);write_dat(0x70);/*设置参数*/
 write_com(0x5a);/*点位移设置*/
 write_dat(0x00);/*设置参数*/
 write_com(0x5b);/*显示合成设置*/
 write_dat(0x0c);/*设置参数*/
 lcd_clear();/*清屏子程序*/
 write_com(0x59);/*开显示*/
 write_dat(0x54);/*设置参数*/
}
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 0x41://第l屏
PageTemp= OrdinatY*0x28+OrdinatX;
CurAdrL=(unsigned char)(PageTemp%256);
CurAdrH = (unsigned char)(PageTemp/256);
break;
case 0x42://第2屏
PageTemp = OrdinatY*0x28+ OrdinatX +0x2580;
CurAdrL = (unsigned char)(PageTemp%256);
CurAdrH = (unsigned char)(PageTemp/256);
break;
case 0x43://第3屏
PageTemp = OrdinatY*0x28+ OrdinatX + 0x4b00;
CurAdrL = (unsigned char)(PageTemp%256);
CurAdrH =(unsigned char)(PageTemp/256);
break;
default:
break;
}
}
void SetCursor(uchar CurHIGH,uchar CurLOW)/*设定光标,允许显示*/
{
//MyDelay(0x9);
W_COM =0x46; /*设定光标位置命令*/
W_DAT=CurLOW; /*从0000位置开始*/
W_DAT=CurHIGH ;
//MyDelay(0x9);
W_COM =0x42; /*允许MPU连续地把显示数据写入显示区内命令*/
}
void WriteOneHZ(uchar CurHIGH,uchar CurLOW,uchar*ZiKu)/*在指定位置显示=个汉字*/
{ uchar i;
SetCursor(CurHIGH,CurLOW);
i=0;
do{W_DAT=ZiKu[i];
i=i+2;}
while(i<0x1e);
SetCursor(CurHIGH,CurLOW+1);
i=1;
while(i<0x1f)
{W_DAT=ZiKu[i];
i=i+2;}
}
void MyDelay(uint delx)/*延时子程序*/
{ uint i=0;
while(i<delx)
{i++;}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -