📄 16864.c
字号:
//168*64LCD初始化
void init_lcd(void){
Delay(400);
Wrcmd(cmd_FSet);
Delay(1);
Wrcmd(cmd_FSet);
Delay(1);
Wrcmd(cmd_DISPON);
Delay(1);
Wrcmd(cmd_DISPCLR);
Delay(100);
Wrcmd(cmd_InModSet);
}
//向整个显示缓冲区写入空格
void DispInClr(){
unsigned char *p_Lddram;
for(p_Lddram=lcd_ddram[0];p_Lddram<lcd_ddram[0]+ALL;p_Lddram++){
*p_Lddram=KG;
}
}
//将整个显示缓冲区的值写入LCD模块
void Lcd(void){
unsigned char *p_Lddram;
Wrcmd(cmd_DISPCLR);
Delay(100);
for(p_Lddram=lcd_ddram[0];p_Lddram<lcd_ddram[0]+K;p_Lddram++){
Wrdata(*p_Lddram);
}
for(p_Lddram=lcd_ddram[2];p_Lddram<lcd_ddram[2]+K;p_Lddram++){
Wrdata(*p_Lddram);
}
for(p_Lddram=lcd_ddram[1];p_Lddram<lcd_ddram[1]+K;p_Lddram++){
Wrdata(*p_Lddram);
}
for(p_Lddram=lcd_ddram[3];p_Lddram<lcd_ddram[3]+K;p_Lddram++){
Wrdata(*p_Lddram);
}
}
//向LCD模块写命令
void Wrcmd(unsigned char cmd_in){
unsigned char R7;
R7=cmd_in;
asm{
BSET PORTB,#SID
BCLR PORTB,#SCLK ;1
BSET PORTB,#SCLK
BCLR PORTB,#SCLK ;1
BSET PORTB,#SCLK
BCLR PORTB,#SCLK ;1
BSET PORTB,#SCLK
BCLR PORTB,#SCLK ;1
BSET PORTB,#SCLK
BCLR PORTB,#SCLK ;1
BSET PORTB,#SCLK
;;wrtie RW "0"
BCLR PORTB,#SCLK
BCLR PORTB,#SID
BSET PORTB,#SCLK
;;wrtie RS "0"
BCLR PORTB,#SCLK
BSET PORTB,#SCLK
;;write 0
BCLR PORTB,#SCLK
BSET PORTB,#SCLK
;;send D7~D4
;send R7.7 to PORTB.0
BCLR PORTB,#SCLK
BRCLR R7,#$80,CR77_0
BSET PORTB,#SID
BRA CR77
CR77_0: BCLR PORTB,#SID
CR77: BSET PORTB,#SCLK
;send R7.6 to PORTB.0
BCLR PORTB,#SCLK
BRCLR R7,#$40,CR76_0
BSET PORTB,#SID
BRA CR76
CR76_0: BCLR PORTB,#SID
CR76: BSET PORTB,#SCLK
;send R7.5 to PORTB.0
BCLR PORTB,#SCLK
BRCLR R7,#$20,CR75_0
BSET PORTB,#SID
BRA CR75
CR75_0: BCLR PORTB,#SID
CR75: BSET PORTB,#SCLK
;send R7.4 to PORTB.0
BCLR PORTB,#SCLK
BRCLR R7,#$10,CR74_0
BSET PORTB,#SID
BRA CR74
CR74_0: BCLR PORTB,#SID
CR74: BSET PORTB,#SCLK
;;send 0 0 0 0
BCLR PORTB,#SCLK ;0
BCLR PORTB,#SID
BSET PORTB,#SCLK
BCLR PORTB,#SCLK ;0
BSET PORTB,#SCLK
BCLR PORTB,#SCLK ;0
BSET PORTB,#SCLK
BCLR PORTB,#SCLK ;0
BSET PORTB,#SCLK
;;send D3~D0
;send R7.3 to PORTB.0
BCLR PORTB,#SCLK
BRCLR R7,#$08,CR73_0
BSET PORTB,#SID
BRA CR73
CR73_0: BCLR PORTB,#SID
CR73: BSET PORTB,#SCLK
;send R7.2 to PORTB.0
BCLR PORTB,#SCLK
BRCLR R7,#$04,CR72_0
BSET PORTB,#SID
BRA CR72
CR72_0: BCLR PORTB,#SID
CR72: BSET PORTB,#SCLK
;send R7.1 to PORTB.0
BCLR PORTB,#SCLK
BRCLR R7,#$02,CR71_0
BSET PORTB,#SID
BRA CR71
CR71_0: BCLR PORTB,#SID
CR71: BSET PORTB,#SCLK
;send R7.0 to PORTB.0
BCLR PORTB,#SCLK
BRCLR R7,#$01,CR70_0
BSET PORTB,#SID
BRA CR70
CR70_0: BCLR PORTB,#SID
CR70: BSET PORTB,#SCLK
;;SEND 0 0 0 0
BCLR PORTB,#SCLK ;0
BCLR PORTB,#SID
BSET PORTB,#SCLK
BCLR PORTB,#SCLK ;0
BSET PORTB,#SCLK
BCLR PORTB,#SCLK ;0
BSET PORTB,#SCLK
BCLR PORTB,#SCLK ;0
BSET PORTB,#SCLK
BCLR PORTB,#SCLK
}
Delay(1);
}
//向lcd模块写数据
void Wrdata(unsigned char data_in){
unsigned char R7;
R7=data_in;
asm{
BSET PORTB,#SID
BCLR PORTB,#SCLK ;1
BSET PORTB,#SCLK
BCLR PORTB,#SCLK ;1
BSET PORTB,#SCLK
BCLR PORTB,#SCLK ;1
BSET PORTB,#SCLK
BCLR PORTB,#SCLK ;1
BSET PORTB,#SCLK
BCLR PORTB,#SCLK ;1
BSET PORTB,#SCLK
BCLR PORTB,#SCLK ;0
BCLR PORTB,#SID
BSET PORTB,#SCLK
BCLR PORTB,#SCLK ;1
BSET PORTB,#SID
BSET PORTB,#SCLK
BCLR PORTB,#SCLK ;0
BCLR PORTB,#SID
BSET PORTB,#SCLK
;send R7.7 to PORTB.0
BCLR PORTB,#SCLK
BRCLR R7,#$80,R77_0
BSET PORTB,#SID
BRA R77
R77_0: BCLR PORTB,#SID
R77: BSET PORTB,#SCLK
;send R7.6 to PORTB.0
BCLR PORTB,#SCLK
BRCLR R7,#$40,R76_0
BSET PORTB,#SID
BRA R76
R76_0: BCLR PORTB,#SID
R76: BSET PORTB,#SCLK
;send R7.5 to PORTB.0
BCLR PORTB,#SCLK
BRCLR R7,#$20,R75_0
BSET PORTB,#SID
BRA R75
R75_0: BCLR PORTB,#SID
R75: BSET PORTB,#SCLK
;send R7.4 to PORTB.0
BCLR PORTB,#SCLK
BRCLR R7,#$10,R74_0
BSET PORTB,#SID
BRA R74
R74_0: BCLR PORTB,#SID
R74: BSET PORTB,#SCLK
BCLR PORTB,#SCLK ;0
BCLR PORTB,#SID
BSET PORTB,#SCLK
BCLR PORTB,#SCLK ;0
BSET PORTB,#SCLK
BCLR PORTB,#SCLK ;0
BSET PORTB,#SCLK
BCLR PORTB,#SCLK ;0
BSET PORTB,#SCLK
;send R7.3 to PORTB.0
BCLR PORTB,#SCLK
BRCLR R7,#$08,R73_0
BSET PORTB,#SID
BRA R73
R73_0: BCLR PORTB,#SID
R73: BSET PORTB,#SCLK
;send R7.2 to PORTB.0
BCLR PORTB,#SCLK
BRCLR R7,#$04,R72_0
BSET PORTB,#SID
BRA R72
R72_0: BCLR PORTB,#SID
R72: BSET PORTB,#SCLK
;send R7.1 to PORTB.0
BCLR PORTB,#SCLK
BRCLR R7,#$02,R71_0
BSET PORTB,#SID
BRA R71
R71_0: BCLR PORTB,#SID
R71: BSET PORTB,#SCLK
;send R7.0 to PORTB.0
BCLR PORTB,#SCLK
BRCLR R7,#$01,R70_0
BSET PORTB,#SID
BRA R70
R70_0: BCLR PORTB,#SID
R70: BSET PORTB,#SCLK
BCLR PORTB,#SCLK ;0
BCLR PORTB,#SID
BSET PORTB,#SCLK
BCLR PORTB,#SCLK ;0
BSET PORTB,#SCLK
BCLR PORTB,#SCLK ;0
BSET PORTB,#SCLK
BCLR PORTB,#SCLK ;0
BSET PORTB,#SCLK
BCLR PORTB,#SCLK
}
Delay(1);
}
void Delay(unsigned int us_100){
int i,j;
for(i=0;i<us_100;i++){
for(j=0;j<20;j++){
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -