发新帖本帖赏金 5.50元(功能说明)我要提问
返回列表
[开源硬件]

DIY多功能12864液晶显示电子台历-设计篇

[复制链接]
楼主: henangongda123
手机看帖
扫描二维码
随时随地手机跟帖
henangongda123|  楼主 | 2018-5-22 12:19 | 显示全部楼层
springvirus 发表于 2018-5-22 11:20
刊登在2007.11 无线电上杜洋的**配图,非常经典!!
@宇容创行

是的 他是首创,不过那时候是51、AVR单片机。

使用特权

评论回复
henangongda123|  楼主 | 2018-5-22 12:31 | 显示全部楼层
昨天买的元件今天到了,可惜忘记买排针、排座了!
电子元件.jpg
12864液晶.jpg

使用特权

评论回复
henangongda123|  楼主 | 2018-5-22 12:59 | 显示全部楼层
轻车熟路,最小系统调试OK,呵呵
最小系统调试图-1.jpg
最小系统调试图-2.jpg

使用特权

评论回复
henangongda123|  楼主 | 2018-5-22 13:01 | 显示全部楼层
今天补买排针、排座,开始准备调试12864液晶屏,这个程序之前我写过,相信也会很顺利。

使用特权

评论回复
springvirus| | 2018-5-22 15:38 | 显示全部楼层
henangongda123 发表于 2018-5-22 13:01
今天补买排针、排座,开始准备调试12864液晶屏,这个程序之前我写过,相信也会很顺利。 ...

注意MCU和屏 3.3V  5V的匹配问题

使用特权

评论回复
henangongda123|  楼主 | 2018-5-22 16:42 | 显示全部楼层
springvirus 发表于 2018-5-22 15:38
注意MCU和屏 3.3V  5V的匹配问题

嗯  都是5V的,器件选型的时候要注意供电问题。

使用特权

评论回复
ateganyl| | 2018-5-22 18:58 | 显示全部楼层
henangongda123 发表于 2018-5-22 12:59
轻车熟路,最小系统调试OK,呵呵

看你这桌面不像是个搞电子的工程师啊

使用特权

评论回复
henangongda123|  楼主 | 2018-5-22 19:14 | 显示全部楼层
ateganyl 发表于 2018-5-22 18:58
看你这桌面不像是个搞电子的工程师啊

唉 以前上学的时候很认真、很努力的自学过单片机啊,梦想毕业后能做这一行,可惜没有,现在做的也和电子有关,只是是低端制造业-照明灯具这块,基本上跟高科技不搭边,做的都是整合,所以桌面很整洁,基本看不到啥调试设备,哈哈

使用特权

评论回复
740071911| | 2018-5-23 07:56 | 显示全部楼层
henangongda123 发表于 2018-5-18 18:21
不知道哦,不过我可以用CorelDRAW画出来一模一样的,就是美工设计软件,或者AI、PS等。 ...

这电路图确实好看啊,比ad18有趣

使用特权

评论回复
740071911| | 2018-5-23 07:58 | 显示全部楼层
henangongda123 发表于 2018-5-19 16:27
今天某宝下单买了一个STM8S207最小系统板和ST-LINK,准备再买个12864液晶屏,先把液晶显示这块调试OK。然后 ...

我的印象中单色12864很笨重的样子,不如用oled或者lcd5110

使用特权

评论回复
henangongda123|  楼主 | 2018-5-23 08:04 | 显示全部楼层
740071911 发表于 2018-5-23 07:58
我的印象中单色12864很笨重的样子,不如用oled或者lcd5110

是的 但是笨重有笨重的美观啊

使用特权

评论回复
henangongda123|  楼主 | 2018-5-23 08:04 | 显示全部楼层
740071911 发表于 2018-5-23 07:56
这电路图确实好看啊,比ad18有趣

嗯 这次我也用CDR画个这样的电路图分享,反正是DIY嘛,不着急

使用特权

评论回复
henangongda123|  楼主 | 2018-5-24 10:41 | 显示全部楼层
今天排针到货了,镀金3U的,呵呵
昨天仔细研究了一下12864液晶和整个系统的电源供电,我发现 @springvirus 坛友说的真对,还真需要好好考虑一下液晶屏的3.3V、5V的选择问题,再次感谢springvirus坛友!
1.jpg

使用特权

评论回复
springvirus| | 2018-5-24 13:58 | 显示全部楼层
henangongda123 发表于 2018-5-24 10:41
今天排针到货了,镀金3U的,呵呵
昨天仔细研究了一下12864液晶和整个系统的电源供电,我发现 @springvirus  ...

祝玩的高兴,别忘了一起分享过程!!

使用特权

评论回复
henangongda123|  楼主 | 2018-5-24 21:07 | 显示全部楼层
今天重新买了3.3V的12864液晶显示屏,还有LM1117IMPX-3.3V稳压IC,估计要明天才能发货。
12864对比度调节.jpg

3.3V J12864中文 液晶使用说明.pdf

661.01 KB

LM1117IMPX-3.3 NOPB.pdf

2.45 MB

全能型12864T 说明书.pdf

775.71 KB

使用特权

评论回复
henangongda123|  楼主 | 2018-5-26 19:34 | 显示全部楼层
今天开始调试12864液晶显示屏。。。
12864液晶显示调试.jpg

使用特权

评论回复
henangongda123|  楼主 | 2018-5-27 14:24 | 显示全部楼层
今天在调试12864液晶显示器,貌似跟之前玩的不太一样,之前用51、AVR驱动ST7920带字库12864的时候,貌似程序很简单的(可能也跟编译器有关系),不用太关心液晶驱动的问题;前些年用STM8的时候,驱动的是不带字库的12864,这次用的是带字库的,额,有点麻烦,继续调试中。
12864换行.png

使用特权

评论回复
henangongda123|  楼主 | 2018-5-27 22:28 | 显示全部楼层
继续调试
12864液晶调试.jpg

使用特权

评论回复
henangongda123|  楼主 | 2018-5-27 23:03 | 显示全部楼层
汉字出来了,终于找到原因了,原来是缺少必要的延时程序!我就记得这种带字库的液晶显示器操作没那么麻烦的(不带字库的会麻烦一点),这次我以为程序里面已经有了判断液晶是否忙碌的操作,就不再需要额外延时程序了,没想到还是需要(液晶显示器在处理每条MCU指令、数据时都需要必要的时间,常规操作72us左右)。
/******* 12864液晶及相关显示操作 *******/
//底层驱动函数
//写入一字节指令/数据
/***********************************************************
函数名: lcd_w_char()
功  能: 向12864液晶写入一字节指令/数据
参  数: cd    --- 写入指令/数据选择标志(0=指令,1=数据)
                          cdata --- 写入指令/数据内容
返回值: 无
/**********************************************************/
void lcd_w_char(uchar cd, uchar cdata)
{
        if(cd == 0)                 //选择写入"指令"
  {
                PD_ODR &= (~0x04);        //RS=0,选择写"指令"
        }
        if(cd == 1)                 //选择写入"数据"
        {
                PD_ODR |= 0x04;           //RS=1,选择写"数据"
        }
        PD_ODR &= (~0x08);          //RW=0,选择"写"操作
        PG_ODR = cdata;             //加载指令/数据内容
        PD_ODR |= 0x10;             //E=1,开始写入指令/数据
        delay_us(1);                //延时,等待液晶端口读入指令/数据内容
        PD_ODR &= (~0x10);          //E=0,写入完成
}
//写入一串字符数据
/***********************************************************
函数名: lcd_w_word()
功  能: 向12864液晶写入一串字符数据(最长64字符: 8个汉字或16个数字/英文字符)
                          (注: ST7920主控IC的12864液晶内部已集成汉字库,程序可直接写入汉字字符)
参  数: str --- 字符串内容
返回值: 无
***********************************************************/
void lcd_w_word(uchar *str)
{
        while(*str != '\0')         //字符串未结束
    {
            lcd_w_char(1,*str++);   //写入每个字符串数据内容
                        delay_us(80);           //延时,等待液晶操作完成(注: 此处必须延时)
                }
        *str = 0;
}
//初始化函数
/***********************************************************
函数名: Lcd_Init()
功  能: 12864液晶初始化
参  数: 无
返回值: 无
/**********************************************************/
void Lcd_Init(void)
{
        lcd_w_char(0,0x30);         //写入指令,选择8位界面,基本指令集,绘图显示关
        delay_us(80);               //液晶处理指令时间72us
        lcd_w_char(0,0x0c);         //显示开,光标关闭
        delay_us(80);               //液晶处理指令时间72us
        lcd_w_char(0,0x01);         //清屏
        delay_ms(5);                //液晶处理指令时间4.6ms
}

//主函数
void main()
{
        Clk_Init();                 //系统时钟初始化
        Port_Init();                //端口初始化
        Lcd_Init();                 //12864液晶初始化
        lcd_w_char(0,0x80);         //设置液晶显示开始地址
        delay_us(80);
  lcd_w_char(1,0x04+0x30);
        delay_us(80);
        lcd_w_char(1,0x05+0x30);
        delay_us(80);
        lcd_w_word("你好!");
        delay_us(80);
        while(1)
        {
               
        }
}

12864液晶调试.jpg

使用特权

评论回复
13028866875| | 2018-5-29 15:34 | 显示全部楼层

使用特权

评论回复
发新帖 本帖赏金 5.50元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则