资源简介
标准的汉字字库,可以显示16*16汉字和8*16ASCII码字符,还可显示十进制整数,十六进制整数,十进制小数,画园,画矩形,画线等功能
LCD.H 是数据、端口定义和函数原型
LCD.C 是函数体
hz16k.h 是汉字字库
代码片段和文件信息
#include “def.h“
#include “include.h“
#include “hzk16.h“
#include “ascii16x8.h“
//====================常量定义========
static const U8 LCD_SYSTAB[8] = {
0x30 // 0011 0000 B: 1 W/S: 0 M2: 0 M1: 0 M0: 0
0x87 // 1000 0111 WF: 1 FX: 7
0x0f // 0000 1111 FY: 15
0x28 // 0010 1000 C/R: 39
0x45 // 0100 0101 TC/R: 69 //试验值
0xf0 // 1111 0000 L/F: 240
0x28 // 0010 1000 APL: 40
0x00 // 0000 0000 APH: 0
};
//第一显示区起0x0000240行;二区起0x4000(0x2580240X40=9600)240行;三四区0行
U8 LCD_SCRTAB[10]={0x000x00240(U8)(LCM_PAGE2ADDR & 0xff)\
(U8)(LCM_PAGE2ADDR >> 8)240\
0x000xf00x00xf0};
U8 LCD_Buffer[LCM_PAGE2ADDR];
/******************************************************************************************
*函数名: LCD_WriteCommand
*参数: uchar cmd要写的命令字
*返回值: 无
*描述: 向lcd 写命令lcd write a command byte function
*编写:
*版本信息:
******************************************************************************************/
void LCD_WriteCommand(U8 cmd)
{
CCS();
SA0();
LCD_OUTDATA(cmd);
CWR();
SWR();
SCS();
}
/******************************************************************************************
*函数名: LCD_WriteData
*参数: uchar display_data要显示的数据
*返回值: 无
*描述: 向lcd 写数据lcd write a display byte function
*编写: zlg
*版本信息: V1.0 2006年7月12日
******************************************************************************************/
void LCD_WriteData(U8 data)
{
CCS();
CA0();
LCD_OUTDATA(data);
CWR();
SWR();
SCS();
}
//******************************************************************************************
U8 LCD_ReadStatus(void)
{
U8 idata;
CCS();
CA0();
CRD();
for(i=0; i<255; i++);
LCD_INDATA(data);
SRD();
SCS();
return data;
}
//******************************************************************************************
U8 LCD_ReadData(void)
{
U8 idat;
CCS();
SA0();
CRD();
for (i=0; i<255; i++);
LCD_INDATA(dat);
SRD();
SCS();
return dat;
}
//******************************************************************************************
void LCD_ClearRam(void)
{
U32 i;
LCD_WriteCommand(LCM_CUR_RIGHT);
LCD_WriteCommand(LCM_CUR_POS);
LCD_WriteData(0x00);
LCD_WriteData(0x00);
LCD_WriteCommand(LCM_MWRITE);
for (i=65535; i>0; i--)
{
LCD_WriteData(0x00);
}
}
//******************************************************************************************
void LCD_SetCursor(U8 ox U8 oy U8 CursorWidth)
{
LCD_WriteCommand(LCM_CUR_POS); //设置当前显示地址
LCD_WriteData((AP*oy+ox)%256); //显示地址低字节
LCD_WriteData((AP*oy+ox)/256); //显示地址高字节
LCD_WriteCommand(LCM_CUR_SHAPE); /*设置光标形状 */
LCD_WriteData(CursorWidth); /*设置光标宽度 */
LCD_WriteData(0x8E); /*最高位为1:设置光标为块状*/
}
//*********************************************************
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 22952 2008-12-19 14:39 LCD.c
文件 3750 2008-11-27 09:47 LCD.h
文件 1614123 2008-06-03 20:14 hzk16.h
----------- --------- ---------- ----- ----
1640825 3
- 上一篇:使用51单片机控制nRF24L01的多种例程
- 下一篇:8086交通灯.rar
评论
共有 条评论