|
回复 4楼xuyiyi 的帖子
#define LCD_DataPortL1 RA1 低0
#define LCD_DataPortL2 RA2
#define LCD_DataPortL3 RA3
#define LCD_DataPortL4 RA4
#define LCD_DataPortL5 RE0
#define LCD_DataPortL6 RE2
#define LCD_DataPortL7 RA6
#define LCD_DataPortL8 RC1 低8
#define LCD_DataPortH2 RC0 高0
#define LCD_DataPortH3 RC2
#define LCD_DataPortH4 RD0
#define LCD_DataPortH5 RD1
#define LCD_DataPortH6 RD3
#define LCD_DataPortH7 RC5
#define LCD_DataPortH8 RC7
#define LCD_DataPortH9 RD5 高8
void Lcd_Write_Com( int DH) //命令
{
LCD_RS=0;
LCD_CS =0;
LCD_DataPortH9 =(DH>>0) & 1 ; //
LCD_DataPortH8 =(DH>>1) & 1;
LCD_DataPortH7 =(DH>>2) & 1 ;
LCD_DataPortH6 =(DH>>3) & 1;
LCD_DataPortH5 =(DH>>4) & 1 ;
LCD_DataPortH4 =(DH>>5) & 1 ;
LCD_DataPortH3 =(DH>>6) & 1 ;
LCD_DataPortH2 =(DH>>7) & 1;
LCD_DataPortL8 = (DH>>8) & 1;
LCD_DataPortL7 = (DH>>9) & 1 ;
LCD_DataPortL6 = (DH>>10) & 1;
LCD_DataPortL5 = (DH>>11) & 1;
LCD_DataPortL4 = (DH>>12) & 1;
LCD_DataPortL3 = (DH>>13) & 1;
LCD_DataPortL2 = (DH>>14) & 1;
LCD_DataPortL1 = (DH>>15) & 1;
LCD_WR=0;
LCD_WR=1;
LCD_CS =1;
}
void lcd_write_color(char hh,char ll) //发送颜色数据为提高速度高8位低8位分别传递
{
LCD_RS=1;
LCD_CS =0;
LCD_DataPortH9=(hh>>0)&1;
LCD_DataPortH8=(hh>>1)&1;
LCD_DataPortH7=(hh>>2)&1;
LCD_DataPortH6=(hh>>3)&1;
LCD_DataPortH5=(hh>>4)&1;
LCD_DataPortH4=(hh>>5)&1;
LCD_DataPortH3=(hh>>6)&1;
LCD_DataPortH2=(hh>>7)&1;
LCD_DataPortL8=(ll>>0)&1;
LCD_DataPortL7=(ll>>1)&1;
LCD_DataPortL6=(ll>>2)&1;
LCD_DataPortL5=(ll>>3)&1;
LCD_DataPortL4=(ll>>4)&1;
LCD_DataPortL3=(ll>>5)&1;
LCD_DataPortL2=(ll>>6)&1;
LCD_DataPortL1=(ll>>7)&1;
LCD_WR=0;
LCD_WR=1;
LCD_CS =1;
}
void Lcd_Write_Data(int DH) //数据
{
LCD_RS=1;
LCD_CS =0;
LCD_DataPortH9 =(DH>>0) & 1 ;
LCD_DataPortH8 =(DH>>1) & 1;
LCD_DataPortH7 =(DH>>2) & 1 ;
LCD_DataPortH6 =(DH>>3) & 1;
LCD_DataPortH5 =(DH>>4) & 1 ;
LCD_DataPortH4 =(DH>>5) & 1 ;
LCD_DataPortH3 =(DH>>6) & 1 ;
LCD_DataPortH2 =(DH>>7) & 1;
LCD_DataPortL8 = (DH>>8) & 1;
LCD_DataPortL7 = (DH>>9) & 1 ;
LCD_DataPortL6 = (DH>>10) & 1;
LCD_DataPortL5 = (DH>>11) & 1;
LCD_DataPortL4 = (DH>>12) & 1;
LCD_DataPortL3 = (DH>>13) & 1;
LCD_DataPortL2 = (DH>>14) & 1;
LCD_DataPortL1 = (DH>>15) & 1;
LCD_WR=0;
LCD_WR=1;
LCD_CS =1;
}
void Lcd_Write_Com_Data( int com1, int dat1) //命令数据一起
{
Lcd_Write_Com(com1);
Lcd_Write_Data(dat1);
}
我按这个方法试过了,还是不行 |
|