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

📄 lcd12864.c

📁 液晶12864显示程序,用C语言编写的.
💻 C
📖 第 1 页 / 共 2 页
字号:
                //*************************************************//
                //********* Point LCD Read&Write Function *********//
                //*************LCD Mode: CGS12864 *****************//
                //******** -------------------------------- *******//
                //******** |                  | *******//
    
                //******** |        128*64          | *******//
                //******** |                  | *******//
                //******** -------------------------------- *******//
                //*************************************************//
                //+++++ left_command()   -> write left lcd command // 
                //+++++ right_command()  -> write right lcd command//
                //+++++ left_data()      -> write left lcd data    //
                //+++++ right_data()     -> write right lcd data   //
                //+++++ lcd_left_clear() -> clear left lcd        //
                //+++++ lcd_right_clear()-> clear right lcd       //
                //+++++ left_read()      -> read left lcd data        //
                //+++++ right_read()     -> read right lcd data       //
                //+++++ display_ascii()  -> write ascii at x,y       //
                //*************************************************//
                
                //****************** Port Define ******************//    
                    sbit    DD0    =    P0^0;
                    sbit    DD1    =    P0^1;
                    sbit    DD2    =    P0^2;
                    sbit    DD3    =    P0^3;
                    sbit    DD4    =    P0^4;
                    sbit    DD5    =    P0^5;
                    sbit    DD6    =    P0^6;
                    sbit    DD7    =    P0^7;        
            
                    #define lcd_dd        P0
                    
                    sbit    lcd_en    =    P2^3;
                    sbit    lcd_csa    =    P2^4;
                    sbit    lcd_csb    =    P2^5;
                    sbit    lcd_di    =    P2^6;        
    // h=data, l=command//
                    sbit    lcd_rw    =    P2^7;        
    // h=read, l=write//
            
                    #define    lcd_on        0x3f
                    #define lcd_off        0x3e
                    #define    lcd_xrow    0xc0
                    #define    lcd_page    0xb8
                    #define    lcd_y        0x40    
                    
                    
                //************* Write Command Left Part **********************//
                    void left_command(char cmd)
                    {
                        lcd_en=0;
                        lcd_csa=0;
                        lcd_csb=1;
                        lcd_di=0;
                        lcd_rw=1;
                        lcd_dd=0xff;
                        lcd_en=1;
                
                        while(DD7==1)
                        {
                            lcd_en=0;
                            lcd_dd=0xff;
                            lcd_en=1;
                        }
                    
                        lcd_en=0;
                        lcd_dd=cmd;
                        lcd_rw=0;
                        lcd_en=1;
                        lcd_en=0;
                    }
            
                //***************** write command right ********************//
                    void right_command(char cmd)
                    {
                        lcd_en=0;
                        lcd_csa=1;
                        lcd_csb=0;
                        lcd_di=0;
                        lcd_rw=1;
                        lcd_dd=0xff;
                        lcd_en=1;
                
                        while(DD7==1)
                        {
                            lcd_en=0;
                            lcd_dd=0xff;
                            lcd_en=1;
                        }
                
                        lcd_en=0;
                        lcd_dd=cmd;
                        lcd_rw=0;
                        lcd_en=1;
                        lcd_en=0;
                    }
            
                // ******************** write data left ************************//
                    void left_data(char lcd_data)
                    {
                        lcd_en=0;
                        lcd_csa=0;
                        lcd_csb=1;
                        lcd_di=0;
                        lcd_rw=1;
                        lcd_dd=0xff;
                        lcd_en=1;
                
                        while(DD7==1)
                        {
                            lcd_en=0;
                            lcd_dd=0xff;
                            lcd_en=1;
                        }
                
                        lcd_en=0;
                        lcd_dd=lcd_data;
                        lcd_di=1;
                        lcd_rw=0;
                        lcd_en=1;
                        lcd_en=0;
                    }
            
                // ******************** write data left ************************//
                    void right_data(char lcd_data)
                    {
                        lcd_en=0;
                        lcd_csa=1;
                        lcd_csb=0;
                        lcd_di=0;
                        lcd_rw=1;
                        lcd_dd=0xff;
                        lcd_en=1;
                        
                        while(DD7==1)
                        {
                            lcd_en=0;
                            lcd_dd=0xff;
                            lcd_en=1;
                        }
                        
                        lcd_en=0;
                        lcd_dd=lcd_data;
                        lcd_di=1;
                        lcd_rw=0;
                        lcd_en=1;
                        lcd_en=0;
                    }
                    
                //******************* clear left lcd ***************************//
                    void lcd_left_clear()
                    {
                        char    i;
                        int    j;
                        left_command(lcd_xrow);
                        for(i=0;i<=7;i++)
                        {
                            left_command(lcd_page|i);
                            left_command(lcd_y);
                            for(j=0;j<=63;j++)
                            {
                                left_data(0x00);
                            }
                        }
                    }
                    
                //********************** clear right lcd **********************//
                    void lcd_right_clear()
                    {
                        char    i;
                        int    j;
                        right_command(lcd_xrow);
                        for(i=0;i<=7;i++)
                        {
                            right_command(lcd_page|i);
                            right_command(lcd_y);
                            for(j=0;j<=63;j++)
                            {
                                right_data(0x00);
                            }
                        }
                    }
                    
                //***************** left_read data **********************//
                    unsigned char left_read()
                    {
                        char reddd;
                        
                        lcd_en=0;
                        lcd_csa=0;
                        lcd_csb=1;
                        lcd_di=0;
                        lcd_rw=1;
                        lcd_dd=0xff;
                        lcd_en=1;
                        
                        while(DD7==1)
                        {
                            lcd_en=0;

⌨️ 快捷键说明

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