找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2554|回复: 3
打印 上一主题 下一主题
收起左侧

基于ST7565的LCD12864测试程序+视频

[复制链接]
跳转到指定楼层
楼主
据说ST756很坑,最近做项目正好遇到,果然被坑的不轻总结而言,不能求快,尤其是质量不太好的屏幕模块,快了就罢工



直接贴完整驱动函数(单片机是STC15LE5A32S2,指令按照使用手册重新排写的,可直接移植,基本不会出问题)
/************************底层驱动函数************************/
void ms_Delay_12864(unsigned int ms)//STC12, 11.0592M  
{     
    unsigned char j;  
    while(ms --)  
    for(j = 0; j < 30; j ++); //20us=0.02ms//                             
}

void Delay_Buff( )/*数据缓冲,根据具体实物改动(下载后不显示可适当加长延时)*/
{
        unsigned char i;
        
        for(i = 0; i < 35; i ++)//16
        {
                _nop_( );
        }
}
                                                                  
void LCD_Write_Reg(unsigned char Command)
{
        unsigned char i, j;
        
        CS = 0;
        RS = 0;
        SCL = 0;
        
        for(i = 0; i < 8; i ++)
        {
                j = Command;
                SCL = 0;
                SI = Command & 0x80;
                SCL = 1;
                Command = j << 1;
                Delay_Buff( );/*根据具体硬件改写,某些硬件需要缓冲,有硬件缓冲时可取消延时*/
        }
        CS = 1;
        RS = 1;
}

void LCD_Write_Byte(unsigned char byte)
{
        unsigned char i, j;
        
        CS = 0;
        RS = 1;
        SCL = 0;
        
        for(i = 0; i < 8; i ++)
        {
                j = byte;
                SCL = 0;
                SI = byte & 0x80;
                SCL = 1;
                byte = j << 1;
                Delay_Buff( );/*根据具体硬件改写,某些硬件需要缓冲,有硬件缓冲时可取消延时*/
        }
        CS = 1;
        RS = 0;
}

void LCD_Clear( )  
{  
        unsigned char i, j;
        
        for(i = 0; i < 8; i ++)     
        {  
                LCD_Write_Reg(0xb0 + i);               // (Page = 0xB0)//设置位置   
                LCD_Write_Reg(0x10);  
                LCD_Write_Reg(0x00);      
                for(j = 0; j < 132; j ++)            //发送数据   
                {   
                        LCD_Write_Byte(0);  
                }
        }  
}

void LCD_ALL( )  
{  
        unsigned char i, j;
        
        for(i = 0; i < 8; i ++)     
        {  
                LCD_Write_Reg(0xb0 + i);               // (Page = 0xB0)//设置位置   
                LCD_Write_Reg(0x10);  
                LCD_Write_Reg(0x00);      
                for(j = 0; j < 132; j ++)            //发送数据   
                {   
                        LCD_Write_Byte(0xff);  
                }
        }  
}

void LCD_Init( )//有效命令基本已罗列
{
        RST = 0;
        ms_Delay_12864(50);
        RST = 1;
        ms_Delay_12864(20);

        LCD_Write_Reg(0xe2);//软件复位
        ms_Delay_12864(5);
        LCD_Write_Reg(0x2c);//电源控制0x28 ~ 0xf
        ms_Delay_12864(5);
        LCD_Write_Reg(0x2e);
        ms_Delay_12864(5);
        LCD_Write_Reg(0x2f);
        ms_Delay_12864(5);
        
        LCD_Write_Reg(0xa3);//偏压比: 0xa2 >> 1/9, 0xa3 >> 1/7
        LCD_Write_Reg(0x23);//内部电阻比例: 0x20 ~ 0x27
        
        LCD_Write_Reg(0x81);//设置内部液晶电压模式
        LCD_Write_Reg(0x1d);//L: 0x00 ~ 0x3f
        LCD_Write_Reg(0x24);//H: 0x21 ~ 0x27
        
        LCD_Write_Reg(0xf8);//设置升压倍数
        LCD_Write_Reg(0x01);//0x00 >> 2 ~ 4倍, 0x01 >> 5倍, 0x03 >> 6倍
        
        LCD_Write_Reg(0x40);//从首行开始显示
        LCD_Write_Reg(0xa6);//0xa6 >> 正显, 0xa7 >> 反显
        LCD_Write_Reg(0xc8);//0xc8 >> 反向扫描, 0xc0 >> 顺序扫描
        LCD_Write_Reg(0xa0);//0xa0 >> 正常显示, 0xa1 >> 左右镜像
        LCD_Write_Reg(0xa4);//0xa4 >> 显示全部点阵, 0xa5 >>不显示全部点阵
        LCD_Write_Reg(0xac);//0xac >> 静态图标显示, 0xad >> 无静态图标

        LCD_Write_Reg(0xaf);//0xaf >> 显示开, 0xae >> 显示关
        
        LCD_Clear( );
}
/************************************************************************/

附件里有视频、模块说明书和ST7565操作指令表:
LCD12864-ST7565.zip (18.82 MB, 下载次数: 100)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:584814 发表于 2020-3-4 15:54 | 只看该作者
重复下载会累加扣分,网站源码应该调整。
回复

使用道具 举报

板凳
ID:224782 发表于 2020-3-18 10:51 | 只看该作者
man1234567 发表于 2020-3-4 15:54
重复下载会累加扣分,网站源码应该调整。

下自己的也要扣分
回复

使用道具 举报

地板
ID:138343 发表于 2020-5-10 17:28 | 只看该作者
看样子是spi驱动的,下载来看看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表