📄 1335.h
字号:
#include <delay.h>
#include <math.h>
//宏定义//
#define Uchar unsigned char
#define Uint unsigned int
#define BasePart1 0x00
#define BasePart2 0x40
#define BasePart3 0x80
#define BasePart4 0x00
#define SystemSet 0x40
#define Scroll 0x44
#define DispOn 0x59
#define DispOff 0x58
#define Ovlay 0x5b
#define HdotScr 0x5a
#define CsrForm 0x5d
#define CgramAdr 0x5c
#define CsrDirR 0x4c
#define CsrDirL 0x4d
#define CsrDirU 0x4e
#define CsrDirD 0x4f
#define CsrW 0x46
#define CsrR 0x47
#define mWrite 0x42
#define mRead 0x43
/* 对sed1355的驱动引脚通进行宏定义,注意一定要把其设置为输出口*/
#define A0_H PORTD|=(1<<5)
#define A0_L PORTD&=~(1<<5)
#define RD_H PORTD|=(1<<6)
#define RD_L PORTD&=~(1<<6)
#define WR_H PORTD|=(1<<7)
#define WR_L PORTD&=~(1<<7)
#define OUT_DATABUS PORTC
#define DIR_BUS DDRC
#define IN_DATABUS PINC
/*============================================================================
sed1335基本接口函数 底层函数
读内部参数,辩忙 尚未用到
============================================================================*/
Uchar sed1335_read_state(void)
{
Uchar data;
DIR_BUS=0x00;
A0_L;
RD_L;
WR_H;
data=IN_DATABUS;
RD_H;
DIR_BUS=0xff;
return data;
//delay_us(1);
}
/*============================================================================
sed1335基本接口函数 底层函数
读取sed1335当前光标处字节
============================================================================*/
Uchar sed1335_read_data(void)
{ Uchar data ;
DIR_BUS=0x00;
A0_H;
RD_L;
WR_H;
data=IN_DATABUS;
RD_H;
DIR_BUS=0xff;
return data;
}
/*============================================================================
sed1335基本接口函数 底层函数
向sed1335写入命令字
============================================================================*/
void sed1335_write_command(Uchar commandcode)
{
OUT_DATABUS=commandcode;
A0_H;
RD_H;
WR_L;
WR_H;
}
/*============================================================================
sed1335基本接口函数 底层函数
向sed1335写入数据
============================================================================*/
void sed1335_write_data(Uchar data)
{
OUT_DATABUS=data;
A0_L;
RD_H;
WR_L;
WR_H;
}
/*============================================================================
初始化函数 必须先将sed1335初始化
============================================================================*/
void LcmInition( void )
{
//delay_ms(50);
sed1335_write_command(SystemSet);
sed1335_write_data(0x30);
sed1335_write_data(0x87);
sed1335_write_data(0x07);
sed1335_write_data(0x27);
sed1335_write_data(0x42);
sed1335_write_data(0xf0);
sed1335_write_data(0x28);
sed1335_write_data(0x00);
sed1335_write_command(Scroll);
sed1335_write_data(0x00); //第一画面首地址低字节
sed1335_write_data(0x00); //第一画面首地址高字节
sed1335_write_data(0xf0); //第一画面所占行数
sed1335_write_data(0x00); //第二画面首地址
sed1335_write_data(0x40);
sed1335_write_data(0xf0);
sed1335_write_data(0x00); //第三画面首地址
sed1335_write_data(0x80);
sed1335_write_data(0x00); //第四画面首地址
sed1335_write_data(0x00);
sed1335_write_command(HdotScr); //设置水平位移量
sed1335_write_data(0x00);
sed1335_write_command(Ovlay); //设置各画面合成方式
sed1335_write_data(0x1c);
//delay_ms(100);
}
/*============================================================================
向整个显示区域写入code;eg,写入0x00就相当与清屏
============================================================================*/
void disp_clear(Uchar code)
{ Uint i1;
i1=32768;
sed1335_write_command(CsrDirR);
sed1335_write_command(CsrW);
sed1335_write_data(0x00);
sed1335_write_data(0x00);
sed1335_write_command(mWrite);
while(i1--)
{
sed1335_write_data(code);
}
}
void sed1335_Dispon(Uchar code)
{
sed1335_write_command(DispOn);
sed1335_write_data(code);
}
void sed1335_DispOff(void)
{
sed1335_write_command(DispOff);
// sed1335_write_data(code);
}
/*==============================================================================
基本操作函数
注意字模要先上下,再左右
每次调用输出一个80*80点阵
==============================================================================*/
void disp_word( Uchar px, Uchar py, flash Uchar *fla_par , Uint Cnumber)
{
Uint Optr;
Uchar tempCount1,ii;
(Uint)Cnumber*=800;//Cnumber为图像数组中的位置
fla_par+=Cnumber;
Optr=(Uint)py*3200+(Uint)px*10;
sed1335_write_command( CsrDirD); // 自动下移
for (tempCount1=0;tempCount1<10;tempCount1++)
{
sed1335_write_command( CsrW ); // 光标定位指令
sed1335_write_data( (Uchar)(Optr &0xff) ); // 设置光标地址CSR
sed1335_write_data( (Uchar)(Optr /256 ) );
sed1335_write_command( mWrite ); // ram写指令
for(ii=0;ii<80;ii++)
{
sed1335_write_data( *fla_par);
fla_par++;
}
Optr++;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -