📄 lcd.c
字号:
#include "lcd.h"
#define WRITE(){\
_NOP();\
P4OUT&=~BIT4;\
P5OUT&=~BIT1;\
_NOP();\
_NOP();\
P4OUT|=BIT4;\
P5OUT|=BIT1;\
_NOP();\
}
void Lcd_InitCommand(unsigned char command_code){
unsigned int i;
P4OUT|=BIT4+BIT3+BIT6;
P5OUT|=BIT1;
_NOP();
_NOP();
P4OUT&=~BIT6;// /CS=0
WRITE();//D=1
P4OUT&=~BIT3;//D=0
WRITE();
WRITE();//D=0
_NOP();
i=8;
for(i=8;i>0;i--){
if((command_code&0x80)!=0){
P4OUT|=BIT3;//D=1(100)
WRITE();
}
else{
P4OUT&=~BIT3;//D=0
WRITE();
}
command_code=command_code<<1;
}
P4OUT&=~BIT3;//D=0
WRITE();
}
/*写数据地址*/
void write_ram_addr_data(unsigned char address,unsigned char data){
unsigned int i;
P4OUT|=BIT6;// /CS=1
_NOP();
P4OUT&=~BIT6;// /CS=0
_NOP();
P4OUT|=BIT4;// /WR=1
P5OUT|=BIT1;
_NOP();
P4OUT|=BIT3;//D=1(1010)
WRITE();
P4OUT&=~BIT3;//D=0
WRITE();
P4OUT|=BIT3;//D=1
WRITE();
P4OUT&=~BIT3;//D=0
WRITE();
for(i=5;i>0;i--){
if((address&0x80)!=0){
P4OUT|=BIT3;//D=1(100)
WRITE();
}
else{
P4OUT&=~BIT3;//D=0
WRITE();
}
address=address<<1;
}
for(i=4;i>0;i--){
if((data&0x01)!=0){
P4OUT|=BIT3;//D=1(100)
WRITE();
}
else{
P4OUT&=~BIT3;//D=0
WRITE();
}
data=data>>1;
}
}
/*显示阀位程序*/
void display_valve(void){
int i,aaaa;
for(i=1;i<4;i++){
aaaa=LCD[i];
if(aaaa<80){
write_ram_addr_data(16*i,distab[LCD[i]*2]);
write_ram_addr_data(16*i+8,distab[LCD[i]*2+1]);
}
else{
LCD[i]-=80;
write_ram_addr_data(16*i,distab[LCD[i]*2]+8);
write_ram_addr_data(16*i+8,distab[LCD[i]*2+1]);
}
}
}
/*显示组态模式程序*/
void display_mode(void){
unsigned int i=0,aaaa;
aaaa=LCD[i];
if(aaaa<80){
write_ram_addr_data(16*i,distab[LCD[i]*2]);
write_ram_addr_data(16*i+8,distab[LCD[i]*2+1]);
}
else{
LCD[i]-=80;
write_ram_addr_data(16*i,distab[LCD[i]*2]+8);
write_ram_addr_data(16*i+8,distab[LCD[i]*2+1]);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -