EDN博客精华文章 作者:
sunke9
本驱动程序针对与SED1335兼容控制芯片的LCD320240液晶显示模块,实现了输出8*16、16*24、16*32三种字号的数字及英文符号,输出16*16、24*24、32*32三种字号的汉字,还能按照起点终点坐标画直线和斜线。
#include "lcd.h"
#include "ZK.h"
//============================ 1335 常用指令列表 ===============================
//初始化设置。A0=1..写指令/0...读写参数。后续8字节参数串ParaSysTable8[]
const unsigned char ParaSysTable8[]= {0x30,0x87,0x07,0x27,0x42,0xf0,0x28,0x00 };// P1-P8参数
#define BasePart1 0x00
#define BasePart2 0x40
#define BasePart3 0x00
#define BasePart4 0x00
const
unsigned char ParaScrTableA[]= {0x00,BasePart1,0xF0,0x00,BasePart2,0xF0,0x00,BasePart3,0x00,BasePart4 };
#define Scroll 0x44 // 时序要求:/WR=0;/RD=1
#define SystemSet 0x40 // 时序要求:/WR=0;/RD=1
#define SleepIn 0x53
//显示状态设置。A0=1..ON/0..OFF;/WR=0;/RD=1.
#define DispOn 0x59
#define DispOff 0x58
#define Ovlay 0x5b
#define HdotScr 0x5a
#define CsrW 0x46
//读取光标指针。A0=1..写指令/0...读写参数;/WR=0;/RD=1.
#define CsrR 0x47
//光标移动方向设置。A0=1;/WR=0;/RD=1.
/* 该指令代码写入后,计算机将从SED1335等数据通道读出当前的光标指针值。光标指针读
出的顺序是先CSRL再CSRH.
*/
//数据写入设置。A0=1..写指令/0...读写参数;/WR=0;/RD=1.
#define mWrite 0x42
//数据读取设置。A0=1..写指令/0...读写参数;/WR=0;/RD=1.
#define mRead 0x43
// 程序参数定义,根据用户选择的LCM型号修改
#define Busy 0x40
#define paraP9 0x28
#define CsrDirR 0x4c
#define CsrDirL 0x4d
#define CsrDirU 0x4e
#define CsrDirD 0x4f
extern void delay(void);
void delay_1ms(void);
void _delay_ms(u32 j);
void sed1335_write_command(unsigned char chCMD);
void sed1335_write_data(unsigned char chData);
void LcmInition(void);
void LcmClear(void);
void Locatexy(unsigned char x,unsigned char y, unsigned char attribs);
void Putstr(unsigned char x,unsigned char y,unsigned char *pstr,unsigned char flag,unsigned char dotwidth);
void Point(unsigned int Px, unsigned char Py, unsigned char attr );
void Linexy(unsigned int x0,unsigned char y0,unsigned int xt,unsigned char yt,unsigned char att);
/***********************************************************
* 函数说明:向LCD发送指令函数 &n