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

📄 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



// Custom Datatypes used.
typedef unsigned char  UINT8;
typedef unsigned short UINT16;
typedef unsigned long  UINT32;


//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

/*// S1D13700 Register Value for txt+graph 2 layer mode
#define REG0000_SYSTEMSET_P1		0x30
#define REG0001_SYSTEMSET_P2		0x87	// size of the character field in X, Fx
#define REG0002_SYSTEMSET_P3		0x07	// size of the character field in Y, Fy
#define REG0003_SYSTEMSET_P4		0x27	//display interval in X (C/R)
#define REG0004_SYSTEMSET_P5		0x2D	//TC/R
#define REG0005_SYSTEMSET_P6		0xEF	//display interval in Y, L/F
#define REG0006_SYSTEMSET_P7		0x28	//number of memory addresses in X, AP
#define REG0007_SYSTEMSET_P8		0x00
#define REG0008_SLEEPIN				0x00
#define REG0009_DISPONOFF			0x01
#define REG000A_DISPONOFF_P1		0x16	//Cursors and each layered screen on/off
#define REG000B_SCROLL_P1			0x00	//SAD1L
#define REG000C_SCROLL_P2			0x00	//SAD1H
#define REG000D_SCROLL_P3			0xF0	//SL1
#define REG000E_SCROLL_P4			0xB0	//SAD2L
#define REG000F_SCROLL_P5			0x04	//SAD2H
#define REG0010_SCROLL_P6			0xF0	//SL2
#define REG0011_SCROLL_P7			0x00	//SAD3L
#define REG0012_SCROLL_P8			0x04	//SAD3H
#define REG0013_SCROLL_P9			0x00	//SAD4L
#define REG0014_SCROLL_P10			0x30	//SAD4H
#define REG0015_CSRFORM_P1			0x04	//cursor shape and display (CRX) CRX <= FX
#define REG0016_CSRFORM_P2			0x86	//CRY
#define REG0017_CSRDIR_P1			0x00
#define REG0018_OVLAY_P1			0x00	//dm1 = 1, dm2 = ov = 0, TXT+GRAPH, SIMPLE OVERLAY
#define REG0019_CGRAMADDR_P1		0x00
#define REG001A_CGRAMADDR_P2		0x70
#define REG001B_HDOTSCR_P1			0x00
#define REG001C_CSRW_P1				0x00
#define REG001D_CSRW_P2				0x00
#define REG001E_CSRR_P1				0x00
#define REG001F_CSRR_P2				0x00
#define REG0020_GRAYSCALE_P1		0x00
*/

// S1D13700 Register Value for graph+graph 2 layer mode
#define REG0000_SYSTEMSET_P1		0x30
#define REG0001_SYSTEMSET_P2		0x87	// size of the character field in X, Fx
#define REG0002_SYSTEMSET_P3		0x07	// size of the character field in Y, Fy
#define REG0003_SYSTEMSET_P4		0x27	//display interval in X (C/R)
#define REG0004_SYSTEMSET_P5		0x2D	//TC/R
#define REG0005_SYSTEMSET_P6		0xEF	//display interval in Y, L/F
#define REG0006_SYSTEMSET_P7		0x28	//number of memory addresses in X, AP
#define REG0007_SYSTEMSET_P8		0x00
#define REG0008_SLEEPIN				0x00
#define REG0009_DISPONOFF			0x01
#define REG000A_DISPONOFF_P1		0x16	//Cursors and each layered screen on/off (16 blink cursor, 14 is not)
#define REG000B_SCROLL_P1			0x00	//SAD1L
#define REG000C_SCROLL_P2			0x00	//SAD1H
#define REG000D_SCROLL_P3			0xF0	//SL1
#define REG000E_SCROLL_P4			0x80	//SAD2L
#define REG000F_SCROLL_P5			0x25	//SAD2H
#define REG0010_SCROLL_P6			0xF0	//SL2
#define REG0011_SCROLL_P7			0x00	//SAD3L
#define REG0012_SCROLL_P8			0x04	//SAD3H
#define REG0013_SCROLL_P9			0x00	//SAD4L
#define REG0014_SCROLL_P10			0x30	//SAD4H
#define REG0015_CSRFORM_P1			0x0F	//cursor shape and display (CRX) CRX <= FX
#define REG0016_CSRFORM_P2			0x81	//CRY
#define REG0017_CSRDIR_P1			0x00
#define REG0018_OVLAY_P1			0x0C	//grapg+GRAPH, SIMPLE OVERLAY
#define REG0019_CGRAMADDR_P1		0x00
#define REG001A_CGRAMADDR_P2		0x70
#define REG001B_HDOTSCR_P1			0x00
#define REG001C_CSRW_P1				0x00
#define REG001D_CSRW_P2				0x00
#define REG001E_CSRR_P1				0x00
#define REG001F_CSRR_P2				0x00
#define 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_data(UINT8 dat);
extern void LCD_out_ctrl(UINT8 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(UINT8 left,UINT8 top, UINT8 right, UINT8 bottom);
extern void LCD_glyph(UINT16 left, UINT8 top, UINT8 width, UINT8 height, UINT8 *glyph, UINT8 store_width);
extern void LCD_text(UINT16 left, UINT8 top, UINT8 font, char *str);
//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_update(unsigned char top, unsigned char bottom);
*/

⌨️ 快捷键说明

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