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

📄 s1d13700.h

📁 I wrote this code early this year using ColdFire MCF5213 in codewarrior IDE. The LCD is STN B/W 320x
💻 H
字号:
/* S1D13700.H */

/* equate the LCD controller control signals to their port assignment */
#define Set_LCD_AO 0x01
#define Set_LCD_WR 0x02
#define Set_LCD_RD 0x04
#define Set_LCD_CS 0x08
#define Set_LCD_RST 0x08
#define CLR_LCD_AO 0x0E
#define CLR_LCD_WR 0x0D
#define CLR_LCD_RD 0x0B
#define CLR_LCD_CS 0x07
#define CLR_LCD_RST 0x07

/* LCD screen and bitmap image array constants */
#define X_BYTES 	30
#define Y_BYTES 	40
#define SCRN_LEFT	0
#define SCRN_TOP	0
#define SCRN_RIGHT	319
#define SCRN_BOTTOM	239


/* LCD commands */
#define LCD_SYSTEM_SET 0x40
#define LCD_SYSTEM_SET_P1 0x38	//internal ROM, W/S=1, dual-screen drive method, 
#define LCD_SYSTEM_SET_P2 0x87	//x-direction character field, WF:two frame AC drive
#define LCD_SYSTEM_SET_P3 0x07	//y-direction charactor field
#define LCD_SYSTEM_SET_p4 0x27	//display address range
#define LCD_SYSTEM_SET_p5 0x2D	//total display address time in x direction
#define LCD_SYSTEM_SET_p6 0xEF	//Number of display lines
#define LCD_SYSTEM_SET_p7 0x28	//virtual screen size in X direction
#define LCD_SYSTEM_SET_p8 0x00

/*
// comment the next line to use S1D13700BOB evaluation board
#define S1D13700BOB

#define REG_OFFSET					0x8000

#ifndef S1D13700BOB
//Modify the following addresses appropriate platforms. 
	#define S1D_PHYSICAL_VMEM_ADDR		0x10000000L
	#define S1D_PHYSICAL_REG_ADDR		S1D_PHYSICAL_VMEM_ADDR + REG_OFFSET
#endif

// Uncomment the next line to use indirect mode.
//#define INDIRECT
*/

// Custom Datatypes used.
typedef unsigned char  UInt8;
typedef unsigned short UInt16;
typedef unsigned long  UInt32;

// S1D13700 Register Names
#define REG0000_SYSTEMSET_P1		0x00
#define REG0001_SYSTEMSET_P2		0x01
#define REG0002_SYSTEMSET_P3		0x02
#define REG0003_SYSTEMSET_P4		0x03
#define REG0004_SYSTEMSET_P5		0x04
#define REG0005_SYSTEMSET_P6		0x05
#define REG0006_SYSTEMSET_P7		0x06
#define REG0007_SYSTEMSET_P8		0x07
#define REG0008_SLEEPIN				0x08
#define REG0009_DISPONOFF			0x09
#define REG000A_DISPONOFF_P1		0x0a
#define REG000B_SCROLL_P1			0x0b
#define REG000C_SCROLL_P2			0x0c
#define REG000D_SCROLL_P3			0x0d
#define REG000E_SCROLL_P4			0x0e
#define REG000F_SCROLL_P5			0x0f
#define REG0010_SCROLL_P6			0x10
#define REG0011_SCROLL_P7			0x11
#define REG0012_SCROLL_P8			0x12
#define REG0013_SCROLL_P9			0x13
#define REG0014_SCROLL_P10			0x14
#define REG0015_CSRFORM_P1			0x15
#define REG0016_CSRFORM_P2			0x16
#define REG0017_CSRDIR_P1			0x17
#define REG0018_OVLAY_P1			0x18
#define REG0019_CGRAMADDR_P1		0x19
#define REG001A_CGRAMADDR_P2		0x1a
#define REG001B_HDOTSCR_P1			0x1b
#define REG001C_CSRW_P1				0x1c
#define REG001D_CSRW_P2				0x1d
#define REG001E_CSRR_P1				0x1e
#define REG001F_CSRR_P2				0x1f
#define REG0020_GRAYSCALE_P1		0x20

//indirect mode command set
#define CMD_SYSTEM_SET				0x40
#define CMD_SLEEP_IN				0x53
#define CMD_DISPOFF					0x58
#define CMD_DISPON					0x59
#define CMD_SCROLL					0x44
#define CMD_CSRFORM					0x5d
#define CMD_CSRDIR_RIGHT			0x4c
#define CMD_CSRDIR_LEFT				0x4d
#define CMD_CSRDIR_UP				0x4e
#define CMD_CSRDIR_DOWN				0x4f
#define CMD_OVLAY					0x5b
#define CMD_CG_RAM_ADDR				0x5c
#define CMD_HDOT_SCR				0x5a
#define CMD_CSRW					0x46
#define CMD_CSRR					0x47
#define CMD_MWRITE					0x42
#define CMD_MREAD					0x43
#define CMD_GRAY_SCALE				0x60


typedef struct
{
	UInt16 Index;
	UInt8  Value;
} S1D_REGS;


#define PANEL_WIDTH					640
#define PANEL_HEIGHT				200

// Panel: 640x200x1bpp 
static S1D_REGS aS1DRegs[] = 
{
	{ REG0000_SYSTEMSET_P1,		0x30 },
	{ REG0001_SYSTEMSET_P2,		0x87 },
	{ REG0002_SYSTEMSET_P3,		0x07 },
	{ REG0003_SYSTEMSET_P4,		0x4F },
	{ REG0004_SYSTEMSET_P5,		0x53 },
	{ REG0005_SYSTEMSET_P6,		0xC7 },
	{ REG0006_SYSTEMSET_P7,		0x50 },
	{ REG0007_SYSTEMSET_P8,		0x00 },
	{ REG0008_SLEEPIN,			0x00 },
	{ REG0009_DISPONOFF,		0x01 },
	{ REG000A_DISPONOFF_P1,		0x05 },
	{ REG000B_SCROLL_P1,		0x00 },
	{ REG000C_SCROLL_P2,		0x00 },
	{ REG000D_SCROLL_P3,		0xc7 },
	{ REG000E_SCROLL_P4,		0x80 },
	{ REG000F_SCROLL_P5,		0x1f },
	{ REG0010_SCROLL_P6,		0x27 },
	{ REG0011_SCROLL_P7,		0x20 },
	{ REG0012_SCROLL_P8,		0x30 },
	{ REG0013_SCROLL_P9,		0x24 },
	{ REG0014_SCROLL_P10,		0x60 },
	{ REG0015_CSRFORM_P1,		0x07 },
	{ REG0016_CSRFORM_P2,		0x87 },
	{ REG0017_CSRDIR_P1,		0x00 },
	{ REG0018_OVLAY_P1,			0x00 },
	{ REG0019_CGRAMADDR_P1,		0x00 },
	{ REG001A_CGRAMADDR_P2,		0x70 },
	{ REG001B_HDOTSCR_P1,		0x00 },
	{ REG001C_CSRW_P1,			0x00 },
	{ REG001D_CSRW_P2,			0x00 },
	{ REG0020_GRAYSCALE_P1,		0x00 },
};



/* LCD Global data arrays */
//extern const unsigned char code l_mask_array[8];
//extern unsigned char xdata l_display_array[Y_BYTES][X_BYTES];

/* LCD function prototype list */
extern void initLCD(void);
extern void LCD_out_dat(char dat);
extern void LCD_out_ctrl(char dat);
extern char LCD_in_dat(void);
extern char LCD_in_sta(void);
extern void LCD_busy_wait(void);
//extern void lcd_cmd_2(char cmd,unsigned int parm);
//extern void lcd_cmd_1(char cmd,unsigned char parm);
//extern void lcd_cmd(char cmd);
//extern void lcd_erase(void);
//extern int lcd_test(char test);
//extern void lcd_clear_area(unsigned char left,  unsigned char top,    
//			               unsigned char right, unsigned char bottom);
//extern void lcd_invert_area(unsigned char left,  unsigned char top,    
//			                unsigned char right, unsigned char bottom);
//extern void lcd_horz_line(unsigned char left, unsigned char right,
//		                  unsigned char row);
//extern void lcd_vert_line(unsigned char top, unsigned char bottom,
//		                  unsigned char column);
/*extern void lcd_clr_horz_line(unsigned char left, unsigned char right,
		                      unsigned char row);
extern void lcd_clr_vert_line(unsigned char top, unsigned char bottom,
		                      unsigned char column);
extern void lcd_box(unsigned char left, unsigned char top,
                    unsigned char right, unsigned char bottom);
extern void lcd_clr_box(unsigned char left, unsigned char top,
                        unsigned char right, unsigned char bottom);
extern void lcd_glyph(unsigned char left, unsigned char top,
			          unsigned char width, unsigned char height,
			          unsigned char *glyph, unsigned char store_width);
extern void lcd_text(unsigned char left, unsigned char top, unsigned char font, char *str);
extern void lcd_update(unsigned char top, unsigned char bottom);
*/

⌨️ 快捷键说明

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