找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

KEIL C51 编译不过,知道的兄弟帮看看! 什么地方出错了!

[复制链接]
admin 发表于 2012-9-2 11:07:07 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
#include<REG51.H>
#define uchar unsigned char
#define uint unsigned int
#define DATAPORT P1


sbit RST = P0^5;
sbit CS1 = P0^4;
sbit CS2 = P0^3;
sbit RS = P0^2;
sbit RW = P0^1;
sbit EN = P0^0;

uchar code HZ[]={
/*-- 文字: 天 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x3F,0xFC,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x7F,0xFE,0x01,0x00,
0x01,0x00,0x02,0x80,0x02,0x40,0x04,0x20,0x08,0x18,0x10,0x0E,0x20,0x04,0x40,0x00,

/*-- 文字: 下 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x04,0x7F,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0xC0,0x01,0x60,0x01,0x30,
0x01,0x20,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x00,

/*-- 文字: I --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,
0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,

/*-- 文字: I --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,
0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,


}


/******************************************************************
US延时函数
*******************************************************************/
void delay_US(uint x)
{
while(x=x--)
{;}
}

/**************************************************
判断LCM忙子函数
***************************************************/
void lcd_BUSY()
{
RS=0;
RW=1;
DATAPORT=0xff;
while(1)
{
EN=1;
if(DATAPORT<0x80)
break;
EN=0;
}
EN=0;
}

/****************************************************
写LCM指令子函数
*****************************************************/
void WCODE(uchar C,uchar CSL,uchar CSR)
{
CS1=CSL; //C为指令,CSL/CSR为片选CS1/CS2
CS2=CSR;
lcd_BUSY();
RS=0;
RW=0;
DATAPORT=C;
EN=1;
EN=0;
}

/*****************************************************
写LCM数据子函数
*******************************************************/
void WDATA(uchar C,uchar CSL,uchar CSR)
{
CS1=CSL; //C为数据,CSL/CSR为片选CS1/CS2
CS2=CSR;
lcd_BUSY();
RS=1;
RW=0;
DATAPORT=C;
EN=1;
EN=0;

}

/********************************************************
设定起始行子函数
*********************************************************/
void SET_STARTLINE(uchar I)
{
I=0XC0+I; //I为起始行数
WCODE(I,1,1);

}

/********************************************************
定位X方向、Y方向子函数
*********************************************************/
void SET_XY(uchar X,uchar Y)
{
X=X+0X40; //设定X列的指令代码
Y=Y+0XB8; //设定Y页的指令代码
WCODE(X,1,1);
WCODE(Y,1,1);

}

/**********************************************************
屏幕开户关闭子函数
***********************************************************/
void DISON_OFF(uchar O)
{
O=O+0X3E; //O为1开,O为0关
WCODE(O,1,1);

}

/************************************************************
复位子函数
*************************************************************/
void RESET()
{
RST=0;
delay_US(20);
RST=1;
delay_US(20);

}

/**************************************************************
根据X、Y地址定位,将数据写入LCM或右半屏子函数
**************************************************************/
void LW(uchar X,uchar Y,uchar DD)
{
if(X>=64) //X/Y为坐标,DD为数据
{
SET_XY(X-64,Y);
WDATA(DD,0,1);

}
else
{
SET_XY(X,Y);
WDATA(DD,1,0);

}
}

/****************************************************************
显示汉字子函数
****************************************************************/
void DISPLAY_HZ(uchar XX,uchar YY,uchar N,uchar FB)
{
uchar I,DX; //XX/YY为列、页定位值,N为字码表中的
for(I=0;I<16;I++) //第N个汉字,FB为反白显示选项
{
DX=HZ[2*I+N*32];
if(FB)
DX=255-DX;
LW(XX*8+I,YY,DX);
DX=HZ[(2*I+1)+N*32];
if(FB)
DX=255-DX;
LW(XX*8+I,YY+1,DX);
}

}

/******************************************************************
LCM初始化子函数
*******************************************************************/
void lcd_INIT(void)
{
uchar X,Y;
RESET();
SET_STARTLINE(0);
DISON_OFF(0);
for(Y=0;Y<8;Y++)
{
for(X=0;X<128;X++);
LW(X,Y,0);

}
DISON_OFF(1);
}


void MAIN()
{
lcd_INIT();
while(1)
{
LW(0,0,25);
}
}

[ 此帖被553849186在2010-12-18 09:21重新编辑 ]
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-24 21:02 , Processed in 0.050854 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表