ag真人试玩平台-ag真人网站

 
 立即注册
1
返回列表
查看: 2598|回复: 74

2线驱动lcd12864液晶屏 -ag真人试玩平台

[复制链接]
发表于 2023-6-26 21:51:33 | 显示全部楼层 |
架不住廉价的诱惑,买了些1元的lcd12864。
有大佬分享了2线spi驱动方法,写了个代码验证下,确实可行。
这是原分享图片的截图


cs直接接地,rst接vcc,悬空也行

网上找的驱动改改,成功了

主要就是在写入数据前,多写一个dc位。
代码里有用拼音命名的函数名或者变量名,请见谅。
图像数据在tuxiang_128_64.h文件里,没有上传
/*****************
驱动芯片:uc1601 还是uc1609?
引脚定义 1:cs  2:rst  3:dc    4:rw    5:sck/d0    6:d1    7:d2    8:sda/d3    9-12:d4-d7   
            13:vcc    14:gnd    15:led (原)    16:led-(原)
焊盘  4:pm1 1:pm0 3:vcc    2:gnd
    pm1pm0=00:spi(s8), 启用dc脚,h为数据,l为指令
    pm1pm0=01:spi(s9),关闭dc脚,9位传输,第9位为数据指令识别位,1数据,0指令
9位传输时,rst直接接高电平,
*******************************/                    
#include "stc8h.h"       //8h1k08@12mhz
#include "intrins.h"
#include "tuxiang_128_64.h"

typedef unsigned char uchar;
typedef unsigned int uint;
typedef unsigned long    ulong;

sbit io_clk = p3^4;
sbit io_sda = p3^3;
uchar code *p;
//=====================================
/***********--1ms@stc8h-20mhz---***************/
void delay(uint n)
{
    uchar i,j;
    while(n--)
    {
        i = 26;
        j = 246;
        do
        {
            while (--j);
        }
        while (--i);
    }
}

/* rs=0写入控制指令,rs=1写入显示数据,9位传输方式,第9位为数据指令识别位 */
void xieru_shuju_zhiling(bit rs,uchar dat )
{
    uchar i;                           
   
    io_clk = 0;
    io_sda = rs;     //9位传输方式,第9位为数据指令识别位
    _nop_();               
    io_clk = 1;        
    for (i=0;i<8;i )
    {
        io_clk = 0;
        io_sda = dat & 0x80;     //从高位开始输出
        _nop_();               
        io_clk = 1;                       
        dat = dat<<1;                    
    }
   
}
/***************清屏    *********************/
void lcdclear(void)
{
    uchar i,j;
    for(i = 0;i<8;i )   
    {
        xieru_shuju_zhiling(0,0xb0 i);             //0x0b:写页地址命令,i为页地址,
        xieru_shuju_zhiling(0,0x10);         //写初始列地址高4位,10中的1表示是高4位
        xieru_shuju_zhiling(0,0x04);        //写初始列地址低4位
        for(j = 0;j<128;j )                        
        {
            xieru_shuju_zhiling(1,0);     //写显示数据,列地址自动加1
        }
    }
}            

void initlcm(void)                    //lcd初始化
{   
    io_clk =1;                    
    xieru_shuju_zhiling(0,0xe2); //软件复位
    delay(10);
    xieru_shuju_zhiling(0,0xa2); //0xa2:lcd bias=1/9;0xa1:lcd bias=1/7
    delay(1);
    xieru_shuju_zhiling(0,0x2f);
    delay(1);
    xieru_shuju_zhiling(0,0x23); /* 0x20-0x27为v5电压内部电阻调整设置,r2,r1,r0=111,对比度粗调,数值越大,对比越强 */
    delay(1);
    xieru_shuju_zhiling(0,0x81); //对比度细调指令,下一行输入对比度值
    xieru_shuju_zhiling(0,0x64); //修改这个值可以改变对比度
    delay(1);
    xieru_shuju_zhiling(0,0xa0); //列扫描方向:0xa0:从左到右,adc=0(seg1->seg132),0xa1相反
    xieru_shuju_zhiling(0,0xc4); //页扫描方向:0xc4:从上到下,shl=1(com64->com1),0xc0相反
   

    xieru_shuju_zhiling(0,0x40); //起始行,7567为:0x40,7565 0x60
    xieru_shuju_zhiling(0,0xe0); //写入数据时列地址自动加1,读时不变
    xieru_shuju_zhiling(0,0xaf); //开显示
}
/*显示一个汉字或者一幅图像,*/
/*  dizhi_ye页地址,dizhi_lie列地址,fudu_ye显示部分所占页数,fudu_lie显示部分所占列数,*p字模数据地址            */
/*  12864从上到下共8页,地址为0-7,每页有128列,传送数据时列地址自动加1,但页地址不会 */
void lcd_xianshi(uchar dizhi_ye,uchar dizhi_lie,
        uchar fudu_ye,uchar fudu_lie,uchar code *p)
{
    uchar i,j;
        for(j=0;j         {
                xieru_shuju_zhiling(0,0xb0 dizhi_ye j);            //传送页地址
                xieru_shuju_zhiling(0,0x10 (dizhi_lie>>4));    //列地址先传高4位
                xieru_shuju_zhiling(0,dizhi_lie&0x0f);            //再传低4位
               
                for (i=0;i                 {                  
                        xieru_shuju_zhiling(1,*p );    //*p =*(p );
                }                    
        }
        
}
//-------------------------------------
void duankou_chushihua(void)
{
        p1m0 = 0x00;        p1m1 = 0x00;
        p3m0 = 0x00;        p3m1 = 0x00;
        p5m0 = 0x00;        p5m1 = 0x00;
}
//========================================
void main()
{
    delay(100);
   
    duankou_chushihua();
    initlcm();
        
    while(1)
    {
        lcdclear();
        p = tuxiang_12864_1;
        lcd_xianshi(0,0,8,128, p);
        delay(1000);
    }
   

}


spi,

打赏

家元 209 理由
亚历山大 9
家睦 200
发表于 2023-6-26 22:41:56 | 显示全部楼层
刷新率能做到多高?
发表于 2023-6-26 22:57:23 | 显示全部楼层
这个玩玩可以。
发表于 2023-6-27 01:47:13 | 显示全部楼层
请教lz,1元的车还有吗
发表于 2023-6-27 06:41:28 | 显示全部楼层
cs接地只能软件模拟spi时可以,硬件spi cs接地不显示~
 楼主| 发表于 2023-6-27 06:41:56 | 显示全部楼层

请教lz,1元的车还有吗

还有呢,淘宝搜  “老王电子数码diy”。
 楼主| 发表于 2023-6-27 06:48:58 | 显示全部楼层

刷新率能做到多高?

没测试。
同频率下,肯定比iic快,又比通用spi慢一点点。
 楼主| 发表于 2023-6-27 07:07:55 | 显示全部楼层

cs接地只能软件模拟spi时可以,硬件spi cs接地不显示~

是的,2线只能软件模拟了。
 楼主| 发表于 2023-6-27 09:01:31 | 显示全部楼层

刷新率能做到多高?

修改测试了一下
void main()
{
        delay(100);
       
        duankou_chushihua();
        initlcm();
        lcdclear();
        io_led =1;       
        while(1)
        {               
                p = tuxiang_12864_1;
                lcd_xianshi(0,0,8,128, p);
                //delay(1000);
                io_led =!io_led;
        }
}

单片机:stc8g1k08
时钟频率:35mhz
io_led端口脉冲频率:120hz
屏幕刷新率应该是240hz了,显示稳定。
只会玩点51单片机,更高频率无法测试。
发表于 2023-6-27 09:44:42 | 显示全部楼层
反正俺看不懂
发表于 2023-6-27 10:11:22 | 显示全部楼层
会编程的都是大神
发表于 2023-6-27 10:38:28 | 显示全部楼层
我也没看懂
发表于 2023-6-27 10:54:40 | 显示全部楼层
节约io口是主要的,快速画图还得是并口
发表于 2023-6-27 14:51:17 | 显示全部楼层
这个屏幕驱动是uc1609,2线驱动就是3线spi去掉一个rst或者9bitspi去掉一个rst,试验过esp8266和stm32f103的硬件spi貌似都不支持,只能软spi。软spi的速度和硬件spi没法比。当然优点就是省io口,在对速度要求不高的情况下很合适。
这块屏幕的速度还不错,20fps时拖影比较少,最快勉强到25fps
发表于 2023-6-27 17:02:57 | 显示全部楼层
好多拼音,哈哈
 楼主| 发表于 2023-6-27 21:00:50 | 显示全部楼层

这个屏幕驱动是uc1609,2线驱动就是3线spi去掉一个rst或者9bitspi去掉一个rst,试验过esp8266和stm32f103的 ...

大师很专业,钦佩!
 楼主| 发表于 2023-6-27 21:03:26 | 显示全部楼层

好多拼音,哈哈

见笑了,英语不会,又想玩单片机
发表于 2023-6-27 21:57:39 来自手机浏览器 | 显示全部楼层
拼音编程直观,算是起步了。
发表于 2023-6-28 09:38:25 | 显示全部楼层
外挂设备引脚少了,mcu多出来的引脚就可以干其他事了
发表于 2023-6-28 17:59:43 来自手机浏览器 | 显示全部楼层
本帖最后由 wwb2002 于 2023-6-30 15:05 编辑
lemontreenm 发表于 2023-6-27 14:51
这个屏幕驱动是uc1609,2线驱动就是3线spi去掉一个rst或者9bitspi去掉一个rst,试验过esp8266和stm32f103的 ...


uc1609不是19264吗?楼主的屏是12864啊。我也买了几块,stm32f303驱动,u8g2库,两线三线的区别是两线没有dc ,而且这个dc 并不属于spi外设的信号,而是单独一个f303的gpio,f303的spi好像没有dc 线这个配置,网上也有介绍spi有的是有dc 线的,有dc 就是s8模式,没dc 就用s9。f303是可以硬件spi驱动的
1
返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

app||小黑屋|关于ag真人试玩平台|联系ag真人网站|法律条款|ag真人试玩平台-ag真人网站

gmt 8, 2023-9-12 10:50 , processed in 0.280801 second(s), 15 queries , redis on.

powered by

© 2006-2023 smzj.net

返回列表
网站地图