📄 ks0108.h
字号:
#ifndef __KS0108__H
#define __KS0108__H
#include "board.h"
#define LcmVer 0x003
// HD61202/KS0108 command set
#define GLCD_ON_CTRL 0x3E // 0011111X: lcd on/off control
#define GLCD_ON_DISPLAY 0x01 // DB0: turn display on
#define GLCD_OFF_DISPLAY 0x00 // DB0: turn display on
#define GLCD_START_LINE 0xC0 // 11XXXXXX: set lcd start line
#define GLCD_SET_PAGE 0xB8 // 10111XXX: set lcd page (X) address
#define GLCD_SET_Y_ADDR 0x40 // 01YYYYYY: set lcd Y address
#define GLCD_STATUS_BUSY 0x80 // (1)->LCD IS BUSY
#define GLCD_STATUS_ONOFF 0x20 // (0)->LCD IS ON
#define GLCD_STATUS_RESET 0x10 // (1)->LCD IS RESET
#define clBlack 1
#define clWhite 0
#define SET_LCM_DI PORTC |= (1 << PC0)
#define CLR_LCM_DI PORTC &= ~(1 << PC0)
#define SET_LCM_RW PORTC |= (1 << PC1)
#define CLR_LCM_RW PORTC &= ~(1 << PC1)
#define SET_LCM_nCS1 PORTC |= (1 << PC2)
#define CLR_LCM_nCS1 PORTC &= ~(1 << PC2)
#define SET_LCM_nCS2 PORTC |= (1 << PC3)
#define CLR_LCM_nCS2 PORTC &= ~(1 << PC3)
#define SET_LCM_E PORTD |= (1 << PD2)
#define CLR_LCM_E PORTD &= ~(1 << PD2)
#define SET_LCM_DATA_IN DDRB &= 0xF8; DDRD &= 0x07
#define SET_LCM_DATA_OUT DDRB |= 0x07; DDRD |= 0xF8
#define GET_LCM_DATA (PINB & 0x07)|(PIND & 0xF8)
#define SET_LCM_DATA(x) PORTB &= 0xF8; PORTB |= (x & 0x07); PORTD &= 0x07; PORTD |= (x & 0xF8);
#define SET_LCM_RST DDRC |= (1<<PC5);PORTC |= (1<<PC5)
#define CLR_LCM_RST DDRC |= (1<<PC5);PORTC &= ~(1<<PC5)
u8 ReadLcmStatus(void);
void TestRW(void);
void Disp_Cross_Line(u8 mode);
void InitLcd(void);
void Clr(void);
void Msg(int flg);
void Disp_V_Line(void);
void Disp_H_Line(void);
void Pixel(u8 x,u8 y,u8 color);
void outchar(u8 x, u8 y,u8 ch);
void WriteLcmCmd(u8 cmdcode);
void WriteLcmData(u8 uValue);
u8 ReadLcmData(void);
void pixel(u8 x,u8 y,u8 color);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -