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

📄 240128._c

📁 用ATMEGA88推动LCD240128液晶的测试程序。按config.h的定义连接AVR和LCD
💻 _C
字号:
/*******************************************************************************
                           T6963C液晶驱动 RT240128
                              MAGE88 16M
*******************************************************************************/
#include "CONFIG.H"

#define LCD_LEFT        0
#define LCD_TOP         0
#define LCD_RIGHT       239
#define LCD_BOTTOM      127

#define LCD_DELAY       0
/******************************************************************************/
void lcd_delay(unsigned int time)
{
    unsigned int i;
    while(time--)
	{
        i=1000;
        while(--i);
    }
}
/***********************************************************************************/
void lcd_wd(uchar lcd_data)/*写数据*/
{
    LCD_DDR = 0x00;	
    LCD_CODE_P &= ~(BIT(LCD_RD) | BIT(LCD_CE));
    LCD_CODE_P |= (BIT(LCD_RW) | BIT(LCD_CD));
    while( (LCD_DATA & 0x03) != 0x03 );
	
	
    LCD_RD_H;NOP();NOP();NOP();NOP();NOP();NOP();
	LCD_CD_L;NOP();NOP();NOP();NOP();NOP();NOP();
    LCD_RW_L;NOP();NOP();NOP();NOP();NOP();NOP();
	
	
    LCD_DDR = 0XFF;
    LCD_PORT = lcd_data;NOP();NOP();NOP();NOP();NOP();NOP();NOP();
    LCD_CODE_P |= (BIT(LCD_RW) | BIT(LCD_RD) | BIT(LCD_CD) | BIT(LCD_CE));
}
/***********************************************************************************/
void lcd_wc(uchar lcd_code)/*写命令*/
{
    LCD_DDR = 0X00;
    LCD_CODE_P &= ~(BIT(LCD_RD) | BIT(LCD_CE));
    LCD_CODE_P |= (BIT(LCD_RD) | BIT(LCD_CE));
    while( (LCD_DATA & 0X03) != 0X03 );
    
	
    LCD_RD_H;NOP();NOP();NOP();NOP();NOP();NOP();
	LCD_CD_H;NOP();NOP();NOP();NOP();NOP();NOP();
    LCD_RW_L;NOP();NOP();NOP();NOP();NOP();NOP();
	
	
    LCD_DDR = 0XFF;
    LCD_PORT = lcd_code;NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();
    LCD_CODE_P |= (BIT(LCD_RW) | BIT(LCD_RD) | BIT(LCD_CD) | BIT(LCD_CE));
}
/***********************************************************************************/
void lcd_wc3(unsigned char lcd_code,unsigned char lcd_data1,unsigned char lcd_data2)
{
    lcd_wd(lcd_data1);
    lcd_wd(lcd_data2);
    lcd_wc(lcd_code);
}
/******************************************************************************/
void lcd_init(void)
{
    LCD_RES_H;
    LCD_RES_L;
    lcd_delay(15);
    LCD_RES_H;
    lcd_wc(0x80);          //设置显示模式为逻辑“或”模式
    lcd_wc(0x98);          //开显示
    lcd_wc3(0x40,0,0);     //设置文本显示区首地址
    lcd_wc3(0x41,30,0);    //设置文本显示区宽度
    lcd_wc3(0x42,0,0);     //设置图形显示区首地址
    lcd_wc3(0x43,30,0);    //设置图形显示区宽度
}
/******************************************************************************/
void lcd_clear(unsigned char lcd_data)
{
    unsigned char i,j;
    lcd_wc(0x98);                    //打开图形显示,关闭文本显示
    lcd_wc3(0x24,0,0);               //设置地址指针
    lcd_wc(0xb0);                    //设置自动写数据
    for(i=0;i<128;i++)
    {
        for(j=0;j<30;j++)
        {
            lcd_wd(lcd_data);        //Write display data 
        }
    }                               
    lcd_wc(0xb2);                    //Awroff (auto reset)
}
/******************************************************************************/
void lcd_print(unsigned char x,unsigned char y,unsigned char lcd_data)
{
    lcd_wc(0x98);
    lcd_wc3(0x24,x,y);
    lcd_wc(0xb0);
    lcd_wd(lcd_data);
    lcd_wc(0xb2);
}
/******************************************************************************/
void lcd_print240128(cchar *str)
{
    uchar i,j;
    lcd_wc(0x98);
    lcd_wc3(0x24,0,0);
    lcd_wc(0xb0);
    for(i=0;i<128;i++)
    {
        for(j=0;j<30;j++)
        {
            lcd_wd(*str++);
        }
    }
    lcd_wc(0xb2);
}

⌨️ 快捷键说明

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